mirror of
https://github.com/peterferrie/qboot.git
synced 2025-01-13 19:29:54 +00:00
support reading into zpage
This commit is contained in:
parent
32a562bdb4
commit
db9a28925c
18
QBOOT.S
18
QBOOT.S
@ -9,7 +9,11 @@
|
|||||||
firstsec = $d1 ;user-defined, first sector to read
|
firstsec = $d1 ;user-defined, first sector to read
|
||||||
address = $d1 ;user-defined
|
address = $d1 ;user-defined
|
||||||
entry = $d1d1 ;user-defined
|
entry = $d1d1 ;user-defined
|
||||||
|
zpread = 0 ;set to 1 to allow reading into zero page
|
||||||
|
;relies on memory wraparound, not supported on IIGS
|
||||||
|
;also precludes reading to page $FF
|
||||||
stkread = 0 ;set to 1 to allow reading into stack page
|
stkread = 0 ;set to 1 to allow reading into stack page
|
||||||
|
;but remember about the 6 bytes of stack
|
||||||
seekback = 0 ;set to 1 to enable seek backwards
|
seekback = 0 ;set to 1 to enable seek backwards
|
||||||
version = 1
|
version = 1
|
||||||
|
|
||||||
@ -177,10 +181,15 @@ inittrk
|
|||||||
|
|
||||||
startsec
|
startsec
|
||||||
ldy #$d1
|
ldy #$d1
|
||||||
|
!if zpread {
|
||||||
|
inc tmpadr+1
|
||||||
|
}
|
||||||
tmpadr
|
tmpadr
|
||||||
- lda #$d1
|
- lda #$d1
|
||||||
sta addrtbl, y
|
sta addrtbl, y
|
||||||
|
!if !zpread {
|
||||||
inc tmpadr+1
|
inc tmpadr+1
|
||||||
|
}
|
||||||
iny
|
iny
|
||||||
dec partial1
|
dec partial1
|
||||||
bne -
|
bne -
|
||||||
@ -211,20 +220,29 @@ read
|
|||||||
ldx addrtbl, y ;fetch corresponding address
|
ldx addrtbl, y ;fetch corresponding address
|
||||||
beq read
|
beq read
|
||||||
sta sector+1 ;store index for later
|
sta sector+1 ;store index for later
|
||||||
|
!if zpread {
|
||||||
|
stx adrpatchx6+2
|
||||||
|
dex
|
||||||
|
}
|
||||||
stx adrpatchx5+2
|
stx adrpatchx5+2
|
||||||
stx adrpatch6+2
|
stx adrpatch6+2
|
||||||
stx adrpatchx1+2
|
stx adrpatchx1+2
|
||||||
stx adrpatchx2+2
|
stx adrpatchx2+2
|
||||||
stx adrpatchx3+2
|
stx adrpatchx3+2
|
||||||
stx adrpatchx4+2
|
stx adrpatchx4+2
|
||||||
|
!if !zpread {
|
||||||
inx
|
inx
|
||||||
stx adrpatchx6+2
|
stx adrpatchx6+2
|
||||||
dex
|
dex
|
||||||
|
}
|
||||||
dex
|
dex
|
||||||
stx adrpatch3+2
|
stx adrpatch3+2
|
||||||
stx adrpatch5+2
|
stx adrpatch5+2
|
||||||
!if stkread {
|
!if stkread {
|
||||||
inx
|
inx
|
||||||
|
!if zpread {
|
||||||
|
inx
|
||||||
|
}
|
||||||
}
|
}
|
||||||
ldy #$fe
|
ldy #$fe
|
||||||
adrpatchx5
|
adrpatchx5
|
||||||
|
@ -5,6 +5,7 @@
|
|||||||
- can perform full-track read in one revolution
|
- can perform full-track read in one revolution
|
||||||
- no zpage usage after init, and only 6 bytes of stack
|
- no zpage usage after init, and only 6 bytes of stack
|
||||||
- only 2 bytes overhead per read
|
- only 2 bytes overhead per read
|
||||||
- can load up to $bc sectors at a time ($0100-bcff)
|
- can load up to $bd sectors at a time ($0000-bcff)
|
||||||
|
(or $c0 sectors if run from banked ROM)
|
||||||
- DOS 3.3 Launcher compatible
|
- DOS 3.3 Launcher compatible
|
||||||
- requires only 3 pages in memory
|
- requires only 3 pages in memory
|
||||||
|
Loading…
x
Reference in New Issue
Block a user