mirror of
https://github.com/deater/dos33fsprogs.git
synced 2025-01-30 12:34:36 +00:00
ootw: comments on qboot
mysterious crashes on Apple II+ / qboot ootw (but not myst)
This commit is contained in:
parent
01ded34220
commit
5c5151360e
@ -14,7 +14,7 @@
|
|||||||
;256 bytes ($200-2ff) static table
|
;256 bytes ($200-2ff) static table
|
||||||
grouped = $200
|
grouped = $200
|
||||||
|
|
||||||
; stay aware from interrupt vectors at $3fe !!!
|
; stay away from interrupt vectors at $3fe !!!
|
||||||
|
|
||||||
;106 bytes ($300-369) static table
|
;106 bytes ($300-369) static table
|
||||||
preshift = $300
|
preshift = $300
|
||||||
@ -42,9 +42,13 @@
|
|||||||
boot_entry:
|
boot_entry:
|
||||||
; this code loads two sectors up to $10/$11
|
; this code loads two sectors up to $10/$11
|
||||||
|
|
||||||
|
; assume A=1 coming in here
|
||||||
|
|
||||||
lsr ; check sector number
|
lsr ; check sector number
|
||||||
tay
|
; A=0, carry=1
|
||||||
adc #$0f
|
tay ; Y=0
|
||||||
|
adc #$0f ; A=$10 (destintation)
|
||||||
|
|
||||||
sta $27 ; set or update address as needed
|
sta $27 ; set or update address as needed
|
||||||
cmp #$12
|
cmp #$12
|
||||||
; 10 11 12 (1 1 1)
|
; 10 11 12 (1 1 1)
|
||||||
@ -73,7 +77,7 @@ boot_entry:
|
|||||||
pha
|
pha
|
||||||
lda #$5b ;read-1
|
lda #$5b ;read-1
|
||||||
pha
|
pha
|
||||||
rts
|
rts ; return used to call $CX5C in DISK II ROM
|
||||||
|
|
||||||
done_load_2:
|
done_load_2:
|
||||||
|
|
||||||
@ -83,6 +87,7 @@ done_load_2:
|
|||||||
ora #$8c ; slot to Q6L
|
ora #$8c ; slot to Q6L
|
||||||
; Q6L?
|
; Q6L?
|
||||||
; if slot 6, after this A is $EC
|
; if slot 6, after this A is $EC
|
||||||
|
; Y should be 2 here
|
||||||
patch_loop:
|
patch_loop:
|
||||||
iny
|
iny
|
||||||
ldx patchtbl-3, Y
|
ldx patchtbl-3, Y
|
||||||
|
@ -45,11 +45,16 @@ boot_entry:
|
|||||||
|
|
||||||
; it's full of qkumba magic so be careful
|
; it's full of qkumba magic so be careful
|
||||||
|
|
||||||
lsr ; check sector number
|
; in theory A=1 here on boot
|
||||||
tay
|
; A=3 second time we get called after loading $14
|
||||||
adc #$13 ; start at sector $14
|
; A=5 third time we get called after loading $15
|
||||||
|
|
||||||
|
lsr ; check sector number
|
||||||
|
; A=0, C=1 A=1,C=1 A=2,C=1
|
||||||
|
tay ; Y=0 Y=1 Y=2
|
||||||
|
adc #$13 ; A=$14 A=$15 A=$16
|
||||||
|
sta $27 ; set destination for read to $1400
|
||||||
|
|
||||||
sta $27 ; set destination for read
|
|
||||||
cmp #$16
|
cmp #$16
|
||||||
; OLD 10 11 12 (1 1 1)
|
; OLD 10 11 12 (1 1 1)
|
||||||
; OLD be, bf, c0 (1011 1011 1100)
|
; OLD be, bf, c0 (1011 1011 1100)
|
||||||
@ -77,7 +82,7 @@ boot_entry:
|
|||||||
pha
|
pha
|
||||||
lda #$5b ;read-1
|
lda #$5b ;read-1
|
||||||
pha
|
pha
|
||||||
rts
|
rts ; return used to call $CX5C in disk II ROM
|
||||||
|
|
||||||
done_load_2:
|
done_load_2:
|
||||||
|
|
||||||
@ -87,6 +92,8 @@ done_load_2:
|
|||||||
ora #$8c ; slot to Q6L
|
ora #$8c ; slot to Q6L
|
||||||
; Q6L?
|
; Q6L?
|
||||||
; if slot 6, after this A is $EC
|
; if slot 6, after this A is $EC
|
||||||
|
|
||||||
|
; Y should be 2 here
|
||||||
patch_loop:
|
patch_loop:
|
||||||
iny
|
iny
|
||||||
ldx patchtbl-3, Y
|
ldx patchtbl-3, Y
|
||||||
|
Loading…
x
Reference in New Issue
Block a user