support SIGCHECK.O extra wide track protection [fixes Advanced Electricity, others]

This commit is contained in:
4am 2021-05-22 11:35:57 -04:00
parent 5dc2360d58
commit c6d2031368
11 changed files with 56 additions and 56 deletions

View File

@ -109,7 +109,7 @@ were common in educational software.
- EME - EME
e.g. Metric System Tutor, e.g. Metric System Tutor,
Water in the Air Water in the Air, Complex Circuits
- Encyclopaedia Britannica - Encyclopaedia Britannica
e.g. Problem Solving in Algebra, e.g. Problem Solving in Algebra,
@ -431,6 +431,8 @@ Development (unreleased)
- NEW: patchers/errord51.a (Granny - NEW: patchers/errord51.a (Granny
Applebee's Cookie Factory, Uncle Applebee's Cookie Factory, Uncle
Clyde's Consonant Slides) Clyde's Consonant Slides)
- NEW: patchers/sigcheck.a (Advanced
Electricity, Complex Circuits)
- IMPROVED: patches/mecc.a to erase - IMPROVED: patches/mecc.a to erase
site license information from final site license information from final
generation of MECC disks (by qkumba) generation of MECC disks (by qkumba)

View File

@ -390,6 +390,7 @@ AnalyzeTrack
!source "patchers/leisure.a" ; gIsProDOS && T22 only !source "patchers/leisure.a" ; gIsProDOS && T22 only
!source "patchers/b4bbbasic.a" ; gPossibleB4BBBasic only !source "patchers/b4bbbasic.a" ; gPossibleB4BBBasic only
!source "patchers/errord51.a" ; gIsLowDOS only !source "patchers/errord51.a" ; gIsLowDOS only
!source "patchers/sigcheck.a" ; gIsDiversi only
_checkPatchCount _checkPatchCount
lda gPatchCount lda gPatchCount
@ -401,6 +402,15 @@ _checkPatchCount
rts rts
; utility functions used by several patchers ; utility functions used by several patchers
inx0F inx
inx0E inx
inx0D inx
inx0C inx
inx0B inx
inx0A inx
inx9 inx
inx8 inx
inx7 inx
inx6 inx inx6 inx
inx5 inx inx5 inx
inx4 inx inx4 inx

View File

@ -18,9 +18,7 @@
bcs .exit ; passport-test-suite/Game Frame One.woz [C=0] matches bcs .exit ; passport-test-suite/Game Frame One.woz [C=0] matches
sta gDisplayBytes sta gDisplayBytes
pha pha
txa jsr inx8
adc #$08
tax
lda #s_a5count lda #s_a5count
jsr PrintByID jsr PrintByID
pla pla

View File

@ -32,22 +32,11 @@
!byte $60 ; RTS !byte $60 ; RTS
bcs .exit ; passport-test-suite/Mr. Pixel's Programming Paint Set.woz [C=0] matches bcs .exit ; passport-test-suite/Mr. Pixel's Programming Paint Set.woz [C=0] matches
sta gDisplayBytes sta gDisplayBytes
pha jsr inx9
txa
clc
adc #$09
tax
stx gDisplayBytes+1
pla
pha
ldy #$01 ldy #$01
jsr modify jsr modify
!byte $DE !byte $DE
lda gDisplayBytes+1 jsr inx0A
clc
adc #$0A
tax
pla
ldy #$01 ldy #$01
jsr modify jsr modify
!byte $AA !byte $AA

View File

@ -21,16 +21,13 @@
!byte $88 ; DEY !byte $88 ; DEY
!byte $10,$F7 ; BPL *-9 !byte $10,$F7 ; BPL *-9
!byte $4C,$E3,$93 ; JMP $93E3 !byte $4C,$E3,$93 ; JMP $93E3
bcs .exit bcs .exit ; passport-test-suite/Polywriter.woz [C=0] matches
sta gDisplayBytes sta gDisplayBytes
pha pha
lda #s_pdi lda #s_pdi
jsr PrintByID jsr PrintByID
txa
clc
adc #12
tax
pla pla
jsr inx0C
ldy #$02 ldy #$02
jsr modify jsr modify
!byte $99,$8E ; jmp directly to decoder !byte $99,$8E ; jmp directly to decoder

View File

@ -47,9 +47,7 @@
bcs .exit ; passport-test-suite/The Crimson Crown.woz [C=0] matches bcs .exit ; passport-test-suite/The Crimson Crown.woz [C=0] matches
sta gDisplayBytes sta gDisplayBytes
pha pha
txa jsr inx9
adc #$09
tax
lda #s_tamper lda #s_tamper
jsr PrintByID jsr PrintByID
pla pla

View File

@ -15,11 +15,7 @@
!byte $20,$10,$30,WILDCARD,$AA,$EB !byte $20,$10,$30,WILDCARD,$AA,$EB
bcs + ; passport-test-suite/Mystery Objects v1.1.woz [C=0] matches bcs + ; passport-test-suite/Mystery Objects v1.1.woz [C=0] matches
sta gDisplayBytes sta gDisplayBytes
tay jsr inx0B
txa
adc #$0B
tax
tya
ldy #$01 ldy #$01
jsr compare jsr compare
!byte $DE !byte $DE
@ -46,11 +42,7 @@
!byte $60 !byte $60
bcs + ; passport-test-suite/Miner's Cave.woz [C=0] matches bcs + ; passport-test-suite/Miner's Cave.woz [C=0] matches
sta gDisplayBytes sta gDisplayBytes
tay jsr inx9
txa
adc #$09
tax
tya
ldy #$01 ldy #$01
jsr modify jsr modify
!byte $18 !byte $18
@ -65,11 +57,8 @@
!byte $C9,$DE,$F0,$02,$18,$24,$38,$60 !byte $C9,$DE,$F0,$02,$18,$24,$38,$60
bcs + ; passport-test-suite/Spelling Press v1.1.woz [C=0] matches bcs + ; passport-test-suite/Spelling Press v1.1.woz [C=0] matches
sta gDisplayBytes sta gDisplayBytes
tay jsr inx0B
txa jsr inx0B
adc #$16
tax
tya
ldy #$01 ldy #$01
jsr modify jsr modify
!byte $18 !byte $18
@ -84,11 +73,7 @@
!byte $38 !byte $38
!byte $60 !byte $60
bcs + ; passport-test-suite/Spelling Press v1.1.woz [C=0] matches bcs + ; passport-test-suite/Spelling Press v1.1.woz [C=0] matches
tay jsr inx0A
txa
adc #$0A
tax
tya
ldy #$01 ldy #$01
jsr modify jsr modify
!byte $18 !byte $18

View File

@ -21,11 +21,7 @@ _prodosrwts
!byte $38 !byte $38
bcs .exit ; passport-test-suite/Mystery Objects v1.1.woz [C=0] matches bcs .exit ; passport-test-suite/Mystery Objects v1.1.woz [C=0] matches
sta gDisplayBytes sta gDisplayBytes
tay jsr inx0F
txa
adc #$0F
tax
tya
ldy #$01 ldy #$01
jsr compare jsr compare
!byte $DE !byte $DE

28
src/patchers/sigcheck.a Normal file
View File

@ -0,0 +1,28 @@
;-------------------------------
; #SIGCHECK
; productized fat track protection check
;
; tested on
; - Advanced Electricity
; - Complex Circuits
; - Projectile and Circular Motion
;-------------------------------
!zone {
lda gIsDiversi ; only ever seen this protection
bne .exit ; on Diversi-DOS disks
ldy #$0A
jsr SearchTrack
!byte $4C,$42,$61
!byte $A9,$00
!byte $F0,$02
!byte $A9,$FF
!byte $48
bcs .exit ; passport-test-suite/Advanced Electricity.woz [C=0] matches
sta gDisplayBytes
jsr inx8
ldy #$01
jsr modify
!byte $00
.exit
}

View File

@ -20,10 +20,7 @@
sta gDisplayBytes+1 sta gDisplayBytes+1
lda #s_diskvol0x lda #s_diskvol0x
jsr PrintByID jsr PrintByID
txa jsr inx0B
clc
adc #$0B
tax
pla pla
ldy #$01 ldy #$01
jsr modify jsr modify

View File

@ -344,7 +344,7 @@ StringTableHigh
.passport .passport
!text "Passport ",$00 !text "Passport ",$00
.header .header
!text "@",s_passport,"by 4am@",s_space7,"@",s_space7," 2021-05-11",$00 !text "@",s_passport,"by 4am@",s_space7,"@",s_space7," 2021-05-22",$00
.bar9 .bar9
!text "_________",$00 !text "_________",$00
.bar18 .bar18
@ -607,7 +607,7 @@ StringTableHigh
.eaboot0 .eaboot0
!text "@",s_tfound,"Electronic Arts @",s_bootloader,$8D,$00 !text "@",s_tfound,"Electronic Arts @",s_bootloader,$8D,$00
.eatrk6 .eatrk6
!text "@",s_tfound,"EA @",s_protectiontrack,$8D,$00 !text "@",s_tfound,"extra wide @",s_protectiontrack,$8D,$00
.poke .poke
!text "T%t,S%0 BASIC program POKEs protection",$8D !text "T%t,S%0 BASIC program POKEs protection",$8D
!text "check into memory and CALLs it",$8D,$00 !text "check into memory and CALLs it",$8D,$00