passport/src/patchers/meccm7.a

127 lines
3.4 KiB
Plaintext
Executable File

;-------------------------------
; #MECCM7
; MECC fastloader with custom
; address and data prologues
; e.g. Phonics Prime Time series
;-------------------------------
_meccm7
lda #$00
ldx #$00
ldy #$17
jsr compare ; if T00,S00,$00 ==
!byte 01,$4C,$1A,08,$17,$0F,00,00
!byte $0D,$0B,09,07,05,03,01,$0E
!byte $0C,$0A,08,06,04,02,$0F
bcs meccm7_exit
lda #$07
ldx #$7D
ldy #$06
jsr compare ; and T00,S07,$7D ==
!byte $BD,$8C,$C0,$10,$FB,$C9
bcs meccm7_exit
lda #$07
ldx #$84
ldy #$09
jsr compare ; and T00,S07,$84 ==
!byte $D0,$F0,$EA,$BD,$8C,$C0,$10,$FB,$C9
bcs meccm7_exit
lda #$07
ldx #$8E
ldy #$0A
jsr compare ; and T00,S07,$8E ==
!byte $D0,$F2,$A0,03,$BD,$8C,$C0,$10,$FB,$C9
bcs meccm7_exit
lda #$07
ldx #$0F
ldy #$06
jsr compare ; and T00,S07,$0F ==
!byte $BD,$8C,$C0,$10,$FB,$49
bcs meccm7_exit
lda #$07
ldx #$18
ldy #$07
jsr compare ; and T00,S07,$18 ==
!byte $EA,$BD,$8C,$C0,$10,$FB,$C9
bcs meccm7_exit
lda #$07
ldx #$20
ldy #$0A
jsr compare ; and T00,S07,$20 ==
!byte $D0,$F2,$A0,$56,$BD,$8C,$C0,$10,$FB,$C9
bcc meccm7_allclear
meccm7_exit
jmp meccm7_exit2
meccm7_allclear
lda #$07
ldx #$83
ldy #$01
jsr compare ; if T00,S07,$83 !=
!byte $D5
bcc meccm7_addr2
lda #$07
ldx #$83
ldy #$01
jsr modify ; then set T00,S07,$83 =
!byte $D5
meccm7_addr2
lda #$07
ldx #$8D
ldy #$01
jsr compare ; if T00,S07,$8D !=
!byte $AA
bcc meccm7_addr3
lda #$07
ldx #$8D
ldy #$01
jsr modify ; then set T00,S07,$8D =
!byte $AA
meccm7_addr3
lda #$07
ldx #$98
ldy #$01
jsr compare ; if T00,S07,$98 !=
!byte $96
bcc meccm7_data1
lda #$07
ldx #$98
ldy #$01
jsr modify ; then set T00,S07,$98 =
!byte $96
meccm7_data1
lda #$07
ldx #$15
ldy #$01
jsr compare ; if T00,S07,$15 !=
!byte $D5
bcc meccm7_data2
lda #$07
ldx #$15
ldy #$01
jsr modify ; then set T00,S07,$15 =
!byte $D5
meccm7_data2
lda #$07
ldx #$1F
ldy #$01
jsr compare ; if T00,S07,$1F !=
!byte $AA
bcc meccm7_data3
lda #$07
ldx #$1F
ldy #$01
jsr modify ; then set T00,S07,$1F =
!byte $AA
meccm7_data3
lda #$07
ldx #$2A
ldy #$01
jsr compare ; if T00,S07,$2A !=
!byte $AD
bcc meccm7_exit2
lda #$07
ldx #$2A
ldy #$01
jsr modify ; then set T00,S07,$2A =
!byte $AD
meccm7_exit2