mirror of https://github.com/a2-4am/anti-m.git
commit
dee9e3a59f
70
src/anti-m.a
70
src/anti-m.a
|
@ -47,6 +47,8 @@ cmp1 = $F8 ; word
|
|||
cmp2 = $FA ; word
|
||||
tmp = $FC ; byte
|
||||
|
||||
lda #$00
|
||||
sta $85FF ; boot drive 1
|
||||
jsr TEXT
|
||||
lda BUTTON0
|
||||
ora BUTTON1
|
||||
|
@ -54,6 +56,8 @@ tmp = $FC ; byte
|
|||
lda DEVNUM
|
||||
cmp #$60
|
||||
bne Boot
|
||||
jsr CheckDrive2
|
||||
bcc Boot2
|
||||
@showprompt
|
||||
jsr HOME
|
||||
lda MACHINEID
|
||||
|
@ -72,12 +76,16 @@ tmp = $FC ; byte
|
|||
bit STROBE
|
||||
cmp #$8D ; return
|
||||
beq Boot
|
||||
cmp #$B2 ; 2
|
||||
beq Boot2
|
||||
jsr MLI
|
||||
!byte $65
|
||||
!word .quitparm
|
||||
.quitparm
|
||||
!byte $04,$00,$00,$00,$00,$00,$00
|
||||
|
||||
Boot2
|
||||
inc $85FF ; boot drive 2
|
||||
Boot
|
||||
jsr HOME
|
||||
ldx #$00
|
||||
|
@ -87,7 +95,7 @@ Boot
|
|||
bne -
|
||||
lda $865C
|
||||
cmp #$80
|
||||
bne +
|
||||
bne @check2
|
||||
lda #$18
|
||||
sta $865C
|
||||
lda #$08
|
||||
|
@ -102,7 +110,26 @@ Boot
|
|||
stx $86A3
|
||||
dex
|
||||
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
|
||||
ldy $86F8
|
||||
cpy #$4C
|
||||
|
@ -123,6 +150,33 @@ Boot
|
|||
@unknowncontroller
|
||||
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
|
||||
jsr IDBroderbund
|
||||
bcc BeginTheBoot
|
||||
|
@ -185,13 +239,19 @@ StringTable
|
|||
!word @mainmenu
|
||||
|
||||
@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,$8D,$8D,$8D,$8D,$8D,$8D,$8D,$00
|
||||
!text $8D,$8D,$8D,$8D,$00
|
||||
@mainmenu
|
||||
!text " Insert original disk in slot 6 drive 1",$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/idbroderbund.a"
|
||||
|
|
138
src/idboot.a
138
src/idboot.a
|
@ -69,6 +69,8 @@ IDBoot
|
|||
inc $86D2
|
||||
- lda @decode53,y
|
||||
sta $86D5,y
|
||||
lda @decode53+$100,y
|
||||
sta $86D5+$100,y
|
||||
iny
|
||||
bne -
|
||||
lda #$02
|
||||
|
@ -91,10 +93,15 @@ IDBoot
|
|||
tay
|
||||
iny
|
||||
sty @patch53+1
|
||||
ldx #0
|
||||
ldy $8FE
|
||||
tya
|
||||
pha
|
||||
lda #$FF
|
||||
pha
|
||||
iny
|
||||
tya
|
||||
ldx #<@callback53_2
|
||||
ldy #>@callback53_2
|
||||
bne -
|
||||
|
||||
@decode53 !pseudopc $86D5 {
|
||||
|
@ -162,4 +169,133 @@ IDBoot
|
|||
bcs +
|
||||
jmp $865D
|
||||
+ 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
|
||||
ldy #>@BugAttackCallback
|
||||
cmp #$A1
|
||||
beq @hookhybrid
|
||||
ldx #<@DOS33Callback
|
||||
ldy #>@DOS33Callback
|
||||
cmp #$B6
|
||||
bne @jmpdos
|
||||
|
||||
@hookhybrid
|
||||
|
@ -302,6 +306,11 @@ IDBroderbund
|
|||
sta $300-1,y
|
||||
dey
|
||||
bne -
|
||||
lda $85FF
|
||||
sta @SpaceEggsPatch+1
|
||||
beq @skip2a
|
||||
inc $3D60
|
||||
@skip2a
|
||||
+ jmp $3700 ; let it goooo...
|
||||
|
||||
@SpaceEggsCallback3 !pseudopc $300 {
|
||||
|
@ -309,6 +318,11 @@ IDBroderbund
|
|||
jsr $3700
|
||||
pla
|
||||
pla
|
||||
@SpaceEggsPatch
|
||||
lda #$00
|
||||
beq @skip2b
|
||||
inc $5D60
|
||||
@skip2b
|
||||
jsr $5700
|
||||
lda #$EA
|
||||
sta $49C3
|
||||
|
@ -355,6 +369,10 @@ IDBroderbund
|
|||
sta @StarThiefCallback2x-1,y
|
||||
dey
|
||||
bne -
|
||||
lda $85FF
|
||||
beq @skip2c
|
||||
inc $421C
|
||||
@skip2c
|
||||
lda #$4C
|
||||
sta $42C0
|
||||
lda #<@StarThiefCallback2x
|
||||
|
@ -381,8 +399,30 @@ IDBroderbund
|
|||
sta $A2F7
|
||||
lda #>@BugAttackCallback2x
|
||||
sta $A2F8
|
||||
lda $85FF
|
||||
beq @skip2d
|
||||
inc $A234
|
||||
@skip2d
|
||||
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 {
|
||||
@StarThiefCallback2x
|
||||
lda #$4C
|
||||
|
|
|
@ -29,6 +29,24 @@ IDSpiraDisc
|
|||
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
|
||||
|
|
Loading…
Reference in New Issue