mirror of
https://github.com/a2-4am/passport.git
synced 2024-12-24 17:29:40 +00:00
add patchers/f7f6 for SSPROT1 encrypted nibble check with checksum 35
This commit is contained in:
parent
f7693d117d
commit
48706b4067
@ -738,6 +738,7 @@ _applyToAll
|
||||
!source "patchers/sierra13.a" ; gIsDOS32 only
|
||||
!source "patchers/t11diskvol.a" ; T11 && gIsRWTS only
|
||||
!source "patchers/t02volumename.a" ; T02 && gIsBoot0 only
|
||||
!source "patchers/f7f6.a" ; gIsBoot0 only
|
||||
|
||||
lda gPatchCount
|
||||
beq .nopatches
|
||||
|
62
src/patchers/f7f6.a
Normal file
62
src/patchers/f7f6.a
Normal file
@ -0,0 +1,62 @@
|
||||
;-------------------------------
|
||||
; #F7F6
|
||||
; nibble check hidden inside encrypted startup program SSPROT$$1
|
||||
;
|
||||
; tested on
|
||||
; Grammar Lab 1 (1986, Southwell)
|
||||
; Grammar Lab 2 (1986, Southwell)
|
||||
; Mathematics Activities Courseware Level 4 (1983, Houghton Mifflin)
|
||||
; Mathematics Activities Courseware Level 6 (1983, Houghton Mifflin)
|
||||
; Sailing Through Story Problems (1987, DLM)
|
||||
; Spanish Grammar Review - Future and Conditional Tenses of Regular and Irregular Verbs (1984, Gessler)
|
||||
; Spanish Grammar Review - Familiar and Formal Commands in the Affirmative and Negative (1984, Gessler)
|
||||
; Spanish Grammar Review - Por vs. Para (1984, Gessler)
|
||||
; Water in the Air Quiz (1985, EME)
|
||||
;-------------------------------
|
||||
!zone {
|
||||
lda gIsBoot0
|
||||
bne .exit
|
||||
lda #$0F
|
||||
sta .sector+1
|
||||
.sector lda #$FF ; modified above
|
||||
sta gDisplayBytes
|
||||
ldx #$00
|
||||
ldy #$08
|
||||
jsr compare
|
||||
!byte $00,$08,$02,$03
|
||||
!byte $D8 ; CLD
|
||||
!byte $20,$0B,$08 ; JSR $080B
|
||||
bcs .nextsector
|
||||
ldx #$17
|
||||
ldy #$0C
|
||||
jsr compare
|
||||
!byte $A9,$00 ; LDA #$00
|
||||
!byte $AA ; TAX
|
||||
!byte $5D,$00,$08 ; EOR $0800,X
|
||||
!byte $CA ; DEX
|
||||
!byte $F0,$03 ; BEQ +3
|
||||
!byte $4C,$16,$08 ; JMP $0816
|
||||
bcs .nextsector
|
||||
ldx #$76
|
||||
ldy #$03
|
||||
jsr compare
|
||||
!byte $23,$2A,$28
|
||||
bcs .nextsector
|
||||
lda #s_f7f6
|
||||
jsr PrintByID
|
||||
lda .sector+1
|
||||
ldx #$20
|
||||
ldy #$03
|
||||
jsr modify
|
||||
!byte $EA ; NOP
|
||||
!byte $A9,$35 ; LDA #$35
|
||||
lda .sector+1
|
||||
ldx #$76
|
||||
ldy #$02
|
||||
jsr modify
|
||||
!byte $AA,$A2 ; new JMP entry point ($0900 when decrypted)
|
||||
.nextsector
|
||||
dec .sector+1
|
||||
bpl .sector
|
||||
.exit
|
||||
}
|
@ -112,6 +112,7 @@ StringTable
|
||||
!word .origin
|
||||
!word .volumename
|
||||
!word .dinkeydos
|
||||
!word .f7f6
|
||||
;
|
||||
; Text can contain substitution strings, which
|
||||
; are replaced by current values at runtime. Each
|
||||
@ -137,7 +138,7 @@ StringTable
|
||||
; can be set directly before calling PrintByID.
|
||||
;
|
||||
.header
|
||||
!text "Passport by 4am 2017-12-12",$00
|
||||
!text "Passport by 4am 2017-12-24",$00
|
||||
.mainmenu
|
||||
!text "________________________________________",$8D,$8D,$8D,$8D,$8D,$8D,$8D
|
||||
!text " "
|
||||
@ -428,4 +429,6 @@ StringTable
|
||||
!text "T%t,S%0 Volume name is ",$00
|
||||
.dinkeydos
|
||||
!text "T00,S0B Found Dinkey-DOS",$8D,$00
|
||||
.f7f6
|
||||
!text "T%t,S%0 Found F7F6 protection check",$8D,$00
|
||||
}
|
||||
|
@ -100,4 +100,5 @@ s_muse = $5E
|
||||
s_origin = $5F
|
||||
s_volumename = $60
|
||||
s_dinkeydos = $61
|
||||
STRINGCOUNT = $62
|
||||
s_f7f6 = $62
|
||||
STRINGCOUNT = $63
|
||||
|
Loading…
Reference in New Issue
Block a user