mirror of
https://github.com/a2-4am/passport.git
synced 2025-01-11 01:29:56 +00:00
support SIGCHECK.O extra wide track protection [fixes Advanced Electricity, others]
This commit is contained in:
parent
5dc2360d58
commit
c6d2031368
@ -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)
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
28
src/patchers/sigcheck.a
Normal 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
|
||||||
|
}
|
@ -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
|
||||||
|
@ -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
|
||||||
|
Loading…
x
Reference in New Issue
Block a user