support DOS 3.2 disks with unformatted data fields on unused sectors

This commit is contained in:
4am 2017-08-17 09:29:35 -04:00
parent 4c2c8ec6ff
commit 2f7d6119e1
3 changed files with 36 additions and 17 deletions

View File

@ -178,6 +178,26 @@ TraceDOS32d
!byte $84,$48,$85,$49 !byte $84,$48,$85,$49
bcs .fail bcs .fail
lda #$FA
sta modsrc
lda callrwts+2
sec
sbc #$05
sta modsrc+1
ldy #$00
lda #$4C ; set up JMP at $B8FA to our routine that will
sta (modsrc),y ; check whether the data field is missing
iny
lda #<FFer
sta (modsrc),y
iny
lda #>FFer
sta (modsrc),y
ldy #$07
lda #$F8 ; change BEQ at $B900 to branch to that JMP at $B8FA
; if data prologue is not found
sta (modsrc),y
; skip sectors $0D, $0E, and $0F on all tracks ; skip sectors $0D, $0E, and $0F on all tracks
; since this is a 13-sector disk ; since this is a 13-sector disk
@ -215,4 +235,19 @@ TraceDOS32d
; read the rest of the disk with the original RWTS ; read the rest of the disk with the original RWTS
jmp ADStyle jmp ADStyle
; callback to check if the data field is missing
FFer
ldy #$00
- lda $C08C,x
bpl -
cmp #$FF
bne +
iny
bne -
clc
!byte $24 ; hide next SEC
+ sec
rts
} }

View File

@ -126,19 +126,3 @@ SD_DOS32LO
; track 2 ; track 2
!byte $2A,$00,$00,$00,$35,$34,$33,$32,$31,$30,$2F,$2E,$2D,$2C,$2B,$00 !byte $2A,$00,$00,$00,$35,$34,$33,$32,$31,$30,$2F,$2E,$2D,$2C,$2B,$00
!byte $C0 !byte $C0
; T01,S00
; T01,S0E
; T01,S0D
; T01,S0C
; T01,S0B
; T01,S0A
; T01,S09
; T01,S08
; T01,S07
; T01,S06
; T01,S05
; T01,S04
; T01,S03
; T01,S02
; T01,S01
; T01,S0F

View File

@ -226,7 +226,7 @@ StringTable
; can be set directly before calling PrintByID. ; can be set directly before calling PrintByID.
; ;
.header .header
!text "Passport by 4am 2017-08-16",$00 !text "Passport by 4am 2017-08-17",$00
.mainmenu .mainmenu
!text "________________________________________",$8D,$8D,$8D,$8D,$8D,$8D,$8D !text "________________________________________",$8D,$8D,$8D,$8D,$8D,$8D,$8D
!text " " !text " "