From 7544097c24ee03ff0b5b418ca3048d92b371f5d2 Mon Sep 17 00:00:00 2001 From: Peter Ferrie Date: Tue, 9 Apr 2019 17:10:48 -0700 Subject: [PATCH 1/6] boot from drive 2 --- src/anti-m.a | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/anti-m.a b/src/anti-m.a index 13451d0..916a710 100644 --- a/src/anti-m.a +++ b/src/anti-m.a @@ -102,6 +102,21 @@ Boot stx $86A3 dex stx $86A5 + 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 + + inc $8636 ;select drive 2 on II + lda #Tracer ldy $86F8 @@ -185,7 +200,7 @@ StringTable !word @mainmenu @header - !text "Anti-M v1.2 by 4am 2019-03-24" + !text "Anti-M v1.3-pre by 4am 2019-04-09" !text "________________________________________",$8D !text $8D,$8D,$8D,$8D,$8D,$8D,$8D,$8D,$00 @mainmenu From cf7cdba3e668d8c4e33feb38d8d178b74108c142 Mon Sep 17 00:00:00 2001 From: Peter Ferrie Date: Wed, 10 Apr 2019 14:17:31 -0700 Subject: [PATCH 2/6] WIP drive 2 DOS patching --- src/idboot.a | 109 ++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 108 insertions(+), 1 deletion(-) diff --git a/src/idboot.a b/src/idboot.a index 49c1479..24cb579 100644 --- a/src/idboot.a +++ b/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,104 @@ 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 #$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 + 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 + rts } From dcf82acd251c5cafad2c6e8f3a1d85fe76298141 Mon Sep 17 00:00:00 2001 From: Peter Ferrie Date: Wed, 10 Apr 2019 14:41:29 -0700 Subject: [PATCH 3/6] another DOS --- src/idboot.a | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/idboot.a b/src/idboot.a index 24cb579..7c73675 100644 --- a/src/idboot.a +++ b/src/idboot.a @@ -268,5 +268,18 @@ IDBoot 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 rts } From 80a1c1cac1c01d76fad623ca399ae40b57681f1e Mon Sep 17 00:00:00 2001 From: Peter Ferrie Date: Wed, 10 Apr 2019 16:15:40 -0700 Subject: [PATCH 4/6] another DOS --- src/idboot.a | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/idboot.a b/src/idboot.a index 7c73675..cccbe21 100644 --- a/src/idboot.a +++ b/src/idboot.a @@ -281,5 +281,18 @@ IDBoot 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 } From e78c7daecc11dd44ca56f038ef18bbcbd872a7ef Mon Sep 17 00:00:00 2001 From: Peter Ferrie Date: Wed, 10 Apr 2019 16:43:19 -0700 Subject: [PATCH 5/6] auto-boot drive 2 if filled --- src/anti-m.a | 61 +++++++++++++++++++++++++++++++++++++++++++++------- src/idboot.a | 3 +++ 2 files changed, 56 insertions(+), 8 deletions(-) diff --git a/src/anti-m.a b/src/anti-m.a index 916a710..9d4a1f1 100644 --- a/src/anti-m.a +++ b/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,22 +110,26 @@ Boot stx $86A3 dex stx $86A5 +@check2 + lda $85FF + beq @skip2 ldx #$C8 lda $860F cmp #$5A - bne ++ + bne + lda #$EA sta $860F stx $8616 ;select drive 2 on IIc -++ lda $8619 ++ lda $8619 cmp #$78 bne + stx $8619 ;select drive 2 on IIGS + lda $8636 cmp #$8A - bne + + bne @skip2 inc $8636 ;select drive 2 on II -+ lda #Tracer ldy $86F8 cpy #$4C @@ -138,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 @@ -200,13 +239,19 @@ StringTable !word @mainmenu @header - !text "Anti-M v1.3-pre by 4am 2019-04-09" + !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 to boot",$00 + !text " and press 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" diff --git a/src/idboot.a b/src/idboot.a index cccbe21..7fe8281 100644 --- a/src/idboot.a +++ b/src/idboot.a @@ -204,6 +204,8 @@ IDBoot rts @callback53_2 + lda $85FF + beq @skip2 lda #$29 ldx #$6E ldy #8 @@ -213,6 +215,7 @@ IDBoot !byte $BD,$8B,$C0 ;LDA $C08B,X bcs @notinfocom inc $296F +@skip2 rts @notinfocom From 7d45b1ef3e52ff3fe65caad733ac867a696a9ad0 Mon Sep 17 00:00:00 2001 From: Peter Ferrie Date: Wed, 10 Apr 2019 19:47:54 -0700 Subject: [PATCH 6/6] support test-set on drive 2 --- src/idbroderbund.a | 40 ++++++++++++++++++++++++++++++++++++++++ src/idspiradisc.a | 18 ++++++++++++++++++ 2 files changed, 58 insertions(+) diff --git a/src/idbroderbund.a b/src/idbroderbund.a index d52716a..9b011fc 100644 --- a/src/idbroderbund.a +++ b/src/idbroderbund.a @@ -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 diff --git a/src/idspiradisc.a b/src/idspiradisc.a index e54e6b3..b439a46 100644 --- a/src/idspiradisc.a +++ b/src/idspiradisc.a @@ -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