In the original I use the system cursor as cursor in my program, saves a lot of own code for a cursor and can be easily enabled/disabled by the CC65 cursor(1) resp. cursor(0) function in the conio lib.
However, for me this cursor() function does absolutely nothing if I compile code for the Oric Atmos target. It does not give an error as well, it just does not do anything it seems. Which is funny, as I see in the compiler .map output that the cursos function is actually compiled for the Atmos and takes up 10 bytes of code:
Code: Select all
/mnt/d/retro/cc65/lib/atmos.lib(cursor.o):
CODE Offs=002BDB Size=00000A Align=00001 Fill=0000
Tried that, and I do get a cursor. However, this cursor only moves horizontally, vertically it keeps stuck on line 1 (first line after the status line 0). Also tried poking the Y position to $268 cursos row number, but that has no effect at all.
No clue what goes on here.
So my questions:
- can anyone confirm that the cursor() function of the CC65 conio lib is broken for the Atmos target? Or do I miss something else here?
- when enabling bit 0 on $269, why does the cursor in my CC65 compiled program remains stuck on line 1 (but does move correctly horizontally?) Again, something I miss? Or is here the CC65 conio lib conflicting?
- why doesn't poking to $268 cursor row number and $269 cursor column position do anything? Maybe again a conflict with CC65 conio functions?
Already have an alternative in mind (plotting in inverse, so charactervalue + 128, on cursor position). But still would like to have at least the option to use the Atmos system cursor instead.