mirror of
https://github.com/cc65/cc65.git
synced 2024-08-16 12:29:03 +00:00
On C64, VIC-20 and Plus/4, the conio library PLOT routine uses direct calls into the Kernal, including the Kernal PLOT routine that we're replacing. These were previously hardcoded addresses; we change these to use the symbols for those routines defined in cbm_kernal.inc. (This changes no functionality.) To do this, we need to import cbm_kernal.inc in a namespace so we don't have a collision between the PLOT that we're defining and the Kernal definition. We also add a UPDCRAMPTR symbol (used by kplot for VIC-20 and C64) to the direct entry kernal routines in in cbm_kernal.inc, and expand the comments describing what the "direct entry" Kernal routines are. <greg.king5@verizon.net> (GitHub: greg-king5) came up with this idea and did initial testing of it. This has been tested on VICE xvic, x64 and xplus4 emulators with a program that does a cputs() call (github.com/0cjs/vic20cc65) to confirm that it works the same way after as it did before.
23 lines
534 B
ArmAsm
23 lines
534 B
ArmAsm
;
|
|
; Ullrich von Bassewitz, 22.11.2002
|
|
;
|
|
; PLOT replacement function
|
|
;
|
|
|
|
.export PLOT
|
|
|
|
.scope KERNAL
|
|
.include "cbm_kernal.inc"
|
|
.endscope
|
|
|
|
.include "plus4.inc"
|
|
|
|
.segment "LOWCODE" ; Must go into low memory
|
|
|
|
.proc PLOT
|
|
sta ENABLE_ROM ; Enable the ROM
|
|
jsr KERNAL::PLOT ; Call the ROM routine
|
|
sta ENABLE_RAM ; Switch back to RAM
|
|
rts ; Return to caller
|
|
.endproc
|