Implement more of Z80.

This commit is contained in:
Jeff Tranter 2015-07-02 18:19:50 -04:00
parent d07901394c
commit 59b3b1784c

56
z80.py
View File

@ -106,6 +106,7 @@ addressModeTable = {
"a,indc" : "a,(c)",
"a,indde" : "a,(de)",
"a,indhl" : "a,(hl)",
"a,indix+d" : "a,(ix+${0:02X})",
"a,indn" : "a,(${0:02X})",
"a,indnn" : "a,(${1:02X}{0:02X})",
"a,l" : "a,l",
@ -122,6 +123,7 @@ addressModeTable = {
"b,h" : "b,h",
"b,indc" : "b,(c)",
"b,indhl" : "b,(hl)",
"b,indix+d" : "b,(ix+${0:02X})",
"b,l" : "b,l",
"b,n" : "b,${0:02X}",
"bc" : "bc",
@ -136,6 +138,7 @@ addressModeTable = {
"c,h" : "c,h",
"c,indc" : "c,(c)",
"c,indhl" : "c,(hl)",
"c,indix+d" : "c,(ix+${0:02X})",
"c,l" : "c,l",
"c,n" : "b,${0:02X}",
"c,n" : "c,${0:04X}",
@ -149,6 +152,7 @@ addressModeTable = {
"d,h" : "d,h",
"d,indc" : "d,(c)",
"d,indhl" : "d,(hl)",
"d,indix+d" : "d,(ix+${0:02X})",
"d,l" : "d,l",
"d,n" : "d,${0:02X}",
"de" : "de",
@ -164,6 +168,7 @@ addressModeTable = {
"e,h" : "e,h",
"e,indc" : "e,(c)",
"e,indhl" : "e,(hl)",
"e,indix+d" : "e,(ix+${0:02X})",
"e,l" : "e,l",
"e,n" : "e,${0:02X}",
"h" : "h",
@ -175,6 +180,7 @@ addressModeTable = {
"h,h" : "h,h",
"h,indc" : "h,(c)",
"h,indhl" : "h,(hl)",
"h,indix+d" : "h,(ix+${0:02X})",
"h,l" : "h,l",
"h,n" : "h,${0:02X}",
"hl" : "hl",
@ -187,6 +193,7 @@ addressModeTable = {
"i,a" : "i,a",
"indaa,bc" : "(${1:02X}{0:02X}),bc",
"indaa,de" : "(${1:02X}{0:02X}),de",
"indaa,ix" : "(${1:02X}{0:02X}),ix",
"indaa,sp" : "(${1:02X}{0:02X}),sp",
"indbc,a" : "(bc),a",
"indc,a" : "(c),a",
@ -206,11 +213,25 @@ addressModeTable = {
"indhl,h" : "(hl),h",
"indhl,l" : "(hl),l",
"indhl,n" : "(hl),(${0:02X})",
"indix+d" : "(ix+${0:02X})",
"indix+d,a" : "(ix+${0:02X}),a",
"indix+d,b" : "(ix+${0:02X}),b",
"indix+d,c" : "(ix+${0:02X}),c",
"indix+d,d" : "(ix+${0:02X}),d",
"indix+d,e" : "(ix+${0:02X}),e",
"indix+d,h" : "(ix+${0:02X}),h",
"indix+d,l" : "(ix+${0:02X}),l",
"indix+d,n" : "(ix+${0:02X}),${1:02X}",
"indn,a" : "(${0:02X}),a",
"indnn,a" : "(${1:02X}{0:02X}),a",
"indnn,hl" : "(${1:02X}{0:02X}),hl",
"indsp,hl" : "(sp),hl",
"ix" : "ix",
"ix,aa" : "ix,${0:02X}{1:02X}",
"ix,bc" : "ix,bc",
"ix,de" : "ix,de",
"ix,indaa" : "ix,(${1:02X}{0:02X})",
"ix,ix" : "ix,ix",
"iy,bc" : "iy,bc",
"l" : "l",
"l,a" : "l,a",
@ -221,6 +242,7 @@ addressModeTable = {
"l,h" : "l,h",
"l,indc" : "l,(c)",
"l,indhl" : "l,(hl)",
"l,indix+d" : "l,(ix+${0:02X})",
"l,l" : "l,l",
"l,n" : "l,${0:02X}",
"m" : "m",
@ -246,6 +268,7 @@ addressModeTable = {
"sp,hl" : "sp,hl",
"sp,indaa" : "sp,(${1:02X}{0:02X})",
"sp,nn" : "sp,${1:02X}{0:02X}",
"xy,sp" : "xy,sp",
"z" : "z",
"z,n" : "z,${0:04X}",
"z,nn" : "z,${1:02X}{0:02X}",
@ -796,6 +819,39 @@ opcodeTable = {
0xcbff : [ 2, "set", "7,a" ],
0xdd09 : [ 2, "add", "ix,bc" ],
0xdd19 : [ 2, "add", "ix,de" ],
0xdd21 : [ 4, "ld", "ix,aa" ],
0xdd22 : [ 4, "ld", "indaa,ix" ],
0xdd23 : [ 2, "inc", "ix" ],
0xdd29 : [ 2, "add", "ix,ix" ],
0xdd2a : [ 4, "ld", "ix,indaa" ],
0xdd2b : [ 2, "dec", "ix" ],
0xdd34 : [ 3, "inc", "indix+d" ],
0xdd35 : [ 3, "dec", "indix+d" ],
0xdd36 : [ 4, "ld", "indix+d,n" ],
0xdd39 : [ 2, "add", "xy,sp" ],
0xdd46 : [ 3, "ld", "b,indix+d" ],
0xdd4e : [ 3, "ld", "c,indix+d" ],
0xdd56 : [ 3, "ld", "d,indix+d" ],
0xdd5e : [ 3, "ld", "e,indix+d" ],
0xdd66 : [ 3, "ld", "h,indix+d" ],
0xdd6e : [ 3, "ld", "l,indix+d" ],
0xdd70 : [ 3, "ld", "indix+d,b" ],
0xdd71 : [ 3, "ld", "indix+d,c" ],
0xdd72 : [ 3, "ld", "indix+d,d" ],
0xdd73 : [ 3, "ld", "indix+d,e" ],
0xdd74 : [ 3, "ld", "indix+d,h" ],
0xdd75 : [ 3, "ld", "indix+d,l" ],
0xdd77 : [ 3, "ld", "indix+d,a" ],
0xdd7e : [ 3, "ld", "a,indix+d" ],
0xdd86 : [ 3, "add", "a,indix+d" ],
0xdd8e : [ 3, "adc", "a,indix+d" ],
0xdd96 : [ 3, "sub", "indix+d" ],
0xdd9e : [ 3, "sbc", "a,indix+d" ],
0xdda6 : [ 3, "and", "indix+d" ],
0xddae : [ 3, "xor", "indix+d" ],
0xddb6 : [ 3, "or", "indix+d" ],
0xddbe : [ 3, "cp", "indix+d" ],
0xdd8e : [3, "adc", "(ix+d)" ],