X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=decoders%2Fz80%2Fpd.py;h=7cadec92c9c08bf7f1b3f99705f431a4f96d5393;hb=d6d8a8a440ea2a81e6ddde33d16bc84d01cdb432;hp=f6bafb11f9ad2901db8f5df9fec19d0a33228a8e;hpb=486858f7208207fb12a281640c5f6e9be4e4626f;p=libsigrokdecode.git diff --git a/decoders/z80/pd.py b/decoders/z80/pd.py index f6bafb1..7cadec9 100644 --- a/decoders/z80/pd.py +++ b/decoders/z80/pd.py @@ -56,7 +56,7 @@ ann_data_cycle_map = { def reduce_bus(bus): if 0xFF in bus: - return None # unassigned bus probes + return None # unassigned bus channels else: return reduce(lambda a, b: (a << 1) | b, reversed(bus)) @@ -64,7 +64,7 @@ def signed_byte(byte): return byte if byte < 128 else byte - 256 class Decoder(srd.Decoder): - api_version = 1 + api_version = 3 id = 'z80' name = 'Z80' longname = 'Zilog Z80 CPU' @@ -72,7 +72,8 @@ class Decoder(srd.Decoder): license = 'gplv3+' inputs = ['logic'] outputs = ['z80'] - probes = tuple({ + tags = ['Retro computing'] + channels = tuple({ 'id': 'd%d' % i, 'name': 'D%d' % i, 'desc': 'Data bus line %d' % i @@ -82,7 +83,7 @@ class Decoder(srd.Decoder): {'id': 'rd', 'name': '/RD', 'desc': 'Memory or I/O read'}, {'id': 'wr', 'name': '/WR', 'desc': 'Memory or I/O write'}, ) - optional_probes = ( + optional_channels = ( {'id': 'mreq', 'name': '/MREQ', 'desc': 'Memory request'}, {'id': 'iorq', 'name': '/IORQ', 'desc': 'I/O request'}, ) + tuple({ @@ -110,7 +111,10 @@ class Decoder(srd.Decoder): ('warnings', 'Warnings', (Ann.WARN,)) ) - def __init__(self, **kwargs): + def __init__(self): + self.reset() + + def reset(self): self.prev_cycle = Cycle.NONE self.op_state = self.state_IDLE @@ -129,8 +133,10 @@ class Decoder(srd.Decoder): self.op_state = self.state_IDLE self.instr_len = 0 - def decode(self, ss, es, data): - for (self.samplenum, pins) in data: + def decode(self): + while True: + # TODO: Come up with more appropriate self.wait() conditions. + pins = self.wait() cycle = Cycle.NONE if pins[Pin.MREQ] != 1: # default to asserted if pins[Pin.RD] == 0: