Adding conditionals
To add coniditional branch instructions, I added the following code to the Python implementation:
…
elif (n3 == 0xC): # BZ reg, dadr
if (n1 >= 8):
dadr = 0x100 - ((n1 << 4) + n1)
else:
dadr = ((n1 << 4) + n0)
if self.R[n2] == 0: self.R[PC] = self.R[PC] + dadr
elif (n3 == 0xD): # BNZ reg, dadr
if (n1 >= 8):
dadr = 0x100 - ((n1 << 4) + n1)
else:
dadr = ((n1 << 4) + n0)
if self.R[n2] != 0: self.R[PC] = self.R[PC] + dadr
…
I didn’t think this through more carefully yet – I might have overlooked something. (Also not implemented in the disassembly part.)