From 62917dfec9603df43b1fb937d3c7ca55cad4f75d Mon Sep 17 00:00:00 2001 From: 4am Date: Fri, 10 Nov 2017 13:38:31 -0500 Subject: [PATCH] enable address checksum verification by default to simplify code and so converted DOS 3.2 disks get it --- src/mods/universalrwts.a | 17 ++++++++--------- src/passport.a | 6 +----- src/rwts.a | 3 --- src/strings/en.a | 2 +- 4 files changed, 10 insertions(+), 18 deletions(-) diff --git a/src/mods/universalrwts.a b/src/mods/universalrwts.a index 69ecc42..7879b38 100644 --- a/src/mods/universalrwts.a +++ b/src/mods/universalrwts.a @@ -6,20 +6,19 @@ ;------------------------------- ; Universal RWTS ; a modified DOS 3.3-style RWTS that reads 16-sector (6-and-2 encoded) disks -; - address prologue "D4 AA 96" or "D5 AA 96" +; - address prologue $D4 $AA $96 or $D5 $AA $96 +; - verifies address field checksum ; - any address epilogue -; - data prologue "D5 AA AD" +; - data prologue $D5 $AA $AD +; - verifies data field checksum ; - any data epilogue -; -; It verifies the data field checksum byte, but it ignores the address field -; checksum. It waits longer than a normal RWTS to find an address prologue -- -; long enough that it will find the prologue even if there is only one sector -; on a track. +; - waits longer than a normal RWTS to find an address prologue (long enough +; that it will find the prologue even if there is only one sector on a track) ; ; It must be loaded at $B800. It uses the standard RWTS entry point at $BD00. ; ; Write support has been disabled. Any attempt to pass $02 or $04 RWTS commands -; will crash. +; will crash. See note below on how to re-enable. ;------------------------------- universalrwts @@ -47,7 +46,7 @@ universalrwts !byte $8C,$C0,$10,$FB,$4A,$C9,$6A,$D0,$EF,$BD,$8C,$C0,$10,$FB,$C9,$AA !byte $D0,$F2,$BD,$8C,$C0,$10,$FB,$C9,$96,$D0,$E7,$A0,$03,$A9,$00,$85 !byte $27,$BD,$8C,$C0,$10,$FB,$2A,$85,$26,$BD,$8C,$C0,$10,$FB,$25,$26 - !byte $99,$2C,$00,$45,$27,$88,$10,$E7,$A8,$D0,$00,$BD,$8C,$C0,$10,$FB + !byte $99,$2C,$00,$45,$27,$88,$10,$E7,$A8,$D0,$B7,$BD,$8C,$C0,$10,$FB !byte $C9,$00,$D0,$00,$EA,$BD,$8C,$C0,$10,$FB,$C9,$00,$D0,$00,$18,$60 !byte $86,$2B,$85,$2A,$CD,$78,$04,$F0,$53,$A9,$00,$85,$26,$AD,$78,$04 !byte $85,$27,$38,$E5,$2A,$F0,$33,$B0,$07,$49,$FF,$EE,$78,$04,$90,$05 diff --git a/src/passport.a b/src/passport.a index 6d9bcdb..ecca708 100755 --- a/src/passport.a +++ b/src/passport.a @@ -244,7 +244,6 @@ Action jsr CreateRAMFile + jsr ResetProgress jsr InitSectorMap - jsr CopyUniversal lda #FALSE sta gTriedUniv sta gSaidWriting @@ -265,6 +264,7 @@ Action sta TEXTTOP lda #s_reading jsr PrintByID + jsr CopyUniversal jsr IgnoreAddressChecksum jsr ReadSector bcc + @@ -485,10 +485,6 @@ StartWithUniv ; note: execution falls through here CopyUniversal - lda #>EnforceAddressChecksum-1 - pha - lda #