1
0
mirror of https://github.com/cc65/cc65.git synced 2024-06-07 23:29:39 +00:00

Changed the solution for the PLOT problem with old -02 kernals to that used

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
This commit is contained in:
uz 2009-09-27 18:45:08 +00:00
parent 2cc68784cc
commit d55fb5217e
4 changed files with 24 additions and 12 deletions

View File

@ -58,6 +58,7 @@ OBJS = _scrsize.o \
joy_stddrv.o \
kbhit.o \
kernal.o \
kplot.o \
mainargs.o \
mcbdefault.o \
mouse_stddrv.o \

View File

@ -84,20 +84,12 @@ L11: ora #$40
; 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

View File

@ -41,7 +41,6 @@
.export CLALL
.export UDTIM
.export SCREEN
.export PLOT
.export IOBASE
@ -85,6 +84,5 @@ GETIN = $FFE4
CLALL = $FFE7
UDTIM = $FFEA
SCREEN = $FFED
PLOT = $FFF0
IOBASE = $FFF3

21
libsrc/c64/kplot.s Normal file
View File

@ -0,0 +1,21 @@
;
; 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