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!
Improved introPrint.
Adjusted gameover routine to work with the new intro.
This needs to be further improved anyway to give a sensible delay before
clearing the screen (to allow player to see her/his score)