add support for JMPB500 patcher [fixes Starship Commander]

This commit is contained in:
4am 2021-02-10 13:17:01 -05:00
parent 64b4126662
commit cbc5812a52
4 changed files with 38 additions and 2 deletions

View File

@ -113,6 +113,7 @@ AnalyzeT00
!source "../patchers/springboard.a"
!source "../patchers/hoffman.a"
!source "../patchers/datasoft2.a"
!source "../patchers/jmpb500.a"
;add only above this line

View File

@ -1,7 +1,7 @@
;-------------------------------
; #JMPB400
; Boot1 jumps to $B400 for a
; self-decripting nibble check
; self-decrypting nibble check
; that seeks to track $23
; and exits via $9D84 if successful
;

35
src/patchers/jmpb500.a Normal file
View File

@ -0,0 +1,35 @@
;-------------------------------
; #JMPB500
; Boot1 jumps to $B500 for a
; lightly obfuscated nibble check
; that exits via $9D84 if successful
;
; tested on
; Starship Commander (1981, Voyager Software)
;-------------------------------
!zone {
bit gMode ; nothing to do here in verify-only mode
bpl .exit
lda gIsRWTS ; if DOS 3.3-shaped RWTS
bne .exit
lda #$0C
ldx #$84
ldy #$03
jsr compare ; if T00,S0C,$84 ==
!byte $4C,$00,$B5; JMP $B500
bcs .exit
;A is preserved, still #$0C
sta gDisplayBytes+2 ; sector
lda #$B5
sta gDisplayBytes ; address (hi)
lda #$00
sta gDisplayBytes+1 ; address (lo)
lda #s_beforedos
jsr PrintByID
lda #$0C
;X is preserved, still #$84
ldy #$03
jsr modify ; then set T00,$0C,$84 =
!byte $AD,$E9,$B7
.exit
}

View File

@ -284,7 +284,7 @@ StringTableHigh
; can be set directly before calling PrintByID.
;
.header
!text "Passport by 4am 2020-10-17",$00
!text "Passport by 4am 2021-02-10",$00
.mainmenu
!text "________________________________________",$8D,$8D,$8D,$8D,$8D,$8D,$8D,$8D
!text " "