mirror of
https://github.com/deater/dos33fsprogs.git
synced 2024-09-29 08:55:10 +00:00
xmas2018: initial music support
though it's just playing random garbage for now
This commit is contained in:
parent
3ea545bc6a
commit
7d5b7ac059
@ -7,7 +7,7 @@ PNG_TO_RLE = ../gr-utils/png2rle
|
|||||||
|
|
||||||
all: xmas2018.dsk
|
all: xmas2018.dsk
|
||||||
|
|
||||||
xmas2018.dsk: HELLO XMAS2018 wreath.img.lz4 ball.img.lz4 merry.img.lz4
|
xmas2018.dsk: HELLO XMAS2018 wreath.img.lz4 ball.img.lz4 merry.img.lz4 MUSIC
|
||||||
$(DOS33) -y xmas2018.dsk SAVE A HELLO
|
$(DOS33) -y xmas2018.dsk SAVE A HELLO
|
||||||
$(DOS33) -y xmas2018.dsk BSAVE -a 0x1000 XMAS2018
|
$(DOS33) -y xmas2018.dsk BSAVE -a 0x1000 XMAS2018
|
||||||
$(DOS33) -y xmas2018.dsk BSAVE -a 0xa000 wreath.img.lz4 WREATH.LZ4
|
$(DOS33) -y xmas2018.dsk BSAVE -a 0xa000 wreath.img.lz4 WREATH.LZ4
|
||||||
@ -24,12 +24,19 @@ XMAS2018: xmas2018.o
|
|||||||
xmas2018.o: xmas2018.s \
|
xmas2018.o: xmas2018.s \
|
||||||
zp.inc hardware.inc \
|
zp.inc hardware.inc \
|
||||||
vapor_lock.s delay_a.s wait_keypress.s \
|
vapor_lock.s delay_a.s wait_keypress.s \
|
||||||
mockingboard.s rts.s \
|
play_music.s mockingboard.s rts.s \
|
||||||
wreath.s wreath.img.lz4 \
|
wreath.s wreath.img.lz4 \
|
||||||
ball.s ball.img.lz4 \
|
ball.s ball.img.lz4 \
|
||||||
merry.s merry.img.lz4
|
merry.s merry.img.lz4
|
||||||
ca65 -o xmas2018.o xmas2018.s -l xmas2018.lst
|
ca65 -o xmas2018.o xmas2018.s -l xmas2018.lst
|
||||||
|
|
||||||
|
####
|
||||||
|
|
||||||
|
MUSIC: music.o
|
||||||
|
ld65 -o MUSIC music.o -C ../linker_scripts/apple2_1000.inc
|
||||||
|
|
||||||
|
music.o: music.s
|
||||||
|
ca65 -o music.o music.s -l music.lst
|
||||||
|
|
||||||
####
|
####
|
||||||
|
|
||||||
|
269
xmas_2018/play_music.s
Normal file
269
xmas_2018/play_music.s
Normal file
@ -0,0 +1,269 @@
|
|||||||
|
;MB_VALUE = $91
|
||||||
|
;MB_FRAME = $94
|
||||||
|
;MB_PATTERN = $95
|
||||||
|
|
||||||
|
|
||||||
|
mah00 = $8000
|
||||||
|
mah01 = $8100
|
||||||
|
mah02 = $8200
|
||||||
|
mah03 = $8300
|
||||||
|
mah04 = $8400
|
||||||
|
mah05 = $8500
|
||||||
|
mah06 = $8600
|
||||||
|
mah07 = $8700
|
||||||
|
mal00 = $8800
|
||||||
|
mal01 = $8900
|
||||||
|
mal02 = $8A00
|
||||||
|
mal03 = $8B00
|
||||||
|
mal04 = $8C00
|
||||||
|
mal05 = $8D00
|
||||||
|
mal06 = $8E00
|
||||||
|
mal07 = $8F00
|
||||||
|
mbh00 = $9000
|
||||||
|
mbh01 = $9100
|
||||||
|
mbh02 = $9200
|
||||||
|
mbh03 = $9300
|
||||||
|
mbh04 = $9400
|
||||||
|
mbh05 = $9500
|
||||||
|
mbh06 = $9600
|
||||||
|
mbh07 = $9700
|
||||||
|
mbl00 = $9800
|
||||||
|
mbl01 = $9900
|
||||||
|
mbl02 = $9A00
|
||||||
|
mbl03 = $9B00
|
||||||
|
mbl04 = $9C00
|
||||||
|
mbl05 = $9D00
|
||||||
|
mbl06 = $9E00
|
||||||
|
mbl07 = $9F00
|
||||||
|
mch00 = $A000
|
||||||
|
mch01 = $A100
|
||||||
|
mch02 = $A200
|
||||||
|
mch03 = $A300
|
||||||
|
mch04 = $A400
|
||||||
|
mch05 = $A500
|
||||||
|
mch06 = $A600
|
||||||
|
mch07 = $A700
|
||||||
|
mcl00 = $A800
|
||||||
|
mcl01 = $A900
|
||||||
|
mcl02 = $AA00
|
||||||
|
mcl03 = $AB00
|
||||||
|
mcl04 = $AC00
|
||||||
|
mcl05 = $AD00
|
||||||
|
mcl06 = $AE00
|
||||||
|
mcl07 = $AF00
|
||||||
|
mnh00 = $B000
|
||||||
|
mnh01 = $B100
|
||||||
|
mnh02 = $B200
|
||||||
|
mnh03 = $B300
|
||||||
|
mnh04 = $B400
|
||||||
|
mnh05 = $B500
|
||||||
|
mnh06 = $B600
|
||||||
|
mnh07 = $B700
|
||||||
|
mnl00 = $B800
|
||||||
|
mnl01 = $B900
|
||||||
|
mnl02 = $BA00
|
||||||
|
mnl03 = $BB00
|
||||||
|
mnl04 = $BC00
|
||||||
|
mnl05 = $BD00
|
||||||
|
mnl06 = $BE00
|
||||||
|
mnl07 = $BF00
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
; takes
|
||||||
|
; 7 load pattern
|
||||||
|
; 76 smc
|
||||||
|
; 3 loop init
|
||||||
|
; 910 play music 80 + 82 + 88 + 80 + 82 + 88 + 80 + 82 + 88 + 80 + 80
|
||||||
|
; 21 end
|
||||||
|
;==========
|
||||||
|
; = 1017
|
||||||
|
play_music:
|
||||||
|
|
||||||
|
; self-modify the code
|
||||||
|
lda MB_PATTERN ; 3
|
||||||
|
and #$1f ; 2
|
||||||
|
tay ; 2
|
||||||
|
|
||||||
|
lda mal_pattern,Y ; 4
|
||||||
|
sta mb_smc1+2 ; 4
|
||||||
|
lda mah_pattern,Y ; 4
|
||||||
|
sta mb_smc2+2 ; 4
|
||||||
|
sta mb_smc3+2 ; 4
|
||||||
|
|
||||||
|
lda mbl_pattern,Y ; 4
|
||||||
|
sta mb_smc4+2 ; 4
|
||||||
|
lda mbh_pattern,Y ; 4
|
||||||
|
sta mb_smc5+2 ; 4
|
||||||
|
sta mb_smc6+2 ; 4
|
||||||
|
|
||||||
|
; mcl and mch patterns are the same
|
||||||
|
lda mcl_pattern,Y ; 4
|
||||||
|
sta mb_smc7+2 ; 4
|
||||||
|
lda mch_pattern,Y ; 4
|
||||||
|
sta mb_smc8+2 ; 4
|
||||||
|
sta mb_smc9+2 ; 4
|
||||||
|
|
||||||
|
lda mnl_pattern,Y ; 4
|
||||||
|
sta mb_smc10+2 ; 4
|
||||||
|
lda mnh_pattern,Y ; 4
|
||||||
|
sta mb_smc11+2 ; 4
|
||||||
|
;=======
|
||||||
|
; 76
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
; play the code
|
||||||
|
|
||||||
|
ldy MB_FRAME ; 3
|
||||||
|
;=======
|
||||||
|
|
||||||
|
; mal
|
||||||
|
mb_smc1:
|
||||||
|
lda mal00,Y ; 4
|
||||||
|
sta MB_VALUE ; 3
|
||||||
|
ldx #0 ; 2
|
||||||
|
jsr write_ay_both ; 6+65
|
||||||
|
;=========
|
||||||
|
; 80
|
||||||
|
|
||||||
|
; mah
|
||||||
|
mb_smc2:
|
||||||
|
lda mal00,Y ; 4
|
||||||
|
and #$f ; 2
|
||||||
|
sta MB_VALUE ; 3
|
||||||
|
ldx #1 ; 2
|
||||||
|
jsr write_ay_both ; 6+65
|
||||||
|
;========
|
||||||
|
; 82
|
||||||
|
|
||||||
|
mb_smc3:
|
||||||
|
lda mal00,Y ; 4
|
||||||
|
lsr ; 2
|
||||||
|
lsr ; 2
|
||||||
|
lsr ; 2
|
||||||
|
lsr ; 2
|
||||||
|
sta MB_VALUE ; 3
|
||||||
|
ldx #8 ; 2
|
||||||
|
jsr write_ay_both ; 6+65
|
||||||
|
;=======
|
||||||
|
; 88
|
||||||
|
|
||||||
|
; mbl
|
||||||
|
mb_smc4:
|
||||||
|
lda mbl00,Y ; 4
|
||||||
|
sta MB_VALUE ; 3
|
||||||
|
ldx #2 ; 2
|
||||||
|
jsr write_ay_both ; 6+65
|
||||||
|
;=======
|
||||||
|
; 80
|
||||||
|
; mbh
|
||||||
|
mb_smc5:
|
||||||
|
lda mbh00,Y ; 4
|
||||||
|
and #$f ; 2
|
||||||
|
sta MB_VALUE ; 3
|
||||||
|
ldx #3 ; 2
|
||||||
|
jsr write_ay_both ; 6+65
|
||||||
|
;=======
|
||||||
|
; 82
|
||||||
|
|
||||||
|
mb_smc6:
|
||||||
|
lda mbh00,Y ; 4
|
||||||
|
lsr ; 2
|
||||||
|
lsr ; 2
|
||||||
|
lsr ; 2
|
||||||
|
lsr ; 2
|
||||||
|
sta MB_VALUE ; 3
|
||||||
|
ldx #9 ; 2
|
||||||
|
jsr write_ay_both ; 6+65
|
||||||
|
;======
|
||||||
|
; 88
|
||||||
|
; mcl
|
||||||
|
mb_smc7:
|
||||||
|
lda mal00,Y ; 4
|
||||||
|
sta MB_VALUE ; 3
|
||||||
|
ldx #4 ; 2
|
||||||
|
jsr write_ay_both ; 6+65
|
||||||
|
;======
|
||||||
|
; 80
|
||||||
|
|
||||||
|
; mch
|
||||||
|
mb_smc8:
|
||||||
|
lda mal00,Y ; 4
|
||||||
|
and #$f ; 2
|
||||||
|
sta MB_VALUE ; 3
|
||||||
|
ldx #5 ; 2
|
||||||
|
jsr write_ay_both ; 6+65
|
||||||
|
;=======
|
||||||
|
; 82
|
||||||
|
|
||||||
|
mb_smc9:
|
||||||
|
lda mal00,Y ; 4
|
||||||
|
lsr ; 2
|
||||||
|
lsr ; 2
|
||||||
|
lsr ; 2
|
||||||
|
lsr ; 2
|
||||||
|
sta MB_VALUE ; 3
|
||||||
|
ldx #10 ; 2
|
||||||
|
jsr write_ay_both ; 6+65
|
||||||
|
;========
|
||||||
|
; 88
|
||||||
|
; mnl
|
||||||
|
mb_smc10:
|
||||||
|
lda mal00,Y ; 4
|
||||||
|
sta MB_VALUE ; 3
|
||||||
|
ldx #6 ; 2
|
||||||
|
jsr write_ay_both ; 6+65
|
||||||
|
;=======
|
||||||
|
; 80
|
||||||
|
; mnh
|
||||||
|
mb_smc11:
|
||||||
|
lda mnh00,Y ; 4
|
||||||
|
sta MB_VALUE ; 3
|
||||||
|
ldx #7 ; 2
|
||||||
|
jsr write_ay_both ; 6+65
|
||||||
|
;=======
|
||||||
|
; 80
|
||||||
|
|
||||||
|
inc MB_FRAME ; 5
|
||||||
|
|
||||||
|
bne mb_no_change ; 3
|
||||||
|
; -1
|
||||||
|
inc MB_PATTERN ; 5
|
||||||
|
jmp mb_done_change ; 3
|
||||||
|
mb_no_change:
|
||||||
|
lda $0 ; 3
|
||||||
|
nop ; 2
|
||||||
|
nop ; 2
|
||||||
|
mb_done_change:
|
||||||
|
|
||||||
|
; restore language card
|
||||||
|
rts ; 6
|
||||||
|
;=======
|
||||||
|
; 21
|
||||||
|
|
||||||
|
.align $100
|
||||||
|
.include "mockingboard.s"
|
||||||
|
|
||||||
|
; patterns 8 long
|
||||||
|
mal_pattern:
|
||||||
|
.byte >mal00,>mal01,>mal02,>mal03,>mal04,>mal05,>mal06,>mal07
|
||||||
|
mah_pattern:
|
||||||
|
.byte >mah00,>mah01,>mah02,>mah03,>mah04,>mah05,>mah06,>mah07
|
||||||
|
mbl_pattern:
|
||||||
|
.byte >mbl00,>mbl01,>mbl02,>mbl03,>mbl04,>mbl05,>mbl06,>mbl07
|
||||||
|
mbh_pattern:
|
||||||
|
.byte >mbh00,>mbh01,>mbh02,>mbh03,>mbh04,>mbh05,>mbh06,>mbh07
|
||||||
|
mcl_pattern:
|
||||||
|
.byte >mcl00,>mcl01,>mcl02,>mcl03,>mcl04,>mcl05,>mcl06,>mcl07
|
||||||
|
mch_pattern:
|
||||||
|
.byte >mch00,>mch01,>mch02,>mch03,>mch04,>mch05,>mch06,>mch07
|
||||||
|
mnl_pattern:
|
||||||
|
.byte >mnl00,>mnl01,>mnl02,>mnl03,>mnl04,>mnl05,>mnl06,>mnl07
|
||||||
|
mnh_pattern:
|
||||||
|
.byte >mnh00,>mnh01,>mnh02,>mnh03,>mnh04,>mnh05,>mnh06,>mnh07
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -135,18 +135,20 @@ wrloopF:dex ; 2
|
|||||||
;======================================================
|
;======================================================
|
||||||
|
|
||||||
; do_nothing should be 4550
|
; do_nothing should be 4550
|
||||||
|
; play music 1023
|
||||||
; -10 keypress
|
; -10 keypress
|
||||||
; ===========
|
; =======-===
|
||||||
; 4540
|
; 3517
|
||||||
|
|
||||||
|
|
||||||
; jsr play_music ; 6+1032
|
jsr play_music ; 6+1017
|
||||||
|
|
||||||
|
|
||||||
; Try X=9 Y=89 cycles=4540
|
; Try X=116 Y=6 cycles=3517
|
||||||
|
|
||||||
ldy #89 ; 2
|
|
||||||
wrloop1:ldx #9 ; 2
|
ldy #6 ; 2
|
||||||
|
wrloop1:ldx #116 ; 2
|
||||||
wrloop2:dex ; 2
|
wrloop2:dex ; 2
|
||||||
bne wrloop2 ; 2nt/3
|
bne wrloop2 ; 2nt/3
|
||||||
dey ; 2
|
dey ; 2
|
||||||
|
@ -116,7 +116,6 @@ game_over_man:
|
|||||||
.include "vapor_lock.s"
|
.include "vapor_lock.s"
|
||||||
.include "delay_a.s"
|
.include "delay_a.s"
|
||||||
.include "wait_keypress.s"
|
.include "wait_keypress.s"
|
||||||
.include "mockingboard.s"
|
|
||||||
; .include "random16.s"
|
; .include "random16.s"
|
||||||
; .include "hgr.s"
|
; .include "hgr.s"
|
||||||
; .include "move_letters.s"
|
; .include "move_letters.s"
|
||||||
@ -124,6 +123,8 @@ game_over_man:
|
|||||||
; .include "text_print.s"
|
; .include "text_print.s"
|
||||||
; .include "screen_split.s"
|
; .include "screen_split.s"
|
||||||
|
|
||||||
|
.include "play_music.s"
|
||||||
|
|
||||||
;============================
|
;============================
|
||||||
; Include Sprites
|
; Include Sprites
|
||||||
;============================
|
;============================
|
||||||
@ -131,6 +132,8 @@ game_over_man:
|
|||||||
; .include "tfv_sprites.inc"
|
; .include "tfv_sprites.inc"
|
||||||
; .include "mode7_sprites.inc"
|
; .include "mode7_sprites.inc"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
;=================================
|
;=================================
|
||||||
; Include Text for Sliding Letters
|
; Include Text for Sliding Letters
|
||||||
; *DONT CROSS PAGES*
|
; *DONT CROSS PAGES*
|
||||||
|
Loading…
Reference in New Issue
Block a user