Prev: C74E Up: Map Next: C7A6
C763: Read The High Byte Of The Source
Used by the routine at ReadObjectAttribute_LooksObjectFolds.
Compares the high byte of the source with the bits set in the count.
ReadHighByteSource C763 JR NZ,ReadHighByteSource_CommandOne Jump to ReadHighByteSource_CommandOne when the folded attribute is not zero.
C765 LD A,D Take the byte in D.
C766 AND C Keep only the bits that are set in the count.
C767 CP D See whether the two values match.
This entry point is used by the routine at TestSeventhMarker.
ReadHighByteSource_0 C768 JP Z,TestLowBitsOfCharacter_ReportMatch Go to TestLowBitsOfCharacter_ReportMatch if the masked attribute matches.
C76B JR ReadHighByteSource_FlipBitsResult The masked attribute does not match, so go to ReadHighByteSource_FlipBitsResult to keep only the bits of D outside the mask.
For command 1, keeps the matching bits of the high byte.
ReadHighByteSource_CommandOne C76D CP $01 See whether the attribute is 01.
C76F JR NZ,ReadHighByteSource_CommandTwo Jump to ReadHighByteSource_CommandTwo when the attribute is not one.
C771 LD A,D See whether any attribute bits are still set.
C772 AND A Clear the carry before testing the attribute mask.
C773 JR Z,ReadHighByteSource_0 Jump to ReadHighByteSource_0 when the attribute mask is clear.
C775 AND C Go to ReadHighByteSource_TestWorkspaceKeepingBits if the attribute mask matches nothing.
C776 JR Z,ReadHighByteSource_TestWorkspaceKeepingBits
C778 JP TestLowBitsOfCharacter_ReportMatch Jump back to TestLowBitsOfCharacter_ReportMatch to return non-zero.
For command 2, gives up when none of the selected bits are set.
ReadHighByteSource_CommandTwo C77B CP $02 See whether the attribute is 02.
C77D JR NZ,ReadHighByteSource_HighByteSource Jump to ReadHighByteSource_HighByteSource when the attribute is not two.
C77F LD A,D Go to TestLowBitsOfCharacter_ReportMatch to return zero if the attribute mask matches nothing.
C780 AND C
C781 JP Z,TestLowBitsOfCharacter_ReportMatch
C784 OR $80 Jump ahead to ReadHighByteSource_Store to store it in the token select flag and read the parser.
C786 JR ReadHighByteSource_Store
Read the high byte of the source, then keep only the bits that are set in the count, then see whether the two values match.
ReadHighByteSource_HighByteSource C788 LD A,D Go to TestLowBitsOfCharacter_ReportMatch if the mask does not cover the attribute.
C789 AND C
C78A CP D
C78B JP NZ,TestLowBitsOfCharacter_ReportMatch
C78E OR $80 Jump ahead to ReadHighByteSource_Store to store it in the token select flag and read the parser.
C790 JR ReadHighByteSource_Store
ReadHighByteSource_FlipBitsResult C792 XOR $FF Invert the mask and keep the bits that are also set in D.
C794 AND D
ReadHighByteSource_TestWorkspaceKeepingBits C795 AND $7F Store it in the token select flag at CB79, keeping bits in 7F.
ReadHighByteSource_Store C797 LD ($CB79),A
C79A LD A,($A00B) Jump to TestLowBitsOfCharacter_ReportMatch if the parser is zero.
C79D AND A
C79E JP Z,TestLowBitsOfCharacter_ReportMatch
C7A1 LD HL,$CB7B Use GetDisplayAddressBasedOnFlag as the pointer.
C7A4 XOR A Clear A.
C7A5 RET Return.
Prev: C74E Up: Map Next: C7A6