mirror of
https://github.com/deater/dos33fsprogs.git
synced 2025-03-04 04:30:18 +00:00
blue_flame: under 1020 bytes!
This commit is contained in:
parent
5cb27a5524
commit
588a7bef7d
@ -1,7 +1,8 @@
|
|||||||
.align $100
|
.align $100
|
||||||
|
|
||||||
|
|
||||||
peasant_song:
|
small_love_2_song:
|
||||||
|
|
||||||
; register init
|
; register init
|
||||||
|
|
||||||
track0:
|
track0:
|
||||||
@ -250,8 +251,144 @@ track1:
|
|||||||
.byte $18 ; frame=64 A=3 L=0
|
.byte $18 ; frame=64 A=3 L=0
|
||||||
.byte $45 ; frame=64 B=8 L=2
|
.byte $45 ; frame=64 B=8 L=2
|
||||||
.byte $ff
|
.byte $ff
|
||||||
|
|
||||||
|
|
||||||
track2:
|
track2:
|
||||||
|
|
||||||
|
; A: 24
|
||||||
|
; B: 12
|
||||||
|
; A: 31
|
||||||
|
; B: 24
|
||||||
|
.byte $00 ; frame=2 A=0 L=0
|
||||||
|
.byte $4D ; frame=2 B=9 L=2
|
||||||
|
; A: 36
|
||||||
|
; B: 51
|
||||||
|
.byte $08 ; frame=4 A=1 L=0
|
||||||
|
.byte $05 ; frame=4 B=0 L=2
|
||||||
|
; A: 43
|
||||||
|
; B: 50
|
||||||
|
.byte $10 ; frame=6 A=2 L=0
|
||||||
|
.byte $3D ; frame=6 B=7 L=2
|
||||||
|
; A: 46
|
||||||
|
; B: 53
|
||||||
|
.byte $18 ; frame=8 A=3 L=0
|
||||||
|
.byte $45 ; frame=8 B=8 L=2
|
||||||
|
; A: 48
|
||||||
|
; B: 51
|
||||||
|
.byte $20 ; frame=10 A=4 L=0
|
||||||
|
.byte $55 ; frame=10 B=10 L=2
|
||||||
|
; A: 43
|
||||||
|
; B: 19
|
||||||
|
.byte $28 ; frame=12 A=5 L=0
|
||||||
|
.byte $3D ; frame=12 B=7 L=2
|
||||||
|
; A: 41
|
||||||
|
; B: 15
|
||||||
|
.byte $18 ; frame=14 A=3 L=0
|
||||||
|
.byte $5D ; frame=14 B=11 L=2
|
||||||
|
; A: 24
|
||||||
|
; B: 12
|
||||||
|
.byte $30 ; frame=16 A=6 L=0
|
||||||
|
.byte $65 ; frame=16 B=12 L=2
|
||||||
|
; A: 31
|
||||||
|
; B: 24
|
||||||
|
.byte $00 ; frame=18 A=0 L=0
|
||||||
|
.byte $4D ; frame=18 B=9 L=2
|
||||||
|
; A: 36
|
||||||
|
; B: 55
|
||||||
|
.byte $08 ; frame=20 A=1 L=0
|
||||||
|
.byte $05 ; frame=20 B=0 L=2
|
||||||
|
; A: 43
|
||||||
|
; B: 53
|
||||||
|
.byte $10 ; frame=22 A=2 L=0
|
||||||
|
.byte $6D ; frame=22 B=13 L=2
|
||||||
|
; A: 46
|
||||||
|
; B: 50
|
||||||
|
.byte $18 ; frame=24 A=3 L=0
|
||||||
|
.byte $55 ; frame=24 B=10 L=2
|
||||||
|
; A: 48
|
||||||
|
; B: 51
|
||||||
|
.byte $20 ; frame=26 A=4 L=0
|
||||||
|
.byte $45 ; frame=26 B=8 L=2
|
||||||
|
; A: 43
|
||||||
|
; B: 19
|
||||||
|
.byte $28 ; frame=28 A=5 L=0
|
||||||
|
.byte $3D ; frame=28 B=7 L=2
|
||||||
|
; A: 41
|
||||||
|
; B: 15
|
||||||
|
.byte $18 ; frame=30 A=3 L=0
|
||||||
|
.byte $5D ; frame=30 B=11 L=2
|
||||||
|
; A: 24
|
||||||
|
; B: 12
|
||||||
|
.byte $30 ; frame=32 A=6 L=0
|
||||||
|
.byte $65 ; frame=32 B=12 L=2
|
||||||
|
; A: 31
|
||||||
|
; B: 24
|
||||||
|
.byte $00 ; frame=34 A=0 L=0
|
||||||
|
.byte $4D ; frame=34 B=9 L=2
|
||||||
|
; A: 36
|
||||||
|
; B: 50
|
||||||
|
.byte $08 ; frame=36 A=1 L=0
|
||||||
|
.byte $05 ; frame=36 B=0 L=2
|
||||||
|
; A: 43
|
||||||
|
; B: 51
|
||||||
|
.byte $10 ; frame=38 A=2 L=0
|
||||||
|
.byte $45 ; frame=38 B=8 L=2
|
||||||
|
; A: 46
|
||||||
|
; B: 53
|
||||||
|
.byte $18 ; frame=40 A=3 L=0
|
||||||
|
.byte $3D ; frame=40 B=7 L=2
|
||||||
|
; A: 48
|
||||||
|
; B: 51
|
||||||
|
.byte $20 ; frame=42 A=4 L=0
|
||||||
|
.byte $55 ; frame=42 B=10 L=2
|
||||||
|
; A: 43
|
||||||
|
; B: 19
|
||||||
|
.byte $28 ; frame=44 A=5 L=0
|
||||||
|
.byte $3D ; frame=44 B=7 L=2
|
||||||
|
; A: 41
|
||||||
|
; B: 15
|
||||||
|
.byte $18 ; frame=46 A=3 L=0
|
||||||
|
.byte $5D ; frame=46 B=11 L=2
|
||||||
|
; A: 24
|
||||||
|
; B: 12
|
||||||
|
.byte $30 ; frame=48 A=6 L=0
|
||||||
|
.byte $65 ; frame=48 B=12 L=2
|
||||||
|
; A: 31
|
||||||
|
; B: 24
|
||||||
|
.byte $00 ; frame=50 A=0 L=0
|
||||||
|
.byte $4D ; frame=50 B=9 L=2
|
||||||
|
; A: 36
|
||||||
|
; B: 55
|
||||||
|
.byte $08 ; frame=52 A=1 L=0
|
||||||
|
.byte $05 ; frame=52 B=0 L=2
|
||||||
|
; A: 43
|
||||||
|
; B: 58
|
||||||
|
.byte $10 ; frame=54 A=2 L=0
|
||||||
|
.byte $6D ; frame=54 B=13 L=2
|
||||||
|
; A: 51
|
||||||
|
; B: 55
|
||||||
|
.byte $18 ; frame=56 A=3 L=0
|
||||||
|
.byte $85 ; frame=56 B=16 L=2
|
||||||
|
; A: 50
|
||||||
|
; B: 53
|
||||||
|
.byte $38 ; frame=58 A=7 L=0
|
||||||
|
.byte $6D ; frame=58 B=13 L=2
|
||||||
|
; A: 46
|
||||||
|
; B: 26
|
||||||
|
.byte $40 ; frame=60 A=8 L=0
|
||||||
|
.byte $55 ; frame=60 B=10 L=2
|
||||||
|
; A: 43
|
||||||
|
; B: 50
|
||||||
|
.byte $20 ; frame=62 A=4 L=0
|
||||||
|
.byte $75 ; frame=62 B=14 L=2
|
||||||
|
; last: a=3 b=8 len=2
|
||||||
|
.byte $18 ; frame=64 A=3 L=0
|
||||||
|
.byte $45 ; frame=64 B=8 L=2
|
||||||
|
; .byte $FF ; end
|
||||||
|
|
||||||
|
|
||||||
|
track3:
|
||||||
|
|
||||||
; A: 24
|
; A: 24
|
||||||
; B: 12
|
; B: 12
|
||||||
; A: 31
|
; A: 31
|
||||||
@ -382,138 +519,8 @@ track2:
|
|||||||
.byte $18 ; frame=64 A=3 L=0
|
.byte $18 ; frame=64 A=3 L=0
|
||||||
.byte $45 ; frame=64 B=8 L=2
|
.byte $45 ; frame=64 B=8 L=2
|
||||||
.byte $ff
|
.byte $ff
|
||||||
track3:
|
|
||||||
|
|
||||||
; A: 24
|
|
||||||
; B: 12
|
|
||||||
; A: 31
|
|
||||||
; B: 24
|
|
||||||
.byte $00 ; frame=2 A=0 L=0
|
|
||||||
.byte $4D ; frame=2 B=9 L=2
|
|
||||||
; A: 36
|
|
||||||
; B: 51
|
|
||||||
.byte $08 ; frame=4 A=1 L=0
|
|
||||||
.byte $05 ; frame=4 B=0 L=2
|
|
||||||
; A: 43
|
|
||||||
; B: 50
|
|
||||||
.byte $10 ; frame=6 A=2 L=0
|
|
||||||
.byte $3D ; frame=6 B=7 L=2
|
|
||||||
; A: 46
|
|
||||||
; B: 53
|
|
||||||
.byte $18 ; frame=8 A=3 L=0
|
|
||||||
.byte $45 ; frame=8 B=8 L=2
|
|
||||||
; A: 48
|
|
||||||
; B: 51
|
|
||||||
.byte $20 ; frame=10 A=4 L=0
|
|
||||||
.byte $55 ; frame=10 B=10 L=2
|
|
||||||
; A: 43
|
|
||||||
; B: 19
|
|
||||||
.byte $28 ; frame=12 A=5 L=0
|
|
||||||
.byte $3D ; frame=12 B=7 L=2
|
|
||||||
; A: 41
|
|
||||||
; B: 15
|
|
||||||
.byte $18 ; frame=14 A=3 L=0
|
|
||||||
.byte $5D ; frame=14 B=11 L=2
|
|
||||||
; A: 24
|
|
||||||
; B: 12
|
|
||||||
.byte $30 ; frame=16 A=6 L=0
|
|
||||||
.byte $65 ; frame=16 B=12 L=2
|
|
||||||
; A: 31
|
|
||||||
; B: 24
|
|
||||||
.byte $00 ; frame=18 A=0 L=0
|
|
||||||
.byte $4D ; frame=18 B=9 L=2
|
|
||||||
; A: 36
|
|
||||||
; B: 55
|
|
||||||
.byte $08 ; frame=20 A=1 L=0
|
|
||||||
.byte $05 ; frame=20 B=0 L=2
|
|
||||||
; A: 43
|
|
||||||
; B: 53
|
|
||||||
.byte $10 ; frame=22 A=2 L=0
|
|
||||||
.byte $6D ; frame=22 B=13 L=2
|
|
||||||
; A: 46
|
|
||||||
; B: 50
|
|
||||||
.byte $18 ; frame=24 A=3 L=0
|
|
||||||
.byte $55 ; frame=24 B=10 L=2
|
|
||||||
; A: 48
|
|
||||||
; B: 51
|
|
||||||
.byte $20 ; frame=26 A=4 L=0
|
|
||||||
.byte $45 ; frame=26 B=8 L=2
|
|
||||||
; A: 43
|
|
||||||
; B: 19
|
|
||||||
.byte $28 ; frame=28 A=5 L=0
|
|
||||||
.byte $3D ; frame=28 B=7 L=2
|
|
||||||
; A: 41
|
|
||||||
; B: 15
|
|
||||||
.byte $18 ; frame=30 A=3 L=0
|
|
||||||
.byte $5D ; frame=30 B=11 L=2
|
|
||||||
; A: 24
|
|
||||||
; B: 12
|
|
||||||
.byte $30 ; frame=32 A=6 L=0
|
|
||||||
.byte $65 ; frame=32 B=12 L=2
|
|
||||||
; A: 31
|
|
||||||
; B: 24
|
|
||||||
.byte $00 ; frame=34 A=0 L=0
|
|
||||||
.byte $4D ; frame=34 B=9 L=2
|
|
||||||
; A: 36
|
|
||||||
; B: 50
|
|
||||||
.byte $08 ; frame=36 A=1 L=0
|
|
||||||
.byte $05 ; frame=36 B=0 L=2
|
|
||||||
; A: 43
|
|
||||||
; B: 51
|
|
||||||
.byte $10 ; frame=38 A=2 L=0
|
|
||||||
.byte $45 ; frame=38 B=8 L=2
|
|
||||||
; A: 46
|
|
||||||
; B: 53
|
|
||||||
.byte $18 ; frame=40 A=3 L=0
|
|
||||||
.byte $3D ; frame=40 B=7 L=2
|
|
||||||
; A: 48
|
|
||||||
; B: 51
|
|
||||||
.byte $20 ; frame=42 A=4 L=0
|
|
||||||
.byte $55 ; frame=42 B=10 L=2
|
|
||||||
; A: 43
|
|
||||||
; B: 19
|
|
||||||
.byte $28 ; frame=44 A=5 L=0
|
|
||||||
.byte $3D ; frame=44 B=7 L=2
|
|
||||||
; A: 41
|
|
||||||
; B: 15
|
|
||||||
.byte $18 ; frame=46 A=3 L=0
|
|
||||||
.byte $5D ; frame=46 B=11 L=2
|
|
||||||
; A: 24
|
|
||||||
; B: 12
|
|
||||||
.byte $30 ; frame=48 A=6 L=0
|
|
||||||
.byte $65 ; frame=48 B=12 L=2
|
|
||||||
; A: 31
|
|
||||||
; B: 24
|
|
||||||
.byte $00 ; frame=50 A=0 L=0
|
|
||||||
.byte $4D ; frame=50 B=9 L=2
|
|
||||||
; A: 36
|
|
||||||
; B: 55
|
|
||||||
.byte $08 ; frame=52 A=1 L=0
|
|
||||||
.byte $05 ; frame=52 B=0 L=2
|
|
||||||
; A: 43
|
|
||||||
; B: 58
|
|
||||||
.byte $10 ; frame=54 A=2 L=0
|
|
||||||
.byte $6D ; frame=54 B=13 L=2
|
|
||||||
; A: 51
|
|
||||||
; B: 55
|
|
||||||
.byte $18 ; frame=56 A=3 L=0
|
|
||||||
.byte $85 ; frame=56 B=16 L=2
|
|
||||||
; A: 50
|
|
||||||
; B: 53
|
|
||||||
.byte $38 ; frame=58 A=7 L=0
|
|
||||||
.byte $6D ; frame=58 B=13 L=2
|
|
||||||
; A: 46
|
|
||||||
; B: 26
|
|
||||||
.byte $40 ; frame=60 A=8 L=0
|
|
||||||
.byte $55 ; frame=60 B=10 L=2
|
|
||||||
; A: 43
|
|
||||||
; B: 50
|
|
||||||
.byte $20 ; frame=62 A=4 L=0
|
|
||||||
.byte $75 ; frame=62 B=14 L=2
|
|
||||||
; last: a=3 b=8 len=2
|
|
||||||
.byte $18 ; frame=64 A=3 L=0
|
|
||||||
.byte $45 ; frame=64 B=8 L=2
|
|
||||||
.byte $FF ; end
|
|
||||||
; Octave 0 : 0 0 0 0 0 0 0 0 0 0 0 0
|
; Octave 0 : 0 0 0 0 0 0 0 0 0 0 0 0
|
||||||
; Octave 1 : 12 0 0 9 0 0 0 9 0 0 0 0
|
; Octave 1 : 12 0 0 9 0 0 0 9 0 0 0 0
|
||||||
; Octave 2 : 32 0 2 0 0 0 0 20 0 0 0 0
|
; Octave 2 : 32 0 2 0 0 0 0 20 0 0 0 0
|
||||||
@ -526,19 +533,25 @@ frequencies_low:
|
|||||||
.byte $E8,$46,$F4,$A3,$89,$7A,$B7,$66,$6C,$D1,$5B,$8C,$36,$51,$B3,$3D,$44,$36
|
.byte $E8,$46,$F4,$A3,$89,$7A,$B7,$66,$6C,$D1,$5B,$8C,$36,$51,$B3,$3D,$44,$36
|
||||||
frequencies_high:
|
frequencies_high:
|
||||||
.byte $01,$01,$00,$00,$00,$00,$00,$00,$00,$03,$00,$02,$03,$00,$01,$00,$00,$00
|
.byte $01,$01,$00,$00,$00,$00,$00,$00,$00,$03,$00,$02,$03,$00,$01,$00,$00,$00
|
||||||
|
|
||||||
|
lengths:
|
||||||
|
; .byte 0*4,1*4,2*4,4*4
|
||||||
|
.byte 0*4,0*4,2*4;,4*4
|
||||||
|
|
||||||
; total len=37
|
; total len=37
|
||||||
|
|
||||||
|
; can overlap these, makes no different when compressed though
|
||||||
|
|
||||||
channel_a_volume:
|
channel_a_volume:
|
||||||
.byte 15,15,15,15,9,9,9,9
|
.byte 15,15,15,15,9,9,9,9
|
||||||
|
|
||||||
channel_b_volume:
|
channel_b_volume:
|
||||||
.byte 9,9,9,9,5,5,5,5
|
.byte 9,9,9,9,5,5,5,5
|
||||||
|
|
||||||
lengths:
|
|
||||||
.byte 0*4,1*4,2*4,4*4
|
|
||||||
|
|
||||||
tracks_l:
|
tracks_l:
|
||||||
.byte <track0,<track0,<track1,<track1,<track3,<track2
|
.byte <track0,<track0,<track1,<track1,<track2;,<track3
|
||||||
|
|
||||||
; assume all on same page
|
; assume all on same page
|
||||||
; tracks_h:
|
; tracks_h:
|
||||||
|
@ -17,6 +17,10 @@
|
|||||||
; 1033 bytes (+13) -- inline letters code
|
; 1033 bytes (+13) -- inline letters code
|
||||||
; 1029 bytes (+9) -- remove unecessary initialization in column code
|
; 1029 bytes (+9) -- remove unecessary initialization in column code
|
||||||
; 1025 bytes (+5) -- optimize page flip
|
; 1025 bytes (+5) -- optimize page flip
|
||||||
|
; 1022 bytes (+2) -- optimize music, merge two tracks
|
||||||
|
; 1019 bytes -- optimize music
|
||||||
|
; note we could save another 3 bytes by sorting frequencies
|
||||||
|
; but that would have been a huge pain
|
||||||
|
|
||||||
.include "zp.inc"
|
.include "zp.inc"
|
||||||
.include "hardware.inc"
|
.include "hardware.inc"
|
||||||
@ -81,6 +85,8 @@ hgr_table_loop:
|
|||||||
bne hgr_table_loop ; though if never use address 0 can we?
|
bne hgr_table_loop ; though if never use address 0 can we?
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
; lookup table of 0..40 but divided by 4
|
; lookup table of 0..40 but divided by 4
|
||||||
; in $90 to $C0 or so
|
; in $90 to $C0 or so
|
||||||
|
|
||||||
|
@ -19,7 +19,6 @@ flames:
|
|||||||
ldx #39
|
ldx #39
|
||||||
lda #$f
|
lda #$f
|
||||||
white_line_loop:
|
white_line_loop:
|
||||||
; sta $5FD0,X
|
|
||||||
sta $3FD0,X
|
sta $3FD0,X
|
||||||
dex
|
dex
|
||||||
bpl white_line_loop
|
bpl white_line_loop
|
||||||
|
@ -83,6 +83,7 @@ outer_zoom_loop:
|
|||||||
lda #76 ; Y position
|
lda #76 ; Y position
|
||||||
sta YPOS
|
sta YPOS
|
||||||
|
|
||||||
|
|
||||||
inner_zoom_loop:
|
inner_zoom_loop:
|
||||||
|
|
||||||
jsr draw_wait_erase
|
jsr draw_wait_erase
|
||||||
@ -102,6 +103,4 @@ inner_zoom_loop:
|
|||||||
bpl outer_zoom_loop ; bra
|
bpl outer_zoom_loop ; bra
|
||||||
|
|
||||||
done2:
|
done2:
|
||||||
; rts
|
|
||||||
;
|
|
||||||
;.include "letters_routines.s"
|
|
||||||
|
@ -29,7 +29,7 @@ track_smc:
|
|||||||
ldy WHICH_TRACK ; get current track in Y
|
ldy WHICH_TRACK ; get current track in Y
|
||||||
iny ; increment track
|
iny ; increment track
|
||||||
|
|
||||||
cpy #6 ; see if off end
|
cpy #5 ; see if off end
|
||||||
bne no_wrap
|
bne no_wrap
|
||||||
ldy #2 ; loop to track 1
|
ldy #2 ; loop to track 1
|
||||||
no_wrap:
|
no_wrap:
|
||||||
@ -37,16 +37,6 @@ no_wrap:
|
|||||||
|
|
||||||
lda tracks_l,Y ; self-modify track
|
lda tracks_l,Y ; self-modify track
|
||||||
sta track_smc+1
|
sta track_smc+1
|
||||||
; lda tracks_h,Y ; enforce in same page
|
|
||||||
; sta track_smc+2
|
|
||||||
|
|
||||||
; lda bamps_l,Y ; self modify B-amplitude
|
|
||||||
; sta bamp_smc+1
|
|
||||||
; lda bamps_h,Y ; enforce in same page
|
|
||||||
; sta bamp_smc+2
|
|
||||||
|
|
||||||
; lda #0 ; reset song offset
|
|
||||||
; sta SONG_OFFSET
|
|
||||||
|
|
||||||
jmp set_notes_loop ; bra ; try again in new track
|
jmp set_notes_loop ; bra ; try again in new track
|
||||||
|
|
||||||
@ -96,7 +86,7 @@ done_update_song:
|
|||||||
|
|
||||||
|
|
||||||
;=================================
|
;=================================
|
||||||
; coundown song
|
; countdown song
|
||||||
|
|
||||||
dec SONG_COUNTDOWN ; if length was 0, means there
|
dec SONG_COUNTDOWN ; if length was 0, means there
|
||||||
; was another note starting at same
|
; was another note starting at same
|
||||||
|
@ -154,7 +154,7 @@ static int get_note(char *string, int sp, struct note_type *n, int line) {
|
|||||||
|
|
||||||
freq=note_to_ed(n->note,n->flat,n->sharp,
|
freq=note_to_ed(n->note,n->flat,n->sharp,
|
||||||
n->octave);
|
n->octave);
|
||||||
|
if (freq<0) fprintf(stderr,"Bad note line %d\n",line);
|
||||||
n->enabled=1;
|
n->enabled=1;
|
||||||
n->length=0;
|
n->length=0;
|
||||||
n->ed_freq=freq;
|
n->ed_freq=freq;
|
||||||
@ -519,6 +519,8 @@ printf("\n");
|
|||||||
printf("\n");
|
printf("\n");
|
||||||
|
|
||||||
/* put these first as we use the high bit to end things? */
|
/* put these first as we use the high bit to end things? */
|
||||||
|
|
||||||
|
/* FIXME: sort these, helps with compression */
|
||||||
printf("frequencies_low:\n");
|
printf("frequencies_low:\n");
|
||||||
printf(".byte ");
|
printf(".byte ");
|
||||||
for(n=0;n<notes_allocated;n++) {
|
for(n=0;n<notes_allocated;n++) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user