From 6d214412771a8ff1e752ef2216cfda402457b6c6 Mon Sep 17 00:00:00 2001
From: Peter Ferrie <peter.ferrie@gmail.com>
Date: Fri, 28 Sep 2018 10:46:48 -0700
Subject: [PATCH] support Battle Group secondary prot

and a bit smaller code
---
 src/patchers/ea.a       |  2 +-
 src/patchers/sierra.a   | 12 ++++++------
 src/patchers/sierra13.a |  6 +++---
 src/patchers/ssi.a      | 20 ++++++++++++++++++--
 4 files changed, 28 insertions(+), 12 deletions(-)

diff --git a/src/patchers/ea.a b/src/patchers/ea.a
index 60e675a..1903984 100644
--- a/src/patchers/ea.a
+++ b/src/patchers/ea.a
@@ -420,7 +420,7 @@
          ldy   #1
          jsr   modify
          !byte $BB         ;new checksum value for eor
-         jmp   +
+         bvc   +
 ++       ldy   #1
          jsr   compare
          !byte $DB
diff --git a/src/patchers/sierra.a b/src/patchers/sierra.a
index edb3aec..5775a98 100755
--- a/src/patchers/sierra.a
+++ b/src/patchers/sierra.a
@@ -343,7 +343,7 @@
          ldy   #$01
          jsr   modify
          !byte $F8 ;checksum
-         jmp   .exit
+         bvc   .jmpexit
 
 +        ldy   #19
          jsr   SearchTrack
@@ -357,7 +357,7 @@
          !byte $A9,$00     ;LDA #$00
          !byte $AA         ;TAX
          !byte $9D,$00,$01 ;STA $0100,X
-         bcs   +
+         bcs   .jmpexit
          pha
          lda   #s_tamper
          jsr   PrintByID
@@ -368,13 +368,13 @@
          ldy   #$01
          jsr   modify
          !byte $19 ;checksum
-+        jmp   .exit
+.jmpexit
+         jmp   .exit
 
 .dosearch
          lda   gIsBoot0
-         beq   +
-         jmp   .exit
-+        ldy   #15
+         bne   .jmpexit
+         ldy   #15
          jsr   SearchTrack
          !byte $CE,WILDCARD,WILDCARD ;DEC $xxxx
          !byte $EF,WILDCARD,WILDCARD ;mod->INC $xxxx
diff --git a/src/patchers/sierra13.a b/src/patchers/sierra13.a
index 77c4c46..0558a65 100644
--- a/src/patchers/sierra13.a
+++ b/src/patchers/sierra13.a
@@ -87,7 +87,7 @@
          ldy   #2
          jsr   modify
          !byte $A0,$B9
-         jmp   .exit
+         bvc   .jmpexit
 
          ;Threshold secondary protection
 
@@ -108,7 +108,7 @@
          ldy   #$01
          jsr   modify
          !byte $FC
-         jmp   .exit
+         bvc   .exit
 
          ;Missile Defense
 
@@ -132,7 +132,7 @@
          ldy   #$01
          jsr   modify
          !byte $2C ;LDA
-         jmp   .exit
+         bvc   .exit
 
          ;Cranston Manor, etc.
 
diff --git a/src/patchers/ssi.a b/src/patchers/ssi.a
index 8425c65..e0c2694 100644
--- a/src/patchers/ssi.a
+++ b/src/patchers/ssi.a
@@ -1,5 +1,6 @@
 ;-------------------------------
-; #SSI Weak-bit protection
+; #SSI protections
+; weak bit, magic values
 ;
 ; module by qkumba
 ;-------------------------------
@@ -19,7 +20,7 @@
          !byte $C1,$00    ; CMP ($00,X)
          !byte $EA        ; NOP
          !byte $EA        ; NOP
-         bcs   .exit
+         bcs   +
 
          sta   gDisplayBytes
          pha
@@ -29,6 +30,21 @@
          ldy   #$01
          jsr   modify
          !byte $A9        ; LDA #$..
+         bvc   .exit
+
++
+         ldy   #$0E
+         jsr   SearchTrack
+         !byte $CE,$07,$02; DEC $0207
+         !byte $EF,$07,$02; ??? $0207
+         !byte $A0,$27    ; LDY #$27
+         !byte $D0,$02    ; BNE *+4
+         !byte $00        ; BRK
+         !byte $6C,$B9,$00; JMP ($00B9)
+         bcs   .exit
+         ldy   #1
+         jsr   modify
+         !byte $60        ; RTS
 
 .exit
 }