From b90f60349bd6d9a863d56388e1dbe7f8e8fa7858 Mon Sep 17 00:00:00 2001 From: 4am Date: Sun, 21 May 2017 13:59:36 -0400 Subject: [PATCH] add support for BBF9 desync protection check seen in late 80s / early 90s Sunburst disks --- src/passport.a | 1 + src/patchers/bbf9.a | 40 ++++++++++++++++++++++++++++++++++++++++ src/strings/en.a | 8 ++++++-- 3 files changed, 47 insertions(+), 2 deletions(-) create mode 100644 src/patchers/bbf9.a diff --git a/src/passport.a b/src/passport.a index 5e9728f..d7d2a2f 100755 --- a/src/passport.a +++ b/src/passport.a @@ -713,6 +713,7 @@ _applyToAll !source "patchers/prodosrwts.a" ; gIsProDOS only !source "patchers/prodos6a.a" ; gIsProDOS only !source "patchers/prodosmecc.a" ; gIsProDOS only + !source "patchers/bbf9.a" ; gIsProDOS only !source "patchers/rwtsswapmecc.a" ; gIsMECCFastloader only !source "patchers/protecteddos.a" ; gIsProtDOS only !source "patchers/fbff.a" diff --git a/src/patchers/bbf9.a b/src/patchers/bbf9.a new file mode 100644 index 0000000..52b5900 --- /dev/null +++ b/src/patchers/bbf9.a @@ -0,0 +1,40 @@ +;------------------------------- +; #BBF9 +; patch nibble check seen in +; Sunburst disks 1988 and later +; +; see write-up of 4am crack +; no. 1165 Muppet Slate +; +; tested on +; Muppet Slate (1988) +; Memory Building Blocks (1989) +; Odd One Out (1989) +; Regrouping (1989) +; Simon Says (1989) +; Teddy and Iggy (1990) +; 1-2-3 Sequence Me (1991) +;------------------------------- +!zone { + lda gIsProDOS + bne .exit + ldy #$0E + jsr SearchTrack + !byte $A6,WILDCARD + !byte $BD,$89,$C0 + !byte $BD,$8E,$C0 + !byte $18 + !byte $A5,WILDCARD + !byte $69,$8C + !byte $8D + bcs .exit + sta gDisplayBytes + pha + lda #s_bbf9 + jsr PrintByID + pla + ldy #$02 + jsr modify + !byte $18,$60 +.exit +} diff --git a/src/strings/en.a b/src/strings/en.a index ce620df..7bc7861 100755 --- a/src/strings/en.a +++ b/src/strings/en.a @@ -98,7 +98,8 @@ s_diversidos = $4F s_prontodos = $50 s_jmpb412 = $51 s_laureate = $52 -STRINGCOUNT = $53 +s_bbf9 = $53 +STRINGCOUNT = $54 !zone { StringTable @@ -185,6 +186,7 @@ StringTable !word .prontodos !word .jmpb412 !word .laureate + !word .bbf9 ; ; Text can contain substitution strings, which ; are replaced by current values at runtime. Each @@ -210,7 +212,7 @@ StringTable ; can be set directly before calling PrintByID. ; .header - !text "Passport by 4am 2017-05-16",00 + !text "Passport by 4am 2017-05-21",00 .mainmenu !text "________________________________________",$8D,$8D,$8D,$8D,$8D,$8D,$8D !text " " @@ -466,4 +468,6 @@ StringTable !text "at $B412 before initializing DOS.",$8D,00 .laureate !text "T00,S00 Found Laureate bootloader",$8D,00 +.bbf9 + !text "T%t,S%0 Found BBF9 protection check",$8D,00 }