mirror of
https://github.com/a2-4am/anti-m.git
synced 2024-06-15 08:29:33 +00:00
commit
dee9e3a59f
70
src/anti-m.a
70
src/anti-m.a
|
@ -47,6 +47,8 @@ cmp1 = $F8 ; word
|
||||||
cmp2 = $FA ; word
|
cmp2 = $FA ; word
|
||||||
tmp = $FC ; byte
|
tmp = $FC ; byte
|
||||||
|
|
||||||
|
lda #$00
|
||||||
|
sta $85FF ; boot drive 1
|
||||||
jsr TEXT
|
jsr TEXT
|
||||||
lda BUTTON0
|
lda BUTTON0
|
||||||
ora BUTTON1
|
ora BUTTON1
|
||||||
|
@ -54,6 +56,8 @@ tmp = $FC ; byte
|
||||||
lda DEVNUM
|
lda DEVNUM
|
||||||
cmp #$60
|
cmp #$60
|
||||||
bne Boot
|
bne Boot
|
||||||
|
jsr CheckDrive2
|
||||||
|
bcc Boot2
|
||||||
@showprompt
|
@showprompt
|
||||||
jsr HOME
|
jsr HOME
|
||||||
lda MACHINEID
|
lda MACHINEID
|
||||||
|
@ -72,12 +76,16 @@ tmp = $FC ; byte
|
||||||
bit STROBE
|
bit STROBE
|
||||||
cmp #$8D ; return
|
cmp #$8D ; return
|
||||||
beq Boot
|
beq Boot
|
||||||
|
cmp #$B2 ; 2
|
||||||
|
beq Boot2
|
||||||
jsr MLI
|
jsr MLI
|
||||||
!byte $65
|
!byte $65
|
||||||
!word .quitparm
|
!word .quitparm
|
||||||
.quitparm
|
.quitparm
|
||||||
!byte $04,$00,$00,$00,$00,$00,$00
|
!byte $04,$00,$00,$00,$00,$00,$00
|
||||||
|
|
||||||
|
Boot2
|
||||||
|
inc $85FF ; boot drive 2
|
||||||
Boot
|
Boot
|
||||||
jsr HOME
|
jsr HOME
|
||||||
ldx #$00
|
ldx #$00
|
||||||
|
@ -87,7 +95,7 @@ Boot
|
||||||
bne -
|
bne -
|
||||||
lda $865C
|
lda $865C
|
||||||
cmp #$80
|
cmp #$80
|
||||||
bne +
|
bne @check2
|
||||||
lda #$18
|
lda #$18
|
||||||
sta $865C
|
sta $865C
|
||||||
lda #$08
|
lda #$08
|
||||||
|
@ -102,7 +110,26 @@ Boot
|
||||||
stx $86A3
|
stx $86A3
|
||||||
dex
|
dex
|
||||||
stx $86A5
|
stx $86A5
|
||||||
+ lda #<Tracer
|
@check2
|
||||||
|
lda $85FF
|
||||||
|
beq @skip2
|
||||||
|
ldx #$C8
|
||||||
|
lda $860F
|
||||||
|
cmp #$5A
|
||||||
|
bne +
|
||||||
|
lda #$EA
|
||||||
|
sta $860F
|
||||||
|
stx $8616 ;select drive 2 on IIc
|
||||||
|
+ lda $8619
|
||||||
|
cmp #$78
|
||||||
|
bne +
|
||||||
|
stx $8619 ;select drive 2 on IIGS
|
||||||
|
+ lda $8636
|
||||||
|
cmp #$8A
|
||||||
|
bne @skip2
|
||||||
|
inc $8636 ;select drive 2 on II
|
||||||
|
@skip2
|
||||||
|
lda #<Tracer
|
||||||
ldx #>Tracer
|
ldx #>Tracer
|
||||||
ldy $86F8
|
ldy $86F8
|
||||||
cpy #$4C
|
cpy #$4C
|
||||||
|
@ -123,6 +150,33 @@ Boot
|
||||||
@unknowncontroller
|
@unknowncontroller
|
||||||
jmp $C600
|
jmp $C600
|
||||||
|
|
||||||
|
CheckDrive2
|
||||||
|
lda $C0E9
|
||||||
|
lda $C0EB
|
||||||
|
ldy #6
|
||||||
|
-- ldx #$11
|
||||||
|
- dex
|
||||||
|
bne -
|
||||||
|
sec
|
||||||
|
sbc #1
|
||||||
|
bne --
|
||||||
|
dey
|
||||||
|
bpl --
|
||||||
|
ldy #0
|
||||||
|
- lda $C0EC
|
||||||
|
jsr @knownret
|
||||||
|
pha
|
||||||
|
pla
|
||||||
|
cmp $C0EC
|
||||||
|
clc
|
||||||
|
bne +
|
||||||
|
dey
|
||||||
|
bne -
|
||||||
|
sec
|
||||||
|
+ lda $C0E8
|
||||||
|
@knownret
|
||||||
|
rts
|
||||||
|
|
||||||
Tracer
|
Tracer
|
||||||
jsr IDBroderbund
|
jsr IDBroderbund
|
||||||
bcc BeginTheBoot
|
bcc BeginTheBoot
|
||||||
|
@ -185,13 +239,19 @@ StringTable
|
||||||
!word @mainmenu
|
!word @mainmenu
|
||||||
|
|
||||||
@header
|
@header
|
||||||
!text "Anti-M v1.2 by 4am 2019-03-24"
|
!text "Anti-M v1.3-pre by 4am 2019-04-10"
|
||||||
!text "________________________________________",$8D
|
!text "________________________________________",$8D
|
||||||
!text $8D,$8D,$8D,$8D,$8D,$8D,$8D,$8D,$00
|
!text $8D,$8D,$8D,$8D,$00
|
||||||
@mainmenu
|
@mainmenu
|
||||||
!text " Insert original disk in slot 6 drive 1",$8D
|
!text " Insert original disk in slot 6 drive 1",$8D
|
||||||
!text $8D
|
!text $8D
|
||||||
!text " and press <RETURN> to boot",$00
|
!text " and press <RETURN> to boot",$8D
|
||||||
|
!text $8D
|
||||||
|
!text " or",$8D
|
||||||
|
!text $8D
|
||||||
|
!text " Insert original disk in slot 6 drive 2",$8D
|
||||||
|
!text $8D
|
||||||
|
!text " and press 2 to boot",$00
|
||||||
|
|
||||||
!src "src/compare.a"
|
!src "src/compare.a"
|
||||||
!src "src/idbroderbund.a"
|
!src "src/idbroderbund.a"
|
||||||
|
|
138
src/idboot.a
138
src/idboot.a
|
@ -69,6 +69,8 @@ IDBoot
|
||||||
inc $86D2
|
inc $86D2
|
||||||
- lda @decode53,y
|
- lda @decode53,y
|
||||||
sta $86D5,y
|
sta $86D5,y
|
||||||
|
lda @decode53+$100,y
|
||||||
|
sta $86D5+$100,y
|
||||||
iny
|
iny
|
||||||
bne -
|
bne -
|
||||||
lda #$02
|
lda #$02
|
||||||
|
@ -91,10 +93,15 @@ IDBoot
|
||||||
tay
|
tay
|
||||||
iny
|
iny
|
||||||
sty @patch53+1
|
sty @patch53+1
|
||||||
ldx #0
|
|
||||||
ldy $8FE
|
ldy $8FE
|
||||||
|
tya
|
||||||
|
pha
|
||||||
|
lda #$FF
|
||||||
|
pha
|
||||||
iny
|
iny
|
||||||
tya
|
tya
|
||||||
|
ldx #<@callback53_2
|
||||||
|
ldy #>@callback53_2
|
||||||
bne -
|
bne -
|
||||||
|
|
||||||
@decode53 !pseudopc $86D5 {
|
@decode53 !pseudopc $86D5 {
|
||||||
|
@ -162,4 +169,133 @@ IDBoot
|
||||||
bcs +
|
bcs +
|
||||||
jmp $865D
|
jmp $865D
|
||||||
+ jmp ($44)
|
+ jmp ($44)
|
||||||
|
|
||||||
|
@CompareMemoryRel
|
||||||
|
sta cmp1+1
|
||||||
|
stx cmp1
|
||||||
|
pla
|
||||||
|
sta cmp2
|
||||||
|
pla
|
||||||
|
sta cmp2+1
|
||||||
|
tax
|
||||||
|
tya
|
||||||
|
clc
|
||||||
|
adc cmp2
|
||||||
|
bcc +
|
||||||
|
inx
|
||||||
|
+ sta tmp
|
||||||
|
txa
|
||||||
|
pha
|
||||||
|
lda tmp
|
||||||
|
pha
|
||||||
|
.cmp
|
||||||
|
lda (cmp2),y
|
||||||
|
dey
|
||||||
|
bmi .success
|
||||||
|
cmp (cmp1),y
|
||||||
|
beq .cmp
|
||||||
|
cmp #WILDCARD
|
||||||
|
beq .cmp
|
||||||
|
sec
|
||||||
|
!byte $24 ; hide CLC
|
||||||
|
.success clc
|
||||||
|
lda cmp1+1
|
||||||
|
ldx cmp1
|
||||||
|
rts
|
||||||
|
|
||||||
|
@callback53_2
|
||||||
|
lda $85FF
|
||||||
|
beq @skip2
|
||||||
|
lda #$29
|
||||||
|
ldx #$6E
|
||||||
|
ldy #8
|
||||||
|
jsr @CompareMemoryRel
|
||||||
|
!byte $BD,$8A,$C0 ;LDA $C08A,X
|
||||||
|
!byte $B0,$03 ;BCS *+5
|
||||||
|
!byte $BD,$8B,$C0 ;LDA $C08B,X
|
||||||
|
bcs @notinfocom
|
||||||
|
inc $296F
|
||||||
|
@skip2
|
||||||
|
rts
|
||||||
|
|
||||||
|
@notinfocom
|
||||||
|
lda #$3D
|
||||||
|
ldx #$5F
|
||||||
|
ldy #8
|
||||||
|
jsr @CompareMemoryRel
|
||||||
|
!byte $BD,$8A,$C0 ;LDA $C08A,X
|
||||||
|
!byte $B0,$03 ;BCS *+5
|
||||||
|
!byte $BD,$8B,$C0 ;LDA $C08B,X
|
||||||
|
bcs @notdos32a
|
||||||
|
inc $3D60
|
||||||
|
ldx #$60
|
||||||
|
rts
|
||||||
|
|
||||||
|
@notdos32a
|
||||||
|
lda #$BD
|
||||||
|
ldx #$6E
|
||||||
|
ldy #8
|
||||||
|
jsr @CompareMemoryRel
|
||||||
|
!byte $BD,$8A,$C0 ;LDA $C08A,X
|
||||||
|
!byte $B0,$03 ;BCS *+5
|
||||||
|
!byte $BD,$8B,$C0 ;LDA $C08B,X
|
||||||
|
bcs @notdos32b
|
||||||
|
inc $BD6F
|
||||||
|
ldx #$60
|
||||||
|
rts
|
||||||
|
|
||||||
|
@notdos32b
|
||||||
|
lda #$3D
|
||||||
|
ldx #$6E
|
||||||
|
ldy #8
|
||||||
|
jsr @CompareMemoryRel
|
||||||
|
!byte $BD,$8A,$C0 ;LDA $C08A,X
|
||||||
|
!byte $B0,$03 ;BCS *+5
|
||||||
|
!byte $BD,$8B,$C0 ;LDA $C08B,X
|
||||||
|
bcs @notdos32c
|
||||||
|
inc $3D6F
|
||||||
|
ldx #$60
|
||||||
|
rts
|
||||||
|
|
||||||
|
@notdos32c
|
||||||
|
lda #$BD
|
||||||
|
ldx #$5F
|
||||||
|
ldy #8
|
||||||
|
jsr @CompareMemoryRel
|
||||||
|
!byte $BD,$8A,$C0 ;LDA $C08A,X
|
||||||
|
!byte $B0,$03 ;BCS *+5
|
||||||
|
!byte $BD,$8B,$C0 ;LDA $C08B,X
|
||||||
|
bcs @notdos32d
|
||||||
|
inc $BD60
|
||||||
|
ldx #$60
|
||||||
|
rts
|
||||||
|
|
||||||
|
@notdos32d
|
||||||
|
lda #$24
|
||||||
|
ldx #$6E
|
||||||
|
ldy #8
|
||||||
|
jsr @CompareMemoryRel
|
||||||
|
!byte $BD,$8A,$C0 ;LDA $C08A,X
|
||||||
|
!byte $B0,$03 ;BCS *+5
|
||||||
|
!byte $BD,$8B,$C0 ;LDA $C08B,X
|
||||||
|
bcs @notdos32e
|
||||||
|
inc $246F
|
||||||
|
ldx #$60
|
||||||
|
rts
|
||||||
|
|
||||||
|
@notdos32e
|
||||||
|
lda #$7D
|
||||||
|
ldx #$5F
|
||||||
|
ldy #8
|
||||||
|
jsr @CompareMemoryRel
|
||||||
|
!byte $BD,$8A,$C0 ;LDA $C08A,X
|
||||||
|
!byte $B0,$03 ;BCS *+5
|
||||||
|
!byte $BD,$8B,$C0 ;LDA $C08B,X
|
||||||
|
bcs @notdos32f
|
||||||
|
inc $7D60
|
||||||
|
ldx #$60
|
||||||
|
rts
|
||||||
|
|
||||||
|
@notdos32f
|
||||||
|
rts
|
||||||
}
|
}
|
||||||
|
|
|
@ -258,6 +258,10 @@ IDBroderbund
|
||||||
ldx #<@BugAttackCallback
|
ldx #<@BugAttackCallback
|
||||||
ldy #>@BugAttackCallback
|
ldy #>@BugAttackCallback
|
||||||
cmp #$A1
|
cmp #$A1
|
||||||
|
beq @hookhybrid
|
||||||
|
ldx #<@DOS33Callback
|
||||||
|
ldy #>@DOS33Callback
|
||||||
|
cmp #$B6
|
||||||
bne @jmpdos
|
bne @jmpdos
|
||||||
|
|
||||||
@hookhybrid
|
@hookhybrid
|
||||||
|
@ -302,6 +306,11 @@ IDBroderbund
|
||||||
sta $300-1,y
|
sta $300-1,y
|
||||||
dey
|
dey
|
||||||
bne -
|
bne -
|
||||||
|
lda $85FF
|
||||||
|
sta @SpaceEggsPatch+1
|
||||||
|
beq @skip2a
|
||||||
|
inc $3D60
|
||||||
|
@skip2a
|
||||||
+ jmp $3700 ; let it goooo...
|
+ jmp $3700 ; let it goooo...
|
||||||
|
|
||||||
@SpaceEggsCallback3 !pseudopc $300 {
|
@SpaceEggsCallback3 !pseudopc $300 {
|
||||||
|
@ -309,6 +318,11 @@ IDBroderbund
|
||||||
jsr $3700
|
jsr $3700
|
||||||
pla
|
pla
|
||||||
pla
|
pla
|
||||||
|
@SpaceEggsPatch
|
||||||
|
lda #$00
|
||||||
|
beq @skip2b
|
||||||
|
inc $5D60
|
||||||
|
@skip2b
|
||||||
jsr $5700
|
jsr $5700
|
||||||
lda #$EA
|
lda #$EA
|
||||||
sta $49C3
|
sta $49C3
|
||||||
|
@ -355,6 +369,10 @@ IDBroderbund
|
||||||
sta @StarThiefCallback2x-1,y
|
sta @StarThiefCallback2x-1,y
|
||||||
dey
|
dey
|
||||||
bne -
|
bne -
|
||||||
|
lda $85FF
|
||||||
|
beq @skip2c
|
||||||
|
inc $421C
|
||||||
|
@skip2c
|
||||||
lda #$4C
|
lda #$4C
|
||||||
sta $42C0
|
sta $42C0
|
||||||
lda #<@StarThiefCallback2x
|
lda #<@StarThiefCallback2x
|
||||||
|
@ -381,8 +399,30 @@ IDBroderbund
|
||||||
sta $A2F7
|
sta $A2F7
|
||||||
lda #>@BugAttackCallback2x
|
lda #>@BugAttackCallback2x
|
||||||
sta $A2F8
|
sta $A2F8
|
||||||
|
lda $85FF
|
||||||
|
beq @skip2d
|
||||||
|
inc $A234
|
||||||
|
@skip2d
|
||||||
jmp $A200
|
jmp $A200
|
||||||
|
|
||||||
|
@DOS33Callback
|
||||||
|
lda $85FF
|
||||||
|
beq @skip2e
|
||||||
|
lda #$BD
|
||||||
|
ldx #$5F
|
||||||
|
ldy #8
|
||||||
|
jsr CompareMemory
|
||||||
|
!byte $BD,$8A,$C0 ;LDA $C08A,X
|
||||||
|
!byte $B0,$03 ;BCS *+5
|
||||||
|
!byte $BD,$8B,$C0 ;LDA $C08B,X
|
||||||
|
bcs @notdos33
|
||||||
|
inc $BD60
|
||||||
|
|
||||||
|
@notdos33
|
||||||
|
@skip2e
|
||||||
|
ldx #$60
|
||||||
|
jmp $B700
|
||||||
|
|
||||||
@StarThiefCallback2 !pseudopc $110 {
|
@StarThiefCallback2 !pseudopc $110 {
|
||||||
@StarThiefCallback2x
|
@StarThiefCallback2x
|
||||||
lda #$4C
|
lda #$4C
|
||||||
|
|
|
@ -29,6 +29,24 @@ IDSpiraDisc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
@callback1
|
@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
|
; disable ROM checksum-failure branching
|
||||||
lda $B845
|
lda $B845
|
||||||
cmp #$5C
|
cmp #$5C
|
||||||
|
|
Loading…
Reference in New Issue
Block a user