for the VIC20: PLOT is not an kernal entry but a library function that will
do the right stuff. This makes it work with other stuff that calls PLOT, too.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4249
b7a2c559-68d2-44c3-8de9-
860c34a00d81
joy_stddrv.o \
kbhit.o \
kernal.o \
+ kplot.o \
mainargs.o \
mcbdefault.o \
mouse_stddrv.o \
-; Set cursor position, calculate RAM pointers. Because kernal -02 doesn't
-; update the color RAM pointer, we have to do that manually here.
+; Set cursor position, calculate RAM pointers.
plot: ldy CURS_X
ldx CURS_Y
clc
- jsr PLOT ; Set the new cursor
- lda SCREEN_PTR ; Low byte of color RAM ...
- sta CRAM_PTR ; ... is same as text screen pointer
- lda SCREEN_PTR+1 ; While high byte of color RAM
- and #$03
- ora #$D8 ; ... needs to be adjusted
- sta CRAM_PTR+1
- rts
+ jmp PLOT ; Set the new cursor
.export CLALL
.export UDTIM
.export SCREEN
- .export PLOT
.export IOBASE
CLALL = $FFE7
UDTIM = $FFEA
SCREEN = $FFED
-PLOT = $FFF0
IOBASE = $FFF3
--- /dev/null
+;
+; Ullrich von Bassewitz, 2002-12-09, 2009-09-27
+;
+; PLOT replacement function for the C64. The kernal function in the -02 kernals
+; does not set the pointer to the color RAM correctly, so we need to fix that.
+;
+
+ .export PLOT
+
+
+.proc PLOT
+
+ bcs @L1
+ jsr $FFF0 ; Set cursor position
+ jmp $EA24 ; Set pointer to color RAM
+
+@L1: jmp $FFF0 ; Get cursor position
+
+.endproc
+
+