Merge pull request #18 from peterferrie/master

boot from drive 2
This commit is contained in:
4am 2019-04-10 23:18:28 -04:00 committed by GitHub
commit dee9e3a59f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 260 additions and 6 deletions

View File

@ -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"

View File

@ -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
}

View File

@ -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

View File

@ -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