mirror of
https://github.com/a2-4am/anti-m.git
synced 2024-06-02 15:41:41 +00:00
Compare commits
17 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
a34bbf79e7 | ||
|
385e514ce2 | ||
|
834efd426f | ||
|
d4f81acf8b | ||
|
bdbf06e59e | ||
|
2afbe1ce50 | ||
|
e4c718f48e | ||
|
a4064c4bc1 | ||
|
3a6b60cc72 | ||
|
d739c08dab | ||
|
1ad0b3014a | ||
|
e1295dee5a | ||
|
513f8066d5 | ||
|
6aa4146eb7 | ||
|
e12b8fcfab | ||
|
9bee8fc449 | ||
|
d3c4100f32 |
25
README.md
25
README.md
|
@ -2,8 +2,8 @@
|
|||
|
||||
Boot any Apple II disk on any Apple II
|
||||
|
||||
[Download latest Anti-M disk image](https://github.com/a2-4am/anti-m/releases/download/v1.8/anti-m-v1.8-2020-11-10.dsk)
|
||||
(version **1.8**, released **2020-11-10**, runs on any 48K Apple II)
|
||||
[Download latest Anti-M disk image](https://github.com/a2-4am/anti-m/releases/latest/download/anti-m.dsk)
|
||||
(version **2.2**, released **2024-02-27**, runs on any 48K Apple II)
|
||||
|
||||
## What is this?
|
||||
|
||||
|
@ -60,6 +60,7 @@ then press `<RETURN>`. The game should boot normally.
|
|||
- Sensible Speller (Sensible Software)
|
||||
- Serpentine (Broderbund) (*)
|
||||
- Sky Blazer (Broderbund)
|
||||
- Space Adventure (Sierra Software)
|
||||
- Space Eggs (Sirius)
|
||||
- Space Quarks (Broderbund)
|
||||
- Star Blazer (Broderbund)
|
||||
|
@ -98,6 +99,26 @@ launching Anti-M.
|
|||
|
||||
## History
|
||||
|
||||
v2.2 - 2024-02-27
|
||||
|
||||
- add support for ABM
|
||||
|
||||
v2.1 - 2024-02-23
|
||||
|
||||
- fix detection of 13-sector disks (thanks John A. for the report)
|
||||
|
||||
v2.0 - 2023-09-18
|
||||
|
||||
- fix a crash when booting "Story Maker"
|
||||
- fix a crash when booting "Micro League Baseball"
|
||||
- further drive 2 fixes for AppleWin
|
||||
|
||||
v1.9 - 2023-05-15
|
||||
|
||||
- support "Disk Recovery"
|
||||
- support "Space Adventure"
|
||||
- fix drive 2 detection
|
||||
|
||||
v1.8 - 2020-11-10
|
||||
|
||||
- support "Sensible Speller"
|
||||
|
|
116
src/anti-m.a
116
src/anti-m.a
|
@ -6,7 +6,7 @@
|
|||
;-------------------------------
|
||||
; Anti-M
|
||||
; a 4am hack
|
||||
; (c) 2019-2020 by 4am
|
||||
; (c) 2019-2024 by 4am
|
||||
;
|
||||
; Permission is hereby granted, free of charge, to any
|
||||
; person obtaining a copy of this software and associated
|
||||
|
@ -57,7 +57,7 @@ tmp = $FC ; byte
|
|||
cmp #$60
|
||||
bne Boot
|
||||
jsr CheckDrive2
|
||||
bne Boot2
|
||||
bcs Boot2
|
||||
@showprompt
|
||||
jsr HOME
|
||||
lda MACHINEID
|
||||
|
@ -155,25 +155,103 @@ Boot
|
|||
CheckDrive2
|
||||
lda $C0E9
|
||||
lda $C0EB
|
||||
ldy #6
|
||||
-- ldx #$11
|
||||
- dex
|
||||
bne -
|
||||
sec
|
||||
sbc #1
|
||||
jsr @spinup
|
||||
jsr @seek
|
||||
ldx #21
|
||||
ldy #0
|
||||
--- iny
|
||||
bne +
|
||||
clc
|
||||
dex
|
||||
bmi @driveoff
|
||||
+
|
||||
- lda $C0EC
|
||||
bpl -
|
||||
-- cmp #$D5
|
||||
bne ---
|
||||
- lda $C0EC
|
||||
bpl -
|
||||
cmp #$AA
|
||||
bne --
|
||||
- lda $C0EC
|
||||
bpl -
|
||||
cmp #$AD
|
||||
bne --
|
||||
|
||||
@driveoff
|
||||
lda $C0E8
|
||||
rts
|
||||
|
||||
step=$fd
|
||||
phase=$fe
|
||||
tmptrk=$ff
|
||||
tmpsec=$3c
|
||||
@seek
|
||||
ldy #0
|
||||
sty step
|
||||
sty phase
|
||||
lda #$44
|
||||
sta tmptrk
|
||||
|
||||
@copy_cur
|
||||
lda tmptrk
|
||||
sta tmpsec
|
||||
sec
|
||||
sbc phase
|
||||
beq +++
|
||||
bcs +
|
||||
eor #$ff
|
||||
inc tmptrk
|
||||
bcc ++
|
||||
+ sbc #1
|
||||
dec tmptrk
|
||||
++ cmp step
|
||||
bcc +
|
||||
lda step
|
||||
+ cmp #8
|
||||
bcs +
|
||||
tay
|
||||
sec
|
||||
+ jsr ++++
|
||||
lda step1, y
|
||||
jsr @delay
|
||||
lda tmpsec
|
||||
clc
|
||||
jsr +++++
|
||||
lda step2, y
|
||||
jsr @delay
|
||||
inc step
|
||||
bne @copy_cur
|
||||
+++ jsr @delay
|
||||
clc
|
||||
++++ lda tmptrk
|
||||
+++++ and #3
|
||||
rol
|
||||
tax
|
||||
lda $C0E0, x
|
||||
rts
|
||||
|
||||
@spinup ldy #6
|
||||
- jsr @delay
|
||||
dey
|
||||
bpl --
|
||||
lda #$00
|
||||
ldy #$00
|
||||
- eor $C0EC
|
||||
dey
|
||||
bne -
|
||||
sta $C0E8
|
||||
cmp #$00
|
||||
bpl -
|
||||
|
||||
@delay
|
||||
-- ldx #$11
|
||||
- dex
|
||||
bne -
|
||||
inc $46
|
||||
bne +
|
||||
inc $47
|
||||
+ sec
|
||||
sbc #1
|
||||
bne --
|
||||
@knownret
|
||||
rts
|
||||
|
||||
step1 !byte 1, $30, $28, $24, $20, $1e, $1d, $1c
|
||||
step2 !byte $70, $2c, $26, $22, $1f, $1e, $1d, $1c
|
||||
|
||||
Tracer
|
||||
jsr IDBroderbund
|
||||
bcc BeginTheBoot
|
||||
|
@ -201,7 +279,7 @@ BeginTheBoot
|
|||
lda #$11 ;Virtual II fix
|
||||
pha
|
||||
plp ;match boot-time flags and registers
|
||||
lda #1
|
||||
lda $800 ;might not be 1
|
||||
ldy #0
|
||||
ldx #$60
|
||||
jmp $0801
|
||||
|
@ -223,7 +301,7 @@ BeginTheBoot13
|
|||
sta $A2
|
||||
lda #4
|
||||
sta $AC
|
||||
ldx #$B3 ;Sensible Software fix
|
||||
ldx #$33 ;Sensible Software fix
|
||||
ldy $0300
|
||||
jmp $0301
|
||||
|
||||
|
@ -268,7 +346,7 @@ StringTable
|
|||
!word @mainmenu
|
||||
|
||||
@header
|
||||
!text "Anti-M v1.8 by 4am 2020-11-10"
|
||||
!text "Anti-M v2.2 by 4am 2024-02-27"
|
||||
!text "________________________________________",$8D
|
||||
!text $8D,$8D,$8D,$8D,$8D,$8D,$8D,$8D,$00
|
||||
@mainmenu
|
||||
|
|
12
src/idboot.a
12
src/idboot.a
|
@ -253,6 +253,18 @@ IDBoot13
|
|||
jmp @dispatch
|
||||
|
||||
@notdos32f
|
||||
lda #$7D
|
||||
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 @notdos32g
|
||||
inc $7D6F
|
||||
jmp @dispatch
|
||||
|
||||
@notdos32g
|
||||
|
||||
@dispatch
|
||||
lda $d1d1 ;SMC
|
||||
|
|
|
@ -24,6 +24,8 @@
|
|||
; - Phaser Fire (Gebelli)
|
||||
; - Russki Duck (Gebelli)
|
||||
; - Zenith (Gebelli)
|
||||
; - Disk Recovery (Sensible Software)
|
||||
; - ABM (MUSE)
|
||||
;
|
||||
IDBroderbund
|
||||
; first stage is just a standard hybrid DOS 3.2/3.3 bootloader
|
||||
|
@ -266,9 +268,15 @@ IDBroderbund
|
|||
ldx #<@DOS33Callback
|
||||
ldy #>@DOS33Callback
|
||||
cmp #$B6
|
||||
beq @hookhybrid
|
||||
ldx #<@MUSECallback
|
||||
ldy #>@MUSECallback
|
||||
cmp #$76
|
||||
bne @jmpdos
|
||||
|
||||
@hookhybrid
|
||||
lda #$0C
|
||||
sta $300 ;Sensible Software page-wraparound fix
|
||||
lda #$4C
|
||||
sta $33C
|
||||
stx $33D
|
||||
|
@ -315,6 +323,16 @@ IDBroderbund
|
|||
beq @skip2a
|
||||
inc $3D60
|
||||
@skip2a
|
||||
+ ldy $371D
|
||||
cpy $371F
|
||||
bne +
|
||||
dey
|
||||
bne +
|
||||
lda $371E
|
||||
ora $3720
|
||||
ora $3721
|
||||
bne +
|
||||
inc $371F ; select drive 2
|
||||
+ jmp $3700 ; let it goooo...
|
||||
|
||||
@SpaceEggsCallback3 !pseudopc $300 {
|
||||
|
@ -427,6 +445,24 @@ IDBroderbund
|
|||
ldx #$60
|
||||
jmp $B700
|
||||
|
||||
@MUSECallback
|
||||
lda $85FF
|
||||
beq @skip2f
|
||||
lda #$7D
|
||||
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 @notmuse
|
||||
inc $7D60
|
||||
|
||||
@notmuse
|
||||
@skip2f
|
||||
ldx #$60
|
||||
jmp $7700
|
||||
|
||||
@StarThiefCallback2 !pseudopc $110 {
|
||||
@StarThiefCallback2x
|
||||
lda #$4C
|
||||
|
|
|
@ -101,6 +101,13 @@ IDIDSI
|
|||
lda $d1d1,X ;SMC
|
||||
cmp #$c0
|
||||
bne @cb3jump
|
||||
ldy #<((@cb3_end + 1) & -2)
|
||||
- tya
|
||||
eor $bf00,y
|
||||
sta $bf00,y
|
||||
iny
|
||||
iny
|
||||
bne -
|
||||
lda #$BF
|
||||
@cb3patch2
|
||||
sta $d1d1,X ;SMC
|
||||
|
@ -114,6 +121,7 @@ IDIDSI
|
|||
sta $d1d1,X ;SMC
|
||||
@cb3jump
|
||||
jmp (@cb3patch3+1)
|
||||
@cb3_end
|
||||
}
|
||||
@tracer3_e
|
||||
}
|
||||
|
|
|
@ -15,7 +15,10 @@ IDProDOS
|
|||
ldx #$60
|
||||
stx $801
|
||||
inc $3D
|
||||
jsr $865C
|
||||
jsr $C65C
|
||||
dec $27
|
||||
dec $3D
|
||||
dec $3D
|
||||
lda #$38
|
||||
sta $801
|
||||
lda #9
|
||||
|
@ -39,6 +42,7 @@ IDProDOS
|
|||
sta $8FD
|
||||
lda #>@ProDOSCallbackx
|
||||
sta $8FE
|
||||
clc
|
||||
@exit
|
||||
rts
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user