diff --git a/demos/demosplash2022/Makefile b/demos/demosplash2022/Makefile index 59f627db..4adbc4bc 100644 --- a/demos/demosplash2022/Makefile +++ b/demos/demosplash2022/Makefile @@ -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 diff --git a/demos/demosplash2022/amp.s b/demos/demosplash2022/amp.s new file mode 100644 index 00000000..9ad08445 --- /dev/null +++ b/demos/demosplash2022/amp.s @@ -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 diff --git a/demos/demosplash2022/ay3_write_regs.s b/demos/demosplash2022/ay3_write_regs.s index 63eee339..7f46deb5 100644 --- a/demos/demosplash2022/ay3_write_regs.s +++ b/demos/demosplash2022/ay3_write_regs.s @@ -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 - - diff --git a/demos/demosplash2022/escape.s b/demos/demosplash2022/escape.s index 12502e63..1da6575b 100644 --- a/demos/demosplash2022/escape.s +++ b/demos/demosplash2022/escape.s @@ -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 diff --git a/demos/demosplash2022/hello.bas b/demos/demosplash2022/hello.bas index 897a2ba6..db3a19e0 100644 --- a/demos/demosplash2022/hello.bas +++ b/demos/demosplash2022/hello.bas @@ -5,4 +5,5 @@ 25 PRINT:PRINT "PRESS ANY KEY TO 'BRUN ESCAPE'" 30 GET A$ 35 PRINT +40 PRINT CHR$(4)"BRUN ESCAPE" diff --git a/demos/demosplash2022/interrupt_handler.s b/demos/demosplash2022/interrupt_handler.s index 0197a712..8156b493 100644 --- a/demos/demosplash2022/interrupt_handler.s +++ b/demos/demosplash2022/interrupt_handler.s @@ -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 - - - - - - diff --git a/demos/demosplash2022/letters/d.points b/demos/demosplash2022/letters/d.points index be732942..303283ef 100644 --- a/demos/demosplash2022/letters/d.points +++ b/demos/demosplash2022/letters/d.points @@ -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 diff --git a/demos/demosplash2022/letters/e.points b/demos/demosplash2022/letters/e.points index ab99d41d..47cd880f 100644 --- a/demos/demosplash2022/letters/e.points +++ b/demos/demosplash2022/letters/e.points @@ -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 diff --git a/demos/demosplash2022/letters/i.points b/demos/demosplash2022/letters/i.points index 4496a8d6..5811c5f8 100644 --- a/demos/demosplash2022/letters/i.points +++ b/demos/demosplash2022/letters/i.points @@ -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 diff --git a/demos/demosplash2022/letters/make_points.c b/demos/demosplash2022/letters/make_points.c index c95d6db6..06f2212f 100644 --- a/demos/demosplash2022/letters/make_points.c +++ b/demos/demosplash2022/letters/make_points.c @@ -1,7 +1,7 @@ #include #include -#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; diff --git a/demos/demosplash2022/letters/r.points b/demos/demosplash2022/letters/r.points index b30c79b4..f2d31eb4 100644 --- a/demos/demosplash2022/letters/r.points +++ b/demos/demosplash2022/letters/r.points @@ -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 diff --git a/demos/demosplash2022/letters/s.points b/demos/demosplash2022/letters/s.points index 13624143..79ef9a69 100644 --- a/demos/demosplash2022/letters/s.points +++ b/demos/demosplash2022/letters/s.points @@ -1,4 +1,4 @@ -282 108 77 148 77 ; S +254 108 77 148 77 ; S 150 79 150 101 136 101 diff --git a/demos/demosplash2022/logo_intro.s b/demos/demosplash2022/logo_intro.s index c4b6960a..273d11bd 100644 --- a/demos/demosplash2022/logo_intro.s +++ b/demos/demosplash2022/logo_intro.s @@ -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 diff --git a/demos/demosplash2022/mA2E_4.s b/demos/demosplash2022/mA2E_4.s index 9cb91e30..c6de3899 100644 --- a/demos/demosplash2022/mA2E_4.s +++ b/demos/demosplash2022/mA2E_4.s @@ -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 diff --git a/demos/demosplash2022/play_frame.s b/demos/demosplash2022/play_frame.s index 35821837..324e2da5 100644 --- a/demos/demosplash2022/play_frame.s +++ b/demos/demosplash2022/play_frame.s @@ -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 + + +.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 diff --git a/demos/demosplash2022/tracker_init.s b/demos/demosplash2022/tracker_init.s index 35f3d151..7995a13e 100644 --- a/demos/demosplash2022/tracker_init.s +++ b/demos/demosplash2022/tracker_init.s @@ -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 diff --git a/demos/demosplash2022/zp.inc b/demos/demosplash2022/zp.inc index 021460b0..f793c344 100644 --- a/demos/demosplash2022/zp.inc +++ b/demos/demosplash2022/zp.inc @@ -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 diff --git a/music/tiny_tracker6/text_to_tiny.c b/music/tiny_tracker6/text_to_tiny.c index cee82d17..514d0222 100644 --- a/music/tiny_tracker6/text_to_tiny.c +++ b/music/tiny_tracker6/text_to_tiny.c @@ -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");