1
0
mirror of https://github.com/cc65/cc65.git synced 2024-12-23 19:29:37 +00:00
cc65/libsrc/plus4/kplot.s
Curt J. Sampson 128991d868 libsrc/*/kplot.s: Use cbm_kernal.inc symbols, not hardcoded addrs
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.
2019-10-25 16:03:38 -04:00

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