passport/src/patchers/jmpb4bb.a

88 lines
2.2 KiB
Plaintext
Executable File

;-------------------------------
; #JMPB4BB
; boot2 jumps to $B4BB for a nibble check
;
; tested on
; - Alibi
; - Bellhop
; - Championship Golf
; - College Board 81-82 demo
; - Compu-Math v1.3.1
; - Conglomerates Collide
; - Crime Stopper
; - Crystal Caverns
; - Early Games - Music
; - Energy Conversions
; - Kamikaze
; - King Cribbage
; - Krell's Logo (first release)
; - Laser Bounce
; - Latin Tutor
; - Max Command
; - Microscopic Journey
; - MultiPloy (first release)
; - Mummy's Curse
; - Prisoner 2 v1.0
; - Property Management System demo
; - RAF - The Battle of Britain
; - Rhymes and Riddles
; - Rubik's Cube Unlocked
; - Shuttle Intercept
; - Snooper Troops 1
; - The Brain Surgeon
; - The Counting Bee v1.2
; - The Final Conflict
; - The Great Maine to California Race
; - Time Traveler (first release)
; - Troll's Tale (first release)
; - Wargle
; - Winged Samurai
;-------------------------------
!zone {
lda gTrack
cmp #$02
bne .exit
lda #$03
ldx gIsDOS32
bne +
lda #$0A
+
ldx #$D7
ldy #$04
jsr compare ; and T02,S0x,$D7 ==
!byte $D8 ; CLD
!byte $AD,$FF,$CF; LDA $CFFF
bcc .found ; passport-test-suite/Kamikaze.woz [C=0] matches
ldx #$DD
jsr compare ; or T02,S0x,$DD ==
!byte $D8 ; CLD
!byte $AD,$FF,$CF; LDA $CFFF
bcs .exit ; passport-test-suite/Snooper Troops Case 2.woz [C=0] matches
.found
ldy #$B4
sty gDisplayBytes+1 ; address (hi)
ldy #$BB
sty gDisplayBytes+2 ; address (lo)
jsr PrintByID
!byte s_beforedos
inx
jsr modify3 ; then set offset+1 to
!byte $4C,$84,$9D
ldx #$19
ldy #$05
jsr compare ; if T02,S0x,$19 ==
!byte $AE,$07,$B7; LDX $B707
!byte $8E,$55 ; STX $xx55
bcs .exit ; passport-test-suite/Half Time.woz [C=0] matches
inx
inx
inx
jsr modify1 ; disable optional RWTS swapper
!byte $2C
.exit
}