mirror of
https://github.com/deater/dos33fsprogs.git
synced 2025-02-23 05:29:03 +00:00
demo: sort of have music working
This commit is contained in:
parent
19e5b1735e
commit
58a853bcf3
@ -42,6 +42,7 @@ ESCAPE: escape.o
|
||||
escape.o: escape.s \
|
||||
logo_intro.s \
|
||||
ay3_write_regs.s escape.s interrupt_handler.s \
|
||||
play_frame.s amp.s \
|
||||
mA2E_4.s mockingboard_constants.s mockingboard_init.s tracker_init.s
|
||||
ca65 -o escape.o escape.s -l escape.lst
|
||||
|
||||
|
89
demos/demosplash2022/amp.s
Normal file
89
demos/demosplash2022/amp.s
Normal file
@ -0,0 +1,89 @@
|
||||
; pattern 0
|
||||
; 0 -> F
|
||||
; 48-> C
|
||||
; 50-> A
|
||||
; 52-> 9
|
||||
; 54-> 8
|
||||
; 56-> 7
|
||||
; 58-> 6
|
||||
; 60-> 5
|
||||
; 62-> 4
|
||||
bamps0:
|
||||
; 0 15 30 45 48 50 52 54 56 58 60 62
|
||||
.byte $FF,$FF,$FF,$3F,$2C,$2A,$29,$28,$27,$26,$25,$24
|
||||
|
||||
; pattern 1
|
||||
; 0 -> F
|
||||
; 9 -> C
|
||||
;10 -> F
|
||||
;20 -> C
|
||||
;22 -> F
|
||||
;29 -> C
|
||||
;30 -> F
|
||||
;31 -> C
|
||||
;32 -> F
|
||||
;40 -> C
|
||||
; 48-> A
|
||||
; 50-> 9
|
||||
; 52-> 8
|
||||
; 54-> 7
|
||||
; 56-> 6
|
||||
; 58-> 5
|
||||
; 60-> 4
|
||||
; 62-> 3
|
||||
bamps1:
|
||||
; 0 9 10 20 22 29 30 31 32 40 48 50 52 54 56 58 60 62
|
||||
.byte $9F,$1C,$AF,$2C,$7F,$1C,$1F,$1C,$8F,$8C,$2A,$29,$28,$27,$26,$25,$24,$23
|
||||
|
||||
; pattern 2
|
||||
; 0 ->F
|
||||
; 13->C
|
||||
; 14->F
|
||||
; 15->C
|
||||
; 16->F
|
||||
; 24->C
|
||||
; 26->9
|
||||
; 28->8
|
||||
; 30->7
|
||||
; 32->F
|
||||
; 45->C
|
||||
; 46->F
|
||||
; 47->C
|
||||
; 48->F
|
||||
; 56->C
|
||||
; 58->9
|
||||
; 60->7
|
||||
; 62->6
|
||||
bamps2:
|
||||
; 0 13 14 15 16 24 26 28 30 32 45 46 47 48 56 58 60 62
|
||||
.byte $DF,$1C,$1F,$1C,$8F,$2C,$29,$28,$27,$DF,$1C,$1F,$1C,$8F,$2C,$29,$27,$26
|
||||
|
||||
; pattern3
|
||||
; 0->F
|
||||
; 24->C
|
||||
; 26->9
|
||||
; 28->8
|
||||
; 30->7
|
||||
; 32->F
|
||||
; 45->C
|
||||
; 46->F
|
||||
; 47->C
|
||||
; 48->F
|
||||
; 56->C
|
||||
; 58->9
|
||||
; 60->7
|
||||
; 62->6
|
||||
bamps3:
|
||||
; 0 15 24 26 28 30 32 45 46 47 48 56 58 60 62
|
||||
.byte $FF,$9F,$2C,$29,$28,$27,$DF,$1C,$1F,$1C,$8F,$2C,$29,$27,$26
|
||||
|
||||
; pattern4
|
||||
; 0->0
|
||||
; 60->F
|
||||
; 61->C
|
||||
; 62->F
|
||||
; 63->C
|
||||
|
||||
bamps4:
|
||||
; 0 15 30 45 60 61 62 63
|
||||
.byte $F0,$F0,$F0,$F0,$1F,$1C,$1F,$1C
|
@ -8,27 +8,25 @@
|
||||
; write all 14 registers at AY_REGS
|
||||
|
||||
ay3_write_regs:
|
||||
|
||||
ldx #13
|
||||
; bytes
|
||||
ldx #13 ; 2
|
||||
ay3_write_reg_loop:
|
||||
|
||||
lda #MOCK_AY_LATCH_ADDR ; latch_address for PB1 ; 2
|
||||
ldy #MOCK_AY_INACTIVE ; go inactive ; 2
|
||||
|
||||
stx MOCK_6522_ORA1 ; put address on PA1 ; 4
|
||||
sta MOCK_6522_ORB1 ; latch_address on PB1 ; 4
|
||||
sty MOCK_6522_ORB1 ; 4
|
||||
stx MOCK_6522_ORA1 ; put address on PA1 ; 3
|
||||
sta MOCK_6522_ORB1 ; latch_address on PB1 ; 3
|
||||
sty MOCK_6522_ORB1 ; 3
|
||||
|
||||
; value
|
||||
lda AY_REGS,X
|
||||
sta MOCK_6522_ORA1 ; put value on PA1 ; 4
|
||||
lda AY_REGS,X ; 2
|
||||
sta MOCK_6522_ORA1 ; put value on PA1 ; 3
|
||||
lda #MOCK_AY_WRITE ; ; 2
|
||||
sta MOCK_6522_ORB1 ; write on PB1 ; 4
|
||||
sty MOCK_6522_ORB1 ; 4
|
||||
sta MOCK_6522_ORB1 ; write on PB1 ; 3
|
||||
sty MOCK_6522_ORB1 ; 3
|
||||
|
||||
dex
|
||||
bpl ay3_write_reg_loop
|
||||
dex ; 1
|
||||
bpl ay3_write_reg_loop ; 2
|
||||
|
||||
; rts
|
||||
|
||||
|
||||
|
@ -7,19 +7,19 @@
|
||||
.include "hardware.inc"
|
||||
|
||||
|
||||
d4:
|
||||
apple2_desire:
|
||||
|
||||
;=================
|
||||
; init vars
|
||||
|
||||
lda #0
|
||||
lda #0 ; TODO: move to ay init
|
||||
sta FRAME
|
||||
sta WHICH_TRACK
|
||||
sta BAMP_COUNTDOWN
|
||||
|
||||
;===================
|
||||
; music Player Setup
|
||||
|
||||
tracker_song = peasant_song
|
||||
|
||||
; assume mockingboard in slot#4
|
||||
|
||||
; inline mockingboard_init
|
||||
|
@ -5,4 +5,5 @@
|
||||
25 PRINT:PRINT "PRESS ANY KEY TO 'BRUN ESCAPE'"
|
||||
30 GET A$
|
||||
35 PRINT
|
||||
40 PRINT CHR$(4)"BRUN ESCAPE"
|
||||
|
||||
|
@ -27,7 +27,7 @@ interrupt_handler:
|
||||
tya
|
||||
pha ; save Y
|
||||
|
||||
inc $0404 ; debug (flashes char onscreen)
|
||||
; inc $0404 ; debug (flashes char onscreen)
|
||||
|
||||
|
||||
ay3_irq_handler:
|
||||
@ -60,9 +60,3 @@ interrupt_smc:
|
||||
; typical
|
||||
; ???? cycles
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
282 14 77 56 77 ; D
|
||||
254 14 77 56 77 ; D
|
||||
58 79
|
||||
58 136
|
||||
60 138
|
||||
@ -8,7 +8,7 @@
|
||||
18 82
|
||||
14 82
|
||||
14 77
|
||||
282 26 90 40 90
|
||||
254 26 90 40 90
|
||||
42 92
|
||||
42 129
|
||||
36 129
|
||||
|
@ -1,4 +1,4 @@
|
||||
282 234 91 264 91 ; E
|
||||
254 234 91 264 91 ; E
|
||||
264 80
|
||||
258 77
|
||||
220 77
|
||||
@ -14,7 +14,7 @@
|
||||
240 129
|
||||
238 127
|
||||
238 91
|
||||
282 242 98 250 98
|
||||
254 242 98 250 98
|
||||
250 111
|
||||
242 111
|
||||
242 98
|
||||
|
@ -1,8 +1,8 @@
|
||||
282 154 77 176 77 ; I
|
||||
254 154 77 176 77 ; I
|
||||
172 86
|
||||
158 86
|
||||
154 77
|
||||
282 156 89 156 134
|
||||
254 156 89 156 134
|
||||
154 140
|
||||
176 140
|
||||
172 134
|
||||
|
@ -1,7 +1,7 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#define LINE_VALUE 282
|
||||
#define LINE_VALUE 254
|
||||
#define STOP_VALUE 0
|
||||
#define MODE_VALUE 3
|
||||
|
||||
@ -20,6 +20,7 @@ int main(int argc, char **argv) {
|
||||
int xdiv=2;
|
||||
int ydiv=1;
|
||||
int i;
|
||||
int first_line=1;
|
||||
|
||||
if (argc>1) {
|
||||
xadjust=atoi(argv[1]);
|
||||
@ -43,12 +44,18 @@ int main(int argc, char **argv) {
|
||||
&a1,&a2,&a3,&a4,&a5);
|
||||
if (debug) fprintf(stderr,"%d %d %d %d %d\n",a1,a2,a3,a4,a5);
|
||||
if (a1==LINE_VALUE) {
|
||||
output[out_ptr]=((a1)/xdiv)+add;
|
||||
output[out_ptr+1]=((a2-xadjust)/xdiv)+add;
|
||||
output[out_ptr+2]=((a3-yadjust)/ydiv)+add;
|
||||
output[out_ptr+3]=((a4-xadjust)/xdiv)+add;
|
||||
output[out_ptr+4]=((a5-yadjust)/ydiv)+add;
|
||||
out_ptr+=5;
|
||||
if (first_line) {
|
||||
first_line=0;
|
||||
}
|
||||
else {
|
||||
output[out_ptr]=((a1)/xdiv)+add;
|
||||
out_ptr+=1;
|
||||
}
|
||||
output[out_ptr+0]=((a2-xadjust)/xdiv)+add;
|
||||
output[out_ptr+1]=((a3-yadjust)/ydiv)+add;
|
||||
output[out_ptr+2]=((a4-xadjust)/xdiv)+add;
|
||||
output[out_ptr+3]=((a5-yadjust)/ydiv)+add;
|
||||
out_ptr+=4;
|
||||
}
|
||||
else if (a1==MODE_VALUE) {
|
||||
output[out_ptr]=((a1-xadjust)/xdiv)+add;
|
||||
|
@ -1,4 +1,4 @@
|
||||
282 176 77 216 77 ; R
|
||||
254 176 77 216 77 ; R
|
||||
218 79
|
||||
218 102
|
||||
216 104
|
||||
@ -13,7 +13,7 @@
|
||||
178 136
|
||||
178 82
|
||||
176 77
|
||||
282 190 88 202 88
|
||||
254 190 88 202 88
|
||||
204 90
|
||||
204 105
|
||||
196 105
|
||||
|
@ -1,4 +1,4 @@
|
||||
282 108 77 148 77 ; S
|
||||
254 108 77 148 77 ; S
|
||||
150 79
|
||||
150 101
|
||||
136 101
|
||||
|
@ -4,6 +4,9 @@
|
||||
|
||||
; 908 bytes -- first display
|
||||
; 916 bytes -- scroll down
|
||||
; 914 bytes -- assume < 256 co-ords
|
||||
; 908 bytes -- assume first co-oord is an HPLOT
|
||||
; 906 bytes -- save value on stack rather than ZP
|
||||
|
||||
show_logo:
|
||||
|
||||
@ -74,6 +77,7 @@ logo_done:
|
||||
jmp skip_it
|
||||
|
||||
|
||||
|
||||
;========================
|
||||
; draw letter
|
||||
;========================
|
||||
@ -82,16 +86,14 @@ logo_done:
|
||||
|
||||
draw_letter:
|
||||
|
||||
ldy #0 ; iterator
|
||||
ldy #$FF ; iterator
|
||||
letter_loop:
|
||||
lda (INL),Y
|
||||
|
||||
cmp #$FF
|
||||
beq letter_done
|
||||
|
||||
cmp #$8D
|
||||
bne hplot_to
|
||||
hplot:
|
||||
|
||||
; setup X value
|
||||
|
||||
iny
|
||||
|
||||
lda (INL),Y ; get X value
|
||||
@ -100,10 +102,11 @@ hplot:
|
||||
adc LETTER_X
|
||||
tax ; put in X
|
||||
|
||||
; setup Y value
|
||||
|
||||
iny ; point to Y value
|
||||
|
||||
tya ; save Y value on stack for later
|
||||
pha
|
||||
sty SAVE_Y ; save Y value on stack for later
|
||||
|
||||
lda (INL),Y ; get Y value
|
||||
clc
|
||||
@ -113,43 +116,53 @@ hplot:
|
||||
|
||||
jsr HPLOT0 ; plot at (Y,X), (A)
|
||||
|
||||
pla ; restore pointer
|
||||
tay
|
||||
ldy SAVE_Y ; restore pointer
|
||||
|
||||
iny
|
||||
|
||||
hplot_to:
|
||||
|
||||
lda (INL),Y
|
||||
asl
|
||||
clc
|
||||
adc LETTER_X
|
||||
sta TEMP
|
||||
; get X value
|
||||
|
||||
lda #0
|
||||
lda (INL),Y ; get next value
|
||||
asl ; mul by 2
|
||||
clc
|
||||
adc LETTER_X ; add in offset
|
||||
pha ; save for later
|
||||
|
||||
lda #0 ; wrap if > 256
|
||||
adc #0
|
||||
tax
|
||||
|
||||
; get Y value
|
||||
|
||||
iny
|
||||
|
||||
tya
|
||||
pha
|
||||
sty SAVE_Y ; save Y value
|
||||
|
||||
lda (INL),Y
|
||||
clc
|
||||
lda (INL),Y ; get next value
|
||||
clc ; add Y offset
|
||||
adc LETTER_Y
|
||||
tay
|
||||
tay ; put into Y
|
||||
|
||||
lda TEMP
|
||||
pla ; restore X value
|
||||
|
||||
jsr HGLIN ; line to (X,A),(Y)
|
||||
jsr HGLIN ; line to (X,A),(Y)
|
||||
|
||||
pla
|
||||
tay
|
||||
ldy SAVE_Y
|
||||
|
||||
iny
|
||||
|
||||
jmp letter_loop
|
||||
; see if at end of line or of whole thing
|
||||
|
||||
lda (INL),Y ; get next value
|
||||
|
||||
bmi letter_done ; if negative, we are done
|
||||
|
||||
cmp #$7F
|
||||
beq hplot
|
||||
bne hplot_to
|
||||
|
||||
letter_done:
|
||||
rts
|
||||
|
||||
|
@ -5,573 +5,423 @@ track0:
|
||||
|
||||
; A: 12
|
||||
; B: 55
|
||||
; none: a=-1 b=-1 len=0
|
||||
; A: 12
|
||||
; none: a=0 b=1 len=2
|
||||
.byte $00 ; A=0 L=0
|
||||
.byte $0D ; B=1 L=2
|
||||
.byte $00 ; frame=2 A=0 L=0
|
||||
.byte $0D ; frame=2 B=1 L=2
|
||||
; A: 24
|
||||
; B: 64
|
||||
; none: a=0 b=-1 len=2
|
||||
.byte $04 ; A=0 L=2
|
||||
.byte $04 ; frame=4 A=0 L=2
|
||||
; A: 12
|
||||
; none: a=2 b=3 len=2
|
||||
.byte $10 ; A=2 L=0
|
||||
.byte $1D ; B=3 L=2
|
||||
.byte $10 ; frame=6 A=2 L=0
|
||||
.byte $1D ; frame=6 B=3 L=2
|
||||
; A: 10
|
||||
; B: 62
|
||||
; none: a=0 b=-1 len=2
|
||||
.byte $04 ; A=0 L=2
|
||||
.byte $04 ; frame=8 A=0 L=2
|
||||
; A: 12
|
||||
; B: 60
|
||||
; none: a=4 b=5 len=2
|
||||
.byte $20 ; A=4 L=0
|
||||
.byte $2D ; B=5 L=2
|
||||
.byte $20 ; frame=10 A=4 L=0
|
||||
.byte $2D ; frame=10 B=5 L=2
|
||||
; A: 15
|
||||
; none: a=0 b=6 len=2
|
||||
.byte $00 ; A=0 L=0
|
||||
.byte $35 ; B=6 L=2
|
||||
.byte $00 ; frame=12 A=0 L=0
|
||||
.byte $35 ; frame=12 B=6 L=2
|
||||
; A: 17
|
||||
; B: 58
|
||||
; none: a=7 b=-1 len=2
|
||||
.byte $3C ; A=7 L=2
|
||||
.byte $3C ; frame=14 A=7 L=2
|
||||
; A: 10
|
||||
; none: a=8 b=9 len=2
|
||||
.byte $40 ; A=8 L=0
|
||||
.byte $4D ; B=9 L=2
|
||||
.byte $40 ; frame=16 A=8 L=0
|
||||
.byte $4D ; frame=16 B=9 L=2
|
||||
; A: 10
|
||||
; none: a=4 b=-1 len=2
|
||||
.byte $24 ; A=4 L=2
|
||||
.byte $24 ; frame=18 A=4 L=2
|
||||
; A: 22
|
||||
; none: a=4 b=-1 len=2
|
||||
.byte $24 ; A=4 L=2
|
||||
.byte $24 ; frame=20 A=4 L=2
|
||||
; A: 10
|
||||
; B: 57
|
||||
; none: a=10 b=-1 len=2
|
||||
.byte $54 ; A=10 L=2
|
||||
.byte $54 ; frame=22 A=10 L=2
|
||||
; A: 8
|
||||
; B: 58
|
||||
; none: a=4 b=11 len=2
|
||||
.byte $20 ; A=4 L=0
|
||||
.byte $5D ; B=11 L=2
|
||||
.byte $20 ; frame=24 A=4 L=0
|
||||
.byte $5D ; frame=24 B=11 L=2
|
||||
; A: 7
|
||||
; B: 57
|
||||
; none: a=12 b=9 len=2
|
||||
.byte $60 ; A=12 L=0
|
||||
.byte $4D ; B=9 L=2
|
||||
.byte $60 ; frame=26 A=12 L=0
|
||||
.byte $4D ; frame=26 B=9 L=2
|
||||
; A: 5
|
||||
; B: 55
|
||||
; none: a=13 b=11 len=2
|
||||
.byte $68 ; A=13 L=0
|
||||
.byte $5D ; B=11 L=2
|
||||
.byte $68 ; frame=28 A=13 L=0
|
||||
.byte $5D ; frame=28 B=11 L=2
|
||||
; A: 3
|
||||
; B: 53
|
||||
; none: a=14 b=1 len=2
|
||||
.byte $70 ; A=14 L=0
|
||||
.byte $0D ; B=1 L=2
|
||||
.byte $70 ; frame=30 A=14 L=0
|
||||
.byte $0D ; frame=30 B=1 L=2
|
||||
; A: 12
|
||||
; B: 52
|
||||
; none: a=15 b=16 len=2
|
||||
.byte $78 ; A=15 L=0
|
||||
.byte $85 ; B=16 L=2
|
||||
.byte $78 ; frame=32 A=15 L=0
|
||||
.byte $85 ; frame=32 B=16 L=2
|
||||
; A: 12
|
||||
; none: a=0 b=17 len=2
|
||||
.byte $00 ; A=0 L=0
|
||||
.byte $8D ; B=17 L=2
|
||||
.byte $00 ; frame=34 A=0 L=0
|
||||
.byte $8D ; frame=34 B=17 L=2
|
||||
; A: 24
|
||||
; none: a=0 b=-1 len=2
|
||||
.byte $04 ; A=0 L=2
|
||||
.byte $04 ; frame=36 A=0 L=2
|
||||
; A: 12
|
||||
; B: 55
|
||||
; none: a=2 b=-1 len=2
|
||||
.byte $14 ; A=2 L=2
|
||||
.byte $14 ; frame=38 A=2 L=2
|
||||
; A: 10
|
||||
; none: a=0 b=1 len=2
|
||||
.byte $00 ; A=0 L=0
|
||||
.byte $0D ; B=1 L=2
|
||||
.byte $00 ; frame=40 A=0 L=0
|
||||
.byte $0D ; frame=40 B=1 L=2
|
||||
; A: 12
|
||||
; none: a=4 b=-1 len=2
|
||||
.byte $24 ; A=4 L=2
|
||||
.byte $24 ; frame=42 A=4 L=2
|
||||
; A: 15
|
||||
; none: a=0 b=-1 len=2
|
||||
.byte $04 ; A=0 L=2
|
||||
.byte $04 ; frame=44 A=0 L=2
|
||||
; A: 17
|
||||
; none: a=7 b=-1 len=2
|
||||
.byte $3C ; A=7 L=2
|
||||
.byte $3C ; frame=46 A=7 L=2
|
||||
; A: 17
|
||||
; none: a=8 b=-1 len=2
|
||||
.byte $44 ; A=8 L=2
|
||||
.byte $44 ; frame=48 A=8 L=2
|
||||
; A: 17
|
||||
; none: a=8 b=-1 len=2
|
||||
.byte $44 ; A=8 L=2
|
||||
.byte $44 ; frame=50 A=8 L=2
|
||||
; A: 29
|
||||
; none: a=8 b=-1 len=2
|
||||
.byte $44 ; A=8 L=2
|
||||
.byte $44 ; frame=52 A=8 L=2
|
||||
; A: 29
|
||||
; none: a=18 b=-1 len=2
|
||||
.byte $94 ; A=18 L=2
|
||||
.byte $94 ; frame=54 A=18 L=2
|
||||
; A: 27
|
||||
; none: a=18 b=-1 len=2
|
||||
.byte $94 ; A=18 L=2
|
||||
.byte $94 ; frame=56 A=18 L=2
|
||||
; A: 26
|
||||
; none: a=19 b=-1 len=2
|
||||
.byte $9C ; A=19 L=2
|
||||
.byte $9C ; frame=58 A=19 L=2
|
||||
; A: 24
|
||||
; none: a=20 b=-1 len=2
|
||||
.byte $A4 ; A=20 L=2
|
||||
.byte $A4 ; frame=60 A=20 L=2
|
||||
; A: 22
|
||||
; none: a=2 b=-1 len=2
|
||||
.byte $14 ; A=2 L=2
|
||||
.byte $14 ; frame=62 A=2 L=2
|
||||
; last: a=10 b=-1 len=2
|
||||
.byte $54 ; frame=64 A=10 L=2
|
||||
.byte $ff
|
||||
track1:
|
||||
|
||||
; A: 12
|
||||
; B: 55
|
||||
; none: a=10 b=-1 len=2
|
||||
.byte $54 ; A=10 L=2
|
||||
; A: 12
|
||||
; none: a=0 b=1 len=2
|
||||
.byte $00 ; A=0 L=0
|
||||
.byte $0D ; B=1 L=2
|
||||
.byte $00 ; frame=2 A=0 L=0
|
||||
.byte $0D ; frame=2 B=1 L=2
|
||||
; A: 24
|
||||
; B: 64
|
||||
; none: a=0 b=-1 len=2
|
||||
.byte $04 ; A=0 L=2
|
||||
.byte $04 ; frame=4 A=0 L=2
|
||||
; A: 12
|
||||
; none: a=2 b=3 len=2
|
||||
.byte $10 ; A=2 L=0
|
||||
.byte $1D ; B=3 L=2
|
||||
.byte $10 ; frame=6 A=2 L=0
|
||||
.byte $1D ; frame=6 B=3 L=2
|
||||
; A: 10
|
||||
; B: 62
|
||||
; none: a=0 b=-1 len=2
|
||||
.byte $04 ; A=0 L=2
|
||||
.byte $04 ; frame=8 A=0 L=2
|
||||
; A: 12
|
||||
; B: 64
|
||||
; none: a=4 b=5 len=2
|
||||
.byte $20 ; A=4 L=0
|
||||
.byte $2D ; B=5 L=2
|
||||
.byte $20 ; frame=10 A=4 L=0
|
||||
.byte $2D ; frame=10 B=5 L=2
|
||||
; A: 15
|
||||
; none: a=0 b=3 len=2
|
||||
.byte $00 ; A=0 L=0
|
||||
.byte $1D ; B=3 L=2
|
||||
.byte $00 ; frame=12 A=0 L=0
|
||||
.byte $1D ; frame=12 B=3 L=2
|
||||
; A: 17
|
||||
; B: 65
|
||||
; none: a=7 b=-1 len=2
|
||||
.byte $3C ; A=7 L=2
|
||||
.byte $3C ; frame=14 A=7 L=2
|
||||
; A: 10
|
||||
; none: a=8 b=21 len=2
|
||||
.byte $40 ; A=8 L=0
|
||||
.byte $AD ; B=21 L=2
|
||||
.byte $40 ; frame=16 A=8 L=0
|
||||
.byte $AD ; frame=16 B=21 L=2
|
||||
; A: 10
|
||||
; none: a=4 b=-1 len=2
|
||||
.byte $24 ; A=4 L=2
|
||||
.byte $24 ; frame=18 A=4 L=2
|
||||
; A: 22
|
||||
; none: a=4 b=-1 len=2
|
||||
.byte $24 ; A=4 L=2
|
||||
.byte $24 ; frame=20 A=4 L=2
|
||||
; A: 10
|
||||
; B: 64
|
||||
; none: a=10 b=-1 len=2
|
||||
.byte $54 ; A=10 L=2
|
||||
.byte $54 ; frame=22 A=10 L=2
|
||||
; A: 8
|
||||
; B: 65
|
||||
; none: a=4 b=3 len=2
|
||||
.byte $20 ; A=4 L=0
|
||||
.byte $1D ; B=3 L=2
|
||||
.byte $20 ; frame=24 A=4 L=0
|
||||
.byte $1D ; frame=24 B=3 L=2
|
||||
; A: 7
|
||||
; B: 64
|
||||
; none: a=12 b=21 len=2
|
||||
.byte $60 ; A=12 L=0
|
||||
.byte $AD ; B=21 L=2
|
||||
.byte $60 ; frame=26 A=12 L=0
|
||||
.byte $AD ; frame=26 B=21 L=2
|
||||
; A: 5
|
||||
; B: 62
|
||||
; none: a=13 b=3 len=2
|
||||
.byte $68 ; A=13 L=0
|
||||
.byte $1D ; B=3 L=2
|
||||
.byte $68 ; frame=28 A=13 L=0
|
||||
.byte $1D ; frame=28 B=3 L=2
|
||||
; A: 3
|
||||
; B: 60
|
||||
; none: a=14 b=5 len=2
|
||||
.byte $70 ; A=14 L=0
|
||||
.byte $2D ; B=5 L=2
|
||||
.byte $70 ; frame=30 A=14 L=0
|
||||
.byte $2D ; frame=30 B=5 L=2
|
||||
; A: 12
|
||||
; B: 52
|
||||
; none: a=15 b=6 len=2
|
||||
.byte $78 ; A=15 L=0
|
||||
.byte $35 ; B=6 L=2
|
||||
.byte $78 ; frame=32 A=15 L=0
|
||||
.byte $35 ; frame=32 B=6 L=2
|
||||
; A: 12
|
||||
; none: a=0 b=17 len=2
|
||||
.byte $00 ; A=0 L=0
|
||||
.byte $8D ; B=17 L=2
|
||||
.byte $00 ; frame=34 A=0 L=0
|
||||
.byte $8D ; frame=34 B=17 L=2
|
||||
; A: 24
|
||||
; none: a=0 b=-1 len=2
|
||||
.byte $04 ; A=0 L=2
|
||||
.byte $04 ; frame=36 A=0 L=2
|
||||
; A: 12
|
||||
; none: a=2 b=-1 len=2
|
||||
.byte $14 ; A=2 L=2
|
||||
.byte $14 ; frame=38 A=2 L=2
|
||||
; A: 10
|
||||
; none: a=0 b=-1 len=2
|
||||
.byte $04 ; A=0 L=2
|
||||
.byte $04 ; frame=40 A=0 L=2
|
||||
; A: 12
|
||||
; none: a=4 b=-1 len=2
|
||||
.byte $24 ; A=4 L=2
|
||||
.byte $24 ; frame=42 A=4 L=2
|
||||
; A: 15
|
||||
; none: a=0 b=-1 len=2
|
||||
.byte $04 ; A=0 L=2
|
||||
.byte $04 ; frame=44 A=0 L=2
|
||||
; A: 17
|
||||
; none: a=7 b=-1 len=2
|
||||
.byte $3C ; A=7 L=2
|
||||
.byte $3C ; frame=46 A=7 L=2
|
||||
; A: 17
|
||||
; none: a=8 b=-1 len=2
|
||||
.byte $44 ; A=8 L=2
|
||||
.byte $44 ; frame=48 A=8 L=2
|
||||
; A: 17
|
||||
; none: a=8 b=-1 len=2
|
||||
.byte $44 ; A=8 L=2
|
||||
.byte $44 ; frame=50 A=8 L=2
|
||||
; A: 29
|
||||
; none: a=8 b=-1 len=2
|
||||
.byte $44 ; A=8 L=2
|
||||
.byte $44 ; frame=52 A=8 L=2
|
||||
; A: 29
|
||||
; none: a=18 b=-1 len=2
|
||||
.byte $94 ; A=18 L=2
|
||||
.byte $94 ; frame=54 A=18 L=2
|
||||
; A: 27
|
||||
; none: a=18 b=-1 len=2
|
||||
.byte $94 ; A=18 L=2
|
||||
.byte $94 ; frame=56 A=18 L=2
|
||||
; A: 26
|
||||
; none: a=19 b=-1 len=2
|
||||
.byte $9C ; A=19 L=2
|
||||
.byte $9C ; frame=58 A=19 L=2
|
||||
; A: 24
|
||||
; none: a=20 b=-1 len=2
|
||||
.byte $A4 ; A=20 L=2
|
||||
.byte $A4 ; frame=60 A=20 L=2
|
||||
; A: 22
|
||||
; none: a=2 b=-1 len=2
|
||||
.byte $14 ; A=2 L=2
|
||||
.byte $14 ; frame=62 A=2 L=2
|
||||
; last: a=10 b=-1 len=2
|
||||
.byte $54 ; frame=64 A=10 L=2
|
||||
.byte $ff
|
||||
track2:
|
||||
|
||||
; A: 15
|
||||
; B: 63
|
||||
; none: a=10 b=-1 len=2
|
||||
.byte $54 ; A=10 L=2
|
||||
; A: 15
|
||||
; none: a=7 b=22 len=2
|
||||
.byte $38 ; A=7 L=0
|
||||
.byte $B5 ; B=22 L=2
|
||||
.byte $38 ; frame=2 A=7 L=0
|
||||
.byte $B5 ; frame=2 B=22 L=2
|
||||
; A: 27
|
||||
; none: a=7 b=-1 len=2
|
||||
.byte $3C ; A=7 L=2
|
||||
.byte $3C ; frame=4 A=7 L=2
|
||||
; A: 15
|
||||
; none: a=19 b=-1 len=2
|
||||
.byte $9C ; A=19 L=2
|
||||
.byte $9C ; frame=6 A=19 L=2
|
||||
; A: 17
|
||||
; B: 62
|
||||
; none: a=7 b=-1 len=2
|
||||
.byte $3C ; A=7 L=2
|
||||
.byte $3C ; frame=8 A=7 L=2
|
||||
; A: 17
|
||||
; B: 60
|
||||
; none: a=8 b=5 len=2
|
||||
.byte $40 ; A=8 L=0
|
||||
.byte $2D ; B=5 L=2
|
||||
.byte $40 ; frame=10 A=8 L=0
|
||||
.byte $2D ; frame=10 B=5 L=2
|
||||
; A: 29
|
||||
; B: 58
|
||||
; none: a=8 b=6 len=2
|
||||
.byte $40 ; A=8 L=0
|
||||
.byte $35 ; B=6 L=2
|
||||
.byte $40 ; frame=12 A=8 L=0
|
||||
.byte $35 ; frame=12 B=6 L=2
|
||||
; A: 17
|
||||
; B: 53
|
||||
; none: a=18 b=9 len=2
|
||||
.byte $90 ; A=18 L=0
|
||||
.byte $4D ; B=9 L=2
|
||||
.byte $90 ; frame=14 A=18 L=0
|
||||
.byte $4D ; frame=14 B=9 L=2
|
||||
; A: 12
|
||||
; B: 55
|
||||
; none: a=8 b=16 len=2
|
||||
.byte $40 ; A=8 L=0
|
||||
.byte $85 ; B=16 L=2
|
||||
.byte $40 ; frame=16 A=8 L=0
|
||||
.byte $85 ; frame=16 B=16 L=2
|
||||
; A: 12
|
||||
; none: a=0 b=1 len=2
|
||||
.byte $00 ; A=0 L=0
|
||||
.byte $0D ; B=1 L=2
|
||||
.byte $00 ; frame=18 A=0 L=0
|
||||
.byte $0D ; frame=18 B=1 L=2
|
||||
; A: 24
|
||||
; none: a=0 b=-1 len=2
|
||||
.byte $04 ; A=0 L=2
|
||||
.byte $04 ; frame=20 A=0 L=2
|
||||
; A: 12
|
||||
; none: a=2 b=-1 len=2
|
||||
.byte $14 ; A=2 L=2
|
||||
.byte $14 ; frame=22 A=2 L=2
|
||||
; A: 12
|
||||
; none: a=0 b=-1 len=2
|
||||
.byte $04 ; A=0 L=2
|
||||
.byte $04 ; frame=24 A=0 L=2
|
||||
; A: 12
|
||||
; none: a=0 b=-1 len=2
|
||||
.byte $04 ; A=0 L=2
|
||||
.byte $04 ; frame=26 A=0 L=2
|
||||
; A: 24
|
||||
; none: a=0 b=-1 len=2
|
||||
.byte $04 ; A=0 L=2
|
||||
.byte $04 ; frame=28 A=0 L=2
|
||||
; A: 12
|
||||
; none: a=2 b=-1 len=2
|
||||
.byte $14 ; A=2 L=2
|
||||
.byte $14 ; frame=30 A=2 L=2
|
||||
; A: 15
|
||||
; B: 51
|
||||
; none: a=0 b=-1 len=2
|
||||
.byte $04 ; A=0 L=2
|
||||
.byte $04 ; frame=32 A=0 L=2
|
||||
; A: 15
|
||||
; none: a=7 b=23 len=2
|
||||
.byte $38 ; A=7 L=0
|
||||
.byte $BD ; B=23 L=2
|
||||
.byte $38 ; frame=34 A=7 L=0
|
||||
.byte $BD ; frame=34 B=23 L=2
|
||||
; A: 27
|
||||
; none: a=7 b=-1 len=2
|
||||
.byte $3C ; A=7 L=2
|
||||
.byte $3C ; frame=36 A=7 L=2
|
||||
; A: 15
|
||||
; none: a=19 b=-1 len=2
|
||||
.byte $9C ; A=19 L=2
|
||||
.byte $9C ; frame=38 A=19 L=2
|
||||
; A: 17
|
||||
; B: 55
|
||||
; none: a=7 b=-1 len=2
|
||||
.byte $3C ; A=7 L=2
|
||||
.byte $3C ; frame=40 A=7 L=2
|
||||
; A: 17
|
||||
; B: 53
|
||||
; none: a=8 b=1 len=2
|
||||
.byte $40 ; A=8 L=0
|
||||
.byte $0D ; B=1 L=2
|
||||
.byte $40 ; frame=42 A=8 L=0
|
||||
.byte $0D ; frame=42 B=1 L=2
|
||||
; A: 29
|
||||
; B: 51
|
||||
; none: a=8 b=16 len=2
|
||||
.byte $40 ; A=8 L=0
|
||||
.byte $85 ; B=16 L=2
|
||||
.byte $40 ; frame=44 A=8 L=0
|
||||
.byte $85 ; frame=44 B=16 L=2
|
||||
; B: 50
|
||||
; none: a=18 b=23 len=1
|
||||
.byte $90 ; A=18 L=0
|
||||
.byte $BB ; B=23 L=1
|
||||
.byte $90 ; frame=45 A=18 L=0
|
||||
.byte $BB ; frame=45 B=23 L=1
|
||||
; A: 17
|
||||
; B: 48
|
||||
; none: a=-1 b=24 len=1
|
||||
.byte $C3 ; B=24 L=1
|
||||
.byte $C3 ; frame=46 B=24 L=1
|
||||
; B: 46
|
||||
; none: a=8 b=25 len=1
|
||||
.byte $40 ; A=8 L=0
|
||||
.byte $CB ; B=25 L=1
|
||||
.byte $40 ; frame=47 A=8 L=0
|
||||
.byte $CB ; frame=47 B=25 L=1
|
||||
; A: 12
|
||||
; B: 48
|
||||
; none: a=-1 b=26 len=1
|
||||
.byte $D3 ; B=26 L=1
|
||||
.byte $D3 ; frame=48 B=26 L=1
|
||||
; A: 10
|
||||
; none: a=0 b=25 len=4
|
||||
.byte $00 ; A=0 L=0
|
||||
.byte $CF ; B=25 L=3
|
||||
.byte $00 ; frame=52 A=0 L=0
|
||||
.byte $CF ; frame=52 B=25 L=3
|
||||
; A: 12
|
||||
; none: a=4 b=-1 len=4
|
||||
.byte $26 ; A=4 L=3
|
||||
.byte $26 ; frame=56 A=4 L=3
|
||||
; last: a=0 b=-1 len=8
|
||||
.byte $10 ; frame=64 A=0 L=8
|
||||
.byte $ff
|
||||
track3:
|
||||
|
||||
; A: 15
|
||||
; B: 39
|
||||
; none: a=0 b=-1 len=8
|
||||
.byte $10 ; A=0 L=8
|
||||
; A: 15
|
||||
; none: a=7 b=27 len=2
|
||||
.byte $38 ; A=7 L=0
|
||||
.byte $DD ; B=27 L=2
|
||||
.byte $38 ; frame=2 A=7 L=0
|
||||
.byte $DD ; frame=2 B=27 L=2
|
||||
; A: 27
|
||||
; none: a=7 b=-1 len=2
|
||||
.byte $3C ; A=7 L=2
|
||||
.byte $3C ; frame=4 A=7 L=2
|
||||
; A: 15
|
||||
; none: a=19 b=-1 len=2
|
||||
.byte $9C ; A=19 L=2
|
||||
.byte $9C ; frame=6 A=19 L=2
|
||||
; A: 17
|
||||
; B: 41
|
||||
; none: a=7 b=-1 len=2
|
||||
.byte $3C ; A=7 L=2
|
||||
.byte $3C ; frame=8 A=7 L=2
|
||||
; A: 17
|
||||
; B: 43
|
||||
; none: a=8 b=28 len=2
|
||||
.byte $40 ; A=8 L=0
|
||||
.byte $E5 ; B=28 L=2
|
||||
.byte $40 ; frame=10 A=8 L=0
|
||||
.byte $E5 ; frame=10 B=28 L=2
|
||||
; A: 29
|
||||
; B: 46
|
||||
; none: a=8 b=29 len=2
|
||||
.byte $40 ; A=8 L=0
|
||||
.byte $ED ; B=29 L=2
|
||||
.byte $40 ; frame=12 A=8 L=0
|
||||
.byte $ED ; frame=12 B=29 L=2
|
||||
; A: 17
|
||||
; B: 48
|
||||
; none: a=18 b=26 len=2
|
||||
.byte $90 ; A=18 L=0
|
||||
.byte $D5 ; B=26 L=2
|
||||
.byte $90 ; frame=14 A=18 L=0
|
||||
.byte $D5 ; frame=14 B=26 L=2
|
||||
; A: 12
|
||||
; B: 43
|
||||
; none: a=8 b=25 len=2
|
||||
.byte $40 ; A=8 L=0
|
||||
.byte $CD ; B=25 L=2
|
||||
.byte $40 ; frame=16 A=8 L=0
|
||||
.byte $CD ; frame=16 B=25 L=2
|
||||
; A: 12
|
||||
; none: a=0 b=29 len=2
|
||||
.byte $00 ; A=0 L=0
|
||||
.byte $ED ; B=29 L=2
|
||||
.byte $00 ; frame=18 A=0 L=0
|
||||
.byte $ED ; frame=18 B=29 L=2
|
||||
; A: 24
|
||||
; none: a=0 b=-1 len=2
|
||||
.byte $04 ; A=0 L=2
|
||||
.byte $04 ; frame=20 A=0 L=2
|
||||
; A: 12
|
||||
; none: a=2 b=-1 len=2
|
||||
.byte $14 ; A=2 L=2
|
||||
.byte $14 ; frame=22 A=2 L=2
|
||||
; A: 12
|
||||
; none: a=0 b=-1 len=2
|
||||
.byte $04 ; A=0 L=2
|
||||
.byte $04 ; frame=24 A=0 L=2
|
||||
; A: 12
|
||||
; none: a=0 b=-1 len=2
|
||||
.byte $04 ; A=0 L=2
|
||||
.byte $04 ; frame=26 A=0 L=2
|
||||
; A: 24
|
||||
; none: a=0 b=-1 len=2
|
||||
.byte $04 ; A=0 L=2
|
||||
.byte $04 ; frame=28 A=0 L=2
|
||||
; A: 12
|
||||
; none: a=2 b=-1 len=2
|
||||
.byte $14 ; A=2 L=2
|
||||
.byte $14 ; frame=30 A=2 L=2
|
||||
; A: 15
|
||||
; B: 51
|
||||
; none: a=0 b=-1 len=2
|
||||
.byte $04 ; A=0 L=2
|
||||
.byte $04 ; frame=32 A=0 L=2
|
||||
; A: 15
|
||||
; none: a=7 b=23 len=2
|
||||
.byte $38 ; A=7 L=0
|
||||
.byte $BD ; B=23 L=2
|
||||
.byte $38 ; frame=34 A=7 L=0
|
||||
.byte $BD ; frame=34 B=23 L=2
|
||||
; A: 27
|
||||
; none: a=7 b=-1 len=2
|
||||
.byte $3C ; A=7 L=2
|
||||
.byte $3C ; frame=36 A=7 L=2
|
||||
; A: 15
|
||||
; none: a=19 b=-1 len=2
|
||||
.byte $9C ; A=19 L=2
|
||||
.byte $9C ; frame=38 A=19 L=2
|
||||
; A: 17
|
||||
; B: 48
|
||||
; none: a=7 b=-1 len=2
|
||||
.byte $3C ; A=7 L=2
|
||||
.byte $3C ; frame=40 A=7 L=2
|
||||
; A: 17
|
||||
; B: 51
|
||||
; none: a=8 b=25 len=2
|
||||
.byte $40 ; A=8 L=0
|
||||
.byte $CD ; B=25 L=2
|
||||
.byte $40 ; frame=42 A=8 L=0
|
||||
.byte $CD ; frame=42 B=25 L=2
|
||||
; A: 29
|
||||
; B: 53
|
||||
; none: a=8 b=23 len=2
|
||||
.byte $40 ; A=8 L=0
|
||||
.byte $BD ; B=23 L=2
|
||||
.byte $40 ; frame=44 A=8 L=0
|
||||
.byte $BD ; frame=44 B=23 L=2
|
||||
; A: 17
|
||||
; B: 58
|
||||
; none: a=18 b=16 len=2
|
||||
.byte $90 ; A=18 L=0
|
||||
.byte $85 ; B=16 L=2
|
||||
.byte $90 ; frame=46 A=18 L=0
|
||||
.byte $85 ; frame=46 B=16 L=2
|
||||
; A: 12
|
||||
; B: 55
|
||||
; none: a=8 b=9 len=2
|
||||
.byte $40 ; A=8 L=0
|
||||
.byte $4D ; B=9 L=2
|
||||
.byte $40 ; frame=48 A=8 L=0
|
||||
.byte $4D ; frame=48 B=9 L=2
|
||||
; A: 12
|
||||
; none: a=0 b=1 len=2
|
||||
.byte $00 ; A=0 L=0
|
||||
.byte $0D ; B=1 L=2
|
||||
.byte $00 ; frame=50 A=0 L=0
|
||||
.byte $0D ; frame=50 B=1 L=2
|
||||
; A: 24
|
||||
; none: a=0 b=-1 len=2
|
||||
.byte $04 ; A=0 L=2
|
||||
.byte $04 ; frame=52 A=0 L=2
|
||||
; A: 12
|
||||
; none: a=2 b=-1 len=2
|
||||
.byte $14 ; A=2 L=2
|
||||
.byte $14 ; frame=54 A=2 L=2
|
||||
; A: 12
|
||||
; none: a=0 b=-1 len=2
|
||||
.byte $04 ; A=0 L=2
|
||||
.byte $04 ; frame=56 A=0 L=2
|
||||
; A: 12
|
||||
; none: a=0 b=-1 len=2
|
||||
.byte $04 ; A=0 L=2
|
||||
.byte $04 ; frame=58 A=0 L=2
|
||||
; A: 24
|
||||
; none: a=0 b=-1 len=2
|
||||
.byte $04 ; A=0 L=2
|
||||
.byte $04 ; frame=60 A=0 L=2
|
||||
; A: 12
|
||||
; none: a=2 b=-1 len=2
|
||||
.byte $14 ; A=2 L=2
|
||||
.byte $14 ; frame=62 A=2 L=2
|
||||
; last: a=0 b=-1 len=2
|
||||
.byte $04 ; frame=64 A=0 L=2
|
||||
.byte $ff
|
||||
track4:
|
||||
|
||||
; A: 12
|
||||
; none: a=0 b=-1 len=2
|
||||
.byte $04 ; A=0 L=2
|
||||
; A: 12
|
||||
; none: a=0 b=-1 len=2
|
||||
.byte $04 ; A=0 L=2
|
||||
.byte $04 ; frame=2 A=0 L=2
|
||||
; A: 24
|
||||
; none: a=0 b=-1 len=2
|
||||
.byte $04 ; A=0 L=2
|
||||
.byte $04 ; frame=4 A=0 L=2
|
||||
; A: 12
|
||||
; none: a=2 b=-1 len=2
|
||||
.byte $14 ; A=2 L=2
|
||||
.byte $14 ; frame=6 A=2 L=2
|
||||
; A: 10
|
||||
; none: a=0 b=-1 len=2
|
||||
.byte $04 ; A=0 L=2
|
||||
.byte $04 ; frame=8 A=0 L=2
|
||||
; A: 12
|
||||
; none: a=4 b=-1 len=2
|
||||
.byte $24 ; A=4 L=2
|
||||
.byte $24 ; frame=10 A=4 L=2
|
||||
; A: 15
|
||||
; none: a=0 b=-1 len=2
|
||||
.byte $04 ; A=0 L=2
|
||||
.byte $04 ; frame=12 A=0 L=2
|
||||
; A: 17
|
||||
; none: a=7 b=-1 len=2
|
||||
.byte $3C ; A=7 L=2
|
||||
.byte $3C ; frame=14 A=7 L=2
|
||||
; A: 10
|
||||
; none: a=8 b=-1 len=2
|
||||
.byte $44 ; A=8 L=2
|
||||
.byte $44 ; frame=16 A=8 L=2
|
||||
; A: 10
|
||||
; none: a=4 b=-1 len=2
|
||||
.byte $24 ; A=4 L=2
|
||||
.byte $24 ; frame=18 A=4 L=2
|
||||
; A: 22
|
||||
; none: a=4 b=-1 len=2
|
||||
.byte $24 ; A=4 L=2
|
||||
.byte $24 ; frame=20 A=4 L=2
|
||||
; A: 10
|
||||
; none: a=10 b=-1 len=2
|
||||
.byte $54 ; A=10 L=2
|
||||
.byte $54 ; frame=22 A=10 L=2
|
||||
; A: 8
|
||||
; none: a=4 b=-1 len=2
|
||||
.byte $24 ; A=4 L=2
|
||||
.byte $24 ; frame=24 A=4 L=2
|
||||
; A: 7
|
||||
; none: a=12 b=-1 len=2
|
||||
.byte $64 ; A=12 L=2
|
||||
.byte $64 ; frame=26 A=12 L=2
|
||||
; A: 5
|
||||
; none: a=13 b=-1 len=2
|
||||
.byte $6C ; A=13 L=2
|
||||
.byte $6C ; frame=28 A=13 L=2
|
||||
; A: 3
|
||||
; none: a=14 b=-1 len=2
|
||||
.byte $74 ; A=14 L=2
|
||||
.byte $74 ; frame=30 A=14 L=2
|
||||
; A: 12
|
||||
; none: a=15 b=-1 len=2
|
||||
.byte $7C ; A=15 L=2
|
||||
.byte $7C ; frame=32 A=15 L=2
|
||||
; A: 12
|
||||
; none: a=0 b=-1 len=2
|
||||
.byte $04 ; A=0 L=2
|
||||
.byte $04 ; frame=34 A=0 L=2
|
||||
; A: 24
|
||||
; none: a=0 b=-1 len=2
|
||||
.byte $04 ; A=0 L=2
|
||||
.byte $04 ; frame=36 A=0 L=2
|
||||
; A: 12
|
||||
; none: a=2 b=-1 len=2
|
||||
.byte $14 ; A=2 L=2
|
||||
.byte $14 ; frame=38 A=2 L=2
|
||||
; A: 10
|
||||
; none: a=0 b=-1 len=2
|
||||
.byte $04 ; A=0 L=2
|
||||
.byte $04 ; frame=40 A=0 L=2
|
||||
; A: 12
|
||||
; none: a=4 b=-1 len=2
|
||||
.byte $24 ; A=4 L=2
|
||||
.byte $24 ; frame=42 A=4 L=2
|
||||
; A: 15
|
||||
; none: a=0 b=-1 len=2
|
||||
.byte $04 ; A=0 L=2
|
||||
.byte $04 ; frame=44 A=0 L=2
|
||||
; A: 17
|
||||
; none: a=7 b=-1 len=2
|
||||
.byte $3C ; A=7 L=2
|
||||
.byte $3C ; frame=46 A=7 L=2
|
||||
; A: 17
|
||||
; none: a=8 b=-1 len=2
|
||||
.byte $44 ; A=8 L=2
|
||||
.byte $44 ; frame=48 A=8 L=2
|
||||
; A: 15
|
||||
; none: a=8 b=-1 len=4
|
||||
.byte $46 ; A=8 L=3
|
||||
.byte $46 ; frame=52 A=8 L=3
|
||||
; A: 12
|
||||
; none: a=7 b=-1 len=4
|
||||
.byte $3E ; A=7 L=3
|
||||
.byte $3E ; frame=56 A=7 L=3
|
||||
; B: 51
|
||||
; none: a=0 b=-1 len=4
|
||||
.byte $06 ; A=0 L=3
|
||||
.byte $06 ; frame=60 A=0 L=3
|
||||
; B: 53
|
||||
; none: a=-1 b=23 len=2
|
||||
.byte $BD ; B=23 L=2
|
||||
; last: a=-1 c=-1 len=2
|
||||
.byte $85 ; B=16 L=2
|
||||
.byte $BD ; frame=62 B=23 L=2
|
||||
; last: a=-1 b=16 len=2
|
||||
.byte $85 ; frame=64 B=16 L=2
|
||||
.byte $FF ; end
|
||||
; Octave 0 : 0 0 0 3 0 3 0 3 3 0 16 0
|
||||
; Octave 1 : 45 0 0 19 0 23 0 0 0 0 5 0
|
||||
|
@ -6,19 +6,17 @@ play_frame:
|
||||
;===============================
|
||||
;===============================
|
||||
|
||||
;=================================
|
||||
; inc frame counter
|
||||
|
||||
inc FRAME
|
||||
|
||||
;=================================
|
||||
; rotate through channel A volume
|
||||
|
||||
lda FRAME
|
||||
lda FRAME ; repeating 8-long pattern
|
||||
and #$7
|
||||
tay
|
||||
lda channel_a_volume,Y
|
||||
sta AY_REGS+8
|
||||
sta AY_REGS+8 ; A volume
|
||||
|
||||
|
||||
|
||||
;============================
|
||||
; see if still counting down
|
||||
@ -28,6 +26,7 @@ play_frame:
|
||||
|
||||
set_notes_loop:
|
||||
|
||||
|
||||
;==================
|
||||
; load next byte
|
||||
|
||||
@ -56,6 +55,11 @@ no_wrap:
|
||||
lda tracks_h,Y
|
||||
sta track_smc+2
|
||||
|
||||
lda bamps_l,Y
|
||||
sta bamp_smc+1
|
||||
lda bamps_h,Y
|
||||
sta bamp_smc+2
|
||||
|
||||
lda #0
|
||||
sta SONG_OFFSET
|
||||
|
||||
@ -69,9 +73,9 @@ not_end:
|
||||
pha ; save note
|
||||
|
||||
and #1
|
||||
tax
|
||||
ldy #$0E
|
||||
sty AY_REGS+8,X ; $08 set volume A,B
|
||||
; tax
|
||||
; ldy #$0E
|
||||
; sty AY_REGS+8,X ; $08 set volume A,B
|
||||
|
||||
asl
|
||||
tax ; put channel offset in X
|
||||
@ -101,9 +105,9 @@ not_end:
|
||||
sta AY_REGS,X ; set proper register value
|
||||
|
||||
; visualization
|
||||
blah_urgh:
|
||||
sta $400,Y
|
||||
inc blah_urgh+1
|
||||
;blah_urgh:
|
||||
; sta $400,Y
|
||||
; inc blah_urgh+1
|
||||
|
||||
|
||||
;============================
|
||||
@ -112,7 +116,13 @@ blah_urgh:
|
||||
; assume less than 256 bytes
|
||||
inc SONG_OFFSET
|
||||
|
||||
|
||||
done_update_song:
|
||||
|
||||
|
||||
;=================================
|
||||
; coundown song
|
||||
|
||||
dec SONG_COUNTDOWN
|
||||
bmi set_notes_loop
|
||||
bpl skip_data
|
||||
@ -128,5 +138,48 @@ channel_a_volume:
|
||||
tracks_h:
|
||||
.byte >track4,>track0,>track1,>track2,>track3
|
||||
|
||||
bamps_l:
|
||||
.byte <bamps4,<bamps0,<bamps1,<bamps2,<bamps3
|
||||
bamps_h:
|
||||
.byte >bamps4,>bamps0,>bamps1,>bamps2,>bamps3
|
||||
|
||||
|
||||
.include "amp.s"
|
||||
|
||||
skip_data:
|
||||
|
||||
;=================================
|
||||
; handle channel B volume
|
||||
chanb:
|
||||
lda FRAME
|
||||
and #$7
|
||||
bne bamps_skip
|
||||
|
||||
lda BAMP_COUNTDOWN
|
||||
bne bamps_good
|
||||
|
||||
bamp_smc:
|
||||
lda bamps4
|
||||
pha
|
||||
and #$f
|
||||
sta AY_REGS+9 ; B volume
|
||||
pla
|
||||
|
||||
lsr
|
||||
lsr
|
||||
lsr
|
||||
lsr
|
||||
; clc
|
||||
; adc #1
|
||||
sta BAMP_COUNTDOWN
|
||||
|
||||
inc bamp_smc+1
|
||||
|
||||
bamps_good:
|
||||
dec BAMP_COUNTDOWN
|
||||
bamps_skip:
|
||||
|
||||
;=================================
|
||||
; inc frame counter
|
||||
|
||||
inc FRAME
|
||||
|
@ -3,21 +3,12 @@ tracker_init:
|
||||
; setup initial ay-3-8910 values (this depends on song)
|
||||
|
||||
init_registers_to_zero:
|
||||
ldx #$13 ; init past end to zero others too
|
||||
ldx #$13 ; init registers to zero
|
||||
lda #0
|
||||
; sta SONG_OFFSET ; also init song stuff
|
||||
; sta SONG_COUNTDOWN
|
||||
init_loop:
|
||||
sta AY_REGS,X
|
||||
dex
|
||||
bpl init_loop
|
||||
|
||||
; jsr ay3_write_regs
|
||||
|
||||
lda #$38
|
||||
sta AY_REGS+7 ; $07 mixer (ABC on)
|
||||
; lda #$0E
|
||||
; sta AY_REGS+8 ; $08 volume A
|
||||
; lda #$0C
|
||||
; sta AY_REGS+9 ; $09 volume B
|
||||
; sta AY_REGS+10 ; $0A volume C
|
||||
lda #$38 ; ABC channels on
|
||||
sta AY_REGS+7 ; $07 mixer
|
||||
|
@ -27,6 +27,8 @@ HGR_COLOR = $E4
|
||||
HGR_PAGE = $E6
|
||||
HGR_SCALE = $E7
|
||||
|
||||
BAMP_COUNTDOWN = $F6
|
||||
SAVE_Y = $F7
|
||||
LETTER_X = $F8
|
||||
LETTER_Y = $F9
|
||||
COUNT = $FA
|
||||
|
@ -71,7 +71,7 @@ static int debug=0;
|
||||
static int line=0;
|
||||
|
||||
static int header_version=0;
|
||||
|
||||
static int current_frame=0;
|
||||
|
||||
struct note_type {
|
||||
unsigned char which;
|
||||
@ -207,7 +207,7 @@ static void print_help(int just_version, char *exec_name) {
|
||||
}
|
||||
|
||||
|
||||
static int write_note(int *a_last,int *b_last,int *c_last,int *total_len) {
|
||||
static int write_note(int *a_last,int *b_last,int *c_last,int total_len) {
|
||||
|
||||
// NNNNNEEC
|
||||
|
||||
@ -219,29 +219,30 @@ static int write_note(int *a_last,int *b_last,int *c_last,int *total_len) {
|
||||
temp_value=(*a_last<<3)|0;
|
||||
/* if no note b, use the passed in length */
|
||||
if ((*b_last<0) && (*c_last<0)) {
|
||||
if (*total_len==4) {
|
||||
if (total_len==4) {
|
||||
length=3<<1;
|
||||
}
|
||||
else {
|
||||
length=(*total_len<<1);
|
||||
length=(total_len<<1);
|
||||
}
|
||||
temp_value|=length;
|
||||
}
|
||||
printf("\t.byte $%02X ; A=%d L=%d\n",
|
||||
printf("\t.byte $%02X ; frame=%d A=%d L=%d\n",
|
||||
temp_value,
|
||||
current_frame,
|
||||
*a_last,length>>1);//(*b_last<0)||(*c_last<0));
|
||||
// (*total_len)++;
|
||||
// (total_len)++;
|
||||
*a_last=-1;
|
||||
}
|
||||
|
||||
if (*b_last>=0) {
|
||||
/* note is shifted left by 3, channel 1 */
|
||||
temp_value=(*b_last<<3)|1;
|
||||
if (*total_len==4) {
|
||||
if (total_len==4) {
|
||||
length=3<<1;
|
||||
}
|
||||
else {
|
||||
length=(*total_len<<1);
|
||||
length=(total_len<<1);
|
||||
}
|
||||
temp_value|=length;
|
||||
if (*c_last>=0) {
|
||||
@ -249,10 +250,11 @@ static int write_note(int *a_last,int *b_last,int *c_last,int *total_len) {
|
||||
fprintf(stderr,"Error, shouldn't have C\n");
|
||||
}
|
||||
|
||||
printf("\t.byte $%02X ; B=%d L=%d\n",
|
||||
printf("\t.byte $%02X ; frame=%d B=%d L=%d\n",
|
||||
temp_value,
|
||||
current_frame,
|
||||
*b_last,length>>1);
|
||||
// (*total_len)++;
|
||||
// (total_len)++;
|
||||
*b_last=-1;
|
||||
}
|
||||
|
||||
@ -261,7 +263,7 @@ static int write_note(int *a_last,int *b_last,int *c_last,int *total_len) {
|
||||
// printf("\t.byte $%02X ; C=%d L=%d\n",
|
||||
// (unsigned char)(*c_last<<3)|4|2,
|
||||
// *c_last,1);
|
||||
// (*total_len)++;
|
||||
// (total_len)++;
|
||||
// *c_last=-1;
|
||||
}
|
||||
|
||||
@ -281,6 +283,7 @@ int main(int argc, char **argv) {
|
||||
int sp,external_frequency,irq;
|
||||
struct note_type a,b,c;
|
||||
int copt;
|
||||
int total_length=0;
|
||||
|
||||
char song_name[BUFSIZ];
|
||||
char author_name[BUFSIZ];
|
||||
@ -408,9 +411,16 @@ printf("\n");
|
||||
if (string[0]=='\'') continue;
|
||||
if (string[0]=='-') continue;
|
||||
if (string[0]=='*') continue;
|
||||
if (string[0]=='t') {
|
||||
if (!first) printf(".byte $ff\n");
|
||||
if (string[0]=='t') { /* track */
|
||||
if (!first) {
|
||||
printf("; last: a=%d b=%d len=%d\n",a_last,b_last,current_length);
|
||||
write_note(&a_last,&b_last,&c_last,current_length);
|
||||
printf(".byte $ff\n");
|
||||
}
|
||||
printf("%s\n",string);
|
||||
total_length=0;
|
||||
current_frame=0;
|
||||
current_length=0;
|
||||
continue;
|
||||
}
|
||||
|
||||
@ -440,13 +450,16 @@ printf("\n");
|
||||
}
|
||||
|
||||
if ((a.ed_freq>=0)||(b.ed_freq>=0)||(c.ed_freq>=0)) {
|
||||
printf("; none: a=%d b=%d len=%d\n",a_last,b_last,current_length);
|
||||
|
||||
|
||||
// now NNNNNNEC
|
||||
|
||||
if (!first) {
|
||||
write_note(&a_last,&b_last,&c_last,¤t_length);
|
||||
write_note(&a_last,&b_last,&c_last,current_length);
|
||||
}
|
||||
// printf("; frame %d: a=%d b=%d len=%d\n",
|
||||
// total_length,a_last,b_last,current_length);
|
||||
total_length+=current_length;
|
||||
current_length=0;
|
||||
|
||||
//if (!first) {
|
||||
@ -473,13 +486,13 @@ printf("\n");
|
||||
}
|
||||
|
||||
current_length++;
|
||||
|
||||
current_frame++;
|
||||
|
||||
}
|
||||
|
||||
|
||||
printf("; last: a=%d c=%d len=%d\n",a_last,c_last,current_length);
|
||||
write_note(&a_last,&b_last,&c_last,¤t_length);
|
||||
printf("; last: a=%d b=%d len=%d\n",a_last,b_last,current_length);
|
||||
write_note(&a_last,&b_last,&c_last,current_length);
|
||||
|
||||
// printf("\t.byte $FF ; end\n");
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user