Prev: AD7D Up: Map Next: B800
B6DA: Flags: Game State
Variables read and written by the turn loop, the Inglish matcher and the message printer. A saved game starts at B6EB. The word at the start is read by TurnReadAndTokeniseTheCommand, Input_TakeTheNextWord, Inglish_KeepTheUnknownWord and Inglish_ReadTheNextGrammarByte.
B6DA DEFW $0000 Start of the unknown word. 6DAD reads it while quoting the unknown word.
B6DC DEFW $0000 Pointer into the token buffer. 6D8D stores 709C here, and the matcher saves and restores it.
B6DE DEFB $00 High byte of the class being matched being matched. Compared with C0 and A0.
B6DF DEFB $00 Low byte kept with the class being matched at B6DE.
B6E0 DEFB $00,$00,$00,$00,$00,$00 Six bytes copied out of the match by 7C86.
B6E6 DEFB $00 Scratch byte beside the match.
CurrentAction B6E7 DEFB $00 Current action id. The verb routines store the verb here before it runs.
CurrentObject B6E8 DEFB $00 Current object id. The noun the command names.
B6E9 DEFB $00 Second object id, used by give, attack and message code 09.
CurrentCharacter B6EA DEFB $00 Character whose turn it is. 00 is the player. Stored in the saved game.
B6EB DEFB $00,$00,$00 First three bytes of the saved game. 6C14 copies them to 5F00 and 6C52 copies them back.
B6EE DEFW $0000 Word address held for the printer.
B6F0 DEFB $00 Cleared at the start of TurnAdvanceTheOtherCharacters, before the other characters run.
B6F1 DEFB $00 Scratch byte beside B6F0.
B6F2 DEFB $00 Printer on. ZXPrinter returns at once when this is zero. PRINT at Command_PRINT sets it and NOPRINT at Command_PRINT_NOPRINT clears it.
B6F3 DEFB $00 A location id, copied from ActionLocationID by EventForest. AB25 compares it with the current location.
B6F4 DEFB $00 Slot flag. Turn_GateTheMessage_StoreTheSlotFlag stores 01 when the character slot was found.
B6F5 DEFB $00 Where the player starts. Action_None writes it.
B6F6 DEFB $00 Location the script at A6C2 compares with the player's location.
PercentageComplete B6F7 DEFW $0000 Percentage complete. GameOver prints it when the game is over.
B6F9 DEFB $00 Talk flag. Action_TalkTo treats zero as a character who still has something to say.
B6FA DEFB $00 Message gate. PrintMessage skips its setup when this is not zero. Set to 01 when a game starts.
B6FB DEFB $00 Message suppressed. Non-zero when ConditionSuppressTheMessage holds a message back and returns past its caller. PrintMessage writes 00 here when a message is printed. 7D10 keeps running the action while this is zero.
B6FC DEFW $0000 Weapon-name token. Action_Attack_StoreTheWeapon stores FIST or the named object's name, and message code 03 at Message_PrintTheSavedToken returns it.
B6FE DEFB $00 Tested by 7CD1 and by message code 09.
B6FF DEFB $00 Tested by message code 09 at Message_PrintTheSecondNoun_0.
B700 DEFB $00 When this is not zero, Print_Character watches for S and types an F as well. Cleared when a game starts.
WaitCountdown B701 DEFB $00 01=action countdown, 00=countdown finished.
NightDay B702 DEFB $00 00=night, 01=day.
B703 DEFB $00 Which noun the printer is naming. The message codes write 00 or 01.
B704 DEFB $00 Capitalise the next letter. A carriage return at 86CC sets it, a full stop at 8744 bumps it, and 873E clears it once a letter has been printed in upper case. 72C9 clears it after a printed carriage return.
B705 DEFB $00 Set by TurnReadAndTokeniseTheCommand_SetTheLineReadFlag before a line is read, and cleared by InglishClearTheRepeatFlag.
B706 DEFB $FF FF selects the replay path in TurnReadAndTokeniseTheCommand. The matcher also stores a class byte here.
B707 DEFB $00 Picture switch. 6C7C stores bit 3 of port 7F, read while N is held. Drawing draws nothing when this is zero.
B708 DEFB $00,$00 Pointer to the current object's record (CurrentObject).
B70A DEFW $0000 Pointer to the second object's record (B6E9).
Pointer_CurrentCharacter B70C DEFW Objects Pointer to the character whose turn it is. A new game leaves it at Objects, the player.
RandomSeed B70E DEFB $00 Random seed, taken from the refresh register at 6CA7.
B70F DEFB $00 Byte beside the random seed.
B710 DEFB $00 Kind filter read by ConditionSamePlaceAsThePlayer: 00 not a live animal, 01 a live animal, 02 anything. 7D2E stores the low two bits of the clause and 7E0C stores 02.
B711 DEFB $00 Byte beside B710.
RandomCounter B712 DEFW $0000 Random counter.
B714 DEFW $0000 Delay. ReadTheInputLine starts it at 0BB8 and Input_WaitForAKey_Store stores the next wait here.
B716 DEFB $00 How many words will be accepted. TurnReadAndTokeniseTheCommand writes 11 and 6D18 writes 09.
B717 DEFW $0000 Scratch word beside the limit on how many words are accepted.
B719 DEFB $00 Matcher phase. 82C4 sets 02, and InglishAcceptTheClause compares it with 02.
B71A DEFB $00 Cleared when a game starts. InglishPrepareTheClause takes another path when it is not zero.
B71B DEFB $00 Conjunction count. 6D42 raises it, and MessageOpenTheGateForAConjunction opens the message gate when it is set.
B71C DEFB $00 Scratch byte. 7C06 clears it before a phrase is resolved.
B71D DEFB $00 Scratch byte read at Inglish_ScoreTheSwappedClause_ReadTheScoreByte while a phrase is resolved.
B71E DEFB $00 Packed action scores. ClausePackTheActionScores writes this byte, and the matcher reads it.
B71F DEFB $73,$00,$00,$00,$65,$73,$00,$00 Verb endings read by 7519 in PrintToken. Four bytes each: "s", "es", "ies", a backspace and "ies", "d" and "ing". Copying one onto a stem turns "take" into "Thorin takes".
B727 DEFB $69,$65,$73,$00,$08,$69,$65,$73
B72F DEFB $64,$00,$00,$00,$69,$6E,$67,$00
B737 DEFB $00 How many character slots Inglish_FillTheClaimedSlots walks.
B738 DEFB $00,$00,$00,$00,$00,$00,$00,$00 Buffer cleared for C8 bytes at the start of a game by 6C9F.
B740 DEFB $00,$00,$00,$00,$00,$00,$00,$00
B748 DEFB $00,$00,$00,$00,$00,$00,$00,$00
B750 DEFB $00,$00,$00,$00,$00,$00,$00,$00
B758 DEFB $00,$00,$00,$00,$00,$00,$00,$00
B760 DEFB $00,$00,$00,$00,$00,$00,$00,$00
B768 DEFB $00,$00,$00,$00,$00,$00,$00,$00
B770 DEFB $00,$00,$00,$00,$00,$00,$00,$00
B778 DEFB $00,$00,$00,$00,$00,$00,$00,$00
B780 DEFB $00,$00,$00,$00,$00,$00,$00,$00
B788 DEFB $00,$00,$00,$00,$00,$00,$00,$00
B790 DEFB $00,$00,$00,$00,$00,$00,$00,$00
B798 DEFB $00,$00,$00,$00,$00,$00,$00,$00
B7A0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
B7A8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
B7B0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
B7B8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
B7C0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
B7C8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
B7D0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
B7D8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
B7E0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
B7E8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
B7F0 DEFB $00,$00,$00,$00,$00,$00,$00,$00
B7F8 DEFB $00,$00,$00,$00,$00,$00,$00,$00
Prev: AD7D Up: Map Next: B800