It seems that when a 24-bit label is used before it is defined, the addressing mode is selected as 16 bit, but in the 2nd pass, the opcode and space for 24 bits is used. This results in code moving a byte without the assembled knowing, breaking the assembly.
This should be fixed in that in such cases, the compiler should complain that the label is too large for the allocated space.
On a side note: in 65816 CA65 mode, how is a 24 bit value announced to the assembler, as "@" cannot be used anymore?
Edit: this is on xa 2.4.1
It seems that when a 24-bit label is used before it is defined, the addressing mode is selected as 16 bit, but in the 2nd pass, the opcode and space for 24 bits is used. This results in code moving a byte without the assembled knowing, breaking the assembly.
This should be fixed in that in such cases, the compiler should complain that the label is too large for the allocated space.
On a side note: in 65816 CA65 mode, how is a 24 bit value announced to the assembler, as "@" cannot be used anymore?
Edit: this is on xa 2.4.1