![]() |
Game status buffer |
| Address | Length | Description | |||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 24329 | 3 |
3-byte representation of the score.
|
|||||||||||||||||||||
| 24332 | 1 |
Bit 0 is set for a two player game. The number in bits 1-2 chooses the controls; 0 is the keyboard, 1 is the Kempston joystick and 2 is the cursor joystick.
|
|||||||||||||||||||||
| 24333 | 1 |
Zero when the sound is on. Any other value means the sound is muted, and the tunes which are played by PlayMusic are skipped. It is set by GameInitialisation from a checksum of the BEEPER routine.
|
|||||||||||||||||||||
| 24334 | 3 |
3-byte representation of the score.
|
|||||||||||||||||||||
| 24337 | 3 |
3-byte representation of the score.
|
|||||||||||||||||||||
| 24340 | 3 |
The position and sprite ID of the actor, as recorded by StoreEntity before the actor was moved. The sprite is erased from here by DisplayEntity.
|
|||||||||||||||||||||
| 24343 | 1 |
The number of rows of the actor sprite which are on the screen. This is used to work out how many rows of attribute cells to colour.
|
|||||||||||||||||||||
| 24344 | 1 |
The width of the actor sprite in character cells; 2 when it is aligned to a character cell, otherwise 3.
|
|||||||||||||||||||||
| 24345 | 2 |
The number of rows of the old sprite which have not yet been drawn.
|
|||||||||||||||||||||
| 24347 | 2 |
Set to zero at the start of each pass through the actors, and increased by one by the handlers of the actors which are in play.
|
|||||||||||||||||||||
| 24349 | 2 |
Increased by one after each pass through the actors.
|
|||||||||||||||||||||
| 24351 | 2 |
The position of the actor sprite, used by ColourSprite to find the first attribute cell to colour.
|
|||||||||||||||||||||
| 24353 | 1 |
The currently active player. It is toggled with a CPL command by HandleEndOfLife when the turn changes, so it is either 0 or 255.
|
|||||||||||||||||||||
| 24354 | 1 |
The low byte of FRAMES at the last frame update. The main loop at MainLoop runs FrameUpdate whenever this is different from the current value (FRAMES is increased by every interrupt).
|
|||||||||||||||||||||
| 24355 | 1 |
Has the frame been updated? 0=No 1=Yes.
|
|||||||||||||||||||||
| 24356 | 1 |
Current menu item colour attribute.
|
|||||||||||||||||||||
| 24357 | 1 |
At the beginning of each player turn there is a delay to allow the player to be ready for play. It is counted down by GamePlayEntry, and no actors are created by CreateActor until it reaches zero.
|
|||||||||||||||||||||
| 24358 | 1 |
This byte is not used by the game.
|
|||||||||||||||||||||
| 24359 | 1 |
The colour attribute of the ingredient for the shelf which is being drawn in the pantry. It is set by PantryFillColour, from the table at PantryFillColours.
|
|||||||||||||||||||||
| 24360 | 1 |
The number of tiles in each row of the block which is being drawn by PrintTileBlock or coloured by WriteAttributeBlock.
|
|||||||||||||||||||||
| 24361 | 1 |
Used in the introduction to a level. It is set to zero by StartLevelIntroduction, and then to 1 by StartCharlieRunning when the ingredient has moved far enough to the left for Charlie to start running after it.
|
|||||||||||||||||||||
| 24362 | 1 |
Has one bit set to show which shelf of the pantry is highlighted, which is bit 5 for the top shelf down to bit 1 for the bottom shelf. It is made by DrawPantry by shifting 32 right by the level (modulo 8), so for the levels which have no ingredient no shelf is highlighted.
|
|||||||||||||||||||||
| 24363 | 2 |
The last direction in which Charlie moved. The low byte is the horizontal speed and the high byte is the vertical speed. It is updated by GamePlay_Start each time Charlie moves and is set to 0002 (moving right) by DisplayPlayerLives. Flour shots are fired in this direction, at three times the speed.
|
|||||||||||||||||||||
| 24365 | 1 |
The level of the active player. Bits 0-2 are the level within a set of five, and bits 3-5 are the set. It is 255 for a player who has not started yet, so that NextLevel (which adds one to the level) starts them on level 0. Swapped with InactivePlayer_Level by ChangePlayer.
|
|||||||||||||||||||||
| 24366 | 1 |
The lives which the active player has left. Swapped with InactivePlayer_Lives by ChangePlayer.
|
|||||||||||||||||||||
| 24367 | 1 |
The number of ingredients which are still needed (in BCD). It is shown inside the mixing bowl. The level is finished when it reaches zero and there are no actors left in play. Swapped with InactivePlayer_IngredientsNeeded by ChangePlayer.
|
|||||||||||||||||||||
| 24368 | 1 |
The level number (in BCD) which is shown in the "LEV" box. Swapped with InactivePlayer_LevelNumber by ChangePlayer.
|
|||||||||||||||||||||
| 24369 | 1 |
The level of the player who is not active, in the same format as ActivePlayer_Level.
|
|||||||||||||||||||||
| 24370 | 1 |
The lives which the inactive player has left.
|
|||||||||||||||||||||
| 24371 | 1 |
The number of ingredients which are still needed by the inactive player (in BCD).
|
|||||||||||||||||||||
| 24372 | 1 |
The level number (in BCD) of the inactive player.
|
|||||||||||||||||||||
| 24373 | 8 |
The first of the ten actor slots (up to Message_Copyright), which is always Charlie. Every actor has the same eight byte format, and is processed once for each pass through the game loop.
|
|||||||||||||||||||||
| 24381 | 16 |
The two actor slots for flour shots, in the same format as the actor at ActorCharlie. A shot is made in one of these by GamePlay_Start when Charlie fires, and handled by HandleFlourShot.
|
|||||||||||||||||||||
| 24397 | 8 |
The actor slot which is used to play sound effects (see StartSoundEffect).
|
|||||||||||||||||||||
| 24405 | 48 |
The six actor slots which are used for the ingredients, the nasties and the other actors which are created while the game is played (the last one, 24445 is where the monster is made by CreateMonster). They are in the same format as the actor at ActorCharlie. A slot is empty when its ID is zero.
|