Changes

Jump to: navigation, search

Z-Machine

887 bytes added, 11:47, 3 August 2019
/* Technical information */
==Technical information==
* The CPCZVM.BAS contains a fixed basic stub followed by the machine code. The BASIC stub must not be modified or it will break CPCZVM.BAS. Using a BASIC stub means I don't need to re-enable any ROMs (like I would if RUN was used) and the current drive and filesystem remains active allowing hard disks and other DOS to be used. In addition I can pass HIMEM to know if there is enough RAM free (expansion ROMs can modify HIMEM to allocate work space) and a string variable containing the game filename.* The program uses the firmware* except TXT WRITE CHAR is patched so that bold, italics and inverse is supported. The font is manipulated as it is drawn.
* Transcript goes to the printer.
* The program detects the amount of additional RAM and will warn if there is not enough when loading the game file. * The program only supports Dk'Tronics compatible RAM.* The entire game file is loaded into extra ram using "CAS IN CHAR" functions. This is used because the extra memory is paged in 16KB at a time and CAS IN DIRECT reads in an entire blockand the game files exceed the size of 16KB and do not require an AMSDOS header to be added.* The BASIC boot program allows a game filename to be passed to CPCZVM.BAS without requiring it to be modified. The use of CHAIN keeps the defined variables and HIMEM.
* This version should run from [[X-MASS]] or other hardware.
2,541
edits