ROM Release: 920389 (master branch as of 2023-11-26)
Core Commit: 4259566 (2023-11-23)
Describe the bug
The disassembly output of some instructions are not considered valid input by the assembler. A feature of the monitor is that one can disassemble some code, cursor up and edit that code, and then press enter and have the code be modified in memory (due to the disassembly output actually be in the form of an assemble command: e.g. . 1600 A9 04 LDA #4.
This was recently made even more pronounced by a fix that made more xxxQ mnemonics assemble properly.
Some examples
RORQ
Disassembles to: RORQ Q, but doesn't allow that on assemble
LSRQ, ASLQ share this issue
ROR
Disassembles to: ROR A, but then, even worse:
ROR A assembles to: ROR $A (i.e. rotate right memory location $a)!
LSR and ASL share this one
ORQ [$55],Z (,Z is required by assembler)
Disassembles to: ORQ [$55]
I think most 32-bit, quad instructions have this issue except for LDQ.
DEQ and INQ do not assemble at all. This is because the MONITOR is replacing the Q with an A to find the base opcode. That works for LDQ, ORQ, etc.
Test Environment (required)
Describe the bug The disassembly output of some instructions are not considered valid input by the assembler. A feature of the monitor is that one can disassemble some code, cursor up and edit that code, and then press enter and have the code be modified in memory (due to the disassembly output actually be in the form of an assemble command: e.g.
. 1600 A9 04 LDA #4
.This was recently made even more pronounced by a fix that made more
xxxQ
mnemonics assemble properly.Some examples
RORQ
RORQ Q
, but doesn't allow that on assembleLSRQ
,ASLQ
share this issueROR
ROR A
, but then, even worse:ROR A
assembles to:ROR $A
(i.e. rotate right memory location $a)!LSR
andASL
share this oneORQ [$55],Z
(,Z
is required by assembler)ORQ [$55]
LDQ
.DEQ
andINQ
do not assemble at all. This is because the MONITOR is replacing theQ
with anA
to find the base opcode. That works forLDQ
,ORQ
, etc.