Refactor Chezz code and static data for modularized compilation and card build
Currently the Chezz source are compiled as one continuous source code, including individual source files as one unit. However, as code changes, various techniques are used to align game engine data at fixed page address boundaries. Occasionally these addresses are changes since the overall code size changes.
Remove this headache by refactoring all executable game code as an independent, compilable unit, located in its own separate card bank, leaving enough room for new features in the future.
Game engine static data, MTH structures and Card header are placed in a separate bank, compiled as independent binaries.
Finally, use a loadmap for z88card utility to combine it all into a 32K Card image.
zc.asm contents is refactored; it becomes an INC file with variable definitions, renamed to chezz.inc
The following layout is used:
Bank $3E:
Address $8000
zcmain.asm (renamed as chezz.asm)
zcprint.asm
z88cyrus.asm (the game engine controller)
Bank $3F:
Address $C000
zcdata.asm (the game engine map is now always located at $C000)
mth.asm (DOR, entry call stub and MTH with detailed help pages)
romhdr.asm (the card header located at top of 32K Card)
This address layout has already been tested in a running z88 via OZvm. The key importance to this refactored layout is that the chezz engine map is in a fixed address position at $C000 in bank $3F, leaving lots of room for code development in bank $3E.