mirror of https://github.com/a2-4am/anti-m.git
129 lines
2.4 KiB
Plaintext
129 lines
2.4 KiB
Plaintext
; IDSI tracer
|
|
; written by qkumba
|
|
;
|
|
; tested on
|
|
; - Juggler
|
|
; - Trick Shot
|
|
;
|
|
IDIDSI
|
|
lda #8
|
|
ldx #1
|
|
ldy #19
|
|
jsr CompareMemory
|
|
!byte $A0,$0E ;LDY #$0E
|
|
!byte $B9,$00,$08 ;LDA $0800,Y
|
|
!byte $49,$AA ;EOR #$AA
|
|
!byte $99,$00,$08 ;STA $0800,Y
|
|
!byte $C8 ;INY
|
|
!byte $D0,$F5 ;BNE *-9
|
|
!byte $0A,$B1,$03 ;encoded
|
|
!byte $D1,$F3,$AA ;encoded
|
|
bcs @exit
|
|
|
|
; patch code to regain control after decryption
|
|
lda #<@callback1 xor $D1
|
|
sta $8ba
|
|
lda #>@callback1 xor $D1
|
|
sta $8bb
|
|
@exit
|
|
rts
|
|
|
|
@callback1
|
|
ldx #$DF
|
|
lda $1057
|
|
cmp #$84
|
|
bne @hook2b
|
|
lda #0
|
|
sta $107C
|
|
sta $10D4
|
|
lda #$2C
|
|
sta $1088
|
|
ldx #$F9
|
|
|
|
@hook2b
|
|
lda #<@callback2
|
|
sta $1000,X
|
|
lda #>@callback2
|
|
sta $1001,X
|
|
|
|
jmp $1000
|
|
|
|
@callback2
|
|
ldy #@tracer2_e-@tracer2
|
|
@copyphase2
|
|
lda @tracer2-1,y
|
|
sta $1C5D-1,y
|
|
dey
|
|
bne @copyphase2
|
|
lda #$5D
|
|
sta $1C2D
|
|
lda #$1C
|
|
sta $1C2E
|
|
jmp $1600
|
|
|
|
@tracer2
|
|
!pseudopc $1C5D {
|
|
@tracer2x
|
|
ldy #@tracer3_e-@tracer3
|
|
@copyphase3
|
|
lda @tracer3-1,y
|
|
sta $BF00-1,y
|
|
dey
|
|
bne @copyphase3
|
|
lda #$BF
|
|
sta $4FB
|
|
jmp $103
|
|
|
|
@tracer3
|
|
!pseudopc $BF00 {
|
|
@tracer3x
|
|
lda $196
|
|
sta @cb3patch1+1
|
|
sta @cb3patch2+1
|
|
sta @cb3patch3+1
|
|
sta @cb3patch4+1
|
|
ldx $197
|
|
stx @cb3patch3+2
|
|
stx @cb3patch4+2
|
|
dex
|
|
stx @cb3patch1+2
|
|
stx @cb3patch2+2
|
|
lda #<@callback3
|
|
sta $196
|
|
lda #>@callback3
|
|
sta $197
|
|
jmp $100
|
|
@callback3
|
|
|
|
@cb3patch
|
|
ldx #$FB
|
|
@cb3patch1
|
|
lda $d1d1,X ;SMC
|
|
cmp #$c0
|
|
bne @cb3jump
|
|
ldy #<((@cb3_end + 1) & -2)
|
|
- tya
|
|
eor $bf00,y
|
|
sta $bf00,y
|
|
iny
|
|
iny
|
|
bne -
|
|
lda #$BF
|
|
@cb3patch2
|
|
sta $d1d1,X ;SMC
|
|
ldx #$37
|
|
lda #$00
|
|
@cb3patch3
|
|
sta $d1d1,X ;SMC
|
|
ldx #$42
|
|
lda #$18
|
|
@cb3patch4
|
|
sta $d1d1,X ;SMC
|
|
@cb3jump
|
|
jmp (@cb3patch3+1)
|
|
@cb3_end
|
|
}
|
|
@tracer3_e
|
|
}
|
|
@tracer2_e
|