Implement more of Z80.

This commit is contained in:
Jeff Tranter 2015-06-26 09:42:06 -04:00
parent 55983f517a
commit aa6fc9de2d

262
z80.py
View File

@ -146,6 +146,7 @@ addressModeTable = {
"p,nn" : "p,${1:02X}{0:02X}",
"c,n" : "c,${0:04X}",
"nn" : "${1:02X}{0:02X}",
"b,indc" : "b,(c)",
"00" : "$00",
"08" : "$08",
"10" : "$10",
@ -154,11 +155,70 @@ addressModeTable = {
"28" : "$28",
"30" : "$10",
"38" : "$18",
"0,a" : "0,a",
"0,b" : "0,b",
"0,c" : "0,c",
"0,d" : "0,d",
"0,e" : "0,e",
"0,h" : "0,h",
"0,l" : "0,l",
"0,indhl" : "0,(hl)",
"1,a" : "1,a",
"1,b" : "1,b",
"1,c" : "1,c",
"1,d" : "1,d",
"1,e" : "1,e",
"1,h" : "1,h",
"1,l" : "1,l",
"1,indhl" : "1,(hl)",
"2,a" : "2,a",
"2,b" : "2,b",
"2,c" : "2,c",
"2,d" : "2,d",
"2,e" : "2,e",
"2,h" : "2,h",
"2,l" : "2,l",
"2,indhl" : "2,(hl)",
"3,a" : "3,a",
"3,b" : "3,b",
"3,c" : "3,c",
"3,d" : "3,d",
"3,e" : "3,e",
"3,h" : "3,h",
"3,l" : "3,l",
"3,indhl" : "3,(hl)",
"4,a" : "4,a",
"4,b" : "4,b",
"4,c" : "4,c",
"4,d" : "4,d",
"4,e" : "4,e",
"4,h" : "4,h",
"4,l" : "4,l",
"4,indhl" : "4,(hl)",
"5,a" : "5,a",
"5,b" : "5,b",
"5,c" : "5,c",
"5,d" : "5,d",
"5,e" : "5,e",
"5,h" : "5,h",
"5,l" : "5,l",
"5,indhl" : "5,(hl)",
"6,a" : "6,a",
"6,b" : "6,b",
"6,c" : "6,c",
"6,d" : "6,d",
"6,e" : "6,e",
"6,h" : "6,h",
"6,l" : "6,l",
"6,indhl" : "6,(hl)",
"7,a" : "7,a",
"b,indc" : "b,(c)",
"7,b" : "7,b",
"7,c" : "7,c",
"7,d" : "7,d",
"7,e" : "7,e",
"7,h" : "7,h",
"7,l" : "7,l",
"7,indhl" : "7,(hl)",
}
@ -504,7 +564,205 @@ opcodeTable = {
0xcb40 : [ 2, "bit", "0,b" ],
0xcb41 : [ 2, "bit", "0,c" ],
0xcb42 : [ 2, "bit", "0,d" ],
# etc.
0xcb43 : [ 2, "bit", "0,e" ],
0xcb44 : [ 2, "bit", "0,h" ],
0xcb45 : [ 2, "bit", "0,l" ],
0xcb46 : [ 2, "bit", "0,indhl" ],
0xcb47 : [ 2, "bit", "0,a" ],
0xcb48 : [ 2, "bit", "1,b" ],
0xcb49 : [ 2, "bit", "1,c" ],
0xcb4a : [ 2, "bit", "1,d" ],
0xcb4b : [ 2, "bit", "1,e" ],
0xcb4c : [ 2, "bit", "1,h" ],
0xcb4d : [ 2, "bit", "1,l" ],
0xcb4e : [ 2, "bit", "1,indhl" ],
0xcb4f : [ 2, "bit", "1,a" ],
0xcb50 : [ 2, "bit", "2,b" ],
0xcb51 : [ 2, "bit", "2,c" ],
0xcb52 : [ 2, "bit", "2,d" ],
0xcb53 : [ 2, "bit", "2,e" ],
0xcb54 : [ 2, "bit", "2,h" ],
0xcb55 : [ 2, "bit", "2,l" ],
0xcb56 : [ 2, "bit", "2,indhl" ],
0xcb57 : [ 2, "bit", "2,a" ],
0xcb58 : [ 2, "bit", "3,b" ],
0xcb59 : [ 2, "bit", "3,c" ],
0xcb5a : [ 2, "bit", "3,d" ],
0xcb5b : [ 2, "bit", "3,e" ],
0xcb5c : [ 2, "bit", "3,h" ],
0xcb5d : [ 2, "bit", "3,l" ],
0xcb5e : [ 2, "bit", "3,indhl" ],
0xcb5f : [ 2, "bit", "3,a" ],
0xcb60 : [ 2, "bit", "4,b" ],
0xcb61 : [ 2, "bit", "4,c" ],
0xcb62 : [ 2, "bit", "4,d" ],
0xcb63 : [ 2, "bit", "4,e" ],
0xcb64 : [ 2, "bit", "4,h" ],
0xcb65 : [ 2, "bit", "4,l" ],
0xcb66 : [ 2, "bit", "4,indhl" ],
0xcb67 : [ 2, "bit", "4,a" ],
0xcb68 : [ 2, "bit", "5,b" ],
0xcb69 : [ 2, "bit", "5,c" ],
0xcb6a : [ 2, "bit", "5,d" ],
0xcb6b : [ 2, "bit", "5,e" ],
0xcb6c : [ 2, "bit", "5,h" ],
0xcb6d : [ 2, "bit", "5,l" ],
0xcb6e : [ 2, "bit", "5,indhl" ],
0xcb6f : [ 2, "bit", "5,a" ],
0xcb70 : [ 2, "bit", "6,b" ],
0xcb71 : [ 2, "bit", "6,c" ],
0xcb72 : [ 2, "bit", "6,d" ],
0xcb73 : [ 2, "bit", "6,e" ],
0xcb74 : [ 2, "bit", "6,h" ],
0xcb75 : [ 2, "bit", "6,l" ],
0xcb76 : [ 2, "bit", "6,indhl" ],
0xcb77 : [ 2, "bit", "6,a" ],
0xcb78 : [ 2, "bit", "7,b" ],
0xcb79 : [ 2, "bit", "7,c" ],
0xcb7a : [ 2, "bit", "7,d" ],
0xcb7b : [ 2, "bit", "7,e" ],
0xcb7c : [ 2, "bit", "7,h" ],
0xcb7d : [ 2, "bit", "7,l" ],
0xcb7e : [ 2, "bit", "7,indhl" ],
0xcb7f : [ 2, "bit", "7,a" ],
0xcb80 : [ 2, "res", "0,b" ],
0xcb81 : [ 2, "res", "0,b" ],
0xcb82 : [ 2, "res", "0,b" ],
0xcb83 : [ 2, "res", "0,b" ],
0xcb84 : [ 2, "res", "0,b" ],
0xcb85 : [ 2, "res", "0,b" ],
0xcb86 : [ 2, "res", "0,b" ],
0xcb87 : [ 2, "res", "0,b" ],
0xcb88 : [ 2, "res", "0,b" ],
0xcb89 : [ 2, "res", "0,b" ],
0xcb8a : [ 2, "res", "0,b" ],
0xcb8b : [ 2, "res", "0,b" ],
0xcb8c : [ 2, "res", "0,b" ],
0xcb8d : [ 2, "res", "0,b" ],
0xcb8e : [ 2, "res", "0,b" ],
0xcb8f : [ 2, "res", "0,b" ],
0xcb90 : [ 2, "res", "0,b" ],
0xcb91 : [ 2, "res", "0,b" ],
0xcb92 : [ 2, "res", "0,b" ],
0xcb93 : [ 2, "res", "0,b" ],
0xcb94 : [ 2, "res", "0,b" ],
0xcb95 : [ 2, "res", "0,b" ],
0xcb96 : [ 2, "res", "0,b" ],
0xcb97 : [ 2, "res", "0,b" ],
0xcb98 : [ 2, "res", "0,b" ],
0xcb99 : [ 2, "res", "0,b" ],
0xcb9a : [ 2, "res", "0,b" ],
0xcb9b : [ 2, "res", "0,b" ],
0xcb9c : [ 2, "res", "0,b" ],
0xcb9d : [ 2, "res", "0,b" ],
0xcb9e : [ 2, "res", "0,b" ],
0xcb9f : [ 2, "res", "0,b" ],
0xcba0 : [ 2, "res", "0,b" ],
0xcba1 : [ 2, "res", "0,b" ],
0xcba2 : [ 2, "res", "0,b" ],
0xcba3 : [ 2, "res", "0,b" ],
0xcba4 : [ 2, "res", "0,b" ],
0xcba5 : [ 2, "res", "0,b" ],
0xcba6 : [ 2, "res", "0,b" ],
0xcba7 : [ 2, "res", "0,b" ],
0xcba8 : [ 2, "res", "0,b" ],
0xcba9 : [ 2, "res", "0,b" ],
0xcbaa : [ 2, "res", "0,b" ],
0xcbab : [ 2, "res", "0,b" ],
0xcbac : [ 2, "res", "0,b" ],
0xcbad : [ 2, "res", "0,b" ],
0xcbae : [ 2, "res", "0,b" ],
0xcbaf : [ 2, "res", "0,b" ],
0xcbb0 : [ 2, "res", "0,b" ],
0xcbb1 : [ 2, "res", "0,b" ],
0xcbb2 : [ 2, "res", "0,b" ],
0xcbb3 : [ 2, "res", "0,b" ],
0xcbb4 : [ 2, "res", "0,b" ],
0xcbb5 : [ 2, "res", "0,b" ],
0xcbb6 : [ 2, "res", "0,b" ],
0xcbb7 : [ 2, "res", "0,b" ],
0xcbb8 : [ 2, "res", "0,b" ],
0xcbb9 : [ 2, "res", "0,b" ],
0xcbba : [ 2, "res", "0,b" ],
0xcbbb : [ 2, "res", "0,b" ],
0xcbbc : [ 2, "res", "0,b" ],
0xcbbd : [ 2, "res", "0,b" ],
0xcbbe : [ 2, "res", "0,b" ],
0xcbbf : [ 2, "res", "0,b" ],
0xcbc0 : [ 2, "res", "0,b" ],
0xcbc1 : [ 2, "res", "0,b" ],
0xcbc2 : [ 2, "res", "0,b" ],
0xcbc3 : [ 2, "res", "0,b" ],
0xcbc4 : [ 2, "res", "0,b" ],
0xcbc5 : [ 2, "res", "0,b" ],
0xcbc6 : [ 2, "res", "0,b" ],
0xcbc7 : [ 2, "res", "0,b" ],
0xcbc8 : [ 2, "res", "0,b" ],
0xcbc9 : [ 2, "res", "0,b" ],
0xcbca : [ 2, "res", "0,b" ],
0xcbcb : [ 2, "res", "0,b" ],
0xcbcc : [ 2, "res", "0,b" ],
0xcbcd : [ 2, "res", "0,b" ],
0xcbce : [ 2, "res", "0,b" ],
0xcbcf : [ 2, "res", "0,b" ],
0xcbd0 : [ 2, "res", "0,b" ],
0xcbd1 : [ 2, "res", "0,b" ],
0xcbd2 : [ 2, "res", "0,b" ],
0xcbd3 : [ 2, "res", "0,b" ],
0xcbd4 : [ 2, "res", "0,b" ],
0xcbd5 : [ 2, "res", "0,b" ],
0xcbd6 : [ 2, "res", "0,b" ],
0xcbd7 : [ 2, "res", "0,b" ],
0xcbd8 : [ 2, "res", "0,b" ],
0xcbd9 : [ 2, "res", "0,b" ],
0xcbda : [ 2, "res", "0,b" ],
0xcbdb : [ 2, "res", "0,b" ],
0xcbdc : [ 2, "res", "0,b" ],
0xcbdd : [ 2, "res", "0,b" ],
0xcbde : [ 2, "res", "0,b" ],
0xcbdf : [ 2, "res", "0,b" ],
0xcbe0 : [ 2, "res", "0,b" ],
0xcbe1 : [ 2, "res", "0,b" ],
0xcbe2 : [ 2, "res", "0,b" ],
0xcbe3 : [ 2, "res", "0,b" ],
0xcbe4 : [ 2, "res", "0,b" ],
0xcbe5 : [ 2, "res", "0,b" ],
0xcbe6 : [ 2, "res", "0,b" ],
0xcbe7 : [ 2, "res", "0,b" ],
0xcbe8 : [ 2, "res", "0,b" ],
0xcbe9 : [ 2, "res", "0,b" ],
0xcbea : [ 2, "res", "0,b" ],
0xcbeb : [ 2, "res", "0,b" ],
0xcbec : [ 2, "res", "0,b" ],
0xcbed : [ 2, "res", "0,b" ],
0xcbee : [ 2, "res", "0,b" ],
0xcbef : [ 2, "res", "0,b" ],
0xcbf0 : [ 2, "res", "0,b" ],
0xcbf1 : [ 2, "res", "0,b" ],
0xcbf2 : [ 2, "res", "0,b" ],
0xcbf3 : [ 2, "res", "0,b" ],
0xcbf4 : [ 2, "res", "0,b" ],
0xcbf5 : [ 2, "res", "0,b" ],
0xcbf6 : [ 2, "res", "0,b" ],
0xcbf7 : [ 2, "res", "0,b" ],
0xcbf8 : [ 2, "res", "0,b" ],
0xcbf9 : [ 2, "res", "0,b" ],
0xcbfa : [ 2, "res", "0,b" ],
0xcbfb : [ 2, "res", "0,b" ],
0xcbfc : [ 2, "res", "0,b" ],
0xcbfd : [ 2, "res", "0,b" ],
0xcbfe : [ 2, "res", "0,b" ],
0xcbff : [ 2, "set", "7,a" ],
0xdd09 : [ 2, "add", "ix,bc" ],