diff --git a/demos/second/audio/Makefile b/demos/second/audio/Makefile new file mode 100644 index 00000000..78682f35 --- /dev/null +++ b/demos/second/audio/Makefile @@ -0,0 +1,32 @@ +include ../../../Makefile.inc + +ZX02 = ~/research/6502_compression/zx02.git/build/zx02 +LINKER_SCRIPTS = ../../../linker_scripts +EMPTYDISK = ../../../empty_disk/empty.dsk +DOS33 = ../../../utils/dos33fs-utils/dos33 + + +all: test_audio.dsk + +test_audio.dsk: TEST_AUDIO + cp $(EMPTYDISK) test_audio.dsk + $(DOS33) -y test_audio.dsk BSAVE -a 0x6000 TEST_AUDIO + + +#### + +TEST_AUDIO: test_audio.o + ld65 -o TEST_AUDIO test_audio.o -C $(LINKER_SCRIPTS)/apple2_6000.inc + +test_audio.o: test_audio.s + ca65 -o test_audio.o test_audio.s -l test_audio.lst + +#### + +transmission.btc.zx02: transmission.btc + $(ZX02) transmission.btc transmission.btc.zx02 + +#### + +clean: + rm -f *~ diff --git a/demos/second/audio/test_audio.s b/demos/second/audio/test_audio.s new file mode 100644 index 00000000..69a5b933 --- /dev/null +++ b/demos/second/audio/test_audio.s @@ -0,0 +1,43 @@ +.include "../hardware.inc" +.include "../zp.inc" + + + +test_audio: + jsr wait_until_keypress + + lda #transmission + sta BTC_H + + ldx #11 + jsr play_audio + + jsr wait_until_keypress + + + lda #atomic + sta BTC_H + + ldx #16 + jsr play_audio + + jsr wait_until_keypress + + + +done: + jmp test_audio + + + .include "../audio.s" + .include "../wait_keypress.s" +.align $100 +transmission: + .incbin "transmission.btc" +.align $100 +atomic: + .incbin "a_pboy.btc" diff --git a/demos/second/part15_transmission/Makefile b/demos/second/part15_transmission/Makefile index c5d00e61..b67de533 100644 --- a/demos/second/part15_transmission/Makefile +++ b/demos/second/part15_transmission/Makefile @@ -17,6 +17,7 @@ SPHERES: spheres.o spheres.o: spheres.s \ ../zx02_optim.s \ ../hgr_copy_fast.s \ + ../audio.s \ ../zp.inc ../hardware.inc ../qload.inc \ graphics/spheres.hgr.zx02 ca65 -o spheres.o spheres.s -l spheres.lst diff --git a/demos/second/part15_transmission/audio/Makefile b/demos/second/part15_transmission/audio/Makefile new file mode 100644 index 00000000..0c015763 --- /dev/null +++ b/demos/second/part15_transmission/audio/Makefile @@ -0,0 +1,17 @@ +include ../../../../Makefile.inc + +ZX02 = ~/research/6502_compression/zx02.git/build/zx02 +PNG_TO_HGR = ../../../../utils/hgr-utils/png2hgr +PNG2GR = ../../../../utils/gr-utils/png2gr + +all: transmission.btc.zx02 + +#### + +transmission.btc.zx02: transmission.btc + $(ZX02) transmission.btc transmission.btc.zx02 + +#### + +clean: + rm -f *~ diff --git a/demos/second/part15_transmission/audio/transmission.btc b/demos/second/part15_transmission/audio/transmission.btc new file mode 100644 index 00000000..0c0e959f --- /dev/null +++ b/demos/second/part15_transmission/audio/transmission.btc @@ -0,0 +1 @@ +eeUUUUUUUUUUUUU5UUUUUUUUUUUUUUUUTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU5UUUUUUUUUUUUUUJUUZUUVUUUUUUUUUJUUUUUU5UUUUUUJUUUUUJ5RUUUZUTUUUUTURlUYjUVeYUYUST5USJu5UUUUU*KeUTIUYUURVR-KUUU+&UU-++TKMU*UKJjRl*UVeZjUTUUUUKRK*eRj-UK+JKKeURU++&&ҫU%iVVKJeUU5--V-KUK*ԭ++U''RUJU--+UKGbUJT+M'GbUJijҲUU5++K'FUKEiʭVVVVU-UTVZUJVU5UTYZiU5*UJʴURZiUejUU5UUUeUUUUiUUUUUUUUUUUUUTj,UUUUUUUUUUUUUUUS*UUUUUUUUUUUUUUUMSUUUUUUUUUUUUUTUUUUUUUUUUUUUURUUUUUUUUUUUUUU,UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUTUUUUUUUUUUUUUJUUUUT--VeUR:KSUjURUeiijZT\+UUURtMJVZ.MVUFUUU-*KRJhjUҴZjUVh66VUUVVUT.عZZZV-+MMUUMKKKKTJҴm-+KJҴjjjZZUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU-USUUUUUUUUUUUTTUVUUUeUUUUTUUUeUUUTTST4U5U5-S-MUSMUUUUMMSUTU9UUUSTUT55UMSUT4+KJZefieeUUUUUUUSUUUUUUUUYUUUUUUUUUUSeUUUMUSMS5TUUUU5M5SUUUT55UUUUUT45L*ʪ*s,qYUUUUUUM424jrjJ*ƪqŦYUUUUV5TU8MSMUTUSMSUUUUcNUMSUUMU55SUUUUUYeUUUUUUUUTSSMMUUTSUTU54KT4UUM5SMT5MUUUUUUUUMUUUUUUUUUUUUUUUUUSUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUMUUMKKUUUUUKRUR5TR+*ҬjVijVUVUMRԵ5JʲԴRԭMR5.-T+KST--UMU5KRԵ+KJԪjZiUUZZZUU-+Jԭ*----'JҵJʲKSSJҴ-R+UUUT+KR+JҴUUKJԵ-Rԭ-KUUT'Fԭ+IҵKM+&j]%jVjiUU.KRUUMKRJҴMTԵ-Kh-JMU-+JԶKRUeSRԵ-btT.,+JJ+EũjZhUq\8ص-KT\ZŪ\.&t jѦjm%éZrjZ֖jUSd.RKUUKRԭ-ҪFҥiZVeKSb.RҫKRURԵ-KS*KJ-KR+*+J-+R,+*Ҫ&&jUUUUVMUUMRKJҪ \ No newline at end of file diff --git a/demos/second/part15_transmission/spheres.s b/demos/second/part15_transmission/spheres.s index b2bcf8f5..6f664d86 100644 --- a/demos/second/part15_transmission/spheres.s +++ b/demos/second/part15_transmission/spheres.s @@ -23,6 +23,29 @@ spheres_start: sta current_pattern_smc+1 jsr pt3_set_pattern + ; decompress audio to $6000 + + lda #transmission_data + sta zx_src_h+1 + lda #$60 + jsr zx02_full_decomp + + ; play audio + + lda #$00 + sta BTC_L + lda #$60 + sta BTC_H + + sei ; stop music + + ldx #11 + jsr play_audio + + + cli ;=================== ; Load graphics @@ -77,8 +100,11 @@ spheres_done: ; .include "../hgr_table.s" .include "../hgr_clear_screen.s" .include "../hgr_copy_fast.s" + .include "../audio.s" .include "../irq_wait.s" spheres_data: .incbin "graphics/spheres.hgr.zx02" +transmission_data: + .incbin "audio/transmission.btc.zx02" diff --git a/demos/second/zp.inc b/demos/second/zp.inc index a6d572ce..b689c3d3 100644 --- a/demos/second/zp.inc +++ b/demos/second/zp.inc @@ -116,6 +116,8 @@ COLOR_MASK = $E7 ; gr_plot FRAME = $E8 FRAMEL = $E8 FRAMEH = $E9 +BTC_L = $EA ; audio +BTC_H = $EB ; audio ;============================================== ; $F0-$FB can re-use in each file