mc6809: more disasm

This commit is contained in:
alyosha-tas 2019-04-07 11:39:38 -05:00
parent 10d1c230f3
commit 07c3dd4aad
1 changed files with 430 additions and 430 deletions

View File

@ -8,22 +8,22 @@ namespace BizHawk.Emulation.Common.Components.MC6809
{
static string[] table =
{
"NEG DP,i8", // 00
"NEG DP+i8", // 00
"???", // 01
"???", // 02
"COM DP,i8", // 03
"LSR DP,i8", // 04
"COM DP+i8", // 03
"LSR DP+i8", // 04
"???", // 05
"ROR DP,i8", // 06
"ASR DP,i8", // 07
"ASL DP,i8", // 08
"ROL DP,i8", // 09
"DEC DP,i8", // 0a
"ROR DP+i8", // 06
"ASR DP+i8", // 07
"ASL DP+i8", // 08
"ROL DP+i8", // 09
"DEC DP+i8", // 0a
"???", // 0b
"INC DP,i8", // 0c
"TST DP,i8", // 0d
"JMP DP,i8", // 0e
"CLR DP,i8", // 0f
"INC DP+i8", // 0c
"TST DP+i8", // 0d
"JMP DP+i8", // 0e
"CLR DP+i8", // 0f
"PAGE 2", // 10
"PAGE 3", // 11
"NOP", // 12
@ -136,134 +136,134 @@ namespace BizHawk.Emulation.Common.Components.MC6809
"TST ex16", // 7d
"JMP ex16", // 7e
"CLR ex16", // 7f
"ADD A,B", // 80
"ADD A,C", // 81
"ADD A,D", // 82
"ADD A,E", // 83
"ADD A,H", // 84
"ADD A,L", // 85
"ADD A,(HL)", // 86
"ADD A,A", // 87
"ADC A,B", // 88
"ADC A,C", // 89
"ADC A,D", // 8a
"ADC A,E", // 8b
"ADC A,H", // 8c
"ADC A,L", // 8d
"ADC A,(HL)", // 8e
"ADC A,A", // 8f
"SUB B", // 90
"SUB C", // 91
"SUB D", // 92
"SUB E", // 93
"SUB H", // 94
"SUB L", // 95
"SUB (HL)", // 96
"SUB A", // 97
"SBC A,B", // 98
"SBC A,C", // 99
"SBC A,D", // 9a
"SBC A,E", // 9b
"SBC A,H", // 9c
"SBC A,L", // 9d
"SBC A,(HL)", // 9e
"SBC A,A", // 9f
"AND B", // a0
"AND C", // a1
"AND D", // a2
"AND E", // a3
"AND H", // a4
"AND L", // a5
"AND (HL)", // a6
"AND A", // a7
"XOR B", // a8
"XOR C", // a9
"XOR D", // aa
"XOR E", // ab
"XOR H", // ac
"XOR L", // ad
"XOR (HL)", // ae
"XOR A", // af
"OR B", // b0
"OR C", // b1
"OR D", // b2
"OR E", // b3
"OR H", // b4
"OR L", // b5
"OR (HL)", // b6
"OR A", // b7
"CP B", // b8
"CP C", // b9
"CP D", // ba
"CP E", // bb
"CP H", // bc
"CP L", // bd
"CP (HL)", // be
"CP A", // bf
"RET NZ", // c0
"POP BC", // c1
"JP NZ,a16", // c2
"JP a16", // c3
"CALL NZ,a16", // c4
"PUSH BC", // c5
"ADD A,d8", // c6
"RST 00H", // c7
"RET Z", // c8
"RET", // c9
"JP Z,a16", // ca
"PREFIX CB", // cb
"CALL Z,a16", // cc
"CALL a16", // cd
"ADC A,d8", // ce
"RST 08H", // cf
"RET NC", // d0
"POP DE", // d1
"JP NC,a16", // d2
"???", // d3
"CALL NC,a16", // d4
"PUSH DE", // d5
"SUB d8", // d6
"RST 10H", // d7
"RET C", // d8
"RETI", // d9
"JP C,a16", // da
"???", // db
"CALL C,a16", // dc
"???", // dd
"SBC A,d8", // de
"RST 18H", // df
"LDH (a8),A", // e0
"POP HL", // e1
"LD (C),A", // e2
"???", // e3
"???", // e4
"PUSH HL", // e5
"AND d8", // e6
"RST 20H", // e7
"ADD SP,r8", // e8
"JP (HL)", // e9
"LD (a16),A", // ea
"???", // eb
"???", // ec
"???", // ed
"XOR d8", // ee
"RST 28H", // ef
"LDH A,(a8)", // f0
"POP AF", // f1
"LD A,(C)", // f2
"DI", // f3
"???", // f4
"PUSH AF", // f5
"OR d8", // f6
"RST 30H", // f7
"LD HL,SP+r8", // f8
"LD SP,HL", // f9
"LD A,(a16)", // fa
"EI ", // fb
"???", // fc
"???", // fd
"CP d8", // fe
"RST 38H", // ff
"SUB A,i8", // 80
"CMP A,i8", // 81
"SBC A,i8", // 82
"SUB D,i16", // 83
"AND A,i8", // 84
"BIT A,i8", // 85
"LD A,i8", // 86
"???", // 87
"EOR A,i8", // 88
"ADC A,i8", // 89
"OR A,i8", // 8a
"ADD A,i8", // 8b
"CMP X,i16", // 8c
"BSR i8", // 8d
"LD X,i16", // 8e
"???", // 8f
"SUB A,DP+i8", // 90
"CMP A,DP+i8", // 91
"SBC A,DP+i8", // 92
"SUB D,DP+i8", // 93
"AND A,DP+i8", // 94
"BIT A,DP+i8", // 95
"LD A,DP+i8", // 96
"ST A,DP+i8", // 97
"EOR A,DP+i8", // 98
"ADC A,DP+i8", // 99
"OR A,DP+i8", // 9a
"ADD A,DP+i8", // 9b
"CMP X,DP+i8", // 9c
"JSR DP+i8", // 9d
"LD X,ix16", // 9e
"ST X,ix16", // 9f
"SUB A,ix16", // a0
"CMP A,ix16", // a1
"SBC A,ix16", // a2
"SUB D,ix16", // a3
"AND A,ix16", // a4
"BIT A,ix16", // a5
"LD A,ix16", // a6
"ST A,ix16", // a7
"EOR A,ix16", // a8
"ADC A,ix16", // a9
"OR A,ix16", // aa
"ADD A,ix16", // ab
"CMP X,ix16", // ac
"JSR ix16", // ad
"LD X,ex16", // ae
"ST X,ex16", // af
"SUB A,ex16", // b0
"CMP A,ex16", // b1
"SBC A,ex16", // b2
"SUB D,ex16", // b3
"AND A,ex16", // b4
"BIT A,ex16", // b5
"LD A,ex16", // b6
"ST A,ex16", // b7
"EOR A,ex16", // b8
"ADC A,ex16", // b9
"OR A,ex16", // ba
"ADD A,ex16", // bb
"CMP X,ex16", // bc
"JSR ex16", // bd
"LD X,ex16", // be
"ST X,ex16", // bf
"SUB B,i8", // c0
"CMP B,i8", // c1
"SBC B,i8", // c2
"ADD D,i16", // c3
"AND B,i8", // c4
"BIT B,i8", // c5
"LD B,i8", // c6
"???", // c7
"EOR B,i8", // c8
"ADC B,i8", // c9
"OR B,i8", // ca
"ADD B,i8", // cb
"LD D,i16", // cc
"???", // cd
"LD U,i16", // ce
"???", // cf
"SUB B,DP+i8", // d0
"CMP B,DP+i8", // d1
"SBC B,DP+i8", // d2
"ADD D,DP+i8", // d3
"AND B,DP+i8", // d4
"BIT B,DP+i8", // d5
"LD B,DP+i8", // d6
"ST B,DP+i8", // d7
"EOR B,DP+i8", // d8
"ADC B,DP+i8", // d9
"OR B,DP+i8", // da
"ADD B,DP+i8", // db
"LD D,DP+i8", // dc
"ST D,DP+i8", // dd
"LD U,DP+i8", // de
"ST U,DP+i8", // df
"SUB B,ix16", // e0
"CMP B,ix16", // e1
"SBC B,ix16", // e2
"ADD D,ix16", // e3
"AND B,ix16", // e4
"BIT B,ix16", // e5
"LD B,ix16", // e6
"ST B,ix16", // e7
"EOR B,ix16", // e8
"ADC B,ix16", // e9
"OR B,ix16", // ea
"ADD B,ix16", // eb
"LD D,ix16", // ec
"ST D,ix16", // ed
"LD U,ix16", // ee
"ST U,ix16", // ef
"SUB B,ex16", // f0
"CMP B,ex16", // f1
"SBC B,ex16", // f2
"ADD D,ex16", // f3
"AND B,ex16", // f4
"BIT B,ex16", // f5
"LD B,ex16", // f6
"ST B,ex16", // f7
"EOR B,ex16", // f8
"ADC B,ex16", // f9
"OR B,ex16", // fa
"ADD B,ex16", // fb
"LD D,ex16", // fc
"ST D,ex16", // fd
"LD U,ex16", // fe
"ST U,ex16", // ff
};
static string[] table2 =
@ -431,7 +431,7 @@ namespace BizHawk.Emulation.Common.Components.MC6809
"???", // a0
"???", // a1
"???", // a2
"AND E", // a3
"CMP D,ix16", // a3
"???", // a4
"???", // a5
"???", // a6
@ -440,350 +440,350 @@ namespace BizHawk.Emulation.Common.Components.MC6809
"???", // a9
"???", // aa
"???", // ab
"XOR H", // ac
"CMP Y,ix16", // ac
"???", // ad
"XOR (HL)", // ae
"XOR A", // af
"OR B", // b0
"OR C", // b1
"OR D", // b2
"OR E", // b3
"OR H", // b4
"OR L", // b5
"OR (HL)", // b6
"OR A", // b7
"CP B", // b8
"CP C", // b9
"CP D", // ba
"CP E", // bb
"CP H", // bc
"CP L", // bd
"CP (HL)", // be
"CP A", // bf
"RET NZ", // c0
"POP BC", // c1
"JP NZ,a16", // c2
"JP a16", // c3
"CALL NZ,a16", // c4
"PUSH BC", // c5
"ADD A,d8", // c6
"RST 00H", // c7
"RET Z", // c8
"RET", // c9
"JP Z,a16", // ca
"PREFIX CB", // cb
"CALL Z,a16", // cc
"CALL a16", // cd
"ADC A,d8", // ce
"RST 08H", // cf
"RET NC", // d0
"POP DE", // d1
"JP NC,a16", // d2
"LD Y,ix16", // ae
"ST Y,ix16", // af
"???", // b0
"???", // b1
"???", // b2
"CMP D,ex16", // b3
"???", // b4
"???", // b5
"???", // b6
"???", // b7
"???", // b8
"???", // b9
"???", // ba
"???", // bb
"CMP Y,ex16", // bc
"???", // bd
"LD Y,ex16", // be
"ST Y,ex16", // bf
"???", // c0
"???", // c1
"???", // c2
"???", // c3
"???", // c4
"???", // c5
"???", // c6
"???", // c7
"???", // c8
"???", // c9
"???", // ca
"???", // cb
"???", // cc
"???", // cd
"LD SP,i16", // ce
"???", // cf
"???", // d0
"???", // d1
"???", // d2
"???", // d3
"CALL NC,a16", // d4
"PUSH DE", // d5
"SUB d8", // d6
"RST 10H", // d7
"RET C", // d8
"RETI", // d9
"JP C,a16", // da
"???", // d4
"???", // d5
"???", // d6
"???", // d7
"???", // d8
"???", // d9
"???", // da
"???", // db
"CALL C,a16", // dc
"???", // dc
"???", // dd
"SBC A,d8", // de
"RST 18H", // df
"LDH (a8),A", // e0
"POP HL", // e1
"LD (C),A", // e2
"LD SP,DP+i8", // de
"ST SP,DP+i8", // df
"???", // e0
"???", // e1
"???", // e2
"???", // e3
"???", // e4
"PUSH HL", // e5
"AND d8", // e6
"RST 20H", // e7
"ADD SP,r8", // e8
"JP (HL)", // e9
"LD (a16),A", // ea
"???", // e5
"???", // e6
"???", // e7
"???", // e8
"???", // e9
"???", // ea
"???", // eb
"???", // ec
"???", // ed
"XOR d8", // ee
"RST 28H", // ef
"LDH A,(a8)", // f0
"POP AF", // f1
"LD A,(C)", // f2
"DI", // f3
"LD SP,ix16", // ee
"ST SP,ix16", // ef
"???", // f0
"???", // f1
"???", // f2
"???", // f3
"???", // f4
"PUSH AF", // f5
"OR d8", // f6
"RST 30H", // f7
"LD HL,SP+r8", // f8
"LD SP,HL", // f9
"LD A,(a16)", // fa
"EI ", // fb
"???", // f5
"???", // f6
"???", // f7
"???", // f8
"???", // f9
"???", // fa
"???", // fb
"???", // fc
"???", // fd
"CP d8", // fe
"RST 38H", // ff
"LD SP,ex16", // fe
"ST SP,ex16", // ff
};
static string[] table3 =
{
"NEG DP,i8", // 00
"???", // 00
"???", // 01
"???", // 02
"COM DP,i8", // 03
"LSR DP,i8", // 04
"???", // 03
"???", // 04
"???", // 05
"ROR DP,i8", // 06
"ASR DP,i8", // 07
"ASL DP,i8", // 08
"ROL DP,i8", // 09
"DEC DP,i8", // 0a
"???", // 06
"???", // 07
"???", // 08
"???", // 09
"???", // 0a
"???", // 0b
"INC DP,i8", // 0c
"TST DP,i8", // 0d
"JMP DP,i8", // 0e
"CLR DP,i8", // 0f
"PAGE 2", // 10
"PAGE 3", // 11
"NOP", // 12
"SYNC", // 13
"???", // 0c
"???", // 0d
"???", // 0e
"???", // 0f
"???", // 10
"???", // 11
"???", // 12
"???", // 13
"???", // 14
"???", // 15
"LBRA i16", // 16
"LBSR i16", // 17
"???", // 16
"???", // 17
"???", // 18
"DAA", // 19
"ORCC i8", // 1a
"???", // 19
"???", // 1a
"???", // 1b
"ANDCC i8", // 1c
"SEX", // 1d
"EXG i8", // 1e
"TFR i8", // 1f
"BRA i8", // 20
"BRN i8", // 21
"BHI i8", // 22
"BLS i8", // 23
"BHS i8", // 24
"BLO i8", // 25
"BNE i8", // 26
"BEQ i8", // 27
"BVC i8", // 28
"BVS i8", // 29
"BPL i8", // 2a
"BMI i8", // 2b
"BGE i8", // 2c
"BLT i8", // 2d
"BGT i8", // 2e
"BLE i8", // 2f
"LEAX ix16", // 30
"LEAY ix16", // 31
"LEAS ix16", // 32
"LEAU ix16", // 33
"PSHS i8", // 34
"PULS i8", // 35
"PSHU i8", // 36
"PULU i8", // 37
"???", // 1c
"???", // 1d
"???", // 1e
"???", // 1f
"???", // 20
"???", // 21
"???", // 22
"???", // 23
"???", // 24
"???", // 25
"???", // 26
"???", // 27
"???", // 28
"???", // 29
"???", // 2a
"???", // 2b
"???", // 2c
"???", // 2d
"???", // 2e
"???", // 2f
"???", // 30
"???", // 31
"???", // 32
"???", // 33
"???", // 34
"???", // 35
"???", // 36
"???", // 37
"???", // 38
"RTS", // 39
"ABX", // 3a
"RTI", // 3b
"CWAI", // 3c
"MUL", // 3d
"???", // 39
"???", // 3a
"???", // 3b
"???", // 3c
"???", // 3d
"???", // 3e
"SWI1", // 3f
"NEG A", // 40
"SWI3", // 3f
"???", // 40
"???", // 41
"???", // 42
"COM A", // 43
"LSR A", // 44
"???", // 43
"???", // 44
"???", // 45
"ROR A", // 46
"ASR A", // 47
"ASL A", // 48
"ROL A", // 49
"DEC A", // 4a
"???", // 46
"???", // 47
"???", // 48
"???", // 49
"???", // 4a
"???", // 4b
"INC A", // 4c
"TST A", // 4d
"???", // 4c
"???", // 4d
"???", // 4e
"CLR A", // 4f
"NEG B", // 50
"???", // 4f
"???", // 50
"???", // 51
"???", // 52
"COM B", // 53
"LSR B", // 54
"???", // 53
"???", // 54
"???", // 55
"ROR B", // 56
"ASR B", // 57
"ASL B", // 58
"ROL B", // 59
"DEC B", // 5a
"???", // 56
"???", // 57
"???", // 58
"???", // 59
"???", // 5a
"???", // 5b
"INC B", // 5c
"TST B", // 5d
"???", // 5c
"???", // 5d
"???", // 5e
"CLR B", // 5f
"NEG ix16", // 60
"???", // 5f
"???", // 60
"???", // 61
"???", // 62
"COM ix16", // 63
"LSR ix16", // 64
"???", // 63
"???", // 64
"???", // 65
"ROR ix16", // 66
"ASR ix16", // 67
"ASL ix16", // 68
"ROL ix16", // 69
"DEC ix16", // 6a
"???", // 66
"???", // 67
"???", // 68
"???", // 69
"???", // 6a
"???", // 6b
"INC ix16", // 6c
"TST ix16", // 6d
"JMP ix16", // 6e
"CLR ix16", // 6f
"NEG ex16", // 70
"???", // 6c
"???", // 6d
"???", // 6e
"???", // 6f
"???", // 70
"???", // 71
"???", // 72
"COM ex16", // 73
"LSR ex16", // 74
"???", // 73
"???", // 74
"???", // 75
"ROR ex16", // 76
"ASR ex16", // 77
"ASL ex16", // 78
"ROL ex16", // 79
"DEC ex16", // 7a
"???", // 76
"???", // 77
"???", // 78
"???", // 79
"???", // 7a
"???", // 7b
"INC ex16", // 7c
"TST ex16", // 7d
"JMP ex16", // 7e
"CLR ex16", // 7f
"ADD A,B", // 80
"ADD A,C", // 81
"ADD A,D", // 82
"ADD A,E", // 83
"ADD A,H", // 84
"ADD A,L", // 85
"ADD A,(HL)", // 86
"ADD A,A", // 87
"ADC A,B", // 88
"ADC A,C", // 89
"ADC A,D", // 8a
"ADC A,E", // 8b
"ADC A,H", // 8c
"ADC A,L", // 8d
"ADC A,(HL)", // 8e
"ADC A,A", // 8f
"SUB B", // 90
"SUB C", // 91
"SUB D", // 92
"SUB E", // 93
"SUB H", // 94
"SUB L", // 95
"SUB (HL)", // 96
"SUB A", // 97
"SBC A,B", // 98
"SBC A,C", // 99
"SBC A,D", // 9a
"SBC A,E", // 9b
"SBC A,H", // 9c
"SBC A,L", // 9d
"SBC A,(HL)", // 9e
"SBC A,A", // 9f
"AND B", // a0
"AND C", // a1
"AND D", // a2
"AND E", // a3
"AND H", // a4
"AND L", // a5
"AND (HL)", // a6
"AND A", // a7
"XOR B", // a8
"XOR C", // a9
"XOR D", // aa
"XOR E", // ab
"XOR H", // ac
"XOR L", // ad
"XOR (HL)", // ae
"XOR A", // af
"OR B", // b0
"OR C", // b1
"OR D", // b2
"OR E", // b3
"OR H", // b4
"OR L", // b5
"OR (HL)", // b6
"OR A", // b7
"CP B", // b8
"CP C", // b9
"CP D", // ba
"CP E", // bb
"CP H", // bc
"CP L", // bd
"CP (HL)", // be
"CP A", // bf
"RET NZ", // c0
"POP BC", // c1
"JP NZ,a16", // c2
"JP a16", // c3
"CALL NZ,a16", // c4
"PUSH BC", // c5
"ADD A,d8", // c6
"RST 00H", // c7
"RET Z", // c8
"RET", // c9
"JP Z,a16", // ca
"PREFIX CB", // cb
"CALL Z,a16", // cc
"CALL a16", // cd
"ADC A,d8", // ce
"RST 08H", // cf
"RET NC", // d0
"POP DE", // d1
"JP NC,a16", // d2
"???", // 7c
"???", // 7d
"???", // 7e
"???", // 7f
"???", // 80
"???", // 81
"???", // 82
"CMP US,(i16)", // 83
"???", // 84
"???", // 85
"???", // 86
"???", // 87
"???", // 88
"???", // 89
"???", // 8a
"???", // 8b
"CMP SP,(i16)", // 8c
"???", // 8d
"???", // 8e
"???", // 8f
"???", // 90
"???", // 91
"???", // 92
"CMP US,(DP+i8)", // 93
"???", // 94
"???", // 95
"???", // 96
"???", // 97
"???", // 98
"???", // 99
"???", // 9a
"???", // 9b
"CMP SP,(DP+i8)", // 9c
"???", // 9d
"???", // 9e
"???", // 9f
"???", // a0
"???", // a1
"???", // a2
"CMP US,ix16", // a3
"???", // a4
"???", // a5
"???", // a6
"???", // a7
"???", // a8
"???", // a9
"???", // aa
"???", // ab
"CMP SP,ix16", // ac
"???", // ad
"???", // ae
"???", // af
"???", // b0
"???", // b1
"???", // b2
"CMP US,ex16", // b3
"???", // b4
"???", // b5
"???", // b6
"???", // b7
"???", // b8
"???", // b9
"???", // ba
"???", // bb
"CMP SP,ex16", // bc
"???", // bd
"???", // be
"???", // bf
"???", // c0
"???", // c1
"???", // c2
"???", // c3
"???", // c4
"???", // c5
"???", // c6
"???", // c7
"???", // c8
"???", // c9
"???", // ca
"???", // cb
"???", // cc
"???", // cd
"???", // ce
"???", // cf
"???", // d0
"???", // d1
"???", // d2
"???", // d3
"CALL NC,a16", // d4
"PUSH DE", // d5
"SUB d8", // d6
"RST 10H", // d7
"RET C", // d8
"RETI", // d9
"JP C,a16", // da
"???", // d4
"???", // d5
"???", // d6
"???", // d7
"???", // d8
"???", // d9
"???", // da
"???", // db
"CALL C,a16", // dc
"???", // dc
"???", // dd
"SBC A,d8", // de
"RST 18H", // df
"LDH (a8),A", // e0
"POP HL", // e1
"LD (C),A", // e2
"???", // de
"???", // df
"???", // e0
"???", // e1
"???", // e2
"???", // e3
"???", // e4
"PUSH HL", // e5
"AND d8", // e6
"RST 20H", // e7
"ADD SP,r8", // e8
"JP (HL)", // e9
"LD (a16),A", // ea
"???", // e5
"???", // e6
"???", // e7
"???", // e8
"???", // e9
"???", // ea
"???", // eb
"???", // ec
"???", // ed
"XOR d8", // ee
"RST 28H", // ef
"LDH A,(a8)", // f0
"POP AF", // f1
"LD A,(C)", // f2
"DI", // f3
"???", // ee
"???", // ef
"???", // f0
"???", // f1
"???", // f2
"???", // f3
"???", // f4
"PUSH AF", // f5
"OR d8", // f6
"RST 30H", // f7
"LD HL,SP+r8", // f8
"LD SP,HL", // f9
"LD A,(a16)", // fa
"EI ", // fb
"???", // f5
"???", // f6
"???", // f7
"???", // f8
"???", // f9
"???", // fa
"???", // fb
"???", // fc
"???", // fd
"CP d8", // fe
"RST 38H", // ff
"???", // fe
"???", // ff
};
public static string Disassemble(ushort addr, Func<ushort, byte> reader, out ushort size)