support Flapple Bird on Mac IIe card

This commit is contained in:
Peter Ferrie 2023-11-28 13:03:07 -08:00
parent 5c9145abaa
commit d1a8455dac
44 changed files with 353 additions and 45 deletions

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 15432726
!be24 15433238
!le16 5112

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 15378117
!be24 15378629
!le16 5695

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 15311290
!be24 15311802
!le16 4033

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 15325472
!be24 15325984
!le16 4473

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 15343575
!be24 15344087
!le16 5830

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 15364359
!be24 15364871
!le16 6429

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 15437838
!be24 15438350
!le16 410

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 15438592
!be24 15439104
!le16 450

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 15439042
!be24 15439554
!le16 303

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 12287811
!be24 12288323
!le16 1652

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 15386452
!be24 15386964
!le16 1640

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 15438324
!be24 15438836
!le16 67

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 15432667
!be24 15433179
!le16 59

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 15431123
!be24 15431635
!le16 1426

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 15415357
!be24 15415869
!le16 540

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 15383812
!be24 15384324
!le16 2640

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 15388450
!be24 15388962
!le16 7329

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 15438248
!be24 15438760
!le16 76

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 15432549
!be24 15433061
!le16 118

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 15438391
!be24 15438903
!le16 201

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 15415897
!be24 15416409
!le16 4897

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 15420794
!be24 15421306
!le16 1775

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 15422569
!be24 15423081
!le16 1181

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 15423750
!be24 15424262
!le16 3421

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 15427171
!be24 15427683
!le16 3359

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 15430530
!be24 15431042
!le16 479

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 15431009
!be24 15431521
!le16 114

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 15439345
!be24 15439857
!le16 2370

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 15401153
!be24 15401665
!le16 4933

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 15406086
!be24 15406598
!le16 2400

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 15370788
!be24 15371300
!le16 7329

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 4141056
!be24 4141568
!le16 8192

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 4157440
!be24 4157952
!le16 8192

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 4149248
!be24 4149760
!le16 8192

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 15302045
!be24 15302557
!le16 9245

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 15315323
!be24 15315835
!le16 10149

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 15329945
!be24 15330457
!le16 13630

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 15349405
!be24 15349917
!le16 14954

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 15388092
!be24 15388604
!le16 358

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 15395779
!be24 15396291
!le16 5374

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 15408486
!be24 15408998
!le16 6871

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 15297841
!be24 15298353
!le16 4204

View File

@ -1,5 +1,5 @@
;license:MIT
;(c) 2020, 2022 by Frank M., qkumba
;(c) 2020, 2022, 2023 by Frank M., qkumba
!cpu 6502
!to "build/PRELAUNCH.INDEXED/FLAPPLE.BIRD",plain
@ -7,8 +7,7 @@
!source "src/prelaunch/common.a"
+READ_RAM2_NO_WRITE
jsr EnableAccelerator
+ENABLE_ACCEL
lda #$60
sta $813
jsr $800
@ -20,8 +19,27 @@
@good_vbl
+DISABLE_ACCEL
lda $fbb3
cmp #$6
bne @not_mac
lda $fbc0
cmp #$e0
bne @not_mac
lda $fbdd
cmp #$02
bne @not_mac
+READ_RAM2_WRITE_RAM2
+LOAD_FILE_AT flapple_mac, $b000
jsr $b000
+READ_ROM_NO_WRITE
@not_mac
jmp $2000
flapple_mac
!byte 21
!text "PRELAUNCH/FLAPPLE.MAC"
!if * > $1C0 {
!error "code is too large, ends at ", *
}

290
src/prelaunch/flapple.mac.a Normal file
View File

@ -0,0 +1,290 @@
;license:MIT
;(c) 2023 by qkumba
!cpu 6502
!to "build/PRELAUNCH/FLAPPLE.MAC",plain
*=$b000
!source "src/constants.a" ; no code in these
!source "src/macros.a"
lda #$CD ; disable palette switch
sta $26C9
sta $270F
sta $2755
sta $279B
sta $2AAB
sta $2B19
lda #$6c ; fix title screen
sta $00
lda #$30
sta $01
ldx #$16
ldy #$21
lda #$11
jsr @swap_palette
lda #$18
sta $00
lda #$36
sta $01
ldx #6
ldy #$18
lda #$11
jsr @swap_palette
lda #$38
sta $00
lda #$37
sta $01
ldx #6
ldy #6
lda #$22
jsr @swap_palette
lda #$80
sta $00
lda #$37
sta $01
ldx #6
ldy #$13
lda #$22
jsr @swap_palette
lda #$64
sta $00
lda #$38
sta $01
ldx #6
ldy #3
lda #$11
jsr @swap_palette
lda #$88
sta $00
lda #$38
sta $01
ldx #3
ldy #3
lda #$11
jsr @swap_palette
lda #$ae ; fix high score
sta $00
lda #$38
sta $01
ldx #2
ldy #$3
lda #$11
jsr @swap_palette
lda #$d2 ; fix high score
sta $00
lda #$38
sta $01
ldx #2
ldy #3
lda #$11
jsr @swap_palette
ldx #$BD ; fix pipe
ldy #$3A
jsr @swap_palette2
ldx #$67 ; fix bird sprite
ldy #$47
jsr @swap_palette1
ldx #$C1 ; fix bird sprite
ldy #$47
jsr @swap_palette1
ldx #$1B ; fix bird sprite
ldy #$48
jsr @swap_palette1
ldx #$93 ; fix bird sprite
ldy #$48
jsr @swap_palette1
lda #$55
sta $3BFC
sta $3D22
sta $3DE7
sta $3E4D
sta $3E7F
sta $40C4
sta $41B6
sta $4328
lda #$E5
sta $3C07
sta $3C18
sta $3D9F
sta $3E8E
sta $3EA3
sta $4064
sta $4196
sta $41AB
sta $4386
lda #$5E
sta $3C0D
sta $3DA5
sta $3E94
sta $406A
sta $419C
sta $438C
lda #$C5
sta $3C1F
sta $3C30
sta $3DAC
sta $3DBD
sta $3EAE
sta $3EC3
sta $4075
sta $408A
sta $4167
sta $417C
sta $4357
sta $436C
lda #$5C
sta $3C25
sta $3C3B
sta $3DB2
sta $3DC8
sta $3EB4
sta $3ED2
sta $407B
sta $4099
sta $416D
sta $418B
sta $435D
sta $437B
lda #$45
sta $3C42
sta $3DCF
sta $3DE0
sta $3EDD
sta $40A4
sta $40B9
sta $4156
sta $4337
sta $434C
lda #$54
sta $3C48
sta $3DD5
sta $3EE3
sta $40AA
sta $415C
sta $433D
lda #$77
sta $3C4F
sta $3D27
sta $3E67
sta $3EEE
sta $4147
sta $49BF
sta $4AEA
lda #$EE
sta $3D0D
sta $3E52
lda #$CC
sta $3D12
sta $3E5A
lda #$44
sta $3D1A
sta $3E62
lda #$27
sta $2971
lda #$4C
sta $29B8
lda #<@callback
sta $29B9
lda #>@callback
sta $29BA
rts
@callback
lda #$3f
jmp $fca8
@swap_palette2
stx $00
sty $01
ldx #1
ldy #$0f
bne +
@swap_palette1
stx $00
sty $01
ldx #4
ldy #5
+ lda #0
@swap_palette
sta @patch5 + 1
pha
and #$f0
sta @patch3 + 1
pla
and #$0f
sta @patch4 + 1
tya
sta @patch1 + 1
asl
tay
dey
sty @patch2 + 1
-- ldy #0
- lda ($00), y
@patch5
cmp #$d1 ; SMC
beq ++
and #$f0
@patch3
cmp #$d1 ; SMC
beq +
lda ($00), y
lsr
lsr
lsr
lsr
eor ($00), y
and #$0f
eor ($00), y
asl
+ and #$f0
sta $02
lda ($00), y
and #$0f
@patch4
cmp #$d1 ; SMC
beq +
lda ($00), y
lsr
lsr
lsr
lsr
lda ($00), y
rol
and #$0f
+ ora $02
sta $02
lda $02
sta ($00), y
++ iny
@patch1
cpy #$d1 ; SMC
bcc -
lda $00
@patch2
adc #$d1 ; SMC
sta $00
bcc +
inc $01
+ dex
bne --
rts