erase serial numbers while cracking Lock-It-Up disks, if present

This commit is contained in:
4am 2021-06-07 17:03:11 -04:00
parent ff6e074bee
commit 3129a8d4e2
4 changed files with 38 additions and 2 deletions

View File

@ -452,6 +452,8 @@ Development (unreleased)
The Desecration, Depreciation Log) The Desecration, Depreciation Log)
- "BB00 protection" renamed to its - "BB00 protection" renamed to its
marketing name "Lock-It-Up" marketing name "Lock-It-Up"
- Serial numbers will be erased while
cracking Lock-It-Up disks, if present
- Update Passport disk to ProDOS 2.4.2 - Update Passport disk to ProDOS 2.4.2
- Matching updates to the - Matching updates to the
[Passport test suite](https://github.com/a2-4am/passport-test-suite) [Passport test suite](https://github.com/a2-4am/passport-test-suite)

View File

@ -1,4 +1,4 @@
;-------------------------------
; #JMPBBFE ; #JMPBBFE
; marketed as 'Lock-It-Up' ; marketed as 'Lock-It-Up'
; boot0 jumps to ($BBFE) instead of ($08FD) ; boot0 jumps to ($BBFE) instead of ($08FD)
@ -135,5 +135,29 @@ _jmpbbfe
jsr modify jsr modify
+ !byte $FD ; SMC (byte offset of new entry point) + !byte $FD ; SMC (byte offset of new entry point)
ldx #$5E
ldy #$02
jsr compare ; check for code that branches over serial number
!byte $D0,$05
bcs .exit
inx
inx
ldy #$05
jsr compare ; see if there is actually a non-zero serial number
!byte $00,$00,$00,$00,$00
bcc .exit ; passport-test-suite/Quadrilaterals.woz [C=1] here
sta gDisplayBytes+5
ldy #4
- lda $1560, y
sta gDisplayBytes, y
lda #0
sta $1560, y
dey
bpl -
lda #s_lockitupserial
jsr PrintByID
.exit .exit
} }

View File

@ -164,6 +164,8 @@ StringTableLow
!byte <.targetcffa !byte <.targetcffa
!byte <.rw18 !byte <.rw18
!byte <.x555 !byte <.x555
!byte <.erasingserialnumber
!byte <.lockitupserial
StringTableHigh StringTableHigh
!byte >.header !byte >.header
@ -311,6 +313,8 @@ StringTableHigh
!byte >.targetcffa !byte >.targetcffa
!byte >.rw18 !byte >.rw18
!byte >.x555 !byte >.x555
!byte >.erasingserialnumber
!byte >.lockitupserial
; ;
; Text can contain substitution strings, which ; Text can contain substitution strings, which
@ -416,6 +420,8 @@ StringTableHigh
!text "accepts any value for the",$00 !text "accepts any value for the",$00
.addressepilogue .addressepilogue
!text "address epilogue ",$00 !text "address epilogue ",$00
.erasingserialnumber
!text "Erasing serial number ",$00
.lockitup .lockitup
!text "@",s_found,"Lock-It-Up protection",$8D !text "@",s_found,"Lock-It-Up protection",$8D
!text "T00,S0A @",s_maybeunreadable,$8D,$00 !text "T00,S0A @",s_maybeunreadable,$8D,$00
@ -582,7 +588,9 @@ StringTableHigh
.decryptrwts .decryptrwts
!text "T00 Decrypting RWTS before writing",$8D,$00 !text "T00 Decrypting RWTS before writing",$8D,$00
.protserial .protserial
!text "T%t,S%3 Erasing serial number %0%1%2",$8D,$00 !text "T%t,S%3 @",s_erasingserialnumber,"%0%1%2",$8D,$00
.lockitupserial
!text "T%t,S%5 @",s_erasingserialnumber,"%0%1%2%3%4",$00
.fbff .fbff
!text "@",s_found,"FBFF @",s_protectioncheck,$8D,$00 !text "@",s_found,"FBFF @",s_protectioncheck,$8D,$00
.encoded44 .encoded44

View File

@ -147,3 +147,5 @@ s_targetfile = $8D
s_targetcffa = $8E s_targetcffa = $8E
s_rw18 = $8F s_rw18 = $8F
s_555 = $90 s_555 = $90
s_erasingserialnumber = $91
s_lockitupserial = $92