Prev: BC21 Up: Map Next: BC74
BC46: Process Game Status Entries
Used by the routines at StoreSetMarkPointer and ReadActionFlags.
See whether this byte is the end marker, then test the mark on this byte
ProcessGameStatusEntries BC46 LD IX,$9965 Use the character pairs (994D+18).
BC4A LD HL,$0000
BC4D PUSH HL
ProcessGameStatusEntries_Loop BC4E LD A,(IX+$00) Jump to ProcessGameStatusEntries_KeepMatchFlags if the record's flag byte is FF.
BC51 CP $FF
BC53 JR Z,ProcessGameStatusEntries_KeepMatchFlags
BC55 BIT 0,(IX+$03) Jump to ProcessGameStatusEntries_0 if the action-pending flag is clear.
BC59 JR Z,ProcessGameStatusEntries_0
BC5B BIT 5,(IX+$03) Jump to ProcessGameStatusEntries_0 if a marker on the action flags is set.
BC5F JR NZ,ProcessGameStatusEntries_0
BC61 PUSH IX Call AdvancePointerAndCheckBit, keeping character record.
ProcessGameStatusEntries_0 BC63 CALL AdvancePointerAndCheckBit
BC66 JR ProcessGameStatusEntries_Loop Jump back to ProcessGameStatusEntries_Loop to read the record flag, see whether it is the end marker and jump to ProcessGameStatusEntries_KeepMatchFlags.
Keep the match flags before returning.
ProcessGameStatusEntries_KeepMatchFlags BC68 POP HL Restore the saved pointer from the stack.
BC69 LD A,H See whether the pointer is empty.
BC6A OR L
BC6B RET Z Return when the status pointer is empty.
BC6C PUSH HL Call CheckBitAndProcess to check bit and process.
BC6D POP IX
BC6F CALL CheckBitAndProcess
BC72 JR ProcessGameStatusEntries_KeepMatchFlags Go back to ProcessGameStatusEntries_KeepMatchFlags for the next status entry.
Prev: BC21 Up: Map Next: BC74