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

@@ -7,11 +7,12 @@
.export _cputcxy, _cputc, cputdirect, putchar
.export newline, plot
.import PLOT
.import popa, _gotoxy
.import xsize, revers
.include "cbm510.inc"
.include "../cbm/cbm.inc"
; ------------------------------------------------------------------------
;

View File

@@ -13,7 +13,7 @@
.import __CHARRAM_START__, __CHARRAM_SIZE__, __VIDRAM_START__
.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 "cbm510.inc"
@@ -319,7 +319,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
@@ -328,26 +328,26 @@ 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
jmp $0000 ; CHKIN
jmp $0000 ; CKOUT
jmp $0000 ; CLRCH
jmp $0000 ; BASIN
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
@@ -437,23 +437,30 @@ reset_size = * - reset
; ------------------------------------------------------------------------
; Code for a few simpler kernal calls goes here
k_iobase:
ldx cia2
.export IOBASE
.proc IOBASE
ldx cia2
ldy cia2+1
rts
.endproc
k_screen:
.export SCREEN
.proc SCREEN
ldx #40 ; 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
@@ -462,22 +469,27 @@ k_setnam:
lda $02,x
sta FileNameAdrSeg
rts
.endproc
k_rdtim:
sei
lda time+0
ldx time+1
ldy time+2
cli
rts
.export RDTIM
.proc RDTIM
sei
lda time+0
ldx time+1
ldy time+2
cli
rts
.endproc
k_settim:
sei
sta time+0
stx time+1
sty time+2
cli
rts
.export SETTIM
.proc SETTIM
sei
sta time+0
stx time+1
sty time+2
cli
rts
.endproc
; -------------------------------------------------------------------------
; Data area - switch back to relocatable mode

View File

@@ -4,7 +4,7 @@
; PLOT routine for the 510.
;
.export k_plot
.export PLOT
.import __VIDRAM_START__
.importzp crtc
@@ -15,7 +15,7 @@
; ------------------------------------------------------------------------
;
.proc k_plot
.proc PLOT
bcs get
@@ -63,3 +63,4 @@ LineLSBTab: LineLoTab
LineMSBTab: LineHiTab

View File

@@ -1,16 +1,16 @@
;
;
; Ullrich von Bassewitz, 13.09.2001
;
; Keyboard polling stuff for the 510.
;
.export k_scnkey
.export SCNKEY
.importzp tpi2, ktab1, ktab2, ktab3, ktab4
.include "cbm510.inc"
.proc k_scnkey
.proc SCNKEY
lda #$FF
sta ModKey
@@ -50,7 +50,7 @@ L4: lsr a
sec
ldy #tpiPortB
lda (tpi2),y
rol a
rol a
sta (tpi2),y
ldy #tpiPortA
lda (tpi2),y
@@ -102,7 +102,7 @@ End: lda #$7F
sta (tpi2),y
ldy #tpiPortB
lda #$FF
sta (tpi2),y
sta (tpi2),y
rts
Repeat: dec RepeatDelay
@@ -130,7 +130,7 @@ PutKey: sta KeyBuf,x
ldy #tpiPortC
L1: lda (tpi2),y
sta KeySave
lda (tpi2),y
lda (tpi2),y
cmp KeySave
bne L1
rts

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
@@ -23,3 +23,4 @@ L9: rts
.endproc