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

View File

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

View File

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

View File

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