From ac89a16deccf84c6eec2ec8dfa9ff25d97f90608 Mon Sep 17 00:00:00 2001 From: 4am Date: Thu, 19 Jul 2018 11:27:02 -0500 Subject: [PATCH] add support for Pascal FBFF variant seen on multiple Courses By Computers disks --- src/passport.a | 1 + src/patchers/fbffpascal.a | 48 +++++++++++++++++++++++++++++++++++++++ src/strings/en.a | 2 +- 3 files changed, 50 insertions(+), 1 deletion(-) create mode 100644 src/patchers/fbffpascal.a diff --git a/src/passport.a b/src/passport.a index 0b5e235..d9233c6 100755 --- a/src/passport.a +++ b/src/passport.a @@ -766,6 +766,7 @@ _applyToAll !source "patchers/protecteddos.a" ; gIsProtDOS only !source "patchers/fbff.a" !source "patchers/fbffencrypted.a" ; gIsProDOS only + !source "patchers/fbffpascal.a" ; gIsPascal only !source "patchers/polarware.a" ; gIsProDOS only !source "patchers/sierra.a" ; gIsBoot0 only !source "patchers/corrupter.a" ; T13 only diff --git a/src/patchers/fbffpascal.a b/src/patchers/fbffpascal.a new file mode 100644 index 0000000..9b45d8a --- /dev/null +++ b/src/patchers/fbffpascal.a @@ -0,0 +1,48 @@ +;------------------------------- +; #FBFF +; a variant of Activision's Timing Bit Detection +; linked as an Apple Pascal module +; (soft switches are hard-coded to slot 6) +; +; tested on several 'Courses By Computers' disks: +; Geometry: Simple Closed Curves (1985) +; Multiplication: Advanced Level (1985) +; Basic Fraction Concepts (1985) +;------------------------------- +!zone { + lda gIsPascal ; only seen this protection on Pascal disks + bne .exit + ldy #$26 + jsr SearchTrack + !byte $AD,$E9,$C0; LDA $C0E9 + !byte $A9,$A0 ; LDA #$A0 + !byte $85,$03 ; STA $03 + !byte $A9,$08 ; LDA #$08 + !byte $C6,$02 ; DEC $02 + !byte $D0,$04 ; BNE + + !byte $C6,$03 ; DEC $03 + !byte $F0,$55 ; BEQ +55 + !byte $AC,$EC,$C0; LDY $C0EC + !byte $10,$FB ; BPL - + !byte $C0,$FB ; CPY #$FB + !byte $D0,$ED ; BNE - + !byte $F0,$00 ; BEQ + + !byte $EA ; NOP + !byte $EA ; NOP + !byte $AC,$EC,$C0; LDY $C0EC + !byte $C0,$08 ; CMP #$08 + !byte $2A ; ROL + !byte $B0,$0B ; BCS + + bcs .exit + sta gDisplayBytes + pha + lda #s_fbff + jsr PrintByID + pla + ldy #$03 + jsr modify + ; unconditional jump to success path + !byte $18 ; CLC + !byte $90,$5F ; BCC + +.exit +} diff --git a/src/strings/en.a b/src/strings/en.a index e1c8c4c..3a33481 100755 --- a/src/strings/en.a +++ b/src/strings/en.a @@ -144,7 +144,7 @@ StringTable ; can be set directly before calling PrintByID. ; .header - !text "Passport by 4am 2018-07-03",$00 + !text "Passport by 4am 2018-07-19",$00 .mainmenu !text "________________________________________",$8D,$8D,$8D,$8D,$8D,$8D,$8D !text " "