![]() |
Game status buffer |
| Address | Length | Description |
|---|---|---|
| 23736 | 1 | |
| 23737 | 2 |
In the game, this is the position of the cell of the level whose objects are being drawn, which is set by GetCellPosition and used by DrawGroupObjects. On the title menu, the first byte is the low byte of the address of the attribute that is highlighted (see 24912) and the second byte is the last value of FRAMES that was seen (see ShowTitleMenu_WaitFrame).
|
| 23739 | 2 |
The address in the view buffer of the strip that is being built by BuildView, which is used when the blocks are drawn and is changed by the routines that scroll the view.
|
| 23768 | 2 |
A value that is used for several purposes. The heading of the player is kept here, which is shown by DrawDirectionGauge. The stack pointer is saved here by ResetAttributes and ClearScreen. Purpose of the other uses is not yet known.
|
| 23770 | 2 |
The stack pointer is kept here while the drawing routines use it to read data, for example DrawSprite and 50661.
|
| 23772 | 2 |
A word that is used for several purposes, including the details of the record that is added by AddItemRecord and the position of the tip of the needle of the direction gauge (see DrawDirectionGauge). Purpose of the other uses is not yet known.
|
| 23774 | 1 |
|
| 23778 | 4 |
The position of the view, as two words. It is set by StartLevel when a level is started and is changed when the view is moved (see MoveView). The high bytes at 23779 and 23781 are used by GetCellPosition as the position of the player.
|
| 23782 | 1 |
The flags that record which way the view is scrolling. They are set by the scroll routines and tested by ScrollView. Bits 0-1 scroll left, bits 2-3 scroll right, bits 4-5 scroll down and bits 6-7 scroll up. 1 in a pair is one pixel a frame and 2 is two pixels.
|
| 23783 | 2 |
The sum of the two values of the position of the view plus 128 which is worked out by BuildView. It is used with ViewOriginDifference as the origin of the view on the screen when the position of an entity is worked out by ProjectEntity.
|
| 23785 | 1 |
A byte that is used by the routines that scroll the view (see ScrollViewDown and ScrollViewUp) and by 58467. Purpose not yet known.
|
| 23786 | 2 |
The speed of the entity that is being moved. Its high byte is multiplied by the direction by ScaleDisplacement.
|
| 23788 | 2 |
The previous value of the screen position of the player, which is kept by ProjectPlayerEntity, followed by the change in the value.
|
| 23790 | 2 |
The difference of the halves of the two values of the position of the view, which is worked out by BuildView. It is used with ViewOriginSum as the origin of the view on the screen.
|
| 23792 | 1 |
The flags that are used when blocks are drawn. If bits 1 and 2 are zero then DrawBlockBytes draws the bytes of a row plain, and otherwise it shifts them. Purpose of the other bits is not yet known.
|
| 23793 | 2 |
The value of IY that is saved by 24068, because the ROM interrupt routine needs it to point at the system variables. It is restored whenever the ROM is used.
|
| 23795 | 3 |
Details of the record that is being added by AddItemRecord and of the object that is being drawn, which include the sizes that are used by AddRecordSizes. Purpose of the individual bytes is not yet known.
|
| 23798 | 2 |
The rate of turning of the player, which builds up while a turn control is held (see ControlPlayer).
|
| 23806 | 2 |
The address of the header of the data of the current level, which is set by StartLevel and used to find the map and the path entries (see LevelData).
|
| 23808 | 1 |
The counter that is used for the player jumping and for the death of the player (see RunFrame). Purpose of its values is not yet known.
|
| 24474 | 4 |
The state of the random number generator at GetRandomNumber.
|
| 24827 | 1 |
The control method chosen for player 1 in the title menu: 0 for the keyboard, 1 for a Kempston joystick, 2 for a Cursor joystick and 3 for an Interface II joystick.
|
| 24828 | 1 |
The control method chosen for player 2 in the title menu, which uses the same values as Player1ControlMethod.
|
| 24829 | 1 |
Set to 1 when the two player game is chosen in the title menu, or 0 for the one player game.
|
| 25211 | 4 |
The vertical positions of the markers beside the four control method options of the title menu: the keyboard, a Kempston joystick, a Cursor joystick and an Interface II joystick.
|
| 25215 | 6 |
The records of the markers of the two players in the title menu, for MoveMarker.
|
| 40825 | 32 |
Two buffers, each holding a copy of an item from the draw list that has been expanded into the same layout as an entity, for SortDrawList. The positions are copied in at offsets 2 5 and 8 and the sizes at offsets 11 12 and 13 are always 6 6 and 1.
|
| 41374 | 16 |
The addresses of the entries in the draw list that DrawOtherItemFirst has tried while it looks for an item to move to the sorted list, each stored as two bytes and ended by 255.
|
| 41390 | 4 |
The addresses used by SortDrawList to track its progress.
|
| 41693 | 2 |
A counter that is increased once every frame.
|
| 41695 | 1 |
A timer which is set to 40 and is then counted down to zero once every frame.
|
| 42392 | 5 |
A text record, in the format used by PrintText, for the character that ScrollMessage adds on the right of a message that is scrolling.
|
| 42397 | 8 |
Two gauges which are drawn as horizontal bars, for UpdateGauge. Each has four bytes: the current length of the bar in pixels, the column of the left end of the bar, and a word whose high byte is the target length. The word of the first gauge is counted down as time passes (see 42399).
|
| 43297 | 2 |
The counters used when a message is scrolled by ScrollMessage.
|
| 43610 | 1 |
A byte which BuildView sets to zero and which is used by the code that draws the view.
|
| 43746 | 3 |
A rectangle of attributes for FillScratchRectangle, which has three bytes.
|
| 44943 | 100 |
The draw list after it has been sorted into drawing order by SortDrawList. It has the same format as the list at DrawList.
|
| 45051 | 113 |
The list of items to draw, built by BuildDrawList. Each item is three bytes: a flag and the address of a record.
|
| 45164 | 2 |
The address of the next free item in the draw list.
|
| 45490 | 77 |
The first byte is the number of overlapping items collected by DrawItems. The table of overlapping items that follows is filled by CollectOverlappingItem, each entry being four bytes. Purpose of the rest is not yet known.
|
| 46400 | 456 |
The entities. There are 12 of them, each of 38 bytes, and the first is the player. Field 0 is the type, which is zero when the entity is not in use. Field 1 is the frame, and its bit 7 hides the entity. Fields 2 and 3 are the x coordinate, 5 and 6 the y coordinate and 8 to 10 the z coordinate. Field 11 is the extent on the x axis, 12 the extent on the y axis and 13 the extent on the z axis. Field 14 is the column on the screen, 15 the row and 17 the heading. Field 16 is the speed, with the current speed in bits 0-3 and the maximum in bits 4-7. Field 30 holds the flags. Bit 7 is set when the entity is moving fast. Bit 6 selects the higher frame when UpdateExtraRecord builds the extra record, and is tested again by TestEntityCells. Purpose of bit 6 is not yet known.
|
| 46856 | 156 |
One extra record of 13 bytes for each of the entities. Bit 7 of field 9 is set while the record is in use. Fields 0 and 1 are the column and the row. UpdateExtraRecord writes the adjusted x coordinate to fields 2 and 3 the adjusted y coordinate to fields 4 and 5 and the adjusted z coordinate to fields 6 and 7. Field 11 holds the width in bits 0-3 and the frame in bits 4-7. Field 12 holds the height in bits 0-5, and its bit 7 copies bit 6 of the entity flags.
|
| 47012 | 42 |
A temporary entity that is built from an extra record or a 20-byte record so that it can be drawn like an entity.
|
| 48031 | 87 |
Variables for the drawing routines. Purpose of most of them is not yet known.
|
| 48118 | 1 |
The number of 20-byte records in use.
|
| 48119 | 380 |
The 20-byte records, which are created by AddItemRecord. There is room for 19 of them.
|
| 48499 | 1 |
The number of 7-byte records in use.
|
| 48500 | 70 |
Records of 7 bytes. There is room for 10 of them.
|
| 48570 | 1 |
The number of records in the copy at CopiedRecords.
|
| 48571 | 70 |
A copy of the records in use at ObjectRecords.
|
| 52825 | 1 |
Controls the "EXIT CLOSED" message. When it is 2 the message is printed, and when it is 1 the message is blanked out. It is zero when there is no message.
|
| 56783 | 6 |
The overlap in the first, second and third directions, as found by TestEntityPair. Each is a word.
|
| 57053 | 1 |
The player who is playing, which is 0 for player 1 and 1 for player 2.
|
| 57054 | 1 |
The number of lives that the current player has. The details of the player that is not playing are held at OtherPlayerState, and the two are swapped by SwitchPlayer. This byte is the first of a block of 31 bytes that are swapped.
|
| 57055 | 1 |
The number of the level that the player is on, which is a number from 0 to 4.
|
| 57056 | 1 |
The number of bottles that the player has still to collect. The exit opens when it reaches zero.
|
| 57057 | 20 |
The state of each of the 20 bottles of the level, which is set by 57579 and kept by RestoreBottles and CollectBottle.
|
| 57077 | 4 |
The position at which the player restarts, which is used by SetLevelGraphics if the flag in the third byte of it is set. The routine at WipeViewIn sets it.
|
| 57081 | 3 |
The score of the current player, as six digits in binary coded decimal in three bytes.
|
| 57084 | 1 |
A flag that is set when the player is on a bottle, so that CollectBottle collects it.
|
| 57085 | 31 |
The details of the player who is not playing, in the same format as the 31 bytes from Lives. The first byte is the number of lives and the third is the number of bottles left.
|
| 58566 | 6 |
The position that the player will restart from, which is set by TestGroupObjects and is copied to RestartPosition by UpdateScreen when the player has been on it for long enough. Purpose of the individual bytes is not yet known.
|
| 58811 | 2141 |
The start of the screen buffer, which has 128 rows of 24 bytes and ends at 61882 after the end of the data of the file. The picture of the view is built here before it is copied to the screen. The bytes here when the game is saved are whatever was last drawn.
|