mirror of
https://github.com/ksherlock/wdc-utils.git
synced 2024-12-12 04:29:05 +00:00
fix instruction mode bugs
This commit is contained in:
parent
95481d710c
commit
9362980e82
@ -134,7 +134,7 @@ static constexpr const int modes[] =
|
|||||||
2 | mBlockMove, // 44 mvp x,x
|
2 | mBlockMove, // 44 mvp x,x
|
||||||
1 | mDP, // 45 eor dp
|
1 | mDP, // 45 eor dp
|
||||||
1 | mDP, // 46 lsr dp
|
1 | mDP, // 46 lsr dp
|
||||||
1 | mDPIL | m_Y, // 47 eor [dp],y
|
1 | mDPIL, // 47 eor [dp]
|
||||||
0 | mImplied, // 48 pha
|
0 | mImplied, // 48 pha
|
||||||
1 | mImmediate | m_M, // 49 eor #imm
|
1 | mImmediate | m_M, // 49 eor #imm
|
||||||
0 | mImplied, // 4a lsr a
|
0 | mImplied, // 4a lsr a
|
||||||
@ -326,7 +326,7 @@ static constexpr const int modes[] =
|
|||||||
2 | mAbsolute | m_Y, // f9 sbc |abs,y
|
2 | mAbsolute | m_Y, // f9 sbc |abs,y
|
||||||
0 | mImplied, // fa plx
|
0 | mImplied, // fa plx
|
||||||
0 | mImplied, // fb xce
|
0 | mImplied, // fb xce
|
||||||
2 | mAbsoluteI, // fc jsr (abs)
|
2 | mAbsoluteI | m_X, // fc jsr (abs,x)
|
||||||
2 | mAbsolute | m_X, // fd sbc |abs,x
|
2 | mAbsolute | m_X, // fd sbc |abs,x
|
||||||
2 | mAbsolute | m_X, // fe inc |abs,x
|
2 | mAbsolute | m_X, // fe inc |abs,x
|
||||||
3 | mAbsoluteLong | m_X, // ff sbc >abs,x
|
3 | mAbsoluteLong | m_X, // ff sbc >abs,x
|
||||||
@ -339,9 +339,9 @@ static std::string to_x(uint32_t x, unsigned bytes, char prefix = 0) {
|
|||||||
char buffer[16];
|
char buffer[16];
|
||||||
if (prefix) s.push_back(prefix);
|
if (prefix) s.push_back(prefix);
|
||||||
|
|
||||||
if (x >= 0xff && bytes < 4) bytes = 4;
|
if (x > 0xff && bytes < 4) bytes = 4;
|
||||||
if (x >= 0xffff && bytes < 6) bytes = 6;
|
if (x > 0xffff && bytes < 6) bytes = 6;
|
||||||
if (x >= 0xffffff && bytes < 8) bytes = 8;
|
if (x > 0xffffff && bytes < 8) bytes = 8;
|
||||||
|
|
||||||
memset(buffer, '0', sizeof(buffer));
|
memset(buffer, '0', sizeof(buffer));
|
||||||
int i = 16;
|
int i = 16;
|
||||||
@ -509,6 +509,7 @@ void disassembler::print_prefix() {
|
|||||||
case mDP: printf("\t<"); break;
|
case mDP: printf("\t<"); break;
|
||||||
case mDPI: printf("\t(<"); break;
|
case mDPI: printf("\t(<"); break;
|
||||||
case mDPIL: printf("\t[<"); break;
|
case mDPIL: printf("\t[<"); break;
|
||||||
|
case mAbsoluteIL: printf("\t["); break;
|
||||||
|
|
||||||
case mRelative:
|
case mRelative:
|
||||||
case mBlockMove:
|
case mBlockMove:
|
||||||
@ -534,6 +535,7 @@ std::string disassembler::prefix() {
|
|||||||
case mDP: tmp = "<"; break;
|
case mDP: tmp = "<"; break;
|
||||||
case mDPI: tmp = "(<"; break;
|
case mDPI: tmp = "(<"; break;
|
||||||
case mDPIL: tmp = "[<"; break;
|
case mDPIL: tmp = "[<"; break;
|
||||||
|
case mAbsoluteIL: tmp = "["; break;
|
||||||
|
|
||||||
case mRelative:
|
case mRelative:
|
||||||
case mBlockMove:
|
case mBlockMove:
|
||||||
|
@ -302,9 +302,9 @@ static std::string to_x(uint32_t x, unsigned bytes, char prefix = 0) {
|
|||||||
char buffer[16];
|
char buffer[16];
|
||||||
if (prefix) s.push_back(prefix);
|
if (prefix) s.push_back(prefix);
|
||||||
|
|
||||||
if (x >= 0xff && bytes < 4) bytes = 4;
|
if (x > 0xff && bytes < 4) bytes = 4;
|
||||||
if (x >= 0xffff && bytes < 6) bytes = 6;
|
if (x > 0xffff && bytes < 6) bytes = 6;
|
||||||
if (x >= 0xffffff && bytes < 8) bytes = 8;
|
if (x > 0xffffff && bytes < 8) bytes = 8;
|
||||||
|
|
||||||
memset(buffer, '0', sizeof(buffer));
|
memset(buffer, '0', sizeof(buffer));
|
||||||
int i = 16;
|
int i = 16;
|
||||||
|
@ -204,7 +204,7 @@
|
|||||||
;
|
;
|
||||||
cpy #$1234
|
cpy #$1234
|
||||||
cmp (<$12,x)
|
cmp (<$12,x)
|
||||||
rep #$1234
|
rep #$00
|
||||||
cmp <$12,s
|
cmp <$12,s
|
||||||
cpy <$12
|
cpy <$12
|
||||||
cmp <$12
|
cmp <$12
|
||||||
@ -231,14 +231,16 @@
|
|||||||
cmp |$1234,y
|
cmp |$1234,y
|
||||||
phx
|
phx
|
||||||
stp
|
stp
|
||||||
jml [|$1234]
|
jml ($1234) ; was jml [$1234]
|
||||||
|
;jmp [$1234] ; ok!
|
||||||
|
;jml [$1234] ; error!
|
||||||
cmp |$1234,x
|
cmp |$1234,x
|
||||||
dec |$1234,x
|
dec |$1234,x
|
||||||
cmp >$123456,x
|
cmp >$123456,x
|
||||||
;
|
;
|
||||||
cpx #$1234
|
cpx #$1234
|
||||||
sbc (<$12,x)
|
sbc (<$12,x)
|
||||||
sep #$1234
|
sep #$00
|
||||||
sbc <$12,s
|
sbc <$12,s
|
||||||
cpx <$12
|
cpx <$12
|
||||||
sbc <$12
|
sbc <$12
|
||||||
|
Loading…
Reference in New Issue
Block a user