That's because $5FFE is just a number (actually bit string) and not a real address. Adding an integer to it results in an integer. When mapping a loaded file I recommend this instead of adding offsets: ; The memory position where the file is loaded. .virtual $5FFE >5ffe MAPFILE .word ? >6000 UNIT_TYPE .fill 64 ;Unit type 0=none (64 bytes) >6040 UNIT_LOC_X .fill 64 ;Unit X location (64 bytes) >6080 UNIT_LOC_Y .fill 64 ;Unit X location (64 bytes) >60c0 UNIT_A .fill 64 >6100 UNIT_B .fill 64 >6140 UNIT_C...
cmp #"m" and cmp #"M" wrong
The -a option sets up PETSCII translation and Acme in the example looks like ASCII. If the source uses 8-bit characters and should be kept as-is then don't use that option. Otherwise (e.g. it's utf-8) use -a and set up an identity encoding in the ASCII range like this: .enc "ascii" .cdef " ~", 32
65816 MVN/MVP parameter order swapped
Hello! Looks correct to me: ; 64tass Turbo Assembler Macro V1.60.3243 listing file ; 64tass -x -L - a.asm ; Sun Apr 5 14:56:24 2026 ;Offset ;Hex ;Monitor ;Source ;****** Processing input file: a.asm .0000 54 c0 7e mvn #$7e,#$c0 MVN #$7E, #$C0 ;****** End of listing I have V2.15 ca65 around and there it's reverse but I think they've fixed that back in 2018.
Move word PSH to PHW
Also with symbols
Immediate operand for bit instructions