Address Length Description
72A3 2
Copy Length: Entity State Data
Byte count used when copying entity state data during initialisation / room changes.
72A5 2
Copy Length: Game State
Byte count used when copying game-state data during initialisation / room changes.
72A7 2
Pointer: Entity State Backup End
End pointer for the entity-state backup region used by copy routines.
72A9 1
Flag: Learner Berk Mode
Set by the main menu (MainMenu_ChooseLearnerOrSuper): 00 = Super Berk, 01 = Learner Berk. Print_StatusMessages uses this to choose the rating message at Messaging_TooLateIveChangedMyMind.
72AA 2
Pointer: Last Collided Entity
Address of the complex state data for the entity involved in the last collision / interaction check. Written by the collision helpers at F2B2, F31F, F381 and F3E3; read as IX / IY / BC throughout Berk's movement and pick-up / put-down logic.
72AC 2
Pointer: Current Entity
Address of the complex state data for the entity currently being processed (usually Berk). Often the entity Berk is holding when bit 04 of Berk's flags byte 3 (IX+03) is set.
72AE 1
Current Task Index
Index of the current Bad Tempered Thing task (meal request).
72AF 1
Current Task Phase
Phase / sub-step within the current task.
72B0 1
Dialogue Line Index
Index of the current dialogue / message line.
72B1 2
Pointer: Berk Script Position
Pointer into Berk's current script data stream.
72B3 1
Game Event Flags
Cross-cutting event bits for trap door and task state.
Bit Meaning
00 Room / script event raised (set by helpers such as Script_Shared_SetEventBit)
01 Trap door is open / trap door event armed
02 Falling-entity latch (cleared/set by Process_Falling_Entities)
03 Object has been offered to the trap (Bad Tempered Thing path)
04 Task-two / upstairs event latch
05 Reserved / unused in the observed call sites
06 Special put-down / room-transition event
07 Task entity script is active
72B4 1
Task Status Flags
Per-task status bits (Drutt / collectible progress and dialogue gates).
Bit Meaning
00 Task progress / dialogue gate
01 Timed Berk event pending
04 Drutt collected a type-18 object
05 Drutt collected a type-1C object
06 Berk action / eat latch
07 Berk script / dialogue busy
72B5 1
Task Two Flags
Flags for the "Thing Upstairs" (task two) state machine.
Bit Meaning
01 Task-two script should advance
02 Spawn / random-walk latch for the upstairs helper
03 Helper entity needs its layout restoring
04 Task-two helper busy
05 Task-two helper secondary latch
06 Task-two room-transition latch
07 Task-two entity script active
72B6 1
Task Three Flags
Flags for the task-three (boiled slimies / feeding) state machine. Bit names below are taken from the Bad Tempered Thing dialogue gates and the stove / put-down writers that set or clear them.
Bit Name Set / clear
00 MobileHeater no SET/RES site found
01 Slimies set by F110; tested by D901
02 SlimyLoose set by B401 / C6FC; cleared by Update_Stove
04 BoilEmUp set by ScriptRoutine_TaskThreeBerkRightWindow_SetFlagsAndLayout; cleared by Update_Stove; tested by D927
05 BoilEmUpLatch set by ScriptRoutine_TaskThreeBerkRightWindow_SetFlagsAndLayout; cleared by Update_Stove / C397
06 StoveReady set by Update_Stove when StoveTick reaches 04
07 StoveUpdated set by Update_Stove; tested by ScriptRoutine_TaskThreeBerkRightWindow_SetFlagsAndLayout
72B8 1
Task One / Collision Flags
Flag byte for task-one progress messages (Table_TaskProgressMessagePointers) and the type-08 / type-0B collision latch at Check_Entity_Collision.
Bit Meaning
06 Third consecutive Check_Entity_Collision collision (cleared by EDB8)
07 Collision seen this check (Check_Entity_Collision)
72B9 1
Entity Interaction Flag
Cross-cutting interaction bits for crushers, ghosts and hazards. Meanings below are from observed writers/readers only.
Bit Meaning
01 Set by B34B; tested by D93E
02 Set/cleared by ScriptRoutine_TaskFourTickOfferItem; tested by D95C to gate dialogue
03 Set by Update_Ghosts_RetriggerBit3; tested and cleared by Update_Ghosts
04 Set by Update_Crusher; tested by D944 to gate dialogue
06 Set by Update_Crusher when SharedTick reaches 03; no BIT reader found
07 Set by Update_Crusher on every crusher update; no BIT reader found
72BA 1
Trap Door Flags
Animation and interaction bits for the trap door itself.
Bit Meaning
01 Weight-chain layout swap pending
02 Drutt is mid trap door animation
03 Trap door is open for Berk's put-down check
72BB 1
Drutt Animation Counter
Frame counter driving Drutt's animation.
72BC 1
Collectible Counter
Count of collectible eyeballs gathered so far.
72BD 1
Collision Scratch Byte
Byte used by collision / collectible helpers (Check_Entity_Collision, Update_Bad_Tempered_Thing_Dialogue) to remember a room index or entity field across a call.
72BE 1
Stove Tick
How many times Update_Stove Update Stove has run this boil cycle. On the fourth call that routine sets StoveReady (bit 06 of TaskThreeFlags).
72BF 1
Room Transition Flag
Non-zero while a room transition is in progress.
72C0 1
Entity Spawn Timer
Countdown / tick used when spawning transient entities.
72C1 1
Animation Frame Counter
Shared animation frame counter for scripted entities.
72C2 1
Shared Tick
One-byte counter shared by Update_Crusher (increments on each crusher update) and script routine ScriptRoutine_TaskFourTickOfferItem (decrements toward zero). Not a pure frame counter: Update_Crusher advances it once per crusher call, and when the value reaches 03 that routine also sets bits 06 and 07 of EntityInteractionFlag.
72C3 1
Task Three Timer
Countdown timer for task-three creature behaviour.
72C4 1
Stove / Heater State
State of the stove / heater prop.
72C5 1
Message Trigger
Latch that triggers the next on-screen message.
72C6 1
Frame Counter
Global frame counter advanced by the main loop.
72C7 1
Bad Tempered Thing State
State flags for the Bad Tempered Thing.
72C8 1
Berk Action Lock
Lock that prevents Berk starting a new action until cleared.
72C9 5
Task Selection Table
Bit 07 marks a task slot as used. Task 05 is chosen separately at AC10.
72CE 1
Timed Event Latch
Non-zero while a timed Drutt / trap door script is armed. Set to 01 by ScriptRoutine_StartDruttScript, written from an entity type at ADED, cleared by Update_Timed_Events, and tested by Update_Berk_State_ActiveTaskFrameTick / B973 before those paths run.
72CF 2
Pointer: Active Script Cursor
Live script-data cursor while a task / entity script runs. Task updaters copy their dedicated script position (Pointer_TaskThreeScriptPosition / Pointer_DruttScriptPosition / Pointer_TaskTwoScriptPosition / Pointer_TaskFourScriptPosition / Pointer_ThingUpstairsScriptPosition / Pointer_BerkScriptPosition) here, call the shared runner, then write the (possibly advanced) cursor back.
72D1 2
Pointer: Task Three Script Position
Pointer into task-three script data.
72D3 2
Pointer: Drutt Script Position
Pointer into Drutt script data.
72D5 2
Pointer: Task Two Script Position
Pointer into task-two script data.
72D7 2
Pointer: Task Four Script Position
Pointer into task-four script data.
72D9 2
Pointer: Thing Upstairs Script Position
Script cursor for complex entity slot 20 when its type is 22. Written by BDBA / BC2B; read by BC1F.
72DB 2
Pointer: Berk Held Entity
Pointer to the entity Berk is currently holding.
72DD 2
Score
Current score.
72DF 9
Collectible Slot State
Three 3-byte records used by Update_Collectibles Update Collectibles. Each record is a script-position word plus a per-slot counter; Update_Collectibles walks the table, copies a record through Pointer_ActiveScriptCursor / CollectibleCounter, calls Collect_Entity, then writes the updated values back.
72E8 1
Saved Room Index
Room index remembered by ED36 while Berk opens a door behind him. Also used by AFC5 as the exclusive end address when measuring the CurrentTaskIndex…72E7 game-state backup length into CopyLength_GameState.
72E9 1
Held Entity Y-Extent
Y-extent to restore onto a held entity. Written by B6D8 as the collision partner's y−01 during Berk's put-down / pick-up probe; read and cleared by ScriptRoutine_PickUpHeld when applying the held entity's new y / y-extent.
72EA 1
Display Buffer Select Flag
Selects which display buffer is active when swapping primary / secondary.
72EB 1
Message Colour
Attribute used when printing messages.
72EC 1
Door Interaction Delay
Short countdown used by ScriptRoutine_BerkDoorBehind. Set to 01–02 at ED9B after a room change; while non-zero ED19 decrements it and skips the rest of that interaction pass.
72ED 1
Camera Y Coordinate
Camera Y coordinate.
72EE 1
Camera X Coordinate
Camera X coordinate.
72F0 1
Task Timer
Task timer. Incremented at AC65. AC69 compares it with A0 for the timeout path. Update_Berk_State_AttrStripFromSeed also reads it for the status attribute strip. Reset to 00 at AD48. Not the pseudo-random seed at RandomSeedScratch.
72F1 1
Task Progress Repeat Count
Cleared at E2A4 and loaded at E2C6 from the byte at the address the message stream names. AE6A returns if it is zero. Otherwise each pass of the loop at Update_Timed_Events_HeldCountdownStep sets the bonus at Pointer_BerkHeldEntity, reprints it and calls Handle_Berk_Action.
72F2 1
Game Tick Counter
Game tick counter.
72F3 2
High Score
High score.
72F5 2
Pointer: Current Display Buffer
Pointer to the current display-buffer base used while drawing layouts.
72F7 2
Stored Drawing Coordinates
Base x/y character coordinates used while processing graphic layout data (H = x, L = y).
72F9 2
Pointer: Current Character Set
Pointer to the character set currently used for text output.
72FB 2
Pointer: Camera Room Origin
Pointer to the camera room origin used while drawing.
72FD 2
Pointer: Script Loop Restart
Script-data address saved by ScriptRoutine_StartScriptLoop so ScriptRoutine_EndScriptLoop (End Script Loop) can reload HL and repeat the body while ScriptLoopCounter remains non-zero.
72FF 2
Pointer: Graphic Layout Loop Start
Saved position in graphic layout data at the start of a loop (opcodes EE / EF).
7301 1
Script Loop Counter
Remaining iterations for a script-level loop. Loaded from the operand of ScriptRoutine_StartScriptLoop; decremented by ScriptRoutine_EndScriptLoop until it hits zero.
7302 1
Graphic Layout Loop Counter
Remaining iterations for the current graphic layout loop (opcodes EE / EF).
7303 1
Berk X Coordinate Copy
Copy of Berk's X coordinate used by camera-follow logic.
7304 1
Berk X-Extent Copy
Copy of the camera-follow entity's x-extent (IX+08), written by Update_Berk_Controller alongside BerkXCoordinateCopy. Not a Y coordinate.
7305 1
Berk Room Index Copy
Copy of Berk's room index used by camera-follow logic.
7306 1
Current Graphic Set Index
Index of the graphic set currently selected by graphic layout opcode F4. Written into the display buffer with each tile; Blit_DisplayBufferRow looks up the set base in Table_GraphicSetAddresses.
7307 1
Current Text Attribute
Attribute applied when printing menu / HUD text.
7308 1
Current Attribute
Attribute byte currently selected by graphic layout opcode F2. Written into the display buffer with each tile; 00 means "use the attribute from the graphic data".
7309 1
Pending Sound Index
Sound index queued by Queue_Sound for Play_QueuedSound (00 = idle). Bit 07 marks a force-queue from Queue_Sound.
730A 1
Camera Follow Delay
Camera-follow delay countdown.
ACE2 2
Pointer: Berk Script Table Base
Saved base address of the Berk script table while Start_Berk_Script walks a random entry. Written on entry to Start_Berk_Script and reloaded when a candidate row is rejected.
AFD9 2
Temporary Entity Pointer
Pointer used by Drutt / trap door animation routines.
AFDB 1
Drutt: Saved Entity Type
Entity type remembered while Drutt's trap door animation runs (Update_Drutt).
B01D 1
Drutt: Saved Animation State
Secondary state byte for Drutt's trap door animation (Reset_Trap_Door_Animation_State / Update_Drutt).
CF35 2
Temporary Entity Pointer
Pointer used while updating miscellaneous entities.
D965 12
Table: Bad Tempered Thing Dialogue
Per-task dialogue pointers indexed by Update_Bad_Tempered_Thing_Dialogue_IndexTable. Task 00 skips this table and uses D7CD instead.
EA6C 1
Border / Speaker State
Current border colour and EAR bit. Written by Set_BorderSpeakerState; read by Play_QueuedSound before each speaker toggle.
EAE2 3
Random Seed Scratch
Three-byte scratch written by game start and read by the pseudo-random routine.
F5F8 1
Control Input Bitmap
Player control bits, written by Read_PlayerControls.
Bit Meaning
00 Right
01 Left
02 Down (forward)
03 Up (back)
04 Fire (pick up / put down / interact)
05 Secondary fire / alternate action (keyboard T by default)
06 Pause (keyboard H by default; special-cased in Read_PlayerControls)
07 Unused
F5F9 2
Pointer: Control Key Definition Cursor
Pointer into Table_ControlKeyCodes used while redefine-keys walks the control table.
F602 1
Flag: Kempston Joystick Enabled
Non-zero to read Kempston (1F) in Read_PlayerControls; zero to use the keyboard table at Table_ControlKeyCodes.