anti-m/src/idspiradisc.a

67 lines
1.3 KiB
Plaintext

; SpiraDisc tracer
; written by qkumba
;
; tested on
; - Frogger
; - Jawbreaker ][
; - Lunar Leepers
; - Pest Patrol
;
IDSpiraDisc
lda #8
ldx #1
ldy #12
jsr CompareMemory
!byte $86,$0A ;STA $0A
!byte $8E,WILDCARD,WILDCARD ;STA $xxxx
!byte $8E,WILDCARD,WILDCARD ;STA $xxxx
!byte $90,$78 ;BCC *+$7A
!byte $D0,$01 ;BNE *+$03
bcs @exit
; patch code to regain control after it loads sectors into $B500+
lda #<@callback1
sta $0870
lda #>@callback1
sta $0871
@exit
rts
@callback1
lda $85FF
beq @skip2
lda $B5F9
cmp #$8A
bne +
inc $B5F9
+ lda $B608
cmp #$8A
bne +
inc $B608
+ lda $B618
cmp #$8A
bne +
inc $B618
+
@skip2
; disable ROM checksum-failure branching
lda $B845
cmp #$5C
bne +
lda #0
sta $B845
; and boot PROM checksum-failure branching
sta $B606
lda #$24
sta $B60A
; and slot checksum-failure branching
lda #$FD
sta $BF41
; and slot scanning entirely
lda #$D0
sta $B899
+ jmp $B800