enable address checksum verification by default to simplify code and so converted DOS 3.2 disks get it

This commit is contained in:
4am 2017-11-10 13:38:31 -05:00
parent 586cfb9473
commit 62917dfec9
4 changed files with 10 additions and 18 deletions

View File

@ -6,20 +6,19 @@
;------------------------------- ;-------------------------------
; Universal RWTS ; Universal RWTS
; a modified DOS 3.3-style RWTS that reads 16-sector (6-and-2 encoded) disks ; 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 ; - any address epilogue
; - data prologue "D5 AA AD" ; - data prologue $D5 $AA $AD
; - verifies data field checksum
; - any data epilogue ; - any data epilogue
; ; - waits longer than a normal RWTS to find an address prologue (long enough
; It verifies the data field checksum byte, but it ignores the address field ; that it will find the prologue even if there is only one sector on a track)
; 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.
; ;
; It must be loaded at $B800. It uses the standard RWTS entry point at $BD00. ; 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 ; 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 universalrwts
@ -47,7 +46,7 @@ universalrwts
!byte $8C,$C0,$10,$FB,$4A,$C9,$6A,$D0,$EF,$BD,$8C,$C0,$10,$FB,$C9,$AA !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 $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 $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 $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 $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 !byte $85,$27,$38,$E5,$2A,$F0,$33,$B0,$07,$49,$FF,$EE,$78,$04,$90,$05

View File

@ -244,7 +244,6 @@ Action
jsr CreateRAMFile jsr CreateRAMFile
+ jsr ResetProgress + jsr ResetProgress
jsr InitSectorMap jsr InitSectorMap
jsr CopyUniversal
lda #FALSE lda #FALSE
sta gTriedUniv sta gTriedUniv
sta gSaidWriting sta gSaidWriting
@ -265,6 +264,7 @@ Action
sta TEXTTOP sta TEXTTOP
lda #s_reading lda #s_reading
jsr PrintByID jsr PrintByID
jsr CopyUniversal
jsr IgnoreAddressChecksum jsr IgnoreAddressChecksum
jsr ReadSector jsr ReadSector
bcc + bcc +
@ -485,10 +485,6 @@ StartWithUniv
; note: execution falls through here ; note: execution falls through here
CopyUniversal CopyUniversal
lda #>EnforceAddressChecksum-1
pha
lda #<EnforceAddressChecksum-1
pha
lda #$B8 lda #$B8
CopyUniversalAnywhere CopyUniversalAnywhere
sta universalrwts sta universalrwts

View File

@ -106,9 +106,6 @@ PreReadSector
IgnoreAddressChecksum IgnoreAddressChecksum
lda #$00 lda #$00
!byte $2C ; hide next LDA
EnforceAddressChecksum
lda #$B7
sta $B98A sta $B98A
rts rts

View File

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