Address Length Description
5DCE 800
Buffer: Room Tiles
20 column by 19 row tile buffer. Clear_PlayArea clears it, and the print utilities write through it when drawing a room.
60EE 800
Buffer: Room Attributes
Attribute bytes matching Buffer_RoomTiles.
640E 2
Pointer: Active Font
6410 1
Player Jump Timer
Non-zero while the player is jumping or falling.
6411 1
Restart Room Flag
Set when a life is lost so Handler_Player can restart the room.
6412 2
Print Buffer Offset
Offset into Buffer_RoomTiles calculated by Convert_Coordinate.
6416 1
Print Width
6417 2
Temporary Pair
6419 4
Clip Window
Inclusive min/max row and column used by the clipped print routines. Defaults to rows 02-18 and columns 01-21.
641D 1
Active Border Colour
641E 2
Pointer: Room Header
6420 2
Reference: Furniture
Populated by Unpack_Rooms. See Player_Action for usage.
6422 2
Reference: Doors
Populated by Unpack_Rooms. See Player_Action_DoorLoop for usage.
6424 2
Reference: Collectibles
Three-byte FF-terminated records. See Handler_Collectibles.
6426 2
Reference: Inventory Items
Two-byte FF-terminated records. See Handler_InventoryItems.
6428 2
Reference: Ladders
642A 4
Reference: Moving Objects
13-byte records drawn by Handler_MovingObjects.
642E 2
Reference: Decorations
6430 2
Reference: Actors
0D-byte records handled by Handler_Actors.
6432 2
Reference: Enemies
0E-byte records handled by Handler_Enemies.
6434 1
Collision State
03 means the player has touched an actor.
6435 1
Player Hit Timer
6436 2
Temporary Flags
6438 1
Player Stand Timer
Counts falling frames; a hit starts when it reaches 0A.
643A 3
Player Mask
Three-byte shifted collision mask from Build_PlayerMask.
643E 2
Sprite Shift Buffer
6440 8
Actor Mask Buffer
6448 2
Player Footprint
644A 1
Hit Ceiling Row
644B 2
Pointer: Collided Actor
644D 14
Special Actor
Used by the room-07 bats and the room-16 special.
6469 2
Pointer: Tune Data
Walks the Data_TuneStream stream. Play_Tune reads one byte at a time.
646B 2
Pointer: Tune Data Copy
Walks the Data_TuneStreamCopy stream in step with Pointer_TuneData.
646D 1
Current Tune Byte
646E 1
Interrupt Tick
Counts to 05 in Handler_Interrupts before the tune is allowed to play.
646F 1
Game Active Flag
00 on the introduction/menu. FF after the intro timeout so Initialise_Game starts a game.
6470 2
Pause Timer
16-bit countdown used by the introduction and demo timeout.
6472 1
Sound Flags
6473 1
Sound Duration
647C 1
Skip Delay Flag
When set, Play_Tune returns through the delay routine instead of playing a note.
647D 1
Game Complete Flag
Set to FF by Handler_Housekeeping when all four collection slots hold 09.
647E 1
Control Method
00 is keyboard. Non-zero selects Kempston (and the define-keys highlight).
647F 5
User-Defined Keys
Five KEY_SCAN codes copied from Table_DefaultKeys. Order: left, right, up, down, action.
6484 2
Saved Keys
6486 2
Kempston Masks
Default 01/02 (right/left) written by Unpack_Rooms.
6488 1
Tape Checksum
6489 1
Action Timer
648A 1
Climb Row
648B 20
Carried Object
Bit 7 set means nothing is being carried. Drawn by Handler_CarriedObject.
649F 1
Event Timer
Counts down; when it hits 00 Handler_EventTimer fires *PendingEvent.
64A0 1
Pending Event
64A1 1
Collected Count
64A2 1
Current Room
Room IDs run from 00 to 16.
64A3 1
Temporary Room
64A4 14
Player
Player entity used as IX by Handler_Player.
64B2 2
Random Number Seed
64B4 1
Player Lives
Initialised to 04 by Unpack_Rooms.
64C1 4
Collection Slots
Four digits shown on room 00. 09 in every slot sets GameCompleteFlag.
64C5 50
Table: Room Data
One pointer per room, filled by Unpack_Rooms from Data_Rooms.
64F7 6009
Buffer: Unpacked Rooms
Working copy of the 17 packed rooms. See Unpack_Rooms.