dos33fsprogs/still_alive
Vince Weaver 08c92e78dd sa: merge sa and ed lyrics files
saved 2k or so

probably not worth the effort
2018-06-04 16:46:32 -04:00
..
art sa: try to encrypt the ascii art 2018-05-23 16:04:27 -04:00
lyrics sa: move lyrics conversion to own directory 2018-05-23 14:20:38 -04:00
music sa: add raw music 2018-05-23 23:29:51 -04:00
ascii_art_lz4.inc sa: try to encrypt the ascii art 2018-05-23 16:04:27 -04:00
ascii_art.inc sa: work on getting art displayed 2018-05-21 17:04:18 -04:00
display_art.s sa: speed up the 80 column draw a bit 2018-05-24 13:53:07 -04:00
display_lyrics.s sa: merge sa and ed lyrics files 2018-06-04 16:46:32 -04:00
duet.s sa_ed: getting close 2018-06-04 13:53:25 -04:00
ending.s sa: more work on ending 2018-06-01 00:46:54 -04:00
GLADOS.HGR sa: work on ending 2018-05-24 17:01:42 -04:00
interrupt_handler.s sa: modify to not lyrics off the end and print garbage 2018-05-24 11:59:07 -04:00
lyrics.inc sa: merge sa and ed lyrics files 2018-06-04 16:46:32 -04:00
Makefile sa: merge the versions 2018-06-04 15:26:03 -04:00
objects_shape.inc sa: more work on ending 2018-06-01 00:46:54 -04:00
README.still_alive sa: merge sa and ed lyrics files 2018-06-04 16:46:32 -04:00
sa_ed.s sa: merge sa and ed lyrics files 2018-06-04 16:46:32 -04:00
sa_mb.s sa: merge sa and ed lyrics files 2018-06-04 16:46:32 -04:00
SA.ED sa_ed: getting close 2018-06-04 13:53:25 -04:00
sa.edlyrics sa_ed: working! 2018-06-04 14:17:34 -04:00
SA.KR4 sa: have cursor going on 80col 2018-05-24 14:31:14 -04:00
SA.KRW sa: start work on this 2018-04-27 21:24:57 -04:00
still_alive.dsk sa: merge sa and ed lyrics files 2018-06-04 16:46:32 -04:00
still_alive.s sa: merge sa and ed lyrics files 2018-06-04 16:46:32 -04:00
title.bas sa: merge the versions 2018-06-04 15:26:03 -04:00
TITLE.BAS sa: merge the versions 2018-06-04 15:26:03 -04:00
TODO sa: modify to not lyrics off the end and print garbage 2018-05-24 11:59:07 -04:00
zp.inc sa: merge the versions 2018-06-04 15:26:03 -04:00

Fun fact:
	The letter 'Z' does not appear at all in the lyrics to the song.
	(Noticed when I had to edge comparison for uppercase off by one)


Challenges:
	+ 6-channel audio
	+ Fitting it all in 48k (want to avoid disk routines if can)
	+ Printing the ASCII art simple code (takes longer than 50Hz)

ASCII Art Size
	The ASCII art is roughly 7k.
	You can LZ4 compress it and decompress on the fly, saving 3k or
	so even when factoring in the decompression code.
	The problem is decompression is slower (pauses the music) and
	can't be run at the same time as the music decompression is
	happening unless we duplicate a lot of code.
	May revisit if we need the room.


Goal: Binary fits in 16k (16384 bytes)

note						size (bytes)
---------------------				------
initial music player:				 2078
add raw ascii art:				 9142
add 3-channel music+lyrics,then slim a bit:	18787
initial 40 col support:				18864
have art loading properly 40col:		18910
lz4 encode the ascii art:			15529
revert because lz4 code not re-entrant:		18910
add 4-channel music (KR4):			20128
add cursor (a bit distracting)			20162
feature complete 40 col:			20180
intial 80 col support:				20191
80 col cursor:					20344
strip out some unneeded text printing:		19962
merge ED and MB code				24993
properly select between versions:		25001
merge the ED and MB lyrics:			22828

Memory Map



0000:		Zero Page
0100:		Stack
0400:		Text Page 0 (AUX 0400: 80 column text)

2000:		HGR Page0
4000:		HGR Page1
9600:		DOS		37.5k
C000:		I/O Space
D000:		ROM
FFFF:		END


Code:		c00 - 8c00 32k 
		(8k=audio, 5k=lyrics, 3k=art)
Sound buffers:	5e00-9600 = 14k

Plan:
	16k compressed		Load at 16k? 4000
	20k decompressed	Decompress from 0c00 - 6000 or so