diff --git a/still_alive/Makefile b/still_alive/Makefile index 61bee767..6dee2d9d 100644 --- a/still_alive/Makefile +++ b/still_alive/Makefile @@ -16,7 +16,7 @@ still_alive.o: still_alive.s \ ../asm_routines/lz4_decode.s \ ../asm_routines/keypress_minimal.s \ interrupt_handler.s \ - ascii_art.inc zp.inc + ascii_art.inc lyrics.inc zp.inc ca65 -o still_alive.o still_alive.s -l still_alive.lst lyrics_to_asm: lyrics_to_asm.c diff --git a/still_alive/interrupt_handler.s b/still_alive/interrupt_handler.s index 4012985c..d79307b2 100644 --- a/still_alive/interrupt_handler.s +++ b/still_alive/interrupt_handler.s @@ -239,13 +239,34 @@ done_interrupt: ;===================== - ; Update frame count + ; Handle Lyrics ;===================== -update_time: - inc FRAME_COUNT ; 5 lda FRAME_COUNT ; 3 - cmp #50 ; 3 + inc FRAME_COUNT ; 5 + ldy #$0 + cmp (LYRICSL),Y + bne check_keyboard + + ;================================ + ; Frame matches, print the string + ;================================ + iny +lyric_loop: + lda (LYRICSL),Y + beq done_lyric + jsr COUT1 + iny + jmp lyric_loop +done_lyric: + ; adjust pointer + sec + tya + adc LYRICSL + sta LYRICSL + lda #0 + adc LYRICSH + sta LYRICSH check_keyboard: diff --git a/still_alive/lyrics.inc b/still_alive/lyrics.inc index c88515e5..42fcca50 100644 --- a/still_alive/lyrics.inc +++ b/still_alive/lyrics.inc @@ -5,7 +5,7 @@ ; 24 "\i29827" .byte $18,$B2,$B9,$B8,$B2,$B7,$00 ; 36 "\i281-12:\n" -.byte $24,$B2,$B8,$B1,$AD,$B1,$B2,$BA,$0D,$00 +.byte $24,$B2,$B8,$B1,$AD,$B1,$B2,$BA,$8D,$00 ; 48 "\iTest " .byte $30,$D4,$E5,$F3,$F4,$A0,$00 ; 60 "\iAssess" @@ -13,9 +13,9 @@ ; 72 "\iment " .byte $48,$ED,$E5,$EE,$F4,$A0,$00 ; 84 "\iReport\n" -.byte $54,$D2,$E5,$F0,$EF,$F2,$F4,$0D,$00 +.byte $54,$D2,$E5,$F0,$EF,$F2,$F4,$8D,$00 ; 96 "\i\n" -.byte $60,$0D,$00 +.byte $60,$8D,$00 ; 144 "This " .byte $90,$D4,$E8,$E9,$F3,$A0,$00 ; 156 "was " @@ -25,7 +25,7 @@ ; 180 "tri" .byte $B4,$F4,$F2,$E9,$00 ; 204 "umph.\n" -.byte $CC,$F5,$ED,$F0,$E8,$AE,$0D,$00 +.byte $CC,$F5,$ED,$F0,$E8,$AE,$8D,$00 ; 324 "I'm " .byte $44,$C9,$A7,$ED,$A0,$00 ; 336 "ma" @@ -37,13 +37,13 @@ ; 372 "note " .byte $74,$EE,$EF,$F4,$E5,$A0,$00 ; 396 "here:\n" -.byte $8C,$E8,$E5,$F2,$E5,$BA,$0D,$00 +.byte $8C,$E8,$E5,$F2,$E5,$BA,$8D,$00 ; 432 "HUGE " .byte $B0,$C8,$D5,$C7,$C5,$A0,$00 ; 456 "SUC" .byte $C8,$D3,$D5,$C3,$00 ; 468 "CESS.\n" -.byte $D4,$C3,$C5,$D3,$D3,$AE,$0D,$00 +.byte $D4,$C3,$C5,$D3,$D3,$AE,$8D,$00 ; 564 "It's " .byte $34,$C9,$F4,$A7,$F3,$A0,$00 ; 576 "hard " @@ -55,7 +55,7 @@ ; 648 "ver" .byte $88,$F6,$E5,$F2,$00 ; 660 "state\n" -.byte $94,$F3,$F4,$E1,$F4,$E5,$0D,$00 +.byte $94,$F3,$F4,$E1,$F4,$E5,$8D,$00 ; 684 "my " .byte $AC,$ED,$F9,$A0,$00 ; 720 "sat" @@ -65,7 +65,7 @@ ; 756 "fac" .byte $F4,$E6,$E1,$E3,$00 ; 780 "tion.\n" -.byte $0C,$F4,$E9,$EF,$EE,$AE,$0D,$00 +.byte $0C,$F4,$E9,$EF,$EE,$AE,$8D,$00 ; 912 "\1Ap" .byte $90,$01,$C1,$F0,$00 ; 924 "er" @@ -75,7 +75,7 @@ ; 948 "Sci" .byte $B4,$D3,$E3,$E9,$00 ; 972 "ence\n" -.byte $CC,$E5,$EE,$E3,$E5,$0D,$00 +.byte $CC,$E5,$EE,$E3,$E5,$8D,$00 ; 1092 "We " .byte $44,$D7,$E5,$A0,$00 ; 1104 "do " @@ -85,7 +85,7 @@ ; 1128 "we " .byte $68,$F7,$E5,$A0,$00 ; 1140 "must\n" -.byte $74,$ED,$F5,$F3,$F4,$0D,$00 +.byte $74,$ED,$F5,$F3,$F4,$8D,$00 ; 1176 "be" .byte $98,$E2,$E5,$00 ; 1188 "cause " @@ -93,7 +93,7 @@ ; 1224 "we " .byte $C8,$F7,$E5,$A0,$00 ; 1236 "can.\n" -.byte $D4,$E3,$E1,$EE,$AE,$0D,$00 +.byte $D4,$E3,$E1,$EE,$AE,$8D,$00 ; 1344 "For " .byte $40,$C6,$EF,$F2,$A0,$00 ; 1368 "the " @@ -107,7 +107,7 @@ ; 1464 "of " .byte $B8,$EF,$E6,$A0,$00 ; 1476 "us.\n" -.byte $C4,$F5,$F3,$AE,$0D,$00 +.byte $C4,$F5,$F3,$AE,$8D,$00 ; 1500 "\2Ex" .byte $DC,$02,$C5,$F8,$00 ; 1512 "cept " @@ -121,7 +121,7 @@ ; 1560 "are " .byte $18,$E1,$F2,$E5,$A0,$00 ; 1572 "dead.\n\n" -.byte $24,$E4,$E5,$E1,$E4,$AE,$0D,$0D,$00 +.byte $24,$E4,$E5,$E1,$E4,$AE,$8D,$8D,$00 ; 1608 "\1But " .byte $48,$01,$C2,$F5,$F4,$A0,$00 ; 1620 "there" @@ -133,7 +133,7 @@ ; 1680 "cry" .byte $90,$E3,$F2,$F9,$00 ; 1692 "ing\n" -.byte $9C,$E9,$EE,$E7,$0D,$00 +.byte $9C,$E9,$EE,$E7,$8D,$00 ; 1704 "ov" .byte $A8,$EF,$F6,$00 ; 1716 "er " @@ -145,7 +145,7 @@ ; 1752 "mis" .byte $D8,$ED,$E9,$F3,$00 ; 1776 "take.\n" -.byte $F0,$F4,$E1,$EB,$E5,$AE,$0D,$00 +.byte $F0,$F4,$E1,$EB,$E5,$AE,$8D,$00 ; 1800 "You " .byte $08,$D9,$EF,$F5,$A0,$00 ; 1812 "just " @@ -157,7 +157,7 @@ ; 1872 "try" .byte $50,$F4,$F2,$F9,$00 ; 1884 "ing\n" -.byte $5C,$E9,$EE,$E7,$0D,$00 +.byte $5C,$E9,$EE,$E7,$8D,$00 ; 1896 "till " .byte $68,$F4,$E9,$EC,$EC,$A0,$00 ; 1908 "you " @@ -169,7 +169,7 @@ ; 1944 "of " .byte $98,$EF,$E6,$A0,$00 ; 1968 "cake.\n" -.byte $B0,$E3,$E1,$EB,$E5,$AE,$0D,$00 +.byte $B0,$E3,$E1,$EB,$E5,$AE,$8D,$00 ; 1992 "\3And " .byte $C8,$03,$C1,$EE,$E4,$A0,$00 ; 2004 "the " @@ -181,7 +181,7 @@ ; 2040 "gets " .byte $F8,$E7,$E5,$F4,$F3,$A0,$00 ; 2064 "done.\n" -.byte $10,$E4,$EF,$EE,$E5,$AE,$0D,$00 +.byte $10,$E4,$EF,$EE,$E5,$AE,$8D,$00 ; 2088 "And " .byte $28,$C1,$EE,$E4,$A0,$00 ; 2097 "you " @@ -193,7 +193,7 @@ ; 2136 "neat " .byte $58,$EE,$E5,$E1,$F4,$A0,$00 ; 2160 "gun.\n" -.byte $70,$E7,$F5,$EE,$AE,$0D,$00 +.byte $70,$E7,$F5,$EE,$AE,$8D,$00 ; 2184 "\1For " .byte $88,$01,$C6,$EF,$F2,$A0,$00 ; 2196 "the " @@ -205,13 +205,13 @@ ; 2232 "who " .byte $B8,$F7,$E8,$EF,$A0,$00 ; 2244 "are\n" -.byte $C4,$E1,$F2,$E5,$0D,$00 +.byte $C4,$E1,$F2,$E5,$8D,$00 ; 2268 "still" .byte $DC,$F3,$F4,$E9,$EC,$EC,$00 ; 2280 " a" .byte $E8,$A0,$E1,$00 ; 2304 "live.\n" -.byte $00,$EC,$E9,$F6,$E5,$AE,$0D,$00 +.byte $00,$EC,$E9,$F6,$E5,$AE,$8D,$00 ; 2316 "\f" .byte $0C,$0C,$00 ; 2397 "\v" @@ -223,7 +223,7 @@ ; 2424 "\i5555" .byte $78,$B5,$B5,$B5,$B5,$00 ; 2436 "\i1-5:\n" -.byte $84,$B1,$AD,$B5,$BA,$0D,$00 +.byte $84,$B1,$AD,$B5,$BA,$8D,$00 ; 2448 "\iPerson" .byte $90,$D0,$E5,$F2,$F3,$EF,$EE,$00 ; 2460 "\inel " @@ -233,9 +233,9 @@ ; 2484 "\iAdden" .byte $B4,$C1,$E4,$E4,$E5,$EE,$00 ; 2496 "\idum:\n" -.byte $C0,$E4,$F5,$ED,$BA,$0D,$00 +.byte $C0,$E4,$F5,$ED,$BA,$8D,$00 ; 2508 "\i\n" -.byte $CC,$0D,$00 +.byte $CC,$8D,$00 ; 2520 "\iDear " .byte $D8,$C4,$E5,$E1,$F2,$A0,$00 ; 2532 "\i<>" .byte $08,$C8,$E5,$F2,$E5,$BE,$BE,$00 ; 2580 "\i,\n" -.byte $14,$AC,$0D,$00 +.byte $14,$AC,$8D,$00 ; 2592 "\i\n" -.byte $20,$0D,$00 +.byte $20,$8D,$00 ; 2628 "I'm " .byte $44,$C9,$A7,$ED,$A0,$00 ; 2640 "not " @@ -261,7 +261,7 @@ ; 2676 "an" .byte $74,$E1,$EE,$00 ; 2700 "gry.\n" -.byte $8C,$E7,$F2,$F9,$AE,$0D,$00 +.byte $8C,$E7,$F2,$F9,$AE,$8D,$00 ; 2832 "I'm " .byte $10,$C9,$A7,$ED,$A0,$00 ; 2844 "be" @@ -277,7 +277,7 @@ ; 2952 "right " .byte $88,$F2,$E9,$E7,$E8,$F4,$A0,$00 ; 2964 "now.\n" -.byte $94,$EE,$EF,$F7,$AE,$0D,$00 +.byte $94,$EE,$EF,$F7,$AE,$8D,$00 ; 3072 "Ev" .byte $00,$C5,$F6,$00 ; 3096 "en " @@ -291,13 +291,13 @@ ; 3192 "my " .byte $78,$ED,$F9,$A0,$00 ; 3204 "\4heart.\n" -.byte $84,$04,$E8,$E5,$E1,$F2,$F4,$AE,$0D,$00 +.byte $84,$04,$E8,$E5,$E1,$F2,$F4,$AE,$8D,$00 ; 3228 "And " .byte $9C,$C1,$EE,$E4,$A0,$00 ; 3252 "killed " .byte $B4,$EB,$E9,$EC,$EC,$E5,$E4,$A0,$00 ; 3276 "me.\n" -.byte $CC,$ED,$E5,$AE,$0D,$00 +.byte $CC,$ED,$E5,$AE,$8D,$00 ; 3396 "\5And " .byte $44,$05,$C1,$EE,$E4,$A0,$00 ; 3408 "tore " @@ -309,7 +309,7 @@ ; 3444 "pie" .byte $74,$F0,$E9,$E5,$00 ; 3468 "ces.\n" -.byte $8C,$E3,$E5,$F3,$AE,$0D,$00 +.byte $8C,$E3,$E5,$F3,$AE,$8D,$00 ; 3588 "And " .byte $04,$C1,$EE,$E4,$A0,$00 ; 3600 "threw " @@ -327,7 +327,7 @@ ; 3720 "a " .byte $88,$E1,$A0,$00 ; 3732 "\6fire.\n" -.byte $94,$06,$E6,$E9,$F2,$E5,$AE,$0D,$00 +.byte $94,$06,$E6,$E9,$F2,$E5,$AE,$8D,$00 ; 3840 "As " .byte $00,$C1,$F3,$A0,$00 ; 3864 "they " @@ -341,7 +341,7 @@ ; 3960 "be" .byte $78,$E2,$E5,$00 ; 3972 "cause\n" -.byte $84,$E3,$E1,$F5,$F3,$E5,$0D,$00 +.byte $84,$E3,$E1,$F5,$F3,$E5,$8D,$00 ; 3996 "I " .byte $9C,$C9,$A0,$00 ; 4008 "was " @@ -355,7 +355,7 @@ ; 4056 "for " .byte $D8,$E6,$EF,$F2,$A0,$00 ; 4068 "you!\n" -.byte $E4,$F9,$EF,$F5,$A1,$0D,$00 +.byte $E4,$F9,$EF,$F5,$A1,$8D,$00 ; 4104 "\7Now " .byte $08,$07,$CE,$EF,$F7,$A0,$00 ; 4116 "these " @@ -367,7 +367,7 @@ ; 4176 "da" .byte $50,$E4,$E1,$00 ; 4188 "ta\n" -.byte $5C,$F4,$E1,$0D,$00 +.byte $5C,$F4,$E1,$8D,$00 ; 4200 "make " .byte $68,$ED,$E1,$EB,$E5,$A0,$00 ; 4212 "a " @@ -379,7 +379,7 @@ ; 4248 "ful " .byte $98,$E6,$F5,$EC,$A0,$00 ; 4272 "line.\n" -.byte $B0,$EC,$E9,$EE,$E5,$AE,$0D,$00 +.byte $B0,$EC,$E9,$EE,$E5,$AE,$8D,$00 ; 4296 "And " .byte $C8,$C1,$EE,$E4,$A0,$00 ; 4308 "we're " @@ -391,7 +391,7 @@ ; 4368 "be" .byte $10,$E2,$E5,$00 ; 4380 "ta.\n" -.byte $1C,$F4,$E1,$AE,$0D,$00 +.byte $1C,$F4,$E1,$AE,$8D,$00 ; 4392 "We're " .byte $28,$D7,$E5,$A7,$F2,$E5,$A0,$00 ; 4404 "re" @@ -403,7 +403,7 @@ ; 4440 "on " .byte $58,$EF,$EE,$A0,$00 ; 4464 "time.\n" -.byte $70,$F4,$E9,$ED,$E5,$AE,$0D,$00 +.byte $70,$F4,$E9,$ED,$E5,$AE,$8D,$00 ; 4488 "\5So " .byte $88,$05,$D3,$EF,$A0,$00 ; 4500 "I'm " @@ -415,7 +415,7 @@ ; 4536 "got " .byte $B8,$E7,$EF,$F4,$A0,$00 ; 4560 "burned.\n" -.byte $D0,$E2,$F5,$F2,$EE,$E5,$E4,$AE,$0D,$00 +.byte $D0,$E2,$F5,$F2,$EE,$E5,$E4,$AE,$8D,$00 ; 4584 "\3Think " .byte $E8,$03,$D4,$E8,$E9,$EE,$EB,$A0,$00 ; 4596 "of " @@ -429,7 +429,7 @@ ; 4644 "we " .byte $24,$F7,$E5,$A0,$00 ; 4656 "learned\n" -.byte $30,$EC,$E5,$E1,$F2,$EE,$E5,$E4,$0D,$00 +.byte $30,$EC,$E5,$E1,$F2,$EE,$E5,$E4,$8D,$00 ; 4680 "\1for " .byte $48,$01,$E6,$EF,$F2,$A0,$00 ; 4692 "the " @@ -441,13 +441,13 @@ ; 4728 "who " .byte $78,$F7,$E8,$EF,$A0,$00 ; 4740 "are\n" -.byte $84,$E1,$F2,$E5,$0D,$00 +.byte $84,$E1,$F2,$E5,$8D,$00 ; 4764 "still " .byte $9C,$F3,$F4,$E9,$EC,$EC,$A0,$00 ; 4776 "a" .byte $A8,$E1,$00 ; 4800 "live.\n" -.byte $C0,$EC,$E9,$F6,$E5,$AE,$0D,$00 +.byte $C0,$EC,$E9,$F6,$E5,$AE,$8D,$00 ; 4812 "\f" .byte $CC,$0C,$00 ; 4818 "\iForms " @@ -457,7 +457,7 @@ ; 4842 "\i5555" .byte $EA,$B5,$B5,$B5,$B5,$00 ; 4854 "\i1-6:\n" -.byte $F6,$B1,$AD,$B6,$BA,$0D,$00 +.byte $F6,$B1,$AD,$B6,$BA,$8D,$00 ; 4866 "\iPerson" .byte $02,$D0,$E5,$F2,$F3,$EF,$EE,$00 ; 4878 "\inel " @@ -473,7 +473,7 @@ ; 4938 "\iendum" .byte $4A,$E5,$EE,$E4,$F5,$ED,$00 ; 4950 "\i:\n\n" -.byte $56,$BA,$0D,$0D,$00 +.byte $56,$BA,$8D,$8D,$00 ; 4962 "\v" .byte $62,$0B,$00 ; 5088 "\iOne " @@ -481,9 +481,9 @@ ; 5100 "\ilast " .byte $EC,$EC,$E1,$F3,$F4,$A0,$00 ; 5112 "\ithing:\n" -.byte $F8,$F4,$E8,$E9,$EE,$E7,$BA,$0D,$00 +.byte $F8,$F4,$E8,$E9,$EE,$E7,$BA,$8D,$00 ; 5124 "\i\n" -.byte $04,$0D,$00 +.byte $04,$8D,$00 ; 5136 "Go " .byte $10,$C7,$EF,$A0,$00 ; 5148 "ah" @@ -495,7 +495,7 @@ ; 5172 "leave " .byte $34,$EC,$E5,$E1,$F6,$E5,$A0,$00 ; 5196 "me.\n" -.byte $4C,$ED,$E5,$AE,$0D,$00 +.byte $4C,$ED,$E5,$AE,$8D,$00 ; 5316 "I " .byte $C4,$C9,$A0,$00 ; 5328 "think " @@ -513,7 +513,7 @@ ; 5448 "in" .byte $48,$E9,$EE,$00 ; 5460 "side.\n" -.byte $54,$F3,$E9,$E4,$E5,$AE,$0D,$00 +.byte $54,$F3,$E9,$E4,$E5,$AE,$8D,$00 ; 5568 "May" .byte $C0,$CD,$E1,$F9,$00 ; 5592 "be " @@ -527,13 +527,13 @@ ; 5688 "one " .byte $38,$EF,$EE,$E5,$A0,$00 ; 5700 "else\n" -.byte $44,$E5,$EC,$F3,$E5,$0D,$00 +.byte $44,$E5,$EC,$F3,$E5,$8D,$00 ; 5724 "to " .byte $5C,$F4,$EF,$A0,$00 ; 5748 "help " .byte $74,$E8,$E5,$EC,$F0,$A0,$00 ; 5772 "you.\n" -.byte $8C,$F9,$EF,$F5,$AE,$0D,$00 +.byte $8C,$F9,$EF,$F5,$AE,$8D,$00 ; 5904 "\8May" .byte $10,$08,$CD,$E1,$F9,$00 ; 5916 "be " @@ -549,7 +549,7 @@ ; 6036 "." .byte $94,$AE,$00 ; 6060 ".\n" -.byte $AC,$AE,$0D,$00 +.byte $AC,$AE,$8D,$00 ; 6096 "THAT " .byte $D0,$D4,$C8,$C1,$D4,$A0,$00 ; 6108 "WAS " @@ -561,7 +561,7 @@ ; 6216 "FAT " .byte $48,$C6,$C1,$D4,$A0,$00 ; 6228 "CHANCE.\n" -.byte $54,$C3,$C8,$C1,$CE,$C3,$C5,$AE,$0D,$00 +.byte $54,$C3,$C8,$C1,$CE,$C3,$C5,$AE,$8D,$00 ; 6336 "\9An" .byte $C0,$09,$C1,$EE,$00 ; 6360 "y" @@ -575,7 +575,7 @@ ; 6456 "is " .byte $38,$E9,$F3,$A0,$00 ; 6468 "great.\n" -.byte $44,$E7,$F2,$E5,$E1,$F4,$AE,$0D,$00 +.byte $44,$E7,$F2,$E5,$E1,$F4,$AE,$8D,$00 ; 6492 "It's " .byte $5C,$C9,$F4,$A7,$F3,$A0,$00 ; 6504 "so " @@ -589,7 +589,7 @@ ; 6552 "and " .byte $98,$E1,$EE,$E4,$A0,$00 ; 6564 "moist.\n" -.byte $A4,$ED,$EF,$E9,$F3,$F4,$AE,$0D,$00 +.byte $A4,$ED,$EF,$E9,$F3,$F4,$AE,$8D,$00 ; 6600 "\:Look " .byte $C8,$0A,$CC,$EF,$EF,$EB,$A0,$00 ; 6612 "at " @@ -601,7 +601,7 @@ ; 6672 "talk" .byte $10,$F4,$E1,$EC,$EB,$00 ; 6684 "ing\n" -.byte $1C,$E9,$EE,$E7,$0D,$00 +.byte $1C,$E9,$EE,$E7,$8D,$00 ; 6696 "when " .byte $28,$F7,$E8,$E5,$EE,$A0,$00 ; 6708 "there's " @@ -613,7 +613,7 @@ ; 6744 "to " .byte $58,$F4,$EF,$A0,$00 ; 6768 "do.\n" -.byte $70,$E4,$EF,$AE,$0D,$00 +.byte $70,$E4,$EF,$AE,$8D,$00 ; 6792 "\1When " .byte $88,$01,$D7,$E8,$E5,$EE,$A0,$00 ; 6804 "I " @@ -623,7 +623,7 @@ ; 6840 "out " .byte $B8,$EF,$F5,$F4,$A0,$00 ; 6864 "there,\n" -.byte $D0,$F4,$E8,$E5,$F2,$E5,$AC,$0D,$00 +.byte $D0,$F4,$E8,$E5,$F2,$E5,$AC,$8D,$00 ; 6876 "it " .byte $DC,$E9,$F4,$A0,$00 ; 6888 "makes " @@ -637,7 +637,7 @@ ; 6936 "not " .byte $18,$EE,$EF,$F4,$A0,$00 ; 6960 "you.\n" -.byte $30,$F9,$EF,$F5,$AE,$0D,$00 +.byte $30,$F9,$EF,$F5,$AE,$8D,$00 ; 6984 "\3I've " .byte $48,$03,$C9,$A7,$F6,$E5,$A0,$00 ; 6996 "ex" @@ -651,7 +651,7 @@ ; 7044 "to " .byte $84,$F4,$EF,$A0,$00 ; 7056 "run.\n" -.byte $90,$F2,$F5,$EE,$AE,$0D,$00 +.byte $90,$F2,$F5,$EE,$AE,$8D,$00 ; 7080 "\5There " .byte $A8,$05,$D4,$E8,$E5,$F2,$E5,$A0,$00 ; 7092 "is " @@ -665,7 +665,7 @@ ; 7140 "be " .byte $E4,$E2,$E5,$A0,$00 ; 7152 "done.\n" -.byte $F0,$E4,$EF,$EE,$E5,$AE,$0D,$00 +.byte $F0,$E4,$EF,$EE,$E5,$AE,$8D,$00 ; 7176 "\1On " .byte $08,$01,$CF,$EE,$A0,$00 ; 7188 "the " @@ -693,13 +693,13 @@ ; 7302 "." .byte $86,$AE,$00 ; 7308 "\n" -.byte $8C,$0D,$00 +.byte $8C,$8D,$00 ; 7320 "\f" .byte $98,$0C,$00 ; 7332 "\n" -.byte $A4,$0D,$00 +.byte $A4,$8D,$00 ; 7344 "\n" -.byte $B0,$0D,$00 +.byte $B0,$8D,$00 ; 7356 "\iPS: " .byte $BC,$D0,$D3,$BA,$A0,$00 ; 7368 "And " @@ -713,13 +713,13 @@ ; 7416 "I " .byte $F8,$C9,$A0,$00 ; 7428 "am\n" -.byte $04,$E1,$ED,$0D,$00 +.byte $04,$E1,$ED,$8D,$00 ; 7452 "still " .byte $1C,$F3,$F4,$E9,$EC,$EC,$A0,$00 ; 7464 "a" .byte $28,$E1,$00 ; 7476 "live.\n" -.byte $34,$EC,$E9,$F6,$E5,$AE,$0D,$00 +.byte $34,$EC,$E9,$F6,$E5,$AE,$8D,$00 ; 7536 "\iPPS: " .byte $70,$D0,$D0,$D3,$BA,$A0,$00 ; 7548 "I'm " @@ -735,13 +735,13 @@ ; 7608 "and " .byte $B8,$E1,$EE,$E4,$A0,$00 ; 7620 "I'm\n" -.byte $C4,$C9,$A7,$ED,$0D,$00 +.byte $C4,$C9,$A7,$ED,$8D,$00 ; 7644 "still " .byte $DC,$F3,$F4,$E9,$EC,$EC,$A0,$00 ; 7656 "a" .byte $E8,$E1,$00 ; 7668 "live.\n" -.byte $F4,$EC,$E9,$F6,$E5,$AE,$0D,$00 +.byte $F4,$EC,$E9,$F6,$E5,$AE,$8D,$00 ; 7728 "\iPPPS: " .byte $30,$D0,$D0,$D0,$D3,$BA,$A0,$00 ; 7740 "I " @@ -757,19 +757,19 @@ ; 7800 "and " .byte $78,$E1,$EE,$E4,$A0,$00 ; 7812 "I'm\n" -.byte $84,$C9,$A7,$ED,$0D,$00 +.byte $84,$C9,$A7,$ED,$8D,$00 ; 7836 "still " .byte $9C,$F3,$F4,$E9,$EC,$EC,$A0,$00 ; 7848 "a" .byte $A8,$E1,$00 ; 7860 "live.\n\n" -.byte $B4,$EC,$E9,$F6,$E5,$AE,$0D,$0D,$00 +.byte $B4,$EC,$E9,$F6,$E5,$AE,$8D,$8D,$00 ; 7908 "\iFIN" .byte $E4,$C6,$C9,$CE,$00 ; 7920 "\iAL TH" .byte $F0,$C1,$CC,$A0,$D4,$C8,$00 ; 7932 "\iOUGHT:\n" -.byte $FC,$CF,$D5,$C7,$C8,$D4,$BA,$0D,$00 +.byte $FC,$CF,$D5,$C7,$C8,$D4,$BA,$8D,$00 ; 7944 "While " .byte $08,$D7,$E8,$E9,$EC,$E5,$A0,$00 ; 7956 "you're " @@ -781,13 +781,13 @@ ; 7992 "I'll " .byte $38,$C9,$A7,$EC,$EC,$A0,$00 ; 8004 "be\n" -.byte $44,$E2,$E5,$0D,$00 +.byte $44,$E2,$E5,$8D,$00 ; 8028 "still " .byte $5C,$F3,$F4,$E9,$EC,$EC,$A0,$00 ; 8040 "a" .byte $68,$E1,$00 ; 8052 "live.\n\n" -.byte $74,$EC,$E9,$F6,$E5,$AE,$0D,$0D,$00 +.byte $74,$EC,$E9,$F6,$E5,$AE,$8D,$8D,$00 ; 8064 "\iFIN" .byte $80,$C6,$C9,$CE,$00 ; 8076 "\iAL " @@ -797,7 +797,7 @@ ; 8100 "\iUGHT " .byte $A4,$D5,$C7,$C8,$D4,$A0,$00 ; 8112 "\iPS:\n" -.byte $B0,$D0,$D3,$BA,$0D,$00 +.byte $B0,$D0,$D3,$BA,$8D,$00 ; 8124 "And " .byte $BC,$C1,$EE,$E4,$A0,$00 ; 8136 "when " @@ -811,23 +811,23 @@ ; 8184 "will " .byte $F8,$F7,$E9,$EC,$EC,$A0,$00 ; 8196 "be\n" -.byte $04,$E2,$E5,$0D,$00 +.byte $04,$E2,$E5,$8D,$00 ; 8220 "still " .byte $1C,$F3,$F4,$E9,$EC,$EC,$A0,$00 ; 8232 "a" .byte $28,$E1,$00 ; 8244 "live.\n" -.byte $34,$EC,$E9,$F6,$E5,$AE,$0D,$00 +.byte $34,$EC,$E9,$F6,$E5,$AE,$8D,$00 ; 8280 "\n" -.byte $58,$0D,$00 +.byte $58,$8D,$00 ; 8292 "\n" -.byte $64,$0D,$00 +.byte $64,$8D,$00 ; 8316 "STILL " .byte $7C,$D3,$D4,$C9,$CC,$CC,$A0,$00 ; 8328 "A" .byte $88,$C1,$00 ; 8340 "LIVE\n" -.byte $94,$CC,$C9,$D6,$C5,$0D,$00 +.byte $94,$CC,$C9,$D6,$C5,$8D,$00 ; 8352 "\f" .byte $A0,$0C,$00 ; 8688 "\iTHANK" @@ -843,11 +843,11 @@ ; 8748 "\iIPAT" .byte $2C,$C9,$D0,$C1,$D4,$00 ; 8760 "\iING\n" -.byte $38,$C9,$CE,$C7,$0D,$00 +.byte $38,$C9,$CE,$C7,$8D,$00 ; 8772 "\iIN " .byte $44,$C9,$CE,$A0,$00 ; 8784 "\iTHIS\n" -.byte $50,$D4,$C8,$C9,$D3,$0D,$00 +.byte $50,$D4,$C8,$C9,$D3,$8D,$00 ; 8796 "\iENRICH" .byte $5C,$C5,$CE,$D2,$C9,$C3,$C8,$00 ; 8808 "\iMENT" @@ -861,4 +861,4 @@ ; 8856 "\iIVIT" .byte $98,$C9,$D6,$C9,$D4,$00 ; 8868 "\iY!!\n" -.byte $A4,$D9,$A1,$A1,$0D,$00 +.byte $A4,$D9,$A1,$A1,$8D,$00 diff --git a/still_alive/lyrics_to_asm.c b/still_alive/lyrics_to_asm.c index 3d3a1ac8..41d966c4 100644 --- a/still_alive/lyrics_to_asm.c +++ b/still_alive/lyrics_to_asm.c @@ -35,7 +35,7 @@ int main(int argc, char **argv) { printf(",$%02X",11); } else if (string[i]=='n') { - printf(",$%02X",13); + printf(",$%02X",13|0x80); } else if ((string[i]>='0') && (string[i]<=':')) { diff --git a/still_alive/still_alive.s b/still_alive/still_alive.s index 57488301..4980155f 100644 --- a/still_alive/still_alive.s +++ b/still_alive/still_alive.s @@ -138,7 +138,6 @@ line_loop: sta dal_second+1 jsr draw_ascii_line - ;============================ ; Setup bounds ;============================ @@ -152,7 +151,16 @@ line_loop: lda #21 sta WNDBTM + jsr HOME + ;============================== + ; Setup lyrics + ;============================== + + lda #<(lyrics) + sta LYRICSL + lda #>(lyrics) + sta LYRICSH ;================== @@ -406,6 +414,9 @@ not_message: .byte "NOT " loading_message: .asciiz "LOADING" +lyrics: +.include "lyrics.inc" + .include "ascii_art.inc" LZ4_BUFFER: diff --git a/still_alive/zp.inc b/still_alive/zp.inc index fff64073..37720c5f 100644 --- a/still_alive/zp.inc +++ b/still_alive/zp.inc @@ -110,6 +110,8 @@ WHICH_FILE EQU $8A ;DRAW_SKY EQU $8A COLOR_MASK EQU $8B RASTERBARS_ON EQU $8C +LYRICSL EQU $8D +LYRICSH EQU $8E ;KEY_COUNT EQU $8C ;KEY_OFFSET EQU $8D ;DRAW_BLUE_SKY EQU $8E