From 37144ed01426ffd755532b8db1d2db5a0e0cfac4 Mon Sep 17 00:00:00 2001 From: mrdudz Date: Sat, 21 Jun 2025 20:35:25 +0200 Subject: [PATCH] fix akkumulator addressing for some compound instructions --- src/ca65/instr.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/ca65/instr.c b/src/ca65/instr.c index 8e1b4b456..ca44f5509 100644 --- a/src/ca65/instr.c +++ b/src/ca65/instr.c @@ -779,9 +779,9 @@ static const struct { { "AND", 0x4080A66C, 0x20, 0, Put45GS02 }, { "ANDQ", 0x0000140C, 0x20, 13, Put45GS02_Q }, { "ASL", 0x0000006e, 0x02, 1, PutAll }, - { "ASLQ", 0x800000ec, 0x00, 14, Put45GS02_Q }, + { "ASLQ", 0x800000ee, 0x00, 14, Put45GS02_Q }, { "ASR", 0x00000026, 0x43, 0, Put4510 }, - { "ASRQ", 0x80000024, 0x40, 15, Put45GS02_Q }, + { "ASRQ", 0x80000026, 0x40, 15, Put45GS02_Q }, { "ASW", 0x00000008, 0xcb, 6, PutAll }, { "BBR0", 0x00000000, 0x0F, 0, PutBitBranch }, { "BBR1", 0x00000000, 0x1F, 0, PutBitBranch }, @@ -824,7 +824,7 @@ static const struct { { "CPZ", 0x0080000C, 0xd0, 1, Put4510 }, { "DEA", 0x00000001, 0x00, 3, PutAll }, /* == DEC */ { "DEC", 0x0000006F, 0x00, 3, PutAll }, - { "DEQ", 0x800000ec, 0xc0, 14, Put45GS02_Q }, + { "DEQ", 0x800000ee, 0xc0, 14, Put45GS02_Q }, { "DEW", 0x00000004, 0xc3, 9, PutAll }, { "DEX", 0x00000001, 0xca, 0, PutAll }, { "DEY", 0x00000001, 0x88, 0, PutAll }, @@ -834,7 +834,7 @@ static const struct { { "EORQ", 0x0000140C, 0x40, 13, Put45GS02_Q }, { "INA", 0x00000001, 0x00, 4, PutAll }, /* == INC */ { "INC", 0x0000006f, 0x00, 4, PutAll }, - { "INQ", 0x800000ec, 0xe0, 14, Put45GS02_Q }, + { "INQ", 0x800000ee, 0xe0, 14, Put45GS02_Q }, { "INW", 0x00000004, 0xe3, 9, PutAll }, { "INX", 0x00000001, 0xe8, 0, PutAll }, { "INY", 0x00000001, 0xc8, 0, PutAll }, @@ -856,7 +856,7 @@ static const struct { { "LDY", 0x0080006C, 0xa0, 1, PutAll }, { "LDZ", 0x00800048, 0xa3, 1, Put4510 }, { "LSR", 0x0000006F, 0x42, 1, PutAll }, - { "LSRQ", 0x800000ec, 0x40, 14, Put45GS02_Q }, + { "LSRQ", 0x800000ee, 0x40, 14, Put45GS02_Q }, { "MAP", 0x00000001, 0x5C, 0, PutAll }, { "NEG", 0x00000001, 0x42, 0, PutAll }, { "NOP", 0x00000001, 0xea, 0, PutAll }, /* == EOM */ @@ -883,9 +883,9 @@ static const struct { { "RMB6", 0x00000004, 0x67, 1, PutAll }, { "RMB7", 0x00000004, 0x77, 1, PutAll }, { "ROL", 0x0000006F, 0x22, 1, PutAll }, - { "ROLQ", 0x800000ec, 0x20, 14, Put45GS02_Q }, + { "ROLQ", 0x800000ee, 0x20, 14, Put45GS02_Q }, { "ROR", 0x0000006F, 0x62, 1, PutAll }, - { "RORQ", 0x800000ec, 0x60, 14, Put45GS02_Q }, + { "RORQ", 0x800000ee, 0x60, 14, Put45GS02_Q }, { "ROW", 0x00000008, 0xeb, 6, PutAll }, { "RTI", 0x00000001, 0x40, 0, PutAll }, { "RTN", 0x00800000, 0x62, 1, PutAll }, @@ -1455,14 +1455,14 @@ static unsigned char EATab[16][AM65I_COUNT] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x00 }, - { /* Table 14 (Q) */ - 0x00, 0x00, 0x06, 0x0e, 0x00, 0x16, 0x1e, 0x00, + { /* Table 14 (45GS02: ASLQ) */ + 0x0a, 0x0a, 0x06, 0x0e, 0x00, 0x16, 0x1e, 0x00, 0x00, 0x00, 0x12, 0x00, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a }, - { /* Table 15 */ - 0x00, 0x00, 0x04, 0x0c, 0x00, 0x14, 0x00, 0x00, + { /* Table 15 (45GS02: ASRQ) */ + 0x03, 0x03, 0x04, 0x0c, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03