I stumbled upon a divergence in the ASCII upper case/lower case handling when using assembler and linker of the
cc65 suite separately (I used cc65 V2.15 on Win10).
For a test I made the following assembler file
helloworld.s for the default target (C64):
;code for a BASIC line containing SYS2061 .byte $0B,$08,$e3,$07,$9e,$32,$30,$36,$31,$00,$00,$00 lda #<textout ldy #>textout jmp $AB1E textout: .asciiz "hello world"
When I assemble and link the file with the command
cl65 -C c64-asm.cfg helloworld.s -o helloworld.prg I get a program that outputs "hello world" on the C64 - it appears with uppercase letters with the default charset.
However, when I assemble to an object file first with
ca65 helloworld.s and then link the object file with
cl65 -C c64-asm.cfg helloworld.o -o helloworld.prg, I get a program that outputs the respective PETSCII characters when viewed with the default charset or, in lower case mode, "HELLO WORLD".
So why is there a difference between the two ways of building? Both
ca65 are from the
Second, is there a way to annotate the source code or to instruct
ca65 not to change the case of the ASCII text?
ca65 -t c64 helloworld.senables the proper (C64-oriented) handling of characters.