add support for PROBS5 protection [fixes Allyn and Bacon titles]

This commit is contained in:
4am 2023-03-26 13:22:46 -04:00
parent 98107fcb62
commit 540c9fb161
4 changed files with 42 additions and 1 deletions

View File

@ -385,6 +385,7 @@ AnalyzeTrack
!source "patchers/mak.a" ; gIsBoot0 && T02 only
!source "patchers/jsr8635.a" ; gIsBoot0 only
!source "patchers/sierra.a" ; gIsBoot0 only
!source "patchers/probs5.a"
_endDOS33Patchers
;
; Diversi-DOS-specific patchers

35
src/patchers/probs5.a Normal file
View File

@ -0,0 +1,35 @@
;-------------------------------
; #PROBS5
; sector check of track $23
; usually found in PROBS5 file
;
; tested on
; - Addition and Subtraction of Fractions Analyzer
; - Addition and Subtraction of Fractions Worksheet
; - Decimals Analyzer
; - Decimals Worksheet
; - Multiplication and Division of Fractions Analyzer
; - Multiplication and Division of Fractions Worksheet
; - Whole Numbers Analyzer
; - Whole Numbers Worksheet
;-------------------------------
!zone {
lda #$0F
sta .sector+1
.sector lda #$FF ; modified at runtime
ldx #$00
ldy #$08
jsr compare
!byte $00,$20, $FF,$0F ; DOS 3.3 file header
!byte $A9,$23 ; LDA #$23
!byte $8D,$EC ; STA $..EC
bcs + ; passport-test-suite/Addition and Subtraction of Fractions Analyzer.woz [C=0] matches
jsr PrintByID
!byte s_probs5
ldx #$04
jsr modify1
!byte $60 ; RTS
+ dec .sector+1
bpl .sector
.exit
}

View File

@ -217,6 +217,7 @@ StringTableLow ; must be kept in sync with constants in enid.a
!byte <.enlightenment
!byte <.sfc
!byte <.neosoft
!byte <.probs5
StringTableHigh ; must be kept in sync with constants in enid.a
!byte >.header
@ -373,11 +374,12 @@ StringTableHigh ; must be kept in sync with constants in enid.a
!byte >.enlightenment
!byte >.sfc
!byte >.neosoft
!byte >.probs5
.passport
!text "Passport ",$00
.header
!text "@",s_passport,"by 4am@",s_space7,"@",s_space7," 2023-01-27",$00
!text "@",s_passport,"by 4am@",s_space7,"@",s_space7," 2023-03-26",$00
.bar9
!text "_________",$00
.bar18
@ -772,3 +774,5 @@ StringTableHigh ; must be kept in sync with constants in enid.a
!text "@",s_found,"SFC @",s_protectioncheck,$8D,$00
.neosoft
!text "@",s_found,"Neosoft @",s_protectioncheck,$8D,$00
.probs5
!text "@",s_found,"PROBS5 @",s_protectioncheck,$8D,$00

View File

@ -155,3 +155,4 @@ s_enlightenmentb0 = $96
s_enlightenment = $97
s_sfc = $98
s_neosoft = $99
s_probs5 = $9A