![]() |
Game status buffer |
| Address | Length | Description | ||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| BBAA | 2 |
The seed of the random number generator, which is updated by RandomNumber. The two bytes are also used one at a time as two random numbers. It is kept when a new game is started after a game over (see StartGame_KeepSettings).
|
||||||||||||||||||||||||||||||||||
| BBAC | 2 |
The address that is used for the graphics of the characters that are printed by PrintScreen: the graphic of a character is at this address plus eight times the code of the character. It is kept when a new game is started after a game over (see StartGame_KeepSettings).
|
||||||||||||||||||||||||||||||||||
| BBAE | 2 |
Holds the stack pointer while a routine uses the stack to move data around quickly (for example CopyPixelsToScreen). It is kept when a new game is started after a game over (see StartGame_KeepSettings).
|
||||||||||||||||||||||||||||||||||
| BBB0 | 1 |
The options that are chosen on the game selection menu (see GameMenu). It is kept when a new game is started after a game over (see StartGame_KeepSettings).
|
||||||||||||||||||||||||||||||||||
| BBB1 | 1 |
The options as they were before the last key was read by the game selection menu, so that the tune can be played when an option has changed. It is kept when a new game is started after a game over (see StartGame_KeepSettings).
|
||||||||||||||||||||||||||||||||||
| BBB2 | 2 |
Counts the frames of the game. It starts from the low word of the system variable FRAMES, and is also used to make random numbers (see IncrementFrameCounter and RandomNumber). It is kept when a new game is started after a game over (see StartGame_KeepSettings).
|
||||||||||||||||||||||||||||||||||
| BBB4 | 1 |
The column of the map of the cell that is being drawn, which GetMapCell keeps for ProjectCell.
|
||||||||||||||||||||||||||||||||||
| BBB5 | 1 |
The row of the map of the cell that is being drawn, which GetMapCell keeps for ProjectCell.
|
||||||||||||||||||||||||||||||||||
| BBB6 | 2 |
The position along the X axis of the screen of the corner of the cell or of the object that ProjectCell or ProjectObject last worked out.
|
||||||||||||||||||||||||||||||||||
| BBB8 | 2 |
The position along the Y axis of the screen of the corner of the cell or of the object that ProjectCell or ProjectObject last worked out.
|
||||||||||||||||||||||||||||||||||
| BBBA | 1 |
Holds 01 when the view has been turned round, and 00 when it has not (see CheckRotateKey).
|
||||||||||||||||||||||||||||||||||
| BBBB | 2 |
A bit for each of the sixteen columns of the view, which is set when the column has been drawn with strips of wall, or is outside the view. DrawView stops drawing the view when all of the bits are set.
|
||||||||||||||||||||||||||||||||||
| BBBD | 1 |
Holds 01 while the key that turns the view is being held down (see CheckRotateKey). The game selection menu also uses it for the key that changes directional control (see GameMenu).
|
||||||||||||||||||||||||||||||||||
| BBBE | 1 |
The speed that the player works up to when moving forward. It is 0A, and it is 12 while a speed bonus lasts (see UpdateSpeedBonus).
|
||||||||||||||||||||||||||||||||||
| BBBF | 1 |
Holds 01 when the frame of the game selection menu has been drawn (see DisplayMenu).
|
||||||||||||||||||||||||||||||||||
| BBC0 | 1 |
The tile of the cell with walls that is being drawn, which decides the colour of its walls (see DrawCellWithWalls).
|
||||||||||||||||||||||||||||||||||
| BBC1 | 1 |
Has bit 0 set when PlayMusicOnce has played a tune, so that it plays it only once.
|
||||||||||||||||||||||||||||||||||
| BBC2 | 1 |
The number of characters in each row of the sprite that DrawSprite is drawing, which is the width of the sprite, and one more when the sprite has to be shifted.
|
||||||||||||||||||||||||||||||||||
| BBC3 | 1 |
The number of rows of the sprite that DrawSprite is drawing.
|
||||||||||||||||||||||||||||||||||
| BBC4 | 2 |
The position in the list of objects at ObjectList of the object that DrawObjectsInList has chosen to draw next.
|
||||||||||||||||||||||||||||||||||
| BBC6 | 2 |
The position in the list of objects at ObjectList of the object that DrawObjectsInList is comparing with the chosen object.
|
||||||||||||||||||||||||||||||||||
| BBC8 | 1 |
The number of frames that are left before another item can be thrown (see ThrowItem).
|
||||||||||||||||||||||||||||||||||
| BBC9 | 4 |
The score, as three bytes of BCD with the highest first, which are followed by a fourth byte that is always zero. The score is printed with those two zeroes at the end, so it is in hundreds (see AddToScore and PrintScore).
|
||||||||||||||||||||||||||||||||||
| BBCD | 1 |
The number of lives that are left after the one that is being played. It is 06 when the game starts, and it goes down by one as each life starts (see StartNewLife).
|
||||||||||||||||||||||||||||||||||
| BBCE | 36 |
The number of items that are left to be found on each kind of tile, for the tiles 00 to 23. An item appears in the village when the player stands on a tile that has some left (see SpawnItem), and it is added back when the item is lost again (see UpdateVillageItem).
|
||||||||||||||||||||||||||||||||||
| BBF2 | 1 |
Holds 01 when the strips that are being drawn are to be mirrored, and 00 when they are not (see DrawStripsLeftToRight).
|
||||||||||||||||||||||||||||||||||
| BBF3 | 1 |
The health of the player, which is 03 when a life starts or the health is made full. The life ends when it reaches zero (see CEBF).
|
||||||||||||||||||||||||||||||||||
| BBF4 | 1 |
Which of the two shots was used last, as 00 or 10 (see ThrowItem).
|
||||||||||||||||||||||||||||||||||
| BBF5 | 1 |
The number of frames that the speed bonus has left, which is set to FF when the player collects a speed bonus (see UpdateSpeedBonus).
|
||||||||||||||||||||||||||||||||||
| BBF6 | 2 |
The last cell of the village that was visited, with the column in the first byte and the row in the second (see MarkCellVisited).
|
||||||||||||||||||||||||||||||||||
| BBF8 | 1 |
Counts the steps of the player, which is used to make the sound of the player walking (see PlayMovementSound).
|
||||||||||||||||||||||||||||||||||
| BBF9 | 1 |
The number of notes of the sound effect that are left to be played (see PlaySoundEffect). A sound effect is started by setting the note counter and the sound number together.
|
||||||||||||||||||||||||||||||||||
| BBFA | 1 |
The number of the sound effect that is playing, which is an index into the table at SoundEffectTable.
|
||||||||||||||||||||||||||||||||||
| BBFB | 1 |
The paper colour (in bits 3 to 5) that the playing area is flashed with on this frame, which is set by UpdateDestroyedMonster when a monster has been destroyed. It is cleared at the end of every frame (see BEDD).
|
||||||||||||||||||||||||||||||||||
| BBFC | 1 |
A copy of the flash colour from the last frame, which is added to the attributes that are made on this frame.
|
||||||||||||||||||||||||||||||||||
| BBFD | 1 |
The hundreds digit of the percentage of the game that has been completed (see CalculatePercentage).
|
||||||||||||||||||||||||||||||||||
| BBFE | 1 |
The tens and units digits of the percentage of the game that has been completed, as BCD (see CalculatePercentage).
|
||||||||||||||||||||||||||||||||||
| BBFF | 1 |
Holds 01 when the game has been finished.
|
||||||||||||||||||||||||||||||||||
| BC00 | 1 |
The attribute that the piece of the title graphic or the ghost is drawn with at the end of the game (see UpdateLogoPiece and UpdateEndingGhost).
|
||||||||||||||||||||||||||||||||||
| BC01 | 1 |
The controls that are being used, as read by ReadControls.
|
||||||||||||||||||||||||||||||||||
| BC02 | 1 |
The timer for the player appearing at the start of a life, which is set to 28 (see StartNewLife) and is made larger by two on each frame until it reaches 70 (see UpdatePlayerLegs).
|
||||||||||||||||||||||||||||||||||
| BC03 | 11 |
The eleven places in the inventory tube. A place holds the number of the item that is in it, or zero if there is nothing there (see PickUpItem).
|
||||||||||||||||||||||||||||||||||
| BC0E | 128 |
A bit for each of the cells of the village, which is set once the player has visited the cell (see MarkCellVisited). There are four bytes for each row.
|
||||||||||||||||||||||||||||||||||
| BC8E | 368 |
The table of objects, which holds everything that moves in the village. There are 17 objects of 10 bytes each, and MainLoop updates them in turn.
The type of an object chooses the routine that updates it (see ObjectHandlerTable) and the sprite that draws it (see SpriteTable). An object of type 00 is not in use.
The flags are bit 0 (the object has hit something), bit 1 (the object has been drawn), bit 5 (the object chases the player) and bits 6 and 7 (the sprite is to be turned round and upside down, see FlipSprite).
|