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:
@@ -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"
|
||||
|
||||
; ------------------------------------------------------------------------
|
||||
;
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user