From 8d5f156498513fe76978af39b8a746eaf5b80655 Mon Sep 17 00:00:00 2001 From: Vince Weaver Date: Thu, 4 Nov 2021 20:27:29 -0400 Subject: [PATCH] tiny_tracker: trying to add another octave --- music/tiny_tracker/Makefile | 12 +- music/tiny_tracker/interrupt_handler.s | 69 ++- music/tiny_tracker/mockingboard_setup.s | 26 +- music/tiny_tracker/peasant.txt | 202 ++++---- music/tiny_tracker/peasant_music.s | 596 ------------------------ music/tiny_tracker/text_to_tiny.c | 26 +- 6 files changed, 188 insertions(+), 743 deletions(-) delete mode 100644 music/tiny_tracker/peasant_music.s diff --git a/music/tiny_tracker/Makefile b/music/tiny_tracker/Makefile index bf159ee3..566eed31 100644 --- a/music/tiny_tracker/Makefile +++ b/music/tiny_tracker/Makefile @@ -6,7 +6,7 @@ HGR2PNG = ../../utils/hgr-utils/png2hgr LINKER_SCRIPTS = ../../linker_scripts TOKENIZE = ../../utils/asoft_basic-utils/tokenize_asoft -all: tiny_tracker.dsk text_to_tiny +all: tiny_tracker.dsk text_to_tiny frequency tiny_tracker.dsk: HELLO PEASANT cp $(EMPTY_DISK)/empty.dsk ./tiny_tracker.dsk @@ -50,5 +50,13 @@ text_to_tiny.o: text_to_tiny.c #### +frequency: frequency.o + $(CC) -o frequency frequency.o -lm + +frequency.o: frequency.c + $(CC) $(CFLAGS) -c frequency.c + +#### + clean: - rm -f *~ *.o *.lst YANKEE PEASANT HELLO text_to_tiny + rm -f *~ *.o *.lst YANKEE PEASANT HELLO text_to_tiny frequency diff --git a/music/tiny_tracker/interrupt_handler.s b/music/tiny_tracker/interrupt_handler.s index 4a9007d8..06907693 100644 --- a/music/tiny_tracker/interrupt_handler.s +++ b/music/tiny_tracker/interrupt_handler.s @@ -41,41 +41,33 @@ try_again: ldy SONG_OFFSET set_notes_loop: - ; see if hit end lda (SONG_L),Y - cmp #$FF + cmp #$C0 bne all_ok - ; if at end, reset - lda #0 - sta SONG_OFFSET - beq try_again -all_ok: + ; if at end, loop +loop_forever: + jmp loop_forever + +; lda #0 +; sta SONG_OFFSET +; beq try_again +all_ok: ; see if note tax and #$C0 cmp #$C0 - bne note_only - - ; was timing - - txa - and #$3f - sta SONG_COUNTDOWN - iny - sty SONG_OFFSET - jmp done_update_song + beq handle_timing note_only: txa ; CCOONNNN -- c=channel, o=octave, n=note - ; FIXME: OONNNNCC instead? + ; TODO: OONNNNCC instead? - pha lsr lsr lsr @@ -83,25 +75,52 @@ note_only: lsr and #$FE sta out_smc+1 - pla + + txa + and #$3F tax - lda frequency_lookup,X + lda frequency_lookup_high,X + sta out_smc2+1 + lda frequency_lookup_low,X sty y_smc+1 out_smc: ldx #$00 - jsr ay3_write_reg ; trashes A/X/Y + jsr ay3_write_reg ; trashes A/Y - ; set coarse note A (assume 0) - ; could get extra octave by putting 1 here + ; set coarse note A + ; hack: if octave=0 (C2) then coarse=1 + ; else coarse=0 + + inx +out_smc2: + lda #$dd + jsr ay3_write_reg ; trashes A/Y y_smc: ldy #0 iny + bne not_wrap2 + inc SONG_H +not_wrap2: jmp set_notes_loop -done_update_song: +handle_timing: + ; was timing + txa + + and #$3f + sta SONG_COUNTDOWN + iny + sty SONG_OFFSET + bne not_wrap1 + + inc SONG_H + +not_wrap1: + +done_update_song: dec SONG_COUNTDOWN diff --git a/music/tiny_tracker/mockingboard_setup.s b/music/tiny_tracker/mockingboard_setup.s index d6f66f47..0d846ba2 100644 --- a/music/tiny_tracker/mockingboard_setup.s +++ b/music/tiny_tracker/mockingboard_setup.s @@ -180,11 +180,22 @@ no_oflo: ; create Frequency Table ldx #12 make_freq_loop: - lda frequency_lookup,X + sec + lda frequency_lookup_low,X + ror + sta frequency_lookup_low+16,X lsr - sta frequency_lookup+16,X + sta frequency_lookup_low+32,X lsr - sta frequency_lookup+32,X + sta frequency_lookup_low+48,X + + lda #1 + sta frequency_lookup_high,X + lda #0 + sta frequency_lookup_high+16,X + sta frequency_lookup_high+32,X + sta frequency_lookup_high+48,X + dex bpl make_freq_loop @@ -235,9 +246,12 @@ ay3_write_reg: ; starts at C4 -frequency_lookup: -.byte $F4,$E6,$D9,$CD,$C1,$B7,$AC,$A3,$99,$91,$89,$81,$00 +frequency_lookup_low: +.byte $E8,$CD,$B3,$9B,$83,$6E,$59,$46,$33,$22,$12,$02,$00 -;.byte $00,$00,$00,$00 +;$1E8,$1CD,$1B3,$19B,$183,$16E,$159,$146,$133,$122,$112,$102, +;.byte $F4,$E6,$D9,$CD,$C1,$B7,$AC,$A3,$99,$91,$89,$81,$00,$00,$00,$00 ;.byte $7A,$73,$6C,$66,$60,$5B,$56,$51,$4C,$48,$44,$40,$00,$00,$00,$00 ;.byte $3D,$39,$36,$33,$30,$2D,$2B,$28,$26,$24,$22,$20,$00,$00,$00,$00 + +frequency_lookup_high = frequency_lookup_low+64 diff --git a/music/tiny_tracker/peasant.txt b/music/tiny_tracker/peasant.txt index ea7be211..1d872a1f 100644 --- a/music/tiny_tracker/peasant.txt +++ b/music/tiny_tracker/peasant.txt @@ -214,24 +214,24 @@ F R---- ----- ----- 0 C 2 3 C 4 4 ----- 1 ----- ----- ----- 2 ----- ----- ----- -3 ----- R---- ----- -4 ----- C 4 4 ----- +3 ----- ----- ----- +4 ----- ----- ----- 5 ----- ----- ----- 6 ----- ----- ----- -7 ----- R---- ----- -8 ----- C 4 4 ----- +7 ----- ----- ----- +8 ----- ----- ----- 9 ----- ----- ----- A ----- ----- ----- -B R---- R---- ----- -C C 2 3 C 4 4 ----- +B R---- ----- ----- +C C 2 3 ----- ----- D ----- ----- ----- E ----- ----- ----- -F R---- R---- ----- -10 C 2 3 C 4 4 ----- +F R---- ----- ----- +10 C 2 3 ----- ----- 11 ----- ----- ----- 12 ----- ----- ----- -13 R---- R---- ----- -14 C 2 3 C 4 4 ----- +13 R---- ----- ----- +14 C 2 3 ----- ----- 15 ----- ----- ----- 16 ----- ----- ----- 17 R---- ----- ----- @@ -268,15 +268,15 @@ F R---- R---- ----- 5 ----- ----- ----- 6 ----- ----- ----- 7 ----- ----- ----- -8 ----- G 4 3 ----- +8 ----- G 4-- ----- 9 ----- ----- ----- A ----- ----- ----- B R---- R---- ----- C C 2 3 G 4 4 ----- D ----- ----- ----- E ----- ----- ----- -F R---- R---- ----- -10 C 2 3 G 4 3 ----- +F R---- ----- ----- +10 C 2 3 ----- ----- 11 ----- ----- ----- 12 ----- ----- ----- 13 R---- ----- ----- @@ -287,11 +287,11 @@ F R---- R---- ----- 18 C 2 3 F 4 4 ----- 19 ----- ----- ----- 1A ----- ----- ----- -1B ----- R---- ----- -1C ----- F 4 3 ----- +1B ----- ----- ----- +1C ----- ----- ----- 1D ----- ----- ----- 1E ----- ----- ----- -1F ----- ----- ----- +1F ----- R---- ----- 20 ----- E 4 3 ----- 21 ----- ----- ----- 22 ----- ----- ----- @@ -299,8 +299,8 @@ F R---- R---- ----- 24 C 2 3 E 4 4 ----- 25 ----- ----- ----- 26 ----- ----- ----- -27 R---- R---- ----- -28 C 2 3 E 4 3 ----- +27 R---- ----- ----- +28 C 2 3 ----- ----- 29 ----- ----- ----- 2A ----- ----- ----- 2B R---- ----- ----- @@ -313,26 +313,26 @@ F R---- R---- ----- 1 ----- ----- ----- 2 ----- ----- ----- 3 ----- ----- ----- -4 ----- C 4 4 ----- +4 ----- ----- ----- 5 ----- ----- ----- 6 ----- ----- ----- 7 ----- ----- ----- -8 ----- C 4 4 ----- +8 ----- ----- ----- 9 ----- ----- ----- A ----- ----- ----- -B ----- ----- ----- -C F 2 3 C 4 4 ----- +B R---- ----- ----- +C F 2 3 ----- ----- D ----- ----- ----- E ----- ----- ----- -F ----- ----- ----- -10 F 2 3 C 4 4 ----- +F R---- ----- ----- +10 F 2 3 ----- ----- 11 ----- ----- ----- 12 ----- ----- ----- -13 ----- ----- ----- -14 F 2 3 C 4 4 ----- +13 R---- ----- ----- +14 F 2 3 ----- ----- 15 ----- ----- ----- 16 ----- ----- ----- -17 ----- ----- ----- +17 R---- R---- ----- 18 F 2 3 ----- ----- 19 ----- ----- ----- 1A ----- ----- ----- @@ -348,11 +348,11 @@ F ----- ----- ----- 24 F 2 3 ----- ----- 25 ----- ----- ----- 26 ----- ----- ----- -27 ----- ----- ----- +27 R---- ----- ----- 28 F 2 3 ----- ----- 29 ----- ----- ----- 2A ----- ----- ----- -2B ----- ----- ----- +2B R---- ----- ----- 2C F 2 3 ----- ----- 2D ----- ----- ----- 2E ----- ----- ----- @@ -369,39 +369,39 @@ F ----- ----- ----- 8 ----- G 4 3 ----- 9 ----- ----- ----- A ----- ----- ----- -B ----- ----- ----- +B ----- R---- ----- C G 2 3 G 4 4 ----- D ----- ----- ----- E ----- ----- ----- -F ----- ----- ----- -10 G 2 3 G 4 3 ----- +F R---- ----- ----- +10 G 2 3 ----- ----- 11 ----- ----- ----- 12 ----- ----- ----- -13 ----- ----- ----- -14 G 2 3 F 4 3 ----- +13 R---- ----- ----- +14 G 2 3 F 4-- ----- 15 ----- ----- ----- 16 ----- ----- ----- -17 ----- ----- ----- +17 R---- R---- ----- 18 G 2 3 F 4 4 ----- 19 ----- ----- ----- 1A ----- ----- ----- 1B ----- ----- ----- -1C ----- F 4 3 ----- +1C ----- ----- ----- 1D ----- ----- ----- 1E ----- ----- ----- 1F ----- ----- ----- 20 ----- E 4 3 ----- 21 ----- ----- ----- 22 ----- ----- ----- -23 ----- ----- ----- +23 ----- R---- ----- 24 G 2 3 E 4 4 ----- 25 ----- ----- ----- 26 ----- ----- ----- -27 ----- ----- ----- -28 G 2 3 E 4 3 ----- +27 R---- ----- ----- +28 G 2 3 ----- ----- 29 ----- ----- ----- 2A ----- ----- ----- -2B ----- ----- ----- +2B R---- ----- ----- 2C G 2 3 F 4 3 ----- 2D ----- ----- ----- 2E ----- ----- ----- @@ -409,126 +409,126 @@ F ----- ----- ----- ' 7 0 C 2 3 D 4 3 ----- 1 ----- ----- ----- -2 ----- ----- ----- +2 ----- R---- ----- 3 ----- D 4 6 ----- 4 ----- D 4 8 ----- -5 ----- ----- ----- +5 ----- R---- ----- 6 ----- D 4 3 ----- 7 ----- ----- ----- -8 ----- ----- ----- +8 ----- R---- ----- 9 ----- D 4 3 ----- A ----- ----- ----- -B ----- ----- ----- +B R---- ----- ----- C C 2 3 A#4 4 ----- D ----- ----- ----- E ----- ----- ----- -F ----- ----- ----- +F R---- R---- ----- 10 C 2 3 A#4 4 ----- 11 ----- ----- ----- 12 ----- ----- ----- -13 ----- ----- ----- +13 R---- R---- ----- 14 C 2 3 A#4 3 ----- 15 ----- ----- ----- 16 ----- ----- ----- -17 ----- ----- ----- +17 R---- ----- ----- 18 C 2 3 D 4 3 ----- 19 ----- ----- ----- -1A ----- ----- ----- +1A ----- R---- ----- 1B ----- D 4 6 ----- 1C ----- D 4 8 ----- -1D ----- ----- ----- +1D ----- R---- ----- 1E ----- D 4 4 ----- 1F ----- ----- ----- 20 ----- ----- ----- 21 ----- ----- ----- 22 ----- D 4 8 ----- -23 ----- ----- ----- +23 R---- ----- ----- 24 C 2 3 G 4 4 ----- 25 ----- ----- ----- 26 ----- ----- ----- -27 ----- ----- ----- +27 R---- R---- ----- 28 C 2 3 G 4 4 ----- 29 ----- ----- ----- 2A ----- ----- ----- -2B ----- ----- ----- +2B R---- R---- ----- 2C C 2 3 G 4 3 ----- 2D ----- ----- ----- 2E ----- ----- ----- -2F ----- ----- ----- +2F R---- ----- ----- ' 8 0 C 2 3 D 4 3 ----- 1 ----- ----- ----- -2 ----- ----- ----- +2 ----- R---- ----- 3 ----- D 4 6 ----- 4 ----- D 4 8 ----- -5 ----- ----- ----- +5 ----- R---- ----- 6 ----- D 4 8 ----- -7 ----- ----- ----- +7 ----- R---- ----- 8 ----- D 4 4 ----- 9 ----- ----- ----- A ----- ----- ----- -B ----- ----- ----- +B R---- ----- ----- C C 2 3 A#4 4 ----- D ----- ----- ----- E ----- ----- ----- -F ----- ----- ----- +F R---- R---- ----- 10 C 2 3 A#4 8 ----- 11 ----- ----- ----- 12 ----- D 4 4 ----- -13 ----- ----- ----- +13 R---- ----- ----- 14 C 2 3 ----- ----- -15 ----- ----- ----- +15 ----- R---- ----- 16 ----- D 4 8 ----- -17 ----- ----- ----- +17 R---- ----- ----- 18 C 2 3 G 4 4 ----- 19 ----- ----- ----- 1A ----- ----- ----- -1B ----- ----- ----- +1B ----- R---- ----- 1C ----- G 4 8 ----- 1D ----- ----- ----- 1E ----- D 4 4 ----- 1F ----- ----- ----- 20 ----- ----- ----- -21 ----- ----- ----- +21 ----- R---- ----- 22 ----- D 4 8 ----- -23 ----- ----- ----- +23 R---- ----- ----- 24 C 2 3 F 4 4 ----- 25 ----- ----- ----- 26 ----- ----- ----- -27 ----- ----- ----- +27 R---- R---- ----- 28 C 2 3 F 4 8 ----- 29 ----- ----- ----- 2A ----- G 4 4 ----- -2B ----- ----- ----- +2B R---- ----- ----- 2C C 2 3 ----- ----- -2D ----- ----- ----- +2D ----- R---- ----- 2E ----- G 4 8 ----- -2F ----- ----- ----- +2F R---- ----- ----- ' 5 0 F 2 3 C 4 4 ----- 1 ----- ----- ----- 2 ----- ----- ----- 3 ----- ----- ----- -4 ----- C 4 4 ----- +4 ----- ----- ----- 5 ----- ----- ----- 6 ----- ----- ----- 7 ----- ----- ----- -8 ----- C 4 4 ----- +8 ----- ----- ----- 9 ----- ----- ----- A ----- ----- ----- -B ----- ----- ----- -C F 2 3 C 4 4 ----- +B R---- ----- ----- +C F 2 3 ----- ----- D ----- ----- ----- E ----- ----- ----- -F ----- ----- ----- -10 F 2 3 C 4 4 ----- +F R---- ----- ----- +10 F 2 3 ----- ----- 11 ----- ----- ----- 12 ----- ----- ----- -13 ----- ----- ----- -14 F 2 3 C 4 4 ----- +13 R---- ----- ----- +14 F 2 3 ----- ----- 15 ----- ----- ----- 16 ----- ----- ----- -17 ----- ----- ----- +17 R---- R---- ----- 18 F 2 3 ----- ----- 19 ----- ----- ----- 1A ----- ----- ----- @@ -540,15 +540,15 @@ F ----- ----- ----- 20 ----- ----- ----- 21 ----- ----- ----- 22 ----- ----- ----- -23 ----- ----- ----- +23 R---- ----- ----- 24 F 2 3 ----- ----- 25 ----- ----- ----- 26 ----- ----- ----- -27 ----- ----- ----- +27 R---- ----- ----- 28 F 2 3 ----- ----- 29 ----- ----- ----- 2A ----- ----- ----- -2B ----- ----- ----- +2B R---- ----- ----- 2C F 2 3 ----- ----- 2D ----- ----- ----- 2E ----- ----- ----- @@ -565,23 +565,23 @@ F ----- ----- ----- 8 ----- G 4 3 ----- 9 ----- ----- ----- A ----- ----- ----- -B ----- ----- ----- +B R---- R---- ----- C G 2 3 G 4 4 ----- D ----- ----- ----- E ----- ----- ----- -F ----- ----- ----- -10 G 2 3 G 4 3 ----- +F R---- ----- ----- +10 G 2 3 ----- ----- 11 ----- ----- ----- 12 ----- ----- ----- -13 ----- ----- ----- +13 R---- ----- ----- 14 G 2 3 F 4 3 ----- 15 ----- ----- ----- 16 ----- ----- ----- -17 ----- ----- ----- +17 R---- R---- ----- 18 G 2 3 F 4 4 ----- 19 ----- ----- ----- 1A ----- ----- ----- -1B ----- ----- ----- +1B ----- R---- ----- 1C ----- F 4 3 ----- 1D ----- ----- ----- 1E ----- ----- ----- @@ -589,15 +589,15 @@ F ----- ----- ----- 20 ----- E 4 3 ----- 21 ----- ----- ----- 22 ----- ----- ----- -23 ----- ----- ----- -24 G 2 3 E 4 4 ----- +23 R---- ----- ----- +24 G 2 3 ----- ----- 25 ----- ----- ----- 26 ----- ----- ----- -27 ----- ----- ----- +27 R---- R---- ----- 28 G 2 3 E 4 3 ----- 29 ----- ----- ----- 2A ----- ----- ----- -2B ----- ----- ----- +2B R---- R---- ----- 2C G 2 3 F 4 3 ----- 2D ----- ----- ----- 2E ----- ----- ----- @@ -607,27 +607,27 @@ F ----- ----- ----- 1 ----- ----- ----- 2 ----- ----- ----- 3 ----- ----- ----- -4 ----- G 4 4 ----- +4 ----- ----- ----- 5 ----- ----- ----- 6 ----- ----- ----- 7 ----- ----- ----- -8 ----- G 4 3 ----- +8 ----- ----- ----- 9 ----- ----- ----- A ----- ----- ----- -B ----- ----- ----- +B R---- ----- ----- C C 2 3 ----- ----- D ----- ----- ----- E ----- ----- ----- -F ----- ----- ----- +F R---- ----- ----- 10 C 2 3 ----- ----- 11 ----- ----- ----- 12 ----- ----- ----- -13 ----- ----- ----- +13 R---- ----- ----- 14 C 2 3 ----- ----- 15 ----- ----- ----- 16 ----- ----- ----- -17 ----- ----- ----- -18 C 2 3 ----- ----- +17 R---- ----- ----- +18 C 2 3 R---- ----- 19 ----- ----- ----- 1A ----- ----- ----- 1B ----- ----- ----- @@ -638,17 +638,17 @@ F ----- ----- ----- 20 ----- ----- ----- 21 ----- ----- ----- 22 ----- ----- ----- -23 ----- ----- ----- +23 R---- ----- ----- 24 C 2 3 ----- ----- 25 ----- ----- ----- 26 ----- ----- ----- -27 ----- ----- ----- +27 R---- ----- ----- 28 C 2 3 ----- ----- 29 ----- ----- ----- 2A ----- ----- ----- -2B ----- ----- ----- +2B R---- ----- ----- 2C C 2 3 ----- ----- 2D ----- ----- ----- 2E ----- ----- ----- -2F ----- ----- ----- +2F R---- R---- R---- ' LOOP TO FRAME 8 diff --git a/music/tiny_tracker/peasant_music.s b/music/tiny_tracker/peasant_music.s deleted file mode 100644 index d8e6584c..00000000 --- a/music/tiny_tracker/peasant_music.s +++ /dev/null @@ -1,596 +0,0 @@ -peasant_song: -; register init - .byte $00,$00,$00,$00,$00,$00 ; $00: A/B/C fine/coarse - .byte $00 ; $06 - .byte $38 ; $07 mixer (ABC on) - .byte $0E,$0C,$0C ; $08 volume A/B/C - .byte $00,$00,$00,$00 ; $09 - - .byte $20 ; A = C 2 - .byte $4C ; B = R--3 - .byte $8C ; C = R--3 - .byte $CB ; L = 11 - - .byte $0C ; A = R--3 - .byte $C1 ; L = 1 - - .byte $20 ; A = C 2 - .byte $C3 ; L = 3 - - .byte $0C ; A = R--3 - .byte $C1 ; L = 1 - - .byte $20 ; A = C 2 - .byte $C3 ; L = 3 - - .byte $0C ; A = R--3 - .byte $C1 ; L = 1 - - .byte $20 ; A = C 2 - .byte $C3 ; L = 3 - - .byte $0C ; A = R--3 - .byte $C1 ; L = 1 - - .byte $20 ; A = C 2 - .byte $CB ; L = 11 - - .byte $0C ; A = R--3 - .byte $C1 ; L = 1 - - .byte $20 ; A = C 2 - .byte $C3 ; L = 3 - - .byte $0C ; A = R--3 - .byte $C1 ; L = 1 - - .byte $20 ; A = C 2 - .byte $C3 ; L = 3 - - .byte $0C ; A = R--3 - .byte $C1 ; L = 1 - - .byte $20 ; A = C 2 - .byte $C3 ; L = 3 - - .byte $0C ; A = R--3 - .byte $C1 ; L = 1 - - .byte $20 ; A = C 2 - .byte $CB ; L = 11 - - .byte $0C ; A = R--3 - .byte $C1 ; L = 1 - - .byte $20 ; A = C 2 - .byte $C3 ; L = 3 - - .byte $0C ; A = R--3 - .byte $C1 ; L = 1 - - .byte $20 ; A = C 2 - .byte $C3 ; L = 3 - - .byte $0C ; A = R--3 - .byte $C1 ; L = 1 - - .byte $20 ; A = C 2 - .byte $C3 ; L = 3 - - .byte $0C ; A = R--3 - .byte $C1 ; L = 1 - - .byte $20 ; A = C 2 - .byte $CB ; L = 11 - - .byte $0C ; A = R--3 - .byte $C1 ; L = 1 - - .byte $20 ; A = C 2 - .byte $C3 ; L = 3 - - .byte $0C ; A = R--3 - .byte $C1 ; L = 1 - - .byte $20 ; A = C 2 - .byte $C3 ; L = 3 - - .byte $0C ; A = R--3 - .byte $C1 ; L = 1 - - .byte $20 ; A = C 2 - .byte $C4 ; L = 4 - - .byte $25 ; A = F 2 - .byte $CB ; L = 11 - - .byte $0C ; A = R--3 - .byte $C1 ; L = 1 - - .byte $25 ; A = F 2 - .byte $C3 ; L = 3 - - .byte $0C ; A = R--3 - .byte $C1 ; L = 1 - - .byte $25 ; A = F 2 - .byte $C3 ; L = 3 - - .byte $0C ; A = R--3 - .byte $C1 ; L = 1 - - .byte $25 ; A = F 2 - .byte $C3 ; L = 3 - - .byte $0C ; A = R--3 - .byte $C1 ; L = 1 - - .byte $25 ; A = F 2 - .byte $CB ; L = 11 - - .byte $0C ; A = R--3 - .byte $C1 ; L = 1 - - .byte $25 ; A = F 2 - .byte $C3 ; L = 3 - - .byte $0C ; A = R--3 - .byte $C1 ; L = 1 - - .byte $25 ; A = F 2 - .byte $C3 ; L = 3 - - .byte $0C ; A = R--3 - .byte $C1 ; L = 1 - - .byte $25 ; A = F 2 - .byte $C4 ; L = 4 - - .byte $27 ; A = G 2 - .byte $CB ; L = 11 - - .byte $0C ; A = R--3 - .byte $C1 ; L = 1 - - .byte $27 ; A = G 2 - .byte $C3 ; L = 3 - - .byte $0C ; A = R--3 - .byte $C1 ; L = 1 - - .byte $27 ; A = G 2 - .byte $C3 ; L = 3 - - .byte $0C ; A = R--3 - .byte $C1 ; L = 1 - - .byte $27 ; A = G 2 - .byte $C3 ; L = 3 - - .byte $0C ; A = R--3 - .byte $C1 ; L = 1 - - .byte $27 ; A = G 2 - .byte $CB ; L = 11 - - .byte $0C ; A = R--3 - .byte $C1 ; L = 1 - - .byte $27 ; A = G 2 - .byte $C3 ; L = 3 - - .byte $0C ; A = R--3 - .byte $C1 ; L = 1 - - .byte $27 ; A = G 2 - .byte $C3 ; L = 3 - - .byte $0C ; A = R--3 - .byte $C1 ; L = 1 - - .byte $27 ; A = G 2 - .byte $C4 ; L = 4 - - .byte $20 ; A = C 2 - .byte $C3 ; L = 3 - - .byte $4C ; B = R--3 - .byte $C4 ; L = 4 - - .byte $4C ; B = R--3 - .byte $C4 ; L = 4 - - .byte $0C ; A = R--3 - .byte $4C ; B = R--3 - .byte $C1 ; L = 1 - - .byte $20 ; A = C 2 - .byte $C3 ; L = 3 - - .byte $0C ; A = R--3 - .byte $4C ; B = R--3 - .byte $C1 ; L = 1 - - .byte $20 ; A = C 2 - .byte $C3 ; L = 3 - - .byte $0C ; A = R--3 - .byte $4C ; B = R--3 - .byte $C1 ; L = 1 - - .byte $20 ; A = C 2 - .byte $C3 ; L = 3 - - .byte $0C ; A = R--3 - .byte $C1 ; L = 1 - - .byte $20 ; A = C 2 - .byte $4C ; B = R--3 - .byte $CB ; L = 11 - - .byte $0C ; A = R--3 - .byte $C1 ; L = 1 - - .byte $20 ; A = C 2 - .byte $C3 ; L = 3 - - .byte $0C ; A = R--3 - .byte $C1 ; L = 1 - - .byte $20 ; A = C 2 - .byte $C3 ; L = 3 - - .byte $0C ; A = R--3 - .byte $C1 ; L = 1 - - .byte $20 ; A = C 2 - .byte $C3 ; L = 3 - - .byte $0C ; A = R--3 - .byte $C1 ; L = 1 - - .byte $20 ; A = C 2 - .byte $C8 ; L = 8 - - .byte $47 ; B = G 4 - .byte $C3 ; L = 3 - - .byte $0C ; A = R--3 - .byte $4C ; B = R--3 - .byte $C1 ; L = 1 - - .byte $20 ; A = C 2 - .byte $47 ; B = G 4 - .byte $C3 ; L = 3 - - .byte $0C ; A = R--3 - .byte $4C ; B = R--3 - .byte $C1 ; L = 1 - - .byte $20 ; A = C 2 - .byte $47 ; B = G 4 - .byte $C3 ; L = 3 - - .byte $0C ; A = R--3 - .byte $C1 ; L = 1 - - .byte $20 ; A = C 2 - .byte $45 ; B = F 4 - .byte $C3 ; L = 3 - - .byte $0C ; A = R--3 - .byte $4C ; B = R--3 - .byte $C1 ; L = 1 - - .byte $20 ; A = C 2 - .byte $45 ; B = F 4 - .byte $C3 ; L = 3 - - .byte $4C ; B = R--3 - .byte $C1 ; L = 1 - - .byte $45 ; B = F 4 - .byte $C4 ; L = 4 - - .byte $44 ; B = E 4 - .byte $C3 ; L = 3 - - .byte $4C ; B = R--3 - .byte $C1 ; L = 1 - - .byte $20 ; A = C 2 - .byte $44 ; B = E 4 - .byte $C3 ; L = 3 - - .byte $0C ; A = R--3 - .byte $4C ; B = R--3 - .byte $C1 ; L = 1 - - .byte $20 ; A = C 2 - .byte $44 ; B = E 4 - .byte $C3 ; L = 3 - - .byte $0C ; A = R--3 - .byte $C1 ; L = 1 - - .byte $20 ; A = C 2 - .byte $45 ; B = F 4 - .byte $C4 ; L = 4 - - .byte $25 ; A = F 2 - .byte $CC ; L = 12 - - .byte $25 ; A = F 2 - .byte $C4 ; L = 4 - - .byte $25 ; A = F 2 - .byte $C4 ; L = 4 - - .byte $25 ; A = F 2 - .byte $C4 ; L = 4 - - .byte $25 ; A = F 2 - .byte $CC ; L = 12 - - .byte $25 ; A = F 2 - .byte $C4 ; L = 4 - - .byte $25 ; A = F 2 - .byte $C4 ; L = 4 - - .byte $25 ; A = F 2 - .byte $C4 ; L = 4 - - .byte $27 ; A = G 2 - .byte $C8 ; L = 8 - - .byte $47 ; B = G 4 - .byte $C4 ; L = 4 - - .byte $27 ; A = G 2 - .byte $47 ; B = G 4 - .byte $C4 ; L = 4 - - .byte $27 ; A = G 2 - .byte $47 ; B = G 4 - .byte $C4 ; L = 4 - - .byte $27 ; A = G 2 - .byte $45 ; B = F 4 - .byte $C4 ; L = 4 - - .byte $27 ; A = G 2 - .byte $45 ; B = F 4 - .byte $C4 ; L = 4 - - .byte $45 ; B = F 4 - .byte $C4 ; L = 4 - - .byte $44 ; B = E 4 - .byte $C4 ; L = 4 - - .byte $27 ; A = G 2 - .byte $44 ; B = E 4 - .byte $C4 ; L = 4 - - .byte $27 ; A = G 2 - .byte $44 ; B = E 4 - .byte $C4 ; L = 4 - - .byte $27 ; A = G 2 - .byte $45 ; B = F 4 - .byte $C4 ; L = 4 - - .byte $20 ; A = C 2 - .byte $42 ; B = D 4 - .byte $C3 ; L = 3 - - .byte $42 ; B = D 4 - .byte $C1 ; L = 1 - - .byte $42 ; B = D 4 - .byte $C2 ; L = 2 - - .byte $42 ; B = D 4 - .byte $C3 ; L = 3 - - .byte $42 ; B = D 4 - .byte $C3 ; L = 3 - - .byte $20 ; A = C 2 - .byte $4A ; B = A#4 - .byte $C4 ; L = 4 - - .byte $20 ; A = C 2 - .byte $4A ; B = A#4 - .byte $C4 ; L = 4 - - .byte $20 ; A = C 2 - .byte $4A ; B = A#4 - .byte $C4 ; L = 4 - - .byte $20 ; A = C 2 - .byte $42 ; B = D 4 - .byte $C3 ; L = 3 - - .byte $42 ; B = D 4 - .byte $C1 ; L = 1 - - .byte $42 ; B = D 4 - .byte $C2 ; L = 2 - - .byte $42 ; B = D 4 - .byte $C4 ; L = 4 - - .byte $42 ; B = D 4 - .byte $C2 ; L = 2 - - .byte $20 ; A = C 2 - .byte $47 ; B = G 4 - .byte $C4 ; L = 4 - - .byte $20 ; A = C 2 - .byte $47 ; B = G 4 - .byte $C4 ; L = 4 - - .byte $20 ; A = C 2 - .byte $47 ; B = G 4 - .byte $C4 ; L = 4 - - .byte $20 ; A = C 2 - .byte $42 ; B = D 4 - .byte $C3 ; L = 3 - - .byte $42 ; B = D 4 - .byte $C1 ; L = 1 - - .byte $42 ; B = D 4 - .byte $C2 ; L = 2 - - .byte $42 ; B = D 4 - .byte $C2 ; L = 2 - - .byte $42 ; B = D 4 - .byte $C4 ; L = 4 - - .byte $20 ; A = C 2 - .byte $4A ; B = A#4 - .byte $C4 ; L = 4 - - .byte $20 ; A = C 2 - .byte $4A ; B = A#4 - .byte $C2 ; L = 2 - - .byte $42 ; B = D 4 - .byte $C2 ; L = 2 - - .byte $20 ; A = C 2 - .byte $C2 ; L = 2 - - .byte $42 ; B = D 4 - .byte $C2 ; L = 2 - - .byte $20 ; A = C 2 - .byte $47 ; B = G 4 - .byte $C4 ; L = 4 - - .byte $47 ; B = G 4 - .byte $C2 ; L = 2 - - .byte $42 ; B = D 4 - .byte $C4 ; L = 4 - - .byte $42 ; B = D 4 - .byte $C2 ; L = 2 - - .byte $20 ; A = C 2 - .byte $45 ; B = F 4 - .byte $C4 ; L = 4 - - .byte $20 ; A = C 2 - .byte $45 ; B = F 4 - .byte $C2 ; L = 2 - - .byte $47 ; B = G 4 - .byte $C2 ; L = 2 - - .byte $20 ; A = C 2 - .byte $C2 ; L = 2 - - .byte $47 ; B = G 4 - .byte $C2 ; L = 2 - - .byte $25 ; A = F 2 - .byte $CC ; L = 12 - - .byte $25 ; A = F 2 - .byte $C4 ; L = 4 - - .byte $25 ; A = F 2 - .byte $C4 ; L = 4 - - .byte $25 ; A = F 2 - .byte $C4 ; L = 4 - - .byte $25 ; A = F 2 - .byte $CC ; L = 12 - - .byte $25 ; A = F 2 - .byte $C4 ; L = 4 - - .byte $25 ; A = F 2 - .byte $C4 ; L = 4 - - .byte $25 ; A = F 2 - .byte $C4 ; L = 4 - - .byte $27 ; A = G 2 - .byte $C8 ; L = 8 - - .byte $47 ; B = G 4 - .byte $C4 ; L = 4 - - .byte $27 ; A = G 2 - .byte $47 ; B = G 4 - .byte $C4 ; L = 4 - - .byte $27 ; A = G 2 - .byte $47 ; B = G 4 - .byte $C4 ; L = 4 - - .byte $27 ; A = G 2 - .byte $45 ; B = F 4 - .byte $C4 ; L = 4 - - .byte $27 ; A = G 2 - .byte $45 ; B = F 4 - .byte $C4 ; L = 4 - - .byte $45 ; B = F 4 - .byte $C4 ; L = 4 - - .byte $44 ; B = E 4 - .byte $C4 ; L = 4 - - .byte $27 ; A = G 2 - .byte $44 ; B = E 4 - .byte $C4 ; L = 4 - - .byte $27 ; A = G 2 - .byte $44 ; B = E 4 - .byte $C4 ; L = 4 - - .byte $27 ; A = G 2 - .byte $45 ; B = F 4 - .byte $C4 ; L = 4 - - .byte $20 ; A = C 2 - .byte $47 ; B = G 4 - .byte $C4 ; L = 4 - - .byte $47 ; B = G 4 - .byte $C4 ; L = 4 - - .byte $47 ; B = G 4 - .byte $C4 ; L = 4 - - .byte $20 ; A = C 2 - .byte $C4 ; L = 4 - - .byte $20 ; A = C 2 - .byte $C4 ; L = 4 - - .byte $20 ; A = C 2 - .byte $C4 ; L = 4 - - .byte $20 ; A = C 2 - .byte $CC ; L = 12 - - .byte $20 ; A = C 2 - .byte $C4 ; L = 4 - - .byte $20 ; A = C 2 - .byte $C4 ; L = 4 - - .byte $20 ; A = C 2 - .byte $FF diff --git a/music/tiny_tracker/text_to_tiny.c b/music/tiny_tracker/text_to_tiny.c index 29f4446b..bd29d8cf 100644 --- a/music/tiny_tracker/text_to_tiny.c +++ b/music/tiny_tracker/text_to_tiny.c @@ -13,6 +13,8 @@ #include #include +static int octave_adjust=1; + // CCOONNNN -- c=channel, o=octave, n=note int note_to_ed(char note, int flat, int sharp, int octave) { @@ -39,7 +41,7 @@ int note_to_ed(char note, int flat, int sharp, int octave) { if (sharp==2) offset+=2; - offset=((octave&0x3)<<4)|offset; + offset=((((octave+octave_adjust)-3)&0x3)<<4)|offset; return offset; } @@ -48,8 +50,6 @@ int note_to_ed(char note, int flat, int sharp, int octave) { static int debug=0; -static int octave_adjust=0; - static int line=0; static int header_version=0; @@ -97,7 +97,7 @@ static int get_note(char *string, int sp, struct note_type *n, int line) { /* get note info */ n->sharp=0; n->flat=0; - n->ed_freq=0; + n->ed_freq=-1; n->note=ch; sp++; if (string[sp]==' ') ; @@ -121,7 +121,7 @@ static int get_note(char *string, int sp, struct note_type *n, int line) { if (n->note!='-') { freq=note_to_ed(n->note,n->flat,n->sharp, - n->octave+octave_adjust); + n->octave); n->enabled=1; n->length=0; @@ -302,9 +302,9 @@ printf("\n"); if (result==NULL) break; line++; - a.ed_freq=0; - b.ed_freq=0; - c.ed_freq=0; + a.ed_freq=-1; + b.ed_freq=-1; + c.ed_freq=-1; a.length=0; b.length=0; c.length=0; @@ -324,7 +324,7 @@ printf("\n"); if (sp!=-1) sp=get_note(string,sp,&c,line); - if ((a.ed_freq!=0)||(b.ed_freq!=0)||(c.ed_freq!=0)) { + if ((a.ed_freq>=0)||(b.ed_freq>=0)||(c.ed_freq>=0)) { if (!first) { printf("\t.byte $%02X ; L = %d\n", current_length|0xc0,current_length); @@ -337,19 +337,19 @@ printf("\n"); } - if (a.ed_freq!=0) { + if (a.ed_freq>=0) { printf("\t.byte $%02X ; A = %c%c%d\n", a.ed_freq, a.note,sharp_char[a.sharp+2*a.flat], a.octave); } - if (b.ed_freq!=0) { + if (b.ed_freq>=0) { printf("\t.byte $%02X ; B = %c%c%d\n", b.ed_freq|0x40, b.note,sharp_char[b.sharp+2*b.flat], b.octave); } - if (c.ed_freq!=0) { + if (c.ed_freq>=0) { printf("\t.byte $%02X ; C = %c%c%d\n", c.ed_freq|0x80, c.note,sharp_char[c.sharp+2*c.flat], @@ -361,7 +361,7 @@ printf("\n"); } - printf("\t.byte $FF\n"); + printf("\t.byte $C0 ; end\n"); (void) irq; (void) loop;