Use external symbols for the CBM kernal jump table functions. This allows

to emulate these functions on platforms where one or more of these functions
are not available (PET, CBM-II).


git-svn-id: svn://svn.cc65.org/cc65/trunk@1544 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
cuz
2002-11-19 23:02:47 +00:00
parent 3b081086f3
commit 6d498d8187
70 changed files with 720 additions and 187 deletions

View File

@@ -8,12 +8,14 @@
.export _cputcxy, _cputc, cputdirect, putchar
.export newline, plot
.exportzp CURS_X, CURS_Y
.import PLOT
.import _gotoxy
.import popa
.import xsize, revers
.include "cbm610.inc"
.include "../cbm/cbm.inc"
_cputcxy:
pha ; Save C

View File

@@ -12,7 +12,7 @@
.import push0, _main
.import __BSS_RUN__, __BSS_SIZE__
.import irq, nmi
.import k_irq, k_nmi, k_plot, k_udtim, k_scnkey
.import k_irq, k_nmi, PLOT, UDTIM, SCNKEY
.include "zeropage.inc"
.include "cbm610.inc"
@@ -238,7 +238,7 @@ vectable:
jmp $0000 ; TKSA
jmp $0000 ; MEMTOP
jmp $0000 ; MEMBOT
jmp k_scnkey ; SCNKEY
jmp SCNKEY
jmp $0000 ; SETTMO
jmp $0000 ; ACPTR
jmp $0000 ; CIOUT
@@ -247,8 +247,8 @@ vectable:
jmp $0000 ; LISTEN
jmp $0000 ; TALK
jmp $0000 ; READST
jmp k_setlfs ; SETLFS
jmp k_setnam ; SETNAM
jmp SETLFS
jmp SETNAM
jmp $0000 ; OPEN
jmp $0000 ; CLOSE
jmp $0000 ; CHKIN
@@ -258,15 +258,15 @@ vectable:
jmp $0000 ; BSOUT
jmp $0000 ; LOAD
jmp $0000 ; SAVE
jmp k_settim ; SETTIM
jmp k_rdtim ; RDTIM
jmp SETTIM
jmp RDTIM
jmp $0000 ; STOP
jmp $0000 ; GETIN
jmp $0000 ; CLALL
jmp k_udtim ; UDTIM
jmp k_screen ; SCREEN
jmp k_plot ; PLOT
jmp k_iobase ; IOBASE
jmp UDTIM
jmp SCREEN
jmp PLOT
jmp IOBASE
sta ExecReg
rts
.byte $01 ; Filler
@@ -339,23 +339,30 @@ reset_size = * - reset
; ------------------------------------------------------------------------
; Code for a few simpler kernal calls goes here
k_iobase:
ldx cia
ldy cia+1
.export IOBASE
.proc IOBASE
ldx cia
ldy cia+1
rts
.endproc
k_screen:
.export SCREEN
.proc SCREEN
ldx #80 ; Columns
ldy #25 ; Lines
rts
.endproc
k_setlfs:
.export SETLFS
.proc SETLFS
sta LogicalAdr
stx FirstAdr
sty SecondAdr
rts
.endproc
k_setnam:
.export SETNAM
.proc SETNAM
sta FileNameLen
lda $00,x
sta FileNameAdrLo
@@ -364,22 +371,27 @@ k_setnam:
lda $02,x
sta FileNameAdrSeg
rts
.endproc
k_rdtim:
.export RDTIM
.proc RDTIM
sei
lda time+0
ldx time+1
ldy time+2
lda time+0
ldx time+1
ldy time+2
cli
rts
.endproc
k_settim:
.export SETTIM
.proc SETTIM
sei
sta time+0
stx time+1
sta time+0
stx time+1
sty time+2
cli
rts
.endproc
; -------------------------------------------------------------------------
; Data area - switch back to relocatable mode

View File

@@ -4,13 +4,13 @@
; PLOT routine for the 610.
;
.export k_plot
.export PLOT
.importzp crtc
.include "cbm610.inc"
.proc k_plot
.proc PLOT
bcc set
ldx CURS_Y

View File

@@ -4,13 +4,13 @@
; Keyboard polling stuff for the 610.
;
.export k_scnkey
.export SCNKEY
.importzp tpi2, ktab1, ktab2, ktab3, ktab4
.include "cbm610.inc"
.proc k_scnkey
.proc SCNKEY
lda #$FF
sta ModKey

View File

@@ -5,11 +5,11 @@
; C programs will not use it.
;
.export k_udtim
.export UDTIM
.importzp time
.proc k_udtim
.proc UDTIM
inc time
bne L9
@@ -22,4 +22,4 @@ L9: rts
.endproc