Prev: A35D Up: Map Next: A37D
A360: Check And Reset Character State
Used by the routines at ProcessObjectDisplay and DispatchTextControlHandler.
Clears A35E if it holds the current character, then runs ProcessObject_Display with the current character set to zero, and restores the character.
Control code 18 in the table at JumpTable_ControlCharacters.
CheckAndResetCharacterState A360 LD A,($A036) Read the character being processed and take the saved object field at A35E.
A363 PUSH AF
A364 LD HL,$A35E
A367 CP (HL) Clear A and jump ahead to CheckAndResetCharacterState_Next unless A35E holds this character.
A368 LD A,$00
A36A JR NZ,CheckAndResetCharacterState_Next
A36C LD (HL),A Store the cleared character state back in the record.
CheckAndResetCharacterState_Next A36D LD ($A036),A Set the current character to zero.
A370 PUSH IX Keep the character record, call ProcessObject_Display to print this object's tokens.
A372 CALL ProcessObject_Display
A375 POP IX Restore the saved character from the stack.
A377 POP AF
A378 LD ($A036),A Store the character id at CurrentCharacter_ID.
A37B XOR A Clear A.
A37C RET Return.
Prev: A35D Up: Map Next: A37D