GameFileHandle dw ? Filename db 'GAME.BIN', 0x00 STR_ErrFile db 'Error opening the file:', 0x0D, 0x0A, 0x24 STR_ErrFree db 'Error freeing one or more memory blocks.', 0x0D, 0x0A, 0x24 STR_ErrCloseFile db 'Error closing the file:', 0x0D, 0x0A, 0x24 STR_ErrInvalidMagic db 'Invalid magic number.', 0x0D, 0x0A, 0x24 STR_ErrNotSupported db 'Operation not supported.', 0x0D, 0x0A, 0x24 STR_ErrInvalidAllocation db 'Requested an invalid amount of memory. Valid values are 0 (16K), 1 (32K) and 2 (64K).', 0x0D, 0x0A, 0x24 STR_ErrInvalidVersion db 'Invalid game file version.', 0x0D, 0x0A, 0x24 ; There's two of these, they may change independently based on what wording matches better. STR_ErrOther db 'An error occurred and the program had to close:', 0x0D, 0x0A, 0x24 ; Shown when the error is some sort of a custom something-something STR_ErrOtherDOS db 'An error occurred and the program had to close:', 0x0D, 0x0A, 0x24 ; Shown when the error is a return from a DOS Function STR_Bye db 'Bye', 0x0D, 0x0A, 0x24 ; Scratch RAM segment (16K as of now) RAM_Scratch dw ? ; Persistent RAM segment (4K also), differs from scratch RAM in that the offsets are meaningful RAM_Persistent dw ? ; Object memory (64K) RAM_Object dw ? ; Depends on the file, either 16K, 32K, or 64K RAM_OpFile dw ? ; 64K, we use 320 * 200 bytes, used for double-buffering the frame, BASE_Present shoves it into A000:0000 RAM_Framebuffer dw ? ; A "program counter" for our opcode stream ; Not up-to-date at all times, the interpreter will occasionally update this, not constantly ; However, since this is not a multithreaded environment (wow), it can be assumed to be up-to-date FilePtr dw ? CurrentVideoMode db 0x03 ;FileBuf: ; TIMES 512 db 0x24 ; MOONMAN db \ ; 0x0, 0x0, 0xF, 0x7, 0xF, 0x7, 0x0, 0x0, \ ; 0x0, 0x0, 0x7, 0xF, 0x7, 0xF, 0x7, 0x0, \ ; 0x0, 0x0, 0x7, 0xF, 0xF, 0xF, 0xF, 0x7, \ ; 0x0, 0x0, 0x0, 0x7, 0x0, 0xF, 0x8, 0xA, \ ; 0x0, 0x0, 0x0, 0xF, 0x0, 0x8, 0xF, 0x7, \ ; 0x0, 0x0, 0x8, 0xF, 0x7, 0x7, 0xF, 0x7, \ ; 0x0, 0x7, 0xF, 0xF, 0xF, 0xF, 0xF, 0x8, \ ; 0x0, 0x0, 0x7, 0xF, 0xF, 0x7, 0x8, 0x7