new sid tune is bigger than 4k, so charset had to be moved
now (part of) first half of the charset actually is used by the sid
and ignored by the VIC; chars had to be redefined
the loader is a small program with liblzg only, which loads data from
the snake.pack.lz (from either disk or tape), inflates the ram, and
starts the game
loading colors was done in a dummy way by reading color of each tile
from the RLE array; but actually a tile always have the same color, then
this info is redundant; anyhow the character set had to be reshaped
properly in order to make easy infer the tile color from the tile value
- Declared uninitialized segment in zero page: used assembler directives
to reduce errors probability and improve code maintenance; now zeropage
variables addresses are automagically computed by assembler
- Added other debug messages, and rewritten some cycles for good readability and good software engineering
- Fixed more uninitialized stucture bug (maybe I had some sawdust in my
brain when I did this?)
- Fixed concurrency bug in home screen
Now program takes less space in RAM.
All variables, costants and Lists are moved before the SID song,
in a previously unused space (BASIC RAM).
SID song edit has been changed:
- same song but slightly different
- takes up a bit less than 4k
- more catchy :-)
- perfectly fits in $1000-$2000 and allows...
...the new custom charset to be put at $2000!
- Taken TGGS font and properly customized with tiles
Now actual program starts at $2800.
Also added some useful code for assembler to output debug infos when
assembling with -DDEBUG=1
In the meanwhile discovered tremendous subtle bug due to uninitialized
structure (listX and listY). Fixed.
Memory map now is:
+-------------------------------+
0000 | things in zero page |
| and low RAM |
+-------------------------------+
0800 | BASIC autostart |
| then data (variables, |
| costants and strings) | <-- this can be done better using segments. Reminder for the future.
| |
+-------------------------------+
0E00 | listX |
+-------------------------------+
0F00 | listY |
+-------------------------------+
1000 | SID song |
| |
| |
+-------------------------------+
2000 | TGGS Custom font charset |
| |
+-------------------------------+
2800 | ACTUAL CODE |
| | <-- plus some garbage data, see above (segments TODO)
. .
. .
- Added multicolor graphic mode with custom charset, for text and tiles
- Added some debug options in Makefile
NOTE: code is functioning and correct, but really needs a big cleanup a
logical reorganization!