Upload files to "kernal"
This commit is contained in:
@@ -0,0 +1,272 @@
|
||||
;declare 6510 ports
|
||||
d6510 = 0 ;6510 data direction register
|
||||
r6510 = 1 ;6510 data register
|
||||
|
||||
.segment "ZPKERNAL" : zeropage
|
||||
status .res 1 ;i/o operation status byte
|
||||
; crfac .res 2 ;correction factor (unused)
|
||||
stkey .res 1 ;stop key flag
|
||||
svxt .res 1 ;temporary
|
||||
verck .res 1 ;load or verify flag
|
||||
c3p0 .res 1 ;ieee buffered char flag
|
||||
bsour .res 1 ;char buffer for ieee
|
||||
syno .res 1 ;cassette sync #
|
||||
xsav .res 1 ;temp for basin
|
||||
ldtnd .res 1 ;index to logical file
|
||||
dfltn .res 1 ;default input device #
|
||||
dflto .res 1 ;default output device #
|
||||
prty .res 1 ;cassette parity
|
||||
dpsw .res 1 ;cassette dipole switch
|
||||
msgflg .res 1 ;os message flag
|
||||
ptr1 ;cassette error pass1
|
||||
t1 .res 1 ;temporary 1
|
||||
tmpc
|
||||
ptr2 ;cassette error pass2
|
||||
t2 .res 1 ;temporary 2
|
||||
time .res 3 ;24 hour clock in 1/60th seconds
|
||||
r2d2 ;serial bus usage
|
||||
pcntr .res 1 ;cassette stuff
|
||||
; ptch .res 1 (unused)
|
||||
bsour1 ;temp used by serial routine
|
||||
firt .res 1
|
||||
count ;temp used by serial routine
|
||||
cntdn .res 1 ;cassette sync countdown
|
||||
bufpt .res 1 ;cassette buffer pointer
|
||||
inbit ;rs-232 rcvr input bit storage
|
||||
shcnl .res 1 ;cassette short count
|
||||
bitci ;rs-232 rcvr bit count in
|
||||
rer .res 1 ;cassette read error
|
||||
rinone ;rs-232 rcvr flag for start bit check
|
||||
rez .res 1 ;cassete reading zeroes
|
||||
ridata ;rs-232 rcvr byte buffer
|
||||
rdflg .res 1 ;cassette read mode
|
||||
riprty ;rs-232 rcvr parity storage
|
||||
shcnh .res 1 ;cassette short cnt
|
||||
sal .res 1
|
||||
sah .res 1
|
||||
eal .res 1
|
||||
eah .res 1
|
||||
cmp0 .res 1
|
||||
temp .res 1
|
||||
tape1 .res 2 ;address of tape buffer #1y.
|
||||
bitts ;rs-232 trns bit count
|
||||
snsw1 .res 1
|
||||
nxtbit ;rs-232 trns next bit to be sent
|
||||
diff .res 1
|
||||
rodata ;rs-232 trns byte buffer
|
||||
prp .res 1
|
||||
fnlen .res 1 ;length current file n str
|
||||
la .res 1 ;current file logical addr
|
||||
sa .res 1 ;current file 2nd addr
|
||||
fa .res 1 ;current file primary addr
|
||||
fnadr .res 2 ;addr current file name str
|
||||
roprty ;rs-232 trns parity buffer
|
||||
ochar .res 1
|
||||
fsblk .res 1 ;cassette read block count
|
||||
mych .res 1
|
||||
cas1 .res 1 ;cassette manual/controlled switch
|
||||
tmp0
|
||||
stal .res 1
|
||||
stah .res 1
|
||||
memuss ;cassette load temps (2 bytes)
|
||||
tmp2 .res 2
|
||||
;
|
||||
;variables for screen editor
|
||||
;
|
||||
lstx .res 1 ;key scan index
|
||||
; sfst .res 1 ;keyboard shift flag (unused)
|
||||
ndx .res 1 ;index to keyboard q
|
||||
rvs .res 1 ;rvs field on flag
|
||||
indx .res 1
|
||||
lsxp .res 1 ;x pos at start
|
||||
lstp .res 1
|
||||
sfdx .res 1 ;shift mode on print
|
||||
blnsw .res 1 ;cursor blink enab
|
||||
blnct .res 1 ;count to toggle cur
|
||||
gdbln .res 1 ;char before cursor
|
||||
blnon .res 1 ;on/off blink flag
|
||||
crsw .res 1 ;input vs get flag
|
||||
pnt .res 2 ;pointer to row
|
||||
; point .res 1 (unused)
|
||||
pntr .res 1 ;pointer to column
|
||||
qtsw .res 1 ;quote switch
|
||||
lnmx .res 1 ;40/80 max positon
|
||||
tblx .res 1
|
||||
data .res 1
|
||||
insrt .res 1 ;insert mode flag
|
||||
ldtb1 .res 26 ;line flags+endspace
|
||||
user .res 2 ;screen editor color ip
|
||||
keytab .res 2 ;keyscan table indirect
|
||||
;rs-232 z-page
|
||||
ribuf .res 2 ;rs-232 input buffer pointer
|
||||
robuf .res 2 ;rs-232 output buffer pointer
|
||||
frekzp .res 4 ;free kernal zero page 9/24/80
|
||||
baszpt .res 1 ;location ($00ff) used by basic
|
||||
|
||||
.segment "STACK"
|
||||
bad .res 1
|
||||
.segment "KVAR"
|
||||
buf .res 89 ;basic/monitor buffer
|
||||
|
||||
; tables for open files
|
||||
;
|
||||
lat .res 10 ;logical file numbers
|
||||
fat .res 10 ;primary device numbers
|
||||
sat .res 10 ;secondary addresses
|
||||
|
||||
; system storage
|
||||
;
|
||||
keyd .res 10 ;irq keyboard buffer
|
||||
memstr .res 2 ;start of memory
|
||||
memsiz .res 2 ;top of memory
|
||||
timout .res 1 ;ieee timeout flag
|
||||
|
||||
; screen editor storage
|
||||
;
|
||||
color .res 1 ;activ color nybble
|
||||
gdcol .res 1 ;original color before cursor
|
||||
hibase .res 1 ;base location of screen (top)
|
||||
xmax .res 1
|
||||
rptflg .res 1 ;key repeat flag
|
||||
kount .res 1
|
||||
delay .res 1
|
||||
shflag .res 1 ;shift flag byte
|
||||
lstshf .res 1 ;last shift pattern
|
||||
keylog .res 2 ;indirect for keyboard table setup
|
||||
mode .res 1 ;0-pet mode, 1-cattacanna
|
||||
autodn .res 1 ;auto scroll down flag(=0 on,<>0 off)
|
||||
|
||||
; rs-232 storage
|
||||
;
|
||||
m51ctr .res 1 ;6551 control register
|
||||
m51cdr .res 1 ;6551 command register
|
||||
m51ajb .res 2 ;non standard (bittime/2-100)
|
||||
rsstat .res 1 ; rs-232 status register
|
||||
bitnum .res 1 ;number of bits to send (fast response)
|
||||
baudof .res 2 ;baud rate full bit time (created by open)
|
||||
;
|
||||
; reciever storage
|
||||
;
|
||||
; inbit .res 1 ;input bit storage
|
||||
; bitci .res 1 ;bit count in
|
||||
; rinone .res 1 ;flag for start bit check
|
||||
; ridata .res 1 ;byte in buffer
|
||||
; riprty .res 1 ;byte in parity storage
|
||||
ridbe .res 1 ;input buffer index to end
|
||||
ridbs .res 1 ;input buffer pointer to start
|
||||
;
|
||||
; transmitter storage
|
||||
;
|
||||
; bitts .res 1 ;# of bits to be sent
|
||||
; nxtbit .res 1 ;next bit to be sent
|
||||
; roprty .res 1 ;parity of byte sent
|
||||
; rodata .res 1 ;byte buffer out
|
||||
rodbs .res 1 ;output buffer index to start
|
||||
rodbe .res 1 ;output buffer index to end
|
||||
;
|
||||
irqtmp .res 2 ;holds irq during tape ops
|
||||
;
|
||||
; temp space for vic-40 variables ****
|
||||
;
|
||||
enabl .res 1 ;rs-232 enables (replaces ier)
|
||||
caston .res 1 ;tod sense during cassettes
|
||||
kika26 .res 1 ;temp storage for cassette read routine
|
||||
stupid .res 1 ;temp d1irq indicator for cassette read
|
||||
lintmp .res 1 ;temporary for line index
|
||||
palnts .res 1 ;pal vs ntsc flag 0=ntsc 1=pal
|
||||
|
||||
.segment "KVECTORS";rem kernal/os indirects(20)
|
||||
cinv .res 2 ;irq ram vector
|
||||
cbinv .res 2 ;brk instr ram vector
|
||||
nminv .res 2 ;nmi ram vector
|
||||
iopen .res 2 ;indirects for code
|
||||
iclose .res 2 ; conforms to kernal spec 8/19/80
|
||||
ichkin .res 2
|
||||
ickout .res 2
|
||||
iclrch .res 2
|
||||
ibasin .res 2
|
||||
ibsout .res 2
|
||||
istop .res 2
|
||||
igetin .res 2
|
||||
iclall .res 2
|
||||
usrcmd .res 2
|
||||
iload .res 2
|
||||
isave .res 2 ;savesp
|
||||
|
||||
tbuffr =$033C ;cassette data buffer
|
||||
|
||||
vicscn =$0400
|
||||
|
||||
; i/o devices
|
||||
;
|
||||
vicreg =$d000
|
||||
|
||||
sidreg =$d400
|
||||
|
||||
viccol =$d800 ;vic color nybbles
|
||||
|
||||
cia1 =$dc00 ;device1 6526 (page1 irq)
|
||||
d1pra =cia1+0
|
||||
colm =d1pra ;keyboard matrix
|
||||
d1prb =cia1+1
|
||||
rows =d1prb ;keyboard matrix
|
||||
d1ddra =cia1+2
|
||||
d1ddrb =cia1+3
|
||||
d1t1l =cia1+4
|
||||
d1t1h =cia1+5
|
||||
d1t2l =cia1+6
|
||||
d1t2h =cia1+7
|
||||
d1tod1 =cia1+8
|
||||
d1tods =cia1+9
|
||||
d1todm =cia1+10
|
||||
d1todh =cia1+11
|
||||
d1sdr =cia1+12
|
||||
d1icr =cia1+13
|
||||
d1cra =cia1+14
|
||||
d1crb =cia1+15
|
||||
|
||||
cia2 =$dd00 ;device2 6526 (page2 nmi)
|
||||
d2pra =cia2+0
|
||||
d2prb =cia2+1
|
||||
d2ddra =cia2+2
|
||||
d2ddrb =cia2+3
|
||||
d2t1l =cia2+4
|
||||
d2t1h =cia2+5
|
||||
d2t2l =cia2+6
|
||||
d2t2h =cia2+7
|
||||
d2tod1 =cia2+8
|
||||
d2tods =cia2+9
|
||||
d2todm =cia2+10
|
||||
d2todh =cia2+11
|
||||
d2sdr =cia2+12
|
||||
d2icr =cia2+13
|
||||
d2cra =cia2+14
|
||||
d2crb =cia2+15
|
||||
|
||||
timrb =$19 ;6526 crb enable one-shot tb
|
||||
|
||||
;tape block types
|
||||
;
|
||||
eot =5 ;end of tape
|
||||
blf =1 ;basic load file
|
||||
bdf =2 ;basic data file
|
||||
plf =3 ;fixed program type
|
||||
bdfh =4 ;basic data file header
|
||||
bufsz =192 ;buffer size
|
||||
;
|
||||
;screen editor constants
|
||||
;
|
||||
llen =40 ;single line 40 columns
|
||||
llen2 =80 ;double line = 80 columns
|
||||
nlines =25 ;25 rows on screen
|
||||
white =$01 ;white screen color
|
||||
blue =$06 ;blue char color
|
||||
cr =$d ;carriage return
|
||||
|
||||
;rsr 8/3/80 add & change z-page
|
||||
;rsr 8/11/80 add memuss & plf type
|
||||
;rsr 8/22/80 add rs-232 routines
|
||||
;rsr 8/24/80 add open variables
|
||||
;rsr 8/29/80 add baud space move rs232 to z-page
|
||||
;rsr 9/2/80 add screen editor vars&con
|
||||
;rsr 12/7/81 modify for vic-40
|
||||
Reference in New Issue
Block a user