mirror of
https://github.com/a2-4am/passport.git
synced 2025-01-11 01:29:56 +00:00
Merge pull request #94 from peterferrie/master
support Basham protection
This commit is contained in:
commit
647616882f
@ -64,6 +64,10 @@
|
|||||||
; set in IDBootloader() after reading T00,S00
|
; set in IDBootloader() after reading T00,S00
|
||||||
|
|
||||||
FIRSTFILTER
|
FIRSTFILTER
|
||||||
|
;gIsDiversi
|
||||||
|
!byte FALSE ; 0=true, 1=false
|
||||||
|
; reset before each operation
|
||||||
|
; set in IDBootloader() after reading T00,S00
|
||||||
;gIsPhoenix
|
;gIsPhoenix
|
||||||
!byte FALSE ; 0=true, 1=false
|
!byte FALSE ; 0=true, 1=false
|
||||||
; reset before each operation
|
; reset before each operation
|
||||||
|
@ -101,9 +101,10 @@ gIsRDOS13 = gIsDavidson-$01 ; byte
|
|||||||
gIsMUSERWTS = gIsRDOS13-$01 ; byte
|
gIsMUSERWTS = gIsRDOS13-$01 ; byte
|
||||||
gIsHolle = gIsMUSERWTS-$01 ; byte
|
gIsHolle = gIsMUSERWTS-$01 ; byte
|
||||||
gIsPhoenix = gIsHolle-$01 ; byte
|
gIsPhoenix = gIsHolle-$01 ; byte
|
||||||
|
gIsDiversi = gIsPhoenix-$01 ; byte
|
||||||
;LASTFILTER ; add new gIs* above this line
|
;LASTFILTER ; add new gIs* above this line
|
||||||
;gIsInfocom18 is a special case whose ID is not in the regular inspection path
|
;gIsInfocom18 is a special case whose ID is not in the regular inspection path
|
||||||
gIsInfocom18 = gIsPhoenix-$01 ; byte
|
gIsInfocom18 = gIsDiversi-$01 ; byte
|
||||||
;gIs13Sector is a special case whose ID is not in the regular inspection path
|
;gIs13Sector is a special case whose ID is not in the regular inspection path
|
||||||
gIs13Sector = gIsInfocom18-$01 ; byte
|
gIs13Sector = gIsInfocom18-$01 ; byte
|
||||||
;gMECCFastloadType is a special case integer whose default value cannot be #FALSE
|
;gMECCFastloadType is a special case integer whose default value cannot be #FALSE
|
||||||
@ -177,6 +178,7 @@ ConstructStandardDelivery = jConstructStandardDelivery
|
|||||||
!warn "gIsMUSERWTS=",gIsMUSERWTS
|
!warn "gIsMUSERWTS=",gIsMUSERWTS
|
||||||
!warn "gIsHolle=",gIsHolle
|
!warn "gIsHolle=",gIsHolle
|
||||||
!warn "gIsPhoenix=",gIsPhoenix
|
!warn "gIsPhoenix=",gIsPhoenix
|
||||||
|
!warn "gIsDiversi=",gIsDiversi
|
||||||
!warn "gIsRDOS13=",gIsRDOS13
|
!warn "gIsRDOS13=",gIsRDOS13
|
||||||
!warn "gIsInfocom18=",gIsInfocom18
|
!warn "gIsInfocom18=",gIsInfocom18
|
||||||
!warn "gIs13Sector=",gIs13Sector
|
!warn "gIs13Sector=",gIs13Sector
|
||||||
|
@ -17,5 +17,10 @@ IDDiversi
|
|||||||
ldy #$0B
|
ldy #$0B
|
||||||
jsr compare ; if T00,S00,$F1 ==
|
jsr compare ; if T00,S00,$F1 ==
|
||||||
!byte $B3,$A3,$A0,$D2,$CF,$D2,$D2,$C5,$8D,$87,$8D
|
!byte $B3,$A3,$A0,$D2,$CF,$D2,$D2,$C5,$8D,$87,$8D
|
||||||
|
bcs .no
|
||||||
|
lda #TRUE
|
||||||
|
sta gIsDiversi
|
||||||
|
|
||||||
|
.no
|
||||||
rts ; passport-test-suite/Moon Bingo.woz [C=0] matches
|
rts ; passport-test-suite/Moon Bingo.woz [C=0] matches
|
||||||
}
|
}
|
||||||
|
@ -802,6 +802,7 @@ _applyToAll
|
|||||||
!source "patchers/zoomgrafix.a" ; gIsPhoenix only
|
!source "patchers/zoomgrafix.a" ; gIsPhoenix only
|
||||||
!source "patchers/e7everywhere.a" ; gIsBoot0 || gIsProDOS only
|
!source "patchers/e7everywhere.a" ; gIsBoot0 || gIsProDOS only
|
||||||
!source "patchers/choplifter.a" ; gIsChoplifter only
|
!source "patchers/choplifter.a" ; gIsChoplifter only
|
||||||
|
!source "patchers/basham.a" ; gIsDiversi only
|
||||||
|
|
||||||
lda gPatchCount
|
lda gPatchCount
|
||||||
beq .nopatches
|
beq .nopatches
|
||||||
|
38
src/patchers/basham.a
Normal file
38
src/patchers/basham.a
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
;-------------------------------
|
||||||
|
; #BASHAM
|
||||||
|
; obfuscated nibble check
|
||||||
|
; used by Passport Systems
|
||||||
|
;
|
||||||
|
; tested on
|
||||||
|
; - Korg-800 4 Track Midi Sequencer
|
||||||
|
; - MIDI-8 Plus
|
||||||
|
; - Polywriter
|
||||||
|
;-------------------------------
|
||||||
|
!zone {
|
||||||
|
bit gMode ; nothing to do here in verify-only mode
|
||||||
|
bpl .exit
|
||||||
|
lda gIsDiversi ; only if we found Diversi-DOS boot sector earlier
|
||||||
|
bne .exit
|
||||||
|
ldy #14
|
||||||
|
jsr SearchTrack
|
||||||
|
!byte $A0,$0F ; LDY #$0F
|
||||||
|
!byte $B9,$00,$00 ; LDA $0000,Y
|
||||||
|
!byte $99,$E4,$95 ; STA $95E4,Y
|
||||||
|
!byte $88 ; DEY
|
||||||
|
!byte $10,$F7 ; BPL *-9
|
||||||
|
!byte $4C,$E3,$93 ; JMP $93E3
|
||||||
|
bcs .exit
|
||||||
|
sta gDisplayBytes
|
||||||
|
pha
|
||||||
|
lda #s_basham
|
||||||
|
jsr PrintByID
|
||||||
|
txa
|
||||||
|
clc
|
||||||
|
adc #12
|
||||||
|
tax
|
||||||
|
pla
|
||||||
|
ldy #$02
|
||||||
|
jsr modify
|
||||||
|
!byte $99,$8E ; jmp directly to decoder
|
||||||
|
.exit
|
||||||
|
}
|
@ -22,7 +22,7 @@
|
|||||||
; - Star Blazer (Broderbund)
|
; - Star Blazer (Broderbund)
|
||||||
;-------------------------------
|
;-------------------------------
|
||||||
!zone {
|
!zone {
|
||||||
rts ; reachable only via inspect
|
jmp .exit2 ; reachable only via inspect
|
||||||
|
|
||||||
Choplifter
|
Choplifter
|
||||||
lda #$00
|
lda #$00
|
||||||
@ -496,4 +496,6 @@ ReadChoplifter
|
|||||||
rts
|
rts
|
||||||
} ;$5xx
|
} ;$5xx
|
||||||
} ;$Bxxx
|
} ;$Bxxx
|
||||||
|
|
||||||
|
.exit2
|
||||||
}
|
}
|
||||||
|
@ -134,6 +134,7 @@ StringTableLow
|
|||||||
!byte <.diskvol0
|
!byte <.diskvol0
|
||||||
!byte <.e7everywhere
|
!byte <.e7everywhere
|
||||||
!byte <.choplifter
|
!byte <.choplifter
|
||||||
|
!byte <.basham
|
||||||
|
|
||||||
StringTableHigh
|
StringTableHigh
|
||||||
!byte >.header
|
!byte >.header
|
||||||
@ -254,6 +255,7 @@ StringTableHigh
|
|||||||
!byte >.diskvol0
|
!byte >.diskvol0
|
||||||
!byte >.e7everywhere
|
!byte >.e7everywhere
|
||||||
!byte >.choplifter
|
!byte >.choplifter
|
||||||
|
!byte >.basham
|
||||||
|
|
||||||
;
|
;
|
||||||
; Text can contain substitution strings, which
|
; Text can contain substitution strings, which
|
||||||
@ -280,7 +282,7 @@ StringTableHigh
|
|||||||
; can be set directly before calling PrintByID.
|
; can be set directly before calling PrintByID.
|
||||||
;
|
;
|
||||||
.header
|
.header
|
||||||
!text "Passport by 4am 2019-08-28",$00
|
!text "Passport by 4am 2019-10-10",$00
|
||||||
.mainmenu
|
.mainmenu
|
||||||
!text "________________________________________",$8D,$8D,$8D,$8D,$8D,$8D,$8D,$8D
|
!text "________________________________________",$8D,$8D,$8D,$8D,$8D,$8D,$8D,$8D
|
||||||
!text " "
|
!text " "
|
||||||
@ -607,4 +609,6 @@ StringTableHigh
|
|||||||
!text "T%t,S%0 Found E7 Everywhere protection",$8D,$00
|
!text "T%t,S%0 Found E7 Everywhere protection",$8D,$00
|
||||||
.choplifter
|
.choplifter
|
||||||
!text "Roland was here, but he left...",$8D,$00
|
!text "Roland was here, but he left...",$8D,$00
|
||||||
|
.basham
|
||||||
|
!text "T%t,S%0 Found Basham protection",$8D,$00
|
||||||
}
|
}
|
||||||
|
@ -120,4 +120,5 @@ s_hoffman = $72
|
|||||||
s_diskvol0 = $73
|
s_diskvol0 = $73
|
||||||
s_e7everywhere=$74
|
s_e7everywhere=$74
|
||||||
s_choplifter = $75
|
s_choplifter = $75
|
||||||
STRINGCOUNT = $76
|
s_basham = $76
|
||||||
|
STRINGCOUNT = $77
|
||||||
|
Loading…
x
Reference in New Issue
Block a user