mirror of
https://github.com/a2-4am/passport.git
synced 2024-05-28 21:41:27 +00:00
90 lines
3.0 KiB
Plaintext
90 lines
3.0 KiB
Plaintext
;-------------------------------
|
|
; #SSPROT
|
|
; 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)
|
|
; - Comic Strip Maker (1986, Walt Disney)
|
|
; - Wortgefecht (Word Attack German) (1984, Gessler)
|
|
;-------------------------------
|
|
!zone {
|
|
lda gIsF7F6
|
|
bne .exit
|
|
lda #$0F
|
|
sta .sector+1
|
|
.sector lda #$FF ; modified above
|
|
ldx #$00
|
|
ldy #$08
|
|
jsr compare
|
|
!byte $00,$08,$02,$03 ; DOS 3.3 file addr/len
|
|
!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
|
|
jsr compare3
|
|
!byte $23,$2A,$28
|
|
bcc .variant1 ; passport-test-suite/Creative Contraptions.woz [C=0] matches
|
|
|
|
jsr compare3
|
|
!byte $70,$79,$77
|
|
bcc .variant2 ; passport-test-suite/Wortgefecht.woz [C=0] matches
|
|
|
|
jsr compare3
|
|
!byte $23,$2A,$24 ; passport-test-suite/Metric System Tutor.woz [C=0] matches
|
|
bcc .variant3
|
|
|
|
.nextsector
|
|
dec .sector+1
|
|
bpl .sector
|
|
bmi .exit
|
|
|
|
.variant1
|
|
dey
|
|
jsr modify
|
|
!byte $AA,$A2 ; new JMP entry point ($0900 when decrypted)
|
|
ldx #$20
|
|
iny
|
|
jsr modify
|
|
!byte $EA ; NOP
|
|
!byte $A9,$35 ; LDA #$35
|
|
bvc .exit ; always branches
|
|
|
|
.variant2
|
|
dey
|
|
jsr modify ; new JMP entry point ($0903 when decrypted)
|
|
!byte $FA,$F2
|
|
bvc .variant2and3common ; always branches
|
|
|
|
.variant3
|
|
dey
|
|
jsr modify ; new JMP entry point ($0903 when decrypted)
|
|
!byte $A9,$A1
|
|
.variant2and3common
|
|
ldx #$20
|
|
iny
|
|
jsr modify
|
|
!byte $EA ; NOP
|
|
!byte $A9,$27 ; LDA #$27
|
|
|
|
.exit
|
|
}
|