From 1c1ed5d95bed95ea643ad92015ba4782013622e9 Mon Sep 17 00:00:00 2001 From: 4am Date: Thu, 9 Aug 2018 19:31:26 -0400 Subject: [PATCH] patch universal RWTS later to disable drive recalibration, to reduce false negatives failing to read the boot sector --- src/mods/universalrwts.a | 3 +-- src/passport.a | 5 +++++ src/rwts.a | 9 +++++++++ 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/mods/universalrwts.a b/src/mods/universalrwts.a index 10a4869..7879b38 100644 --- a/src/mods/universalrwts.a +++ b/src/mods/universalrwts.a @@ -121,8 +121,7 @@ universalrwts !byte $88,$D0,$FD,$E6,$46,$D0,$F7,$E6,$47,$D0,$F3,$A0,$0C,$B1,$48,$F0 !byte $5A,$C9,$04,$F0,$58,$6A,$08,$B0,$03,$20,$00,$B8,$A0,$30,$8C,$78 !byte $05,$AE,$F8,$05,$20,$44,$B9,$90,$24,$CE,$78,$05,$10,$F3,$AD,$78 -; $BDD2 is patched to disable track recalibration after failing to find an address prologue 48 times - !byte $04,$48,$B0,$30,$20,$95,$BE,$CE,$F8,$06,$F0,$28,$A9,$04,$8D,$F8 + !byte $04,$48,$A9,$60,$20,$95,$BE,$CE,$F8,$06,$F0,$28,$A9,$04,$8D,$F8 !byte $04,$A9,$00,$20,$5A,$BE,$68,$20,$5A,$BE,$4C,$BC,$BD,$A4,$2E,$CC !byte $78,$04,$F0,$1C,$AD,$78,$04,$48,$98,$20,$95,$BE,$68,$CE,$F8,$04 !byte $D0,$E5,$F0,$CA,$68,$A9,$40,$28,$4C,$48,$BE,$F0,$39,$4C,$AF,$BE diff --git a/src/passport.a b/src/passport.a index d9233c6..87f9cf1 100755 --- a/src/passport.a +++ b/src/passport.a @@ -344,6 +344,11 @@ UseUniversal ; + jsr PatchUniversalRWTSForAdaptive ; +; Disable drive recalibration on bad sectors so we give up on bad sectors +; faster and detect unformatted or specially structured tracks faster. +; + jsr PatchUniversalRWTSForNoRecal +; ; Some disks have different epilogues on track 0, so we stop using the ; adaptive RWTS so we don't falsely accuse those disks of being damaged. ; diff --git a/src/rwts.a b/src/rwts.a index c7b9fd2..68cc91d 100755 --- a/src/rwts.a +++ b/src/rwts.a @@ -123,6 +123,15 @@ IgnoreAddressChecksum rts } +!zone { +PatchUniversalRWTSForNoRecal + lda #$B0 +.x8 sta $BDD2 + lda #$30 +.x9 sta $BDD3 + rts +} + !zone { PatchUniversalRWTSForAdaptive ; out: N flag set