zero unformatted DOS 3.2 sectors after confirming their status

This commit is contained in:
4am 2017-08-18 09:46:39 -04:00
parent 760650802f
commit 4682ae095d
3 changed files with 42 additions and 10 deletions

View File

@ -237,6 +237,8 @@ TraceDOS32d
jmp ADStyle
; callback to check if the data field is missing
; and if so, fill the RWTS data buffer with zeros
; and tell the caller that nibblizing was successful
FFer
ldy #$00
@ -246,8 +248,22 @@ FFer
bne +
iny
bne -
ldy callrwts+2
dey
sty .G+2
dey
sty .F+2
ldy #$00
tya
.F sta $FF00,y
iny
bne .F
.G sta $FF00,y
iny
cpy #$9A
bne .G
clc
!byte $24 ; hide next SEC
rts
+ sec
rts
}

View File

@ -8,10 +8,6 @@
bit gMode ; nothing to do here in verify-only mode
bpl .exit
lda #s_bootwrite
jsr PrintByID
inc gPatchCount
; sectors 2-9
lda #>universalrwts
@ -21,6 +17,9 @@
lda #$38
sta $1656 ; #BASEPAGE+6
lda #s_rwtswrite
jsr PrintByID
; sector 1
lda callrwts+2
@ -29,8 +28,16 @@
ldx #$11 ; #BASEPAGE+1
ldy #$01
jsr CopyMemory
lda #$2C
sta $1138 ; #BASEPAGE+1
lda #$01
ldx #$38
ldy #$02
jsr compare
!byte $20,$93
bcs +
ldy #$01
jsr modify
!byte $2C
+
; sector 0
@ -40,10 +47,14 @@
lda #<SD_DOS32
ldx #>SD_DOS32
jsr ConstructStandardDelivery
jmp .exit
jmp ++
+ lda #<SD_DOS32LO
ldx #>SD_DOS32LO
jsr ConstructStandardDelivery
++ lda #s_bootwrite
jsr PrintByID
inc gPatchCount
.exit
}

View File

@ -106,7 +106,8 @@ s_d5timing = $57
s_advint = $58
s_dos32b0 = $59
s_bootwrite = $5A
STRINGCOUNT = $5B
s_rwtswrite = $5B
STRINGCOUNT = $5C
!zone {
StringTable
@ -201,6 +202,7 @@ StringTable
!word .advint
!word .dos32boot0
!word .bootwrite
!word .rwtswrite
;
; Text can contain substitution strings, which
; are replaced by current values at runtime. Each
@ -500,5 +502,8 @@ StringTable
!text "T%t,S%0 Found Adventure International",$8D
!text "protection check",$8D,$00
.bootwrite
!text "T00 Writing Standard Delivery bootloader",$00
!text "T00,S00 Writing Standard Delivery",$8D
!text "bootloader",$8D,$00
.rwtswrite
!text "T00,S02 Writing built-in RWTS",$8D,$00
}