mirror of
https://github.com/A2osX/A2osX.git
synced 2024-11-29 17:50:18 +00:00
Kernel 0.93+
This commit is contained in:
parent
4847fff6a1
commit
afbd04d4b5
Binary file not shown.
Binary file not shown.
@ -76,7 +76,9 @@ prostart lda unitnum
|
|||||||
lda auxsp
|
lda auxsp
|
||||||
bne LDR.UNSUPP.HW NO 128k
|
bne LDR.UNSUPP.HW NO 128k
|
||||||
|
|
||||||
LDR.CheckROM lda #MACHID.T.IIe+MACHID.M.128+MACHID.COL80
|
LDR.CheckROM stz cortland
|
||||||
|
|
||||||
|
lda #MACHID.T.IIe+MACHID.M.128+MACHID.COL80
|
||||||
|
|
||||||
ldx $FBB3 check hardware id
|
ldx $FBB3 check hardware id
|
||||||
cpx #$06 apple //e?
|
cpx #$06 apple //e?
|
||||||
@ -203,6 +205,34 @@ m128k sta idapple Save MACHID in temp location
|
|||||||
sta ZPOutBufPtr+1
|
sta ZPOutBufPtr+1
|
||||||
jsr X.Unpak
|
jsr X.Unpak
|
||||||
|
|
||||||
|
LDR.IRQ lda RROMWRAMBNK2
|
||||||
|
ldy irqv interrupt vector
|
||||||
|
ldx irqv+1 x = high byte
|
||||||
|
|
||||||
|
jsr lc1in set language card bank 1 to r/w
|
||||||
|
|
||||||
|
sta SETALTZP
|
||||||
|
stx irqv+1 interrupt vector
|
||||||
|
sty irqv save irq vector in aux lc
|
||||||
|
|
||||||
|
sta CLRALTZP
|
||||||
|
stx irqv+1 save irq vector in main lc
|
||||||
|
sty irqv
|
||||||
|
|
||||||
|
lda LDR.MLIOL.P+1 place boot devnum in globals
|
||||||
|
sta LDR.MLIRB.P+1
|
||||||
|
sta devnum last device used
|
||||||
|
|
||||||
|
jsr LDR.BlkDevScan finish setting up globals
|
||||||
|
|
||||||
|
lda LDR.MLIRB.P+1
|
||||||
|
sta devnum
|
||||||
|
|
||||||
|
lda #calldisp
|
||||||
|
sta jspare+1 P8 system death vector
|
||||||
|
lda /calldisp
|
||||||
|
sta jspare+2
|
||||||
|
|
||||||
lda kversion
|
lda kversion
|
||||||
sta xdosver save current version for dir use
|
sta xdosver save current version for dir use
|
||||||
|
|
||||||
@ -355,34 +385,6 @@ RAMDRV.Install jsr lc1in
|
|||||||
lda #$BF unit num of /RAM
|
lda #$BF unit num of /RAM
|
||||||
sta devlist,x
|
sta devlist,x
|
||||||
|
|
||||||
LDR.IRQ lda RROMWRAMBNK2
|
|
||||||
ldy irqv interrupt vector
|
|
||||||
ldx irqv+1 x = high byte
|
|
||||||
|
|
||||||
jsr lc1in set language card bank 1 to r/w
|
|
||||||
|
|
||||||
sta SETALTZP
|
|
||||||
stx irqv+1 interrupt vector
|
|
||||||
sty irqv save irq vector in aux lc
|
|
||||||
|
|
||||||
sta CLRALTZP
|
|
||||||
stx irqv+1 save irq vector in main lc
|
|
||||||
sty irqv
|
|
||||||
|
|
||||||
lda LDR.MLIOL.P+1 place boot devnum in globals
|
|
||||||
sta LDR.MLIRB.P+1
|
|
||||||
sta devnum last device used
|
|
||||||
|
|
||||||
jsr LDR.BlkDevScan finish setting up globals
|
|
||||||
|
|
||||||
lda LDR.MLIRB.P+1
|
|
||||||
sta devnum
|
|
||||||
|
|
||||||
lda #calldisp
|
|
||||||
sta jspare+1 P8 system death vector
|
|
||||||
lda /calldisp
|
|
||||||
sta jspare+2
|
|
||||||
|
|
||||||
lda LDR.BootFlag get setup entry point flag
|
lda LDR.BootFlag get setup entry point flag
|
||||||
beq LDR.ReadRoot taken if normal boot.
|
beq LDR.ReadRoot taken if normal boot.
|
||||||
lda RROMBNK2
|
lda RROMBNK2
|
||||||
|
@ -7,8 +7,9 @@ SEL1.START
|
|||||||
birdbye cld
|
birdbye cld
|
||||||
lda RROMBNK2 read ROM
|
lda RROMBNK2 read ROM
|
||||||
stz softev
|
stz softev
|
||||||
lda /dispadr set reset vector to 'dispadr'
|
lda #$10 set reset vector to 'dispadr'
|
||||||
sta softev+1 jsr setpwrc create power-up byte
|
sta softev+1
|
||||||
|
jsr setpwrc create power-up byte
|
||||||
lda #$A0
|
lda #$A0
|
||||||
jsr $C300 initialize 80 column text card
|
jsr $C300 initialize 80 column text card
|
||||||
ldx #$17
|
ldx #$17
|
||||||
@ -44,15 +45,17 @@ L5D3F dex decrement list pointer and restore.
|
|||||||
|
|
||||||
volname sta ol_unit store unit number for online.
|
volname sta ol_unit store unit number for online.
|
||||||
jsr MLI
|
jsr MLI
|
||||||
.DA #$C5 online call
|
.DA #MLIONLINE
|
||||||
.DA ol_parms
|
.DA ol_parms
|
||||||
bcs ds2 error check.
|
bcs ds2 error check.
|
||||||
|
|
||||||
stz dlevel haven't read root directory yet.
|
stz dlevel haven't read root directory yet.
|
||||||
lda pbuf+1 load description byte.
|
lda pbuf+1 load description byte.
|
||||||
and #$0F mask for name length.
|
and #$0F mask for name length.
|
||||||
beq ds2 if 0, then try next unit.
|
beq ds2 if 0, then try next unit.
|
||||||
adc #$02 add 2 to length.
|
adc #$02 add 2 to length.
|
||||||
tax name length in x.
|
tax name length in x.
|
||||||
|
|
||||||
vnam1 stx pbuf save the name length
|
vnam1 stx pbuf save the name length
|
||||||
lda #$2F '/'
|
lda #$2F '/'
|
||||||
sta pbuf+1 slash before and
|
sta pbuf+1 slash before and
|
||||||
@ -62,15 +65,17 @@ vnam1 stx pbuf save the name length
|
|||||||
* open and read directory
|
* open and read directory
|
||||||
|
|
||||||
jsr MLI
|
jsr MLI
|
||||||
.DA #$C8 open
|
.DA #MLIOPEN
|
||||||
.DA op_parms
|
.DA op_parms
|
||||||
bcc L5D7F good open.
|
bcc L5D7F good open.
|
||||||
|
|
||||||
lda dlevel trying to open root directory ?
|
lda dlevel trying to open root directory ?
|
||||||
beq ds2 yes, just move to next volume.
|
beq ds2 yes, just move to next volume.
|
||||||
jsr bell1 no, generate bell tone
|
jsr bell1 no, generate bell tone
|
||||||
jsr popdir and stay at same level.
|
jsr popdir and stay at same level.
|
||||||
stx pbuf
|
stx pbuf
|
||||||
jmp keyloop
|
jmp keyloop
|
||||||
|
|
||||||
L5D7F inc dlevel
|
L5D7F inc dlevel
|
||||||
stz filecount zero file count.
|
stz filecount zero file count.
|
||||||
lda op_refn get file reference number
|
lda op_refn get file reference number
|
||||||
@ -81,11 +86,14 @@ L5D7F inc dlevel
|
|||||||
stz dhdr_len+1
|
stz dhdr_len+1
|
||||||
jsr doread read directory
|
jsr doread read directory
|
||||||
bcs L5DB3
|
bcs L5DB3
|
||||||
|
|
||||||
ldx #$03
|
ldx #$03
|
||||||
|
|
||||||
L5D9A lda sysentry+$23,x copy directory info
|
L5D9A lda sysentry+$23,x copy directory info
|
||||||
sta entlen,x to zero page.
|
sta entlen,x to zero page.
|
||||||
dex
|
dex
|
||||||
bpl L5D9A
|
bpl L5D9A
|
||||||
|
|
||||||
sta dhdr_len put entry length in read parm list.
|
sta dhdr_len put entry length in read parm list.
|
||||||
lda #$01 set block file counter to 1.
|
lda #$01 set block file counter to 1.
|
||||||
sta blkfl
|
sta blkfl
|
||||||
@ -95,8 +103,10 @@ L5D9A lda sysentry+$23,x copy directory info
|
|||||||
ora filecnt+1
|
ora filecnt+1
|
||||||
bne L5DB5 if so, continue
|
bne L5DB5 if so, continue
|
||||||
L5DB3 bra L5E29 else go close directory file.
|
L5DB3 bra L5E29 else go close directory file.
|
||||||
|
|
||||||
L5DB5 bit filecnt+1 check msb of file count.
|
L5DB5 bit filecnt+1 check msb of file count.
|
||||||
bmi L5DB3 if set then done.
|
bmi L5DB3 if set then done.
|
||||||
|
|
||||||
L5DB9 lda fpos_mid get mid byte of setmark file position.
|
L5DB9 lda fpos_mid get mid byte of setmark file position.
|
||||||
and #$FE reset lsb
|
and #$FE reset lsb
|
||||||
sta fpos_mid and save.
|
sta fpos_mid and save.
|
||||||
@ -115,18 +125,22 @@ L5DCC inc fpos_mid
|
|||||||
L5DCE dey decrement file block counter
|
L5DCE dey decrement file block counter
|
||||||
clc
|
clc
|
||||||
bmi L5DD8
|
bmi L5DD8
|
||||||
|
|
||||||
adc entlen add entry length to acc.
|
adc entlen add entry length to acc.
|
||||||
bcc L5DCE determine if we flopped into 2nd half of
|
bcc L5DCE determine if we flopped into 2nd half of
|
||||||
bcs L5DCC block, if so inc mid byte position.
|
bcs L5DCC block, if so inc mid byte position.
|
||||||
|
|
||||||
L5DD8 adc #$04 add 4 and put in
|
L5DD8 adc #$04 add 4 and put in
|
||||||
sta fpos_lo low byte of setmark.
|
sta fpos_lo low byte of setmark.
|
||||||
jsr MLI call mli
|
jsr MLI call mli
|
||||||
.DA #$CE set mark
|
.DA #MLISETMARK
|
||||||
.DA #smparms parameters address = $0060
|
.DA #smparms parameters address = $0060
|
||||||
.HS 00
|
.HS 00
|
||||||
bcs L5DB3 error
|
bcs L5DB3 error
|
||||||
|
|
||||||
jsr doread
|
jsr doread
|
||||||
bcs L5DB3 error.
|
bcs L5DB3 error.
|
||||||
|
|
||||||
inc blkfl increase count of files read.
|
inc blkfl increase count of files read.
|
||||||
lda sysentry file type/length.
|
lda sysentry file type/length.
|
||||||
and #$F0 mask off high nibble.
|
and #$F0 mask off high nibble.
|
||||||
@ -134,6 +148,7 @@ L5DD8 adc #$04 add 4 and put in
|
|||||||
dec filecnt decrement low file count.
|
dec filecnt decrement low file count.
|
||||||
bne L5DF8
|
bne L5DF8
|
||||||
dec filecnt+1 and high if necessary.
|
dec filecnt+1 and high if necessary.
|
||||||
|
|
||||||
L5DF8 ror sysentry+$1E check access bit.
|
L5DF8 ror sysentry+$1E check access bit.
|
||||||
bcc L5DB5 if no read, try next file.
|
bcc L5DB5 if no read, try next file.
|
||||||
lda sysentry+$10 get file type.
|
lda sysentry+$10 get file type.
|
||||||
@ -141,26 +156,32 @@ L5DF8 ror sysentry+$1E check access bit.
|
|||||||
beq L5E08 then continue.
|
beq L5E08 then continue.
|
||||||
cmp #$FF system file ?
|
cmp #$FF system file ?
|
||||||
bne L5DB5 no, read next file.
|
bne L5DB5 no, read next file.
|
||||||
|
|
||||||
L5E08 ldx filecount get valid files read.
|
L5E08 ldx filecount get valid files read.
|
||||||
cpx #$80 if greater than size of filename buffer
|
cpx #$80 if greater than size of filename buffer
|
||||||
bcs L5E29 then close directory
|
bcs L5E29 then close directory
|
||||||
sta filetyps,x else store filetype in zero page
|
sta filetyps,x else store filetype in zero page
|
||||||
jsr namecalc and go set up storage area.
|
jsr namecalc and go set up storage area.
|
||||||
ldy #$0F
|
ldy #$0F
|
||||||
|
|
||||||
L5E15 lda sysentry,y get byte of filename
|
L5E15 lda sysentry,y get byte of filename
|
||||||
sta (fnstore),y store in directed area
|
sta (fnstore),y store in directed area
|
||||||
dey
|
dey
|
||||||
bpl L5E15
|
bpl L5E15
|
||||||
|
|
||||||
iny y = 0
|
iny y = 0
|
||||||
and #$0F mask off low nibble (name length)
|
and #$0F mask off low nibble (name length)
|
||||||
sta (fnstore),y restore in name buffer
|
sta (fnstore),y restore in name buffer
|
||||||
inc filecount increment valid file counter
|
inc filecount increment valid file counter
|
||||||
bne L5DB5 get next file (branch always)
|
bne L5DB5 get next file (branch always)
|
||||||
|
|
||||||
L5E26 jmp ds2 error. try next unit.
|
L5E26 jmp ds2 error. try next unit.
|
||||||
|
|
||||||
L5E29 jsr MLI close directory file
|
L5E29 jsr MLI close directory file
|
||||||
.DA #$CC
|
.DA #MLICLOSE
|
||||||
.DA cl_parms
|
.DA cl_parms
|
||||||
bcs L5E26 error.
|
bcs L5E26 error.
|
||||||
|
|
||||||
jsr settxt use full screen for windows
|
jsr settxt use full screen for windows
|
||||||
jsr home
|
jsr home
|
||||||
lda #$17 cursor at bottom of screen.
|
lda #$17 cursor at bottom of screen.
|
||||||
@ -169,12 +190,15 @@ L5E29 jsr MLI close directory file
|
|||||||
lda #$14 horizontal position.
|
lda #$14 horizontal position.
|
||||||
jsr sethorz print message.
|
jsr sethorz print message.
|
||||||
jsr homecurs cursor to upper/left.
|
jsr homecurs cursor to upper/left.
|
||||||
|
|
||||||
ldx #$00
|
ldx #$00
|
||||||
|
|
||||||
L5E48 lda pbuf+1,x
|
L5E48 lda pbuf+1,x
|
||||||
beq showfiles
|
beq showfiles
|
||||||
jsr output
|
jsr output
|
||||||
inx
|
inx
|
||||||
bne L5E48
|
bne L5E48
|
||||||
|
|
||||||
showfiles stz valcnt
|
showfiles stz valcnt
|
||||||
stz topname init top filename index.
|
stz topname init top filename index.
|
||||||
lda filecount # of valid files.
|
lda filecount # of valid files.
|
||||||
@ -241,46 +265,60 @@ L5ECB cmp #$89 tab ?
|
|||||||
jsr popdir
|
jsr popdir
|
||||||
dec dlevel
|
dec dlevel
|
||||||
bra L5EF1
|
bra L5EF1
|
||||||
|
|
||||||
popdir ldx pbuf
|
popdir ldx pbuf
|
||||||
|
|
||||||
L5EDD dex
|
L5EDD dex
|
||||||
lda pbuf,x
|
lda pbuf,x
|
||||||
cmp #$2F slash
|
cmp #$2F slash
|
||||||
bne L5EDD
|
bne L5EDD
|
||||||
|
|
||||||
cpx #$01
|
cpx #$01
|
||||||
bne L5EEC
|
bne L5EEC
|
||||||
|
|
||||||
ldx pbuf
|
ldx pbuf
|
||||||
L5EEC rts
|
L5EEC rts
|
||||||
|
|
||||||
L5EED jmp ds2 set up new unit number.
|
L5EED jmp ds2 set up new unit number.
|
||||||
|
|
||||||
L5EF0 inx
|
L5EF0 inx
|
||||||
|
|
||||||
L5EF1 jmp vnam1 get new directory info.
|
L5EF1 jmp vnam1 get new directory info.
|
||||||
|
|
||||||
* run selected file
|
* run selected file
|
||||||
|
|
||||||
L5EF4 jsr MLI set prefix
|
L5EF4 jsr MLI
|
||||||
.DA #$C6
|
.DA #MLISETPREFIX
|
||||||
.DA pf_parms
|
.DA pf_parms
|
||||||
bcs L5EED error.
|
bcs L5EED error.
|
||||||
|
|
||||||
ldx valcnt get name number.
|
ldx valcnt get name number.
|
||||||
jsr namecalc set up name storage area (on return y=0)
|
jsr namecalc set up name storage area (on return y=0)
|
||||||
|
|
||||||
ldx pbuf get prefix length.
|
ldx pbuf get prefix length.
|
||||||
|
|
||||||
L5F04 iny start at y = 1.
|
L5F04 iny start at y = 1.
|
||||||
lda (fnstore),y get character of name.
|
lda (fnstore),y get character of name.
|
||||||
inx
|
inx
|
||||||
sta pbuf,x store in prefix buffer.
|
sta pbuf,x store in prefix buffer.
|
||||||
cpy namelen check length of name.
|
cpy namelen check length of name.
|
||||||
bcc L5F04 loop until all transferred.
|
bcc L5F04 loop until all transferred.
|
||||||
|
|
||||||
stx pbuf put prefix length into buffer.
|
stx pbuf put prefix length into buffer.
|
||||||
ldy valcnt get file number.
|
ldy valcnt get file number.
|
||||||
lda filetyps,y get file type.
|
lda filetyps,y get file type.
|
||||||
bpl L5EF0 branch if directory.
|
bpl L5EF0 branch if directory.
|
||||||
|
|
||||||
jsr settxt reset to full window.
|
jsr settxt reset to full window.
|
||||||
jsr home makes for no flash.
|
jsr home makes for no flash.
|
||||||
lda #$95 ctrl-u
|
lda #$95 ctrl-u
|
||||||
jsr cout turn off 80 columns.
|
jsr cout turn off 80 columns.
|
||||||
|
|
||||||
jsr MLI open file
|
jsr MLI open file
|
||||||
.DA #$C8
|
.DA #MLIOPEN
|
||||||
.DA op_parms
|
.DA op_parms
|
||||||
bcs L5EED if error.
|
bcs L5EED if error.
|
||||||
|
|
||||||
lda op_refn move reference number
|
lda op_refn move reference number
|
||||||
sta rd_refn for read.
|
sta rd_refn for read.
|
||||||
lda #$FF read the entire file.
|
lda #$FF read the entire file.
|
||||||
@ -289,7 +327,7 @@ L5F04 iny start at y = 1.
|
|||||||
jsr doread read selected file.
|
jsr doread read selected file.
|
||||||
php save possible error.
|
php save possible error.
|
||||||
jsr MLI close file. ignore any error from close
|
jsr MLI close file. ignore any error from close
|
||||||
.DA #$CC
|
.DA #MLICLOSE
|
||||||
.DA cl_parms
|
.DA cl_parms
|
||||||
plp restore status from read.
|
plp restore status from read.
|
||||||
bcs L5EED if any errors.
|
bcs L5EED if any errors.
|
||||||
@ -348,20 +386,25 @@ nameprnt lda #$02
|
|||||||
jsr msgout display the folder.
|
jsr msgout display the folder.
|
||||||
pla restore inverse setting.
|
pla restore inverse setting.
|
||||||
sta invflg
|
sta invflg
|
||||||
|
|
||||||
L5F99 jsr outsp output a space.
|
L5F99 jsr outsp output a space.
|
||||||
jsr namecalc calc name location.
|
jsr namecalc calc name location.
|
||||||
|
|
||||||
L5F9F iny y = 1 (first time).
|
L5F9F iny y = 1 (first time).
|
||||||
lda (fnstore),y get name character.
|
lda (fnstore),y get name character.
|
||||||
jsr output put on screen.
|
jsr output put on screen.
|
||||||
cpy namelen end of name ?
|
cpy namelen end of name ?
|
||||||
bcc L5F9F no.
|
bcc L5F9F no.
|
||||||
|
|
||||||
outsp lda #$A0
|
outsp lda #$A0
|
||||||
bne L5FB1 branch always.
|
bne L5FB1 branch always.
|
||||||
|
|
||||||
homecurs lda #$99
|
homecurs lda #$99
|
||||||
output ora #$80 set high bit.
|
output ora #$80 set high bit.
|
||||||
L5FB1 jmp cout output to screen.
|
L5FB1 jmp cout output to screen.
|
||||||
|
|
||||||
doread jsr MLI mli read call
|
doread jsr MLI mli read call
|
||||||
.DA #$CA
|
.DA #MLIREAD
|
||||||
.DA rd_parms
|
.DA rd_parms
|
||||||
rts
|
rts
|
||||||
|
|
||||||
@ -370,23 +413,29 @@ doread jsr MLI mli read call
|
|||||||
dsp2msg .AS -"RETURN: Select | TAB: Chg Vol | "
|
dsp2msg .AS -"RETURN: Select | TAB: Chg Vol | "
|
||||||
.AS -"ESC: Back"
|
.AS -"ESC: Back"
|
||||||
.DA #$00
|
.DA #$00
|
||||||
|
|
||||||
fldrmsg .DA #$0F inverse control code
|
fldrmsg .DA #$0F inverse control code
|
||||||
.HS 1B enable mousetext
|
.HS 1B enable mousetext
|
||||||
.AS -"XY" folder characters
|
.AS -"XY" folder characters
|
||||||
.HS 18 disable mousetext
|
.HS 18 disable mousetext
|
||||||
.HS 0E normal control code
|
.HS 0E normal control code
|
||||||
.HS 00
|
.HS 00
|
||||||
|
|
||||||
op_parms .DA #$03 3 parms
|
op_parms .DA #$03 3 parms
|
||||||
.DA pbuf pathname
|
.DA pbuf pathname
|
||||||
.DA op_buf file buffer
|
.DA op_buf file buffer
|
||||||
op_refn .HS 00 reference number
|
op_refn .HS 00 reference number
|
||||||
|
|
||||||
cl_parms .HS 01 1 parm
|
cl_parms .HS 01 1 parm
|
||||||
.HS 00 reference number.
|
.HS 00 reference number.
|
||||||
|
|
||||||
ol_parms .HS 02 2 parms
|
ol_parms .HS 02 2 parms
|
||||||
ol_unit .HS 60 unit number, default = s6, d1
|
ol_unit .HS 60 unit number, default = s6, d1
|
||||||
.DA pbuf+1 data buffer
|
.DA pbuf+1 data buffer
|
||||||
|
|
||||||
pf_parms .DA #01 one parm
|
pf_parms .DA #01 one parm
|
||||||
.DA pbuf pathname
|
.DA pbuf pathname
|
||||||
|
|
||||||
rd_parms .DA #04 4 parms
|
rd_parms .DA #04 4 parms
|
||||||
rd_refn .HS 01 reference number
|
rd_refn .HS 01 reference number
|
||||||
.DA sysentry data buffer
|
.DA sysentry data buffer
|
||||||
@ -394,10 +443,11 @@ rd_refn .HS 01 reference number
|
|||||||
* these last 2 parms (4 bytes) may extend past $300 length limit since
|
* these last 2 parms (4 bytes) may extend past $300 length limit since
|
||||||
* the request count is set prior to using the parm block and the transfer
|
* the request count is set prior to using the parm block and the transfer
|
||||||
* count isn't used at all (except by prodos)
|
* count isn't used at all (except by prodos)
|
||||||
* .HS 0000 requested length
|
.DUMMY
|
||||||
* .HS 0000 actual length
|
.BS 2 requested length
|
||||||
|
.BS 2 actual length
|
||||||
dhdr_len .HS 00 directory header length (actually uses 2 bytes)
|
dhdr_len .BS 1 directory header length (actually uses 2 bytes)
|
||||||
|
.ED
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SEL1.LEN .EQ *-SEL1.START
|
SEL1.LEN .EQ *-SEL1.START
|
||||||
MAN
|
MAN
|
||||||
|
@ -493,33 +493,40 @@ L4EC7 rts
|
|||||||
|
|
||||||
calldisp lda RRAMWRAMBNK2 read/write RAM bank 2
|
calldisp lda RRAMWRAMBNK2 read/write RAM bank 2
|
||||||
lda RRAMWRAMBNK2
|
lda RRAMWRAMBNK2
|
||||||
lda /dispadr
|
|
||||||
sta A2L+1
|
|
||||||
lda #dispadr
|
|
||||||
sta A2L
|
|
||||||
lda /displc2
|
|
||||||
sta A1L+1
|
|
||||||
stz A1L
|
stz A1L
|
||||||
|
lda #$D1
|
||||||
|
sta A1L+1
|
||||||
|
|
||||||
|
stz A2L
|
||||||
|
lda #$10
|
||||||
|
sta A2L+1
|
||||||
|
|
||||||
ldy #$00
|
ldy #$00
|
||||||
ldx #$03 3 pages to move.
|
ldx #$03 3 pages to move.
|
||||||
L4EE0 dey move a page of code.
|
|
||||||
lda (A1L),y
|
.1 lda (A1L),y
|
||||||
sta (A2L),y
|
sta (A2L),y
|
||||||
tya
|
iny
|
||||||
bne L4EE0
|
bne .1
|
||||||
|
|
||||||
inc A1L+1 pointers to next page
|
inc A1L+1 pointers to next page
|
||||||
inc A2L+1
|
inc A2L+1
|
||||||
dex move all pages needed
|
dex move all pages needed
|
||||||
bne L4EE0
|
bne .1
|
||||||
|
|
||||||
lda RRAMWRAMBNK1 read/write RAM bank 1
|
lda RRAMWRAMBNK1 read/write RAM bank 1
|
||||||
lda RRAMWRAMBNK1 swap mli space back in
|
lda RRAMWRAMBNK1 swap mli space back in
|
||||||
|
|
||||||
stz mliact MLI active flag
|
stz mliact MLI active flag
|
||||||
|
|
||||||
stz softev
|
stz softev
|
||||||
lda /dispadr point RESET to dispatch entry
|
lda #$10 point RESET to dispatch entry
|
||||||
sta softev+1
|
sta softev+1
|
||||||
eor #$A5
|
eor #$A5
|
||||||
sta pwredup power up byte
|
sta pwredup power up byte
|
||||||
jmp dispadr
|
|
||||||
|
jmp $1000
|
||||||
|
|
||||||
* translate a prodos call into a smartport call
|
* translate a prodos call into a smartport call
|
||||||
* to access unseen smartport devices
|
* to access unseen smartport devices
|
||||||
|
@ -126,7 +126,6 @@ vline24 .EQ $07D0 line 24 of display
|
|||||||
dbuf .EQ $0C00 8 page directory buffer
|
dbuf .EQ $0C00 8 page directory buffer
|
||||||
vblock1 .EQ $0E00 ramdisk directory block
|
vblock1 .EQ $0E00 ramdisk directory block
|
||||||
volbuf .EQ $0F00 volume buffer
|
volbuf .EQ $0F00 volume buffer
|
||||||
dispadr .EQ $1000
|
|
||||||
iobuf .EQ $1400 i/o buffer
|
iobuf .EQ $1400 i/o buffer
|
||||||
fbuf .EQ $1800 FCB buffer
|
fbuf .EQ $1800 FCB buffer
|
||||||
op_buf .EQ $1C00 open file buffer (selector)
|
op_buf .EQ $1C00 open file buffer (selector)
|
||||||
@ -145,7 +144,6 @@ auxmove .EQ $C311 move (3C)-(3E) to (42)
|
|||||||
xfer .EQ $C314
|
xfer .EQ $C314
|
||||||
|
|
||||||
rwts .EQ $D000 disk ii driver in bank 1
|
rwts .EQ $D000 disk ii driver in bank 1
|
||||||
displc2 .EQ $D100 system death routine stored in bank 2
|
|
||||||
pathbuf .EQ $D700 pathname buffer
|
pathbuf .EQ $D700 pathname buffer
|
||||||
tclk_in .EQ $D742 clock driver in bank 2
|
tclk_in .EQ $D742 clock driver in bank 2
|
||||||
fcbbuf .EQ $D800 fcb buffer
|
fcbbuf .EQ $D800 fcb buffer
|
||||||
|
Loading…
Reference in New Issue
Block a user