tiny_tracker: trying to add another octave

This commit is contained in:
Vince Weaver 2021-11-04 20:27:29 -04:00
parent 5a6f6b9f40
commit 8d5f156498
6 changed files with 188 additions and 743 deletions

View File

@ -6,7 +6,7 @@ HGR2PNG = ../../utils/hgr-utils/png2hgr
LINKER_SCRIPTS = ../../linker_scripts LINKER_SCRIPTS = ../../linker_scripts
TOKENIZE = ../../utils/asoft_basic-utils/tokenize_asoft 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 tiny_tracker.dsk: HELLO PEASANT
cp $(EMPTY_DISK)/empty.dsk ./tiny_tracker.dsk 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: clean:
rm -f *~ *.o *.lst YANKEE PEASANT HELLO text_to_tiny rm -f *~ *.o *.lst YANKEE PEASANT HELLO text_to_tiny frequency

View File

@ -41,41 +41,33 @@ try_again:
ldy SONG_OFFSET ldy SONG_OFFSET
set_notes_loop: set_notes_loop:
; see if hit end ; see if hit end
lda (SONG_L),Y lda (SONG_L),Y
cmp #$FF cmp #$C0
bne all_ok bne all_ok
; if at end, reset ; if at end, loop
lda #0
sta SONG_OFFSET
beq try_again
all_ok:
loop_forever:
jmp loop_forever
; lda #0
; sta SONG_OFFSET
; beq try_again
all_ok:
; see if note ; see if note
tax tax
and #$C0 and #$C0
cmp #$C0 cmp #$C0
bne note_only beq handle_timing
; was timing
txa
and #$3f
sta SONG_COUNTDOWN
iny
sty SONG_OFFSET
jmp done_update_song
note_only: note_only:
txa txa
; CCOONNNN -- c=channel, o=octave, n=note ; CCOONNNN -- c=channel, o=octave, n=note
; FIXME: OONNNNCC instead? ; TODO: OONNNNCC instead?
pha
lsr lsr
lsr lsr
lsr lsr
@ -83,25 +75,52 @@ note_only:
lsr lsr
and #$FE and #$FE
sta out_smc+1 sta out_smc+1
pla
txa
and #$3F and #$3F
tax tax
lda frequency_lookup,X lda frequency_lookup_high,X
sta out_smc2+1
lda frequency_lookup_low,X
sty y_smc+1 sty y_smc+1
out_smc: out_smc:
ldx #$00 ldx #$00
jsr ay3_write_reg ; trashes A/X/Y jsr ay3_write_reg ; trashes A/Y
; set coarse note A (assume 0) ; set coarse note A
; could get extra octave by putting 1 here ; 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: y_smc:
ldy #0 ldy #0
iny iny
bne not_wrap2
inc SONG_H
not_wrap2:
jmp set_notes_loop 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 dec SONG_COUNTDOWN

View File

@ -180,11 +180,22 @@ no_oflo:
; create Frequency Table ; create Frequency Table
ldx #12 ldx #12
make_freq_loop: make_freq_loop:
lda frequency_lookup,X sec
lda frequency_lookup_low,X
ror
sta frequency_lookup_low+16,X
lsr lsr
sta frequency_lookup+16,X sta frequency_lookup_low+32,X
lsr 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 dex
bpl make_freq_loop bpl make_freq_loop
@ -235,9 +246,12 @@ ay3_write_reg:
; starts at C4 ; starts at C4
frequency_lookup: frequency_lookup_low:
.byte $F4,$E6,$D9,$CD,$C1,$B7,$AC,$A3,$99,$91,$89,$81,$00 .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 $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 ;.byte $3D,$39,$36,$33,$30,$2D,$2B,$28,$26,$24,$22,$20,$00,$00,$00,$00
frequency_lookup_high = frequency_lookup_low+64

View File

@ -214,24 +214,24 @@ F R---- ----- -----
0 C 2 3 C 4 4 ----- 0 C 2 3 C 4 4 -----
1 ----- ----- ----- 1 ----- ----- -----
2 ----- ----- ----- 2 ----- ----- -----
3 ----- R---- ----- 3 ----- ----- -----
4 ----- C 4 4 ----- 4 ----- ----- -----
5 ----- ----- ----- 5 ----- ----- -----
6 ----- ----- ----- 6 ----- ----- -----
7 ----- R---- ----- 7 ----- ----- -----
8 ----- C 4 4 ----- 8 ----- ----- -----
9 ----- ----- ----- 9 ----- ----- -----
A ----- ----- ----- A ----- ----- -----
B R---- R---- ----- B R---- ----- -----
C C 2 3 C 4 4 ----- C C 2 3 ----- -----
D ----- ----- ----- D ----- ----- -----
E ----- ----- ----- E ----- ----- -----
F R---- R---- ----- F R---- ----- -----
10 C 2 3 C 4 4 ----- 10 C 2 3 ----- -----
11 ----- ----- ----- 11 ----- ----- -----
12 ----- ----- ----- 12 ----- ----- -----
13 R---- R---- ----- 13 R---- ----- -----
14 C 2 3 C 4 4 ----- 14 C 2 3 ----- -----
15 ----- ----- ----- 15 ----- ----- -----
16 ----- ----- ----- 16 ----- ----- -----
17 R---- ----- ----- 17 R---- ----- -----
@ -268,15 +268,15 @@ F R---- R---- -----
5 ----- ----- ----- 5 ----- ----- -----
6 ----- ----- ----- 6 ----- ----- -----
7 ----- ----- ----- 7 ----- ----- -----
8 ----- G 4 3 ----- 8 ----- G 4-- -----
9 ----- ----- ----- 9 ----- ----- -----
A ----- ----- ----- A ----- ----- -----
B R---- R---- ----- B R---- R---- -----
C C 2 3 G 4 4 ----- C C 2 3 G 4 4 -----
D ----- ----- ----- D ----- ----- -----
E ----- ----- ----- E ----- ----- -----
F R---- R---- ----- F R---- ----- -----
10 C 2 3 G 4 3 ----- 10 C 2 3 ----- -----
11 ----- ----- ----- 11 ----- ----- -----
12 ----- ----- ----- 12 ----- ----- -----
13 R---- ----- ----- 13 R---- ----- -----
@ -287,11 +287,11 @@ F R---- R---- -----
18 C 2 3 F 4 4 ----- 18 C 2 3 F 4 4 -----
19 ----- ----- ----- 19 ----- ----- -----
1A ----- ----- ----- 1A ----- ----- -----
1B ----- R---- ----- 1B ----- ----- -----
1C ----- F 4 3 ----- 1C ----- ----- -----
1D ----- ----- ----- 1D ----- ----- -----
1E ----- ----- ----- 1E ----- ----- -----
1F ----- ----- ----- 1F ----- R---- -----
20 ----- E 4 3 ----- 20 ----- E 4 3 -----
21 ----- ----- ----- 21 ----- ----- -----
22 ----- ----- ----- 22 ----- ----- -----
@ -299,8 +299,8 @@ F R---- R---- -----
24 C 2 3 E 4 4 ----- 24 C 2 3 E 4 4 -----
25 ----- ----- ----- 25 ----- ----- -----
26 ----- ----- ----- 26 ----- ----- -----
27 R---- R---- ----- 27 R---- ----- -----
28 C 2 3 E 4 3 ----- 28 C 2 3 ----- -----
29 ----- ----- ----- 29 ----- ----- -----
2A ----- ----- ----- 2A ----- ----- -----
2B R---- ----- ----- 2B R---- ----- -----
@ -313,26 +313,26 @@ F R---- R---- -----
1 ----- ----- ----- 1 ----- ----- -----
2 ----- ----- ----- 2 ----- ----- -----
3 ----- ----- ----- 3 ----- ----- -----
4 ----- C 4 4 ----- 4 ----- ----- -----
5 ----- ----- ----- 5 ----- ----- -----
6 ----- ----- ----- 6 ----- ----- -----
7 ----- ----- ----- 7 ----- ----- -----
8 ----- C 4 4 ----- 8 ----- ----- -----
9 ----- ----- ----- 9 ----- ----- -----
A ----- ----- ----- A ----- ----- -----
B ----- ----- ----- B R---- ----- -----
C F 2 3 C 4 4 ----- C F 2 3 ----- -----
D ----- ----- ----- D ----- ----- -----
E ----- ----- ----- E ----- ----- -----
F ----- ----- ----- F R---- ----- -----
10 F 2 3 C 4 4 ----- 10 F 2 3 ----- -----
11 ----- ----- ----- 11 ----- ----- -----
12 ----- ----- ----- 12 ----- ----- -----
13 ----- ----- ----- 13 R---- ----- -----
14 F 2 3 C 4 4 ----- 14 F 2 3 ----- -----
15 ----- ----- ----- 15 ----- ----- -----
16 ----- ----- ----- 16 ----- ----- -----
17 ----- ----- ----- 17 R---- R---- -----
18 F 2 3 ----- ----- 18 F 2 3 ----- -----
19 ----- ----- ----- 19 ----- ----- -----
1A ----- ----- ----- 1A ----- ----- -----
@ -348,11 +348,11 @@ F ----- ----- -----
24 F 2 3 ----- ----- 24 F 2 3 ----- -----
25 ----- ----- ----- 25 ----- ----- -----
26 ----- ----- ----- 26 ----- ----- -----
27 ----- ----- ----- 27 R---- ----- -----
28 F 2 3 ----- ----- 28 F 2 3 ----- -----
29 ----- ----- ----- 29 ----- ----- -----
2A ----- ----- ----- 2A ----- ----- -----
2B ----- ----- ----- 2B R---- ----- -----
2C F 2 3 ----- ----- 2C F 2 3 ----- -----
2D ----- ----- ----- 2D ----- ----- -----
2E ----- ----- ----- 2E ----- ----- -----
@ -369,39 +369,39 @@ F ----- ----- -----
8 ----- G 4 3 ----- 8 ----- G 4 3 -----
9 ----- ----- ----- 9 ----- ----- -----
A ----- ----- ----- A ----- ----- -----
B ----- ----- ----- B ----- R---- -----
C G 2 3 G 4 4 ----- C G 2 3 G 4 4 -----
D ----- ----- ----- D ----- ----- -----
E ----- ----- ----- E ----- ----- -----
F ----- ----- ----- F R---- ----- -----
10 G 2 3 G 4 3 ----- 10 G 2 3 ----- -----
11 ----- ----- ----- 11 ----- ----- -----
12 ----- ----- ----- 12 ----- ----- -----
13 ----- ----- ----- 13 R---- ----- -----
14 G 2 3 F 4 3 ----- 14 G 2 3 F 4-- -----
15 ----- ----- ----- 15 ----- ----- -----
16 ----- ----- ----- 16 ----- ----- -----
17 ----- ----- ----- 17 R---- R---- -----
18 G 2 3 F 4 4 ----- 18 G 2 3 F 4 4 -----
19 ----- ----- ----- 19 ----- ----- -----
1A ----- ----- ----- 1A ----- ----- -----
1B ----- ----- ----- 1B ----- ----- -----
1C ----- F 4 3 ----- 1C ----- ----- -----
1D ----- ----- ----- 1D ----- ----- -----
1E ----- ----- ----- 1E ----- ----- -----
1F ----- ----- ----- 1F ----- ----- -----
20 ----- E 4 3 ----- 20 ----- E 4 3 -----
21 ----- ----- ----- 21 ----- ----- -----
22 ----- ----- ----- 22 ----- ----- -----
23 ----- ----- ----- 23 ----- R---- -----
24 G 2 3 E 4 4 ----- 24 G 2 3 E 4 4 -----
25 ----- ----- ----- 25 ----- ----- -----
26 ----- ----- ----- 26 ----- ----- -----
27 ----- ----- ----- 27 R---- ----- -----
28 G 2 3 E 4 3 ----- 28 G 2 3 ----- -----
29 ----- ----- ----- 29 ----- ----- -----
2A ----- ----- ----- 2A ----- ----- -----
2B ----- ----- ----- 2B R---- ----- -----
2C G 2 3 F 4 3 ----- 2C G 2 3 F 4 3 -----
2D ----- ----- ----- 2D ----- ----- -----
2E ----- ----- ----- 2E ----- ----- -----
@ -409,126 +409,126 @@ F ----- ----- -----
' 7 ' 7
0 C 2 3 D 4 3 ----- 0 C 2 3 D 4 3 -----
1 ----- ----- ----- 1 ----- ----- -----
2 ----- ----- ----- 2 ----- R---- -----
3 ----- D 4 6 ----- 3 ----- D 4 6 -----
4 ----- D 4 8 ----- 4 ----- D 4 8 -----
5 ----- ----- ----- 5 ----- R---- -----
6 ----- D 4 3 ----- 6 ----- D 4 3 -----
7 ----- ----- ----- 7 ----- ----- -----
8 ----- ----- ----- 8 ----- R---- -----
9 ----- D 4 3 ----- 9 ----- D 4 3 -----
A ----- ----- ----- A ----- ----- -----
B ----- ----- ----- B R---- ----- -----
C C 2 3 A#4 4 ----- C C 2 3 A#4 4 -----
D ----- ----- ----- D ----- ----- -----
E ----- ----- ----- E ----- ----- -----
F ----- ----- ----- F R---- R---- -----
10 C 2 3 A#4 4 ----- 10 C 2 3 A#4 4 -----
11 ----- ----- ----- 11 ----- ----- -----
12 ----- ----- ----- 12 ----- ----- -----
13 ----- ----- ----- 13 R---- R---- -----
14 C 2 3 A#4 3 ----- 14 C 2 3 A#4 3 -----
15 ----- ----- ----- 15 ----- ----- -----
16 ----- ----- ----- 16 ----- ----- -----
17 ----- ----- ----- 17 R---- ----- -----
18 C 2 3 D 4 3 ----- 18 C 2 3 D 4 3 -----
19 ----- ----- ----- 19 ----- ----- -----
1A ----- ----- ----- 1A ----- R---- -----
1B ----- D 4 6 ----- 1B ----- D 4 6 -----
1C ----- D 4 8 ----- 1C ----- D 4 8 -----
1D ----- ----- ----- 1D ----- R---- -----
1E ----- D 4 4 ----- 1E ----- D 4 4 -----
1F ----- ----- ----- 1F ----- ----- -----
20 ----- ----- ----- 20 ----- ----- -----
21 ----- ----- ----- 21 ----- ----- -----
22 ----- D 4 8 ----- 22 ----- D 4 8 -----
23 ----- ----- ----- 23 R---- ----- -----
24 C 2 3 G 4 4 ----- 24 C 2 3 G 4 4 -----
25 ----- ----- ----- 25 ----- ----- -----
26 ----- ----- ----- 26 ----- ----- -----
27 ----- ----- ----- 27 R---- R---- -----
28 C 2 3 G 4 4 ----- 28 C 2 3 G 4 4 -----
29 ----- ----- ----- 29 ----- ----- -----
2A ----- ----- ----- 2A ----- ----- -----
2B ----- ----- ----- 2B R---- R---- -----
2C C 2 3 G 4 3 ----- 2C C 2 3 G 4 3 -----
2D ----- ----- ----- 2D ----- ----- -----
2E ----- ----- ----- 2E ----- ----- -----
2F ----- ----- ----- 2F R---- ----- -----
' 8 ' 8
0 C 2 3 D 4 3 ----- 0 C 2 3 D 4 3 -----
1 ----- ----- ----- 1 ----- ----- -----
2 ----- ----- ----- 2 ----- R---- -----
3 ----- D 4 6 ----- 3 ----- D 4 6 -----
4 ----- D 4 8 ----- 4 ----- D 4 8 -----
5 ----- ----- ----- 5 ----- R---- -----
6 ----- D 4 8 ----- 6 ----- D 4 8 -----
7 ----- ----- ----- 7 ----- R---- -----
8 ----- D 4 4 ----- 8 ----- D 4 4 -----
9 ----- ----- ----- 9 ----- ----- -----
A ----- ----- ----- A ----- ----- -----
B ----- ----- ----- B R---- ----- -----
C C 2 3 A#4 4 ----- C C 2 3 A#4 4 -----
D ----- ----- ----- D ----- ----- -----
E ----- ----- ----- E ----- ----- -----
F ----- ----- ----- F R---- R---- -----
10 C 2 3 A#4 8 ----- 10 C 2 3 A#4 8 -----
11 ----- ----- ----- 11 ----- ----- -----
12 ----- D 4 4 ----- 12 ----- D 4 4 -----
13 ----- ----- ----- 13 R---- ----- -----
14 C 2 3 ----- ----- 14 C 2 3 ----- -----
15 ----- ----- ----- 15 ----- R---- -----
16 ----- D 4 8 ----- 16 ----- D 4 8 -----
17 ----- ----- ----- 17 R---- ----- -----
18 C 2 3 G 4 4 ----- 18 C 2 3 G 4 4 -----
19 ----- ----- ----- 19 ----- ----- -----
1A ----- ----- ----- 1A ----- ----- -----
1B ----- ----- ----- 1B ----- R---- -----
1C ----- G 4 8 ----- 1C ----- G 4 8 -----
1D ----- ----- ----- 1D ----- ----- -----
1E ----- D 4 4 ----- 1E ----- D 4 4 -----
1F ----- ----- ----- 1F ----- ----- -----
20 ----- ----- ----- 20 ----- ----- -----
21 ----- ----- ----- 21 ----- R---- -----
22 ----- D 4 8 ----- 22 ----- D 4 8 -----
23 ----- ----- ----- 23 R---- ----- -----
24 C 2 3 F 4 4 ----- 24 C 2 3 F 4 4 -----
25 ----- ----- ----- 25 ----- ----- -----
26 ----- ----- ----- 26 ----- ----- -----
27 ----- ----- ----- 27 R---- R---- -----
28 C 2 3 F 4 8 ----- 28 C 2 3 F 4 8 -----
29 ----- ----- ----- 29 ----- ----- -----
2A ----- G 4 4 ----- 2A ----- G 4 4 -----
2B ----- ----- ----- 2B R---- ----- -----
2C C 2 3 ----- ----- 2C C 2 3 ----- -----
2D ----- ----- ----- 2D ----- R---- -----
2E ----- G 4 8 ----- 2E ----- G 4 8 -----
2F ----- ----- ----- 2F R---- ----- -----
' 5 ' 5
0 F 2 3 C 4 4 ----- 0 F 2 3 C 4 4 -----
1 ----- ----- ----- 1 ----- ----- -----
2 ----- ----- ----- 2 ----- ----- -----
3 ----- ----- ----- 3 ----- ----- -----
4 ----- C 4 4 ----- 4 ----- ----- -----
5 ----- ----- ----- 5 ----- ----- -----
6 ----- ----- ----- 6 ----- ----- -----
7 ----- ----- ----- 7 ----- ----- -----
8 ----- C 4 4 ----- 8 ----- ----- -----
9 ----- ----- ----- 9 ----- ----- -----
A ----- ----- ----- A ----- ----- -----
B ----- ----- ----- B R---- ----- -----
C F 2 3 C 4 4 ----- C F 2 3 ----- -----
D ----- ----- ----- D ----- ----- -----
E ----- ----- ----- E ----- ----- -----
F ----- ----- ----- F R---- ----- -----
10 F 2 3 C 4 4 ----- 10 F 2 3 ----- -----
11 ----- ----- ----- 11 ----- ----- -----
12 ----- ----- ----- 12 ----- ----- -----
13 ----- ----- ----- 13 R---- ----- -----
14 F 2 3 C 4 4 ----- 14 F 2 3 ----- -----
15 ----- ----- ----- 15 ----- ----- -----
16 ----- ----- ----- 16 ----- ----- -----
17 ----- ----- ----- 17 R---- R---- -----
18 F 2 3 ----- ----- 18 F 2 3 ----- -----
19 ----- ----- ----- 19 ----- ----- -----
1A ----- ----- ----- 1A ----- ----- -----
@ -540,15 +540,15 @@ F ----- ----- -----
20 ----- ----- ----- 20 ----- ----- -----
21 ----- ----- ----- 21 ----- ----- -----
22 ----- ----- ----- 22 ----- ----- -----
23 ----- ----- ----- 23 R---- ----- -----
24 F 2 3 ----- ----- 24 F 2 3 ----- -----
25 ----- ----- ----- 25 ----- ----- -----
26 ----- ----- ----- 26 ----- ----- -----
27 ----- ----- ----- 27 R---- ----- -----
28 F 2 3 ----- ----- 28 F 2 3 ----- -----
29 ----- ----- ----- 29 ----- ----- -----
2A ----- ----- ----- 2A ----- ----- -----
2B ----- ----- ----- 2B R---- ----- -----
2C F 2 3 ----- ----- 2C F 2 3 ----- -----
2D ----- ----- ----- 2D ----- ----- -----
2E ----- ----- ----- 2E ----- ----- -----
@ -565,23 +565,23 @@ F ----- ----- -----
8 ----- G 4 3 ----- 8 ----- G 4 3 -----
9 ----- ----- ----- 9 ----- ----- -----
A ----- ----- ----- A ----- ----- -----
B ----- ----- ----- B R---- R---- -----
C G 2 3 G 4 4 ----- C G 2 3 G 4 4 -----
D ----- ----- ----- D ----- ----- -----
E ----- ----- ----- E ----- ----- -----
F ----- ----- ----- F R---- ----- -----
10 G 2 3 G 4 3 ----- 10 G 2 3 ----- -----
11 ----- ----- ----- 11 ----- ----- -----
12 ----- ----- ----- 12 ----- ----- -----
13 ----- ----- ----- 13 R---- ----- -----
14 G 2 3 F 4 3 ----- 14 G 2 3 F 4 3 -----
15 ----- ----- ----- 15 ----- ----- -----
16 ----- ----- ----- 16 ----- ----- -----
17 ----- ----- ----- 17 R---- R---- -----
18 G 2 3 F 4 4 ----- 18 G 2 3 F 4 4 -----
19 ----- ----- ----- 19 ----- ----- -----
1A ----- ----- ----- 1A ----- ----- -----
1B ----- ----- ----- 1B ----- R---- -----
1C ----- F 4 3 ----- 1C ----- F 4 3 -----
1D ----- ----- ----- 1D ----- ----- -----
1E ----- ----- ----- 1E ----- ----- -----
@ -589,15 +589,15 @@ F ----- ----- -----
20 ----- E 4 3 ----- 20 ----- E 4 3 -----
21 ----- ----- ----- 21 ----- ----- -----
22 ----- ----- ----- 22 ----- ----- -----
23 ----- ----- ----- 23 R---- ----- -----
24 G 2 3 E 4 4 ----- 24 G 2 3 ----- -----
25 ----- ----- ----- 25 ----- ----- -----
26 ----- ----- ----- 26 ----- ----- -----
27 ----- ----- ----- 27 R---- R---- -----
28 G 2 3 E 4 3 ----- 28 G 2 3 E 4 3 -----
29 ----- ----- ----- 29 ----- ----- -----
2A ----- ----- ----- 2A ----- ----- -----
2B ----- ----- ----- 2B R---- R---- -----
2C G 2 3 F 4 3 ----- 2C G 2 3 F 4 3 -----
2D ----- ----- ----- 2D ----- ----- -----
2E ----- ----- ----- 2E ----- ----- -----
@ -607,27 +607,27 @@ F ----- ----- -----
1 ----- ----- ----- 1 ----- ----- -----
2 ----- ----- ----- 2 ----- ----- -----
3 ----- ----- ----- 3 ----- ----- -----
4 ----- G 4 4 ----- 4 ----- ----- -----
5 ----- ----- ----- 5 ----- ----- -----
6 ----- ----- ----- 6 ----- ----- -----
7 ----- ----- ----- 7 ----- ----- -----
8 ----- G 4 3 ----- 8 ----- ----- -----
9 ----- ----- ----- 9 ----- ----- -----
A ----- ----- ----- A ----- ----- -----
B ----- ----- ----- B R---- ----- -----
C C 2 3 ----- ----- C C 2 3 ----- -----
D ----- ----- ----- D ----- ----- -----
E ----- ----- ----- E ----- ----- -----
F ----- ----- ----- F R---- ----- -----
10 C 2 3 ----- ----- 10 C 2 3 ----- -----
11 ----- ----- ----- 11 ----- ----- -----
12 ----- ----- ----- 12 ----- ----- -----
13 ----- ----- ----- 13 R---- ----- -----
14 C 2 3 ----- ----- 14 C 2 3 ----- -----
15 ----- ----- ----- 15 ----- ----- -----
16 ----- ----- ----- 16 ----- ----- -----
17 ----- ----- ----- 17 R---- ----- -----
18 C 2 3 ----- ----- 18 C 2 3 R---- -----
19 ----- ----- ----- 19 ----- ----- -----
1A ----- ----- ----- 1A ----- ----- -----
1B ----- ----- ----- 1B ----- ----- -----
@ -638,17 +638,17 @@ F ----- ----- -----
20 ----- ----- ----- 20 ----- ----- -----
21 ----- ----- ----- 21 ----- ----- -----
22 ----- ----- ----- 22 ----- ----- -----
23 ----- ----- ----- 23 R---- ----- -----
24 C 2 3 ----- ----- 24 C 2 3 ----- -----
25 ----- ----- ----- 25 ----- ----- -----
26 ----- ----- ----- 26 ----- ----- -----
27 ----- ----- ----- 27 R---- ----- -----
28 C 2 3 ----- ----- 28 C 2 3 ----- -----
29 ----- ----- ----- 29 ----- ----- -----
2A ----- ----- ----- 2A ----- ----- -----
2B ----- ----- ----- 2B R---- ----- -----
2C C 2 3 ----- ----- 2C C 2 3 ----- -----
2D ----- ----- ----- 2D ----- ----- -----
2E ----- ----- ----- 2E ----- ----- -----
2F ----- ----- ----- 2F R---- R---- R----
' LOOP TO FRAME 8 ' LOOP TO FRAME 8

View File

@ -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

View File

@ -13,6 +13,8 @@
#include <string.h> #include <string.h>
#include <math.h> #include <math.h>
static int octave_adjust=1;
// CCOONNNN -- c=channel, o=octave, n=note // CCOONNNN -- c=channel, o=octave, n=note
int note_to_ed(char note, int flat, int sharp, int octave) { 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; if (sharp==2) offset+=2;
offset=((octave&0x3)<<4)|offset; offset=((((octave+octave_adjust)-3)&0x3)<<4)|offset;
return 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 debug=0;
static int octave_adjust=0;
static int line=0; static int line=0;
static int header_version=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 */ /* get note info */
n->sharp=0; n->sharp=0;
n->flat=0; n->flat=0;
n->ed_freq=0; n->ed_freq=-1;
n->note=ch; n->note=ch;
sp++; sp++;
if (string[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!='-') { if (n->note!='-') {
freq=note_to_ed(n->note,n->flat,n->sharp, freq=note_to_ed(n->note,n->flat,n->sharp,
n->octave+octave_adjust); n->octave);
n->enabled=1; n->enabled=1;
n->length=0; n->length=0;
@ -302,9 +302,9 @@ printf("\n");
if (result==NULL) break; if (result==NULL) break;
line++; line++;
a.ed_freq=0; a.ed_freq=-1;
b.ed_freq=0; b.ed_freq=-1;
c.ed_freq=0; c.ed_freq=-1;
a.length=0; a.length=0;
b.length=0; b.length=0;
c.length=0; c.length=0;
@ -324,7 +324,7 @@ printf("\n");
if (sp!=-1) sp=get_note(string,sp,&c,line); 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) { if (!first) {
printf("\t.byte $%02X ; L = %d\n", printf("\t.byte $%02X ; L = %d\n",
current_length|0xc0,current_length); 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", printf("\t.byte $%02X ; A = %c%c%d\n",
a.ed_freq, a.ed_freq,
a.note,sharp_char[a.sharp+2*a.flat], a.note,sharp_char[a.sharp+2*a.flat],
a.octave); a.octave);
} }
if (b.ed_freq!=0) { if (b.ed_freq>=0) {
printf("\t.byte $%02X ; B = %c%c%d\n", printf("\t.byte $%02X ; B = %c%c%d\n",
b.ed_freq|0x40, b.ed_freq|0x40,
b.note,sharp_char[b.sharp+2*b.flat], b.note,sharp_char[b.sharp+2*b.flat],
b.octave); b.octave);
} }
if (c.ed_freq!=0) { if (c.ed_freq>=0) {
printf("\t.byte $%02X ; C = %c%c%d\n", printf("\t.byte $%02X ; C = %c%c%d\n",
c.ed_freq|0x80, c.ed_freq|0x80,
c.note,sharp_char[c.sharp+2*c.flat], 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) irq;
(void) loop; (void) loop;