Address Length Description
24014 800
Buffer: Room Tiles
32 column by 25 row tile buffer. Clear_PlayArea clears it, and the print utilities write through it when drawing a room.
24814 800
Buffer: Room Attributes
Attribute bytes matching Buffer_RoomTiles.
25614 2
Pointer: Active Font
25616 1
Player Jump Timer
Non-zero while the player is jumping or falling.
25617 1
Restart Room Flag
Set when a life is lost so Handler_Player can restart the room.
25618 2
Print Buffer Offset
Offset into Buffer_RoomTiles calculated by Convert_Coordinate.
25622 1
Print Width
25623 2
Temporary Pair
25625 4
Clip Window
Inclusive min/max row and column used by the clipped print routines. Defaults to rows 2-24 and columns 1-33.
25629 1
Active Border Colour
25630 2
Pointer: Room Header
25632 2
Reference: Furniture
Populated by Unpack_Rooms. See Player_Action for usage.
25634 2
Reference: Doors
Populated by Unpack_Rooms. See Player_Action_DoorLoop for usage.
25636 2
Reference: Collectibles
Three-byte 255-terminated records. See Handler_Collectibles.
25638 2
Reference: Inventory Items
Two-byte 255-terminated records. See Handler_InventoryItems.
25640 2
Reference: Ladders
25642 4
Reference: Moving Objects
19-byte records drawn by Handler_MovingObjects.
25646 2
Reference: Decorations
25648 2
Reference: Actors
13-byte records handled by Handler_Actors.
25650 2
Reference: Enemies
14-byte records handled by Handler_Enemies.
25652 1
Collision State
3 means the player has touched an actor.
25653 1
Player Hit Timer
25654 2
Temporary Flags
25656 1
Player Stand Timer
Counts falling frames; a hit starts when it reaches 10.
25658 3
Player Mask
Three-byte shifted collision mask from Build_PlayerMask.
25662 2
Sprite Shift Buffer
25664 8
Actor Mask Buffer
25672 2
Player Footprint
25674 1
Hit Ceiling Row
25675 2
Pointer: Collided Actor
25677 14
Special Actor
Used by the room-7 bats and the room-22 special.
25705 2
Pointer: Tune Data
Walks the Data_TuneStream stream. Play_Tune reads one byte at a time.
25707 2
Pointer: Tune Data Copy
Walks the Data_TuneStreamCopy stream in step with Pointer_TuneData.
25709 1
Current Tune Byte
25710 1
Interrupt Tick
Counts to 5 in Handler_Interrupts before the tune is allowed to play.
25711 1
Game Active Flag
0 on the introduction/menu. 255 after the intro timeout so Initialise_Game starts a game.
25712 2
Pause Timer
16-bit countdown used by the introduction and demo timeout.
25714 1
Sound Flags
25715 1
Sound Duration
25724 1
Skip Delay Flag
When set, Play_Tune returns through the delay routine instead of playing a note.
25725 1
Game Complete Flag
Set to 255 by Handler_Housekeeping when all four collection slots hold 9.
25726 1
Control Method
0 is keyboard. Non-zero selects Kempston (and the define-keys highlight).
25727 5
User-Defined Keys
Five KEY_SCAN codes copied from Table_DefaultKeys. Order: left, right, up, down, action.
25732 2
Saved Keys
25734 2
Kempston Masks
Default 1/2 (right/left) written by Unpack_Rooms.
25736 1
Tape Checksum
25737 1
Action Timer
25738 1
Climb Row
25739 20
Carried Object
Bit 7 set means nothing is being carried. Drawn by Handler_CarriedObject.
25759 1
Event Timer
Counts down; when it hits 0 Handler_EventTimer fires *PendingEvent.
25760 1
Pending Event
25761 1
Collected Count
25762 1
Current Room
Room IDs run from 0 to 22.
25763 1
Temporary Room
25764 14
Player
Player entity used as IX by Handler_Player.
25778 2
Random Number Seed
25780 1
Player Lives
Initialised to 4 by Unpack_Rooms.
25793 4
Collection Slots
Four digits shown on room 0. 9 in every slot sets GameCompleteFlag.
25797 50
Table: Room Data
One pointer per room, filled by Unpack_Rooms from Data_Rooms.
25847 6009
Buffer: Unpacked Rooms
Working copy of the 23 packed rooms. See Unpack_Rooms.