# HG changeset patch # User Michael Pavone # Date 1546658027 28800 # Node ID b1ad6339de4f6865b877d88f8800c57245ac1329 # Parent 9c90c79953cce6c0d3bdfe14fae64cc0c08d44de Old changes to OLP analyzer script for analyzing Z80 memory requests diff -r 9c90c79953cc -r b1ad6339de4f analyze_olp.py --- a/analyze_olp.py Fri Jan 04 19:13:23 2019 -0800 +++ b/analyze_olp.py Fri Jan 04 19:13:47 2019 -0800 @@ -148,6 +148,30 @@ print 'refresh @ {0}'.format(num) state = 'begin' last = sample + +def analyze_z80_mreq(chanmap, datafile): + m1 = chanmap['!M1'] + mreq = chanmap['!MREQ'] + addressMask = 0x3FF + last = None + lastWasM1 = False + for line in datafile.readlines(): + line = line.strip() + if line and not line.startswith(';'): + sample,_,num = line.partition('@') + sample = int(sample, 16) + if not (last is None): + if detect_rise(last, sample, mreq): + address = last & addressMask + if detect_low(last, m1): + print 'M1 read {0:02X} @ {1}'.format(address, num) + lastWasM1 = True + elif lastWasM1: + print 'Refresh {0:02X} @ {1}'.format(address, num) + lastWasM1 = False + else: + print 'Access {0:02X} @ {1}'.format(address, num) + last = sample def main(args): if len(args) < 2: @@ -163,10 +187,11 @@ chanmap[channels[i]] = i datafile = olpfile.open('data.ols') #analyze_delays(chanmap, datafile) - analyze_vram(chanmap, datafile) + #analyze_vram(chanmap, datafile) + #analyze_refresh(chanmap, datafile) + analyze_z80_mreq(chanmap, datafile) datafile.close() - #datafile = olpfile.open('data.ols') - #analyze_refresh(chanmap, datafile) + if __name__ == '__main__': main(argv)