Skip to content

Commit ccfa48d

Browse files
committed
Add ZX Next instruction set
Also use typing in Opcode and make it a namedtuple.
1 parent 04eaa46 commit ccfa48d

File tree

1 file changed

+33
-3
lines changed

1 file changed

+33
-3
lines changed

z80.py

Lines changed: 33 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,10 @@
33
# vim:ts=4:et:
44

55

6-
class Opcode(object):
6+
class Opcode:
77
""" Describes opcodes and other info.
88
"""
9-
10-
def __init__(self, asm, time, size, opcode):
9+
def __init__(self, asm: str, time: int, size: int, opcode: str):
1110
self.asm = asm
1211
self.T = time
1312
self.size = size
@@ -834,6 +833,37 @@ def __init__(self, asm, time, size, opcode):
834833
"CP IXL": Opcode("CP IXL", 8, 2, "DD BD"),
835834
"CP IYH": Opcode("CP IYH", 8, 2, "FD BC"),
836835
"CP IYL": Opcode("CP IYL", 8, 2, "FD BD"),
836+
837+
# ZX NEXT extra opcodes
838+
"LDIX": Opcode("LDIX", 16, 2, "ED A4"),
839+
"LDWS": Opcode("LDWS", 14, 2, "ED A5"),
840+
"LDIRX": Opcode("LDIRX", 21, 2, "ED B4"),
841+
"LDDX": Opcode("LDDX", 16, 2, "ED AC"),
842+
"LDDRX": Opcode("LDDRX", 21, 2, "ED BC"),
843+
"LDPIRX": Opcode("LDPIRX", 21, 2, "ED B7"),
844+
"OUTINB": Opcode("OUTINB", 16, 2, "ED 90"),
845+
"MUL D,E": Opcode("MUL D,E", 8, 2, "ED 30"),
846+
"ADD HL,A": Opcode("ADD HL,A", 8, 2, "ED 31"),
847+
"ADD DE,A": Opcode("ADD DE,A", 8, 2, "ED 32"),
848+
"ADD BC,A": Opcode("ADD BC,A", 8, 2, "ED 33"),
849+
"ADD HL,NN": Opcode("ADD HL,NN", 16, 4, "ED 34 XX XX"),
850+
"ADD DE,NN": Opcode("ADD DE,NN", 16, 4, "ED 35 XX XX"),
851+
"ADD BC,NN": Opcode("ADD BC,NN", 16, 4, "ED 36 XX XX"),
852+
"SWAPNIB": Opcode("SWAPNIB", 8, 2, "ED 23"),
853+
"MIRROR": Opcode("MIRROR", 8, 2, "ED 24"),
854+
"PUSH NN": Opcode("PUSH NN", 23, 4, "ED 8A XX XX"),
855+
"NEXTREG N,N": Opcode("NEXTREG N,N", 20, 4, "ED 91 XX XX"),
856+
"NEXTREG N,A": Opcode("NEXTREG N,A", 17, 3, "ED 92 XX"),
857+
"PIXELDN": Opcode("PIXELDN", 8, 2, "ED 93"),
858+
"PIXELAD": Opcode("PIXELAD", 8, 2, "ED 94"),
859+
"SETAE": Opcode("SETAE", 8, 2, "ED 95"),
860+
"TEST N": Opcode("TEST N", 11, 3, "ED 27 XX"),
861+
"BSLA DE,B": Opcode("BSLA DE,B", 8, 2, "ED 28"),
862+
"BSRA DE,B": Opcode("BSRA DE,B", 8, 2, "ED 29"),
863+
"BSRL DE,B": Opcode("BSRL DE,B", 8, 2, "ED 2A"),
864+
"BSRF DE,B": Opcode("BSRF DE,B", 8, 2, "ED 2B"),
865+
"BRLC DE,B": Opcode("BRLC DE,B", 8, 2, "ED 2C"),
866+
"JP (C)": Opcode("JP (C)", 13, 2, "ED 98"),
837867
}
838868

839869

0 commit comments

Comments
 (0)