Prev: 51022 Up: Map Next: 51110
51043: 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 51043 JR NZ,ReadHighByteSource_CommandOne Jump to ReadHighByteSource_CommandOne when the folded attribute is not zero.
51045 LD A,D Take the byte in D.
51046 AND C Keep only the bits that are set in the count.
51047 CP D See whether the two values match.
This entry point is used by the routine at TestSeventhMarker.
ReadHighByteSource_0 51048 JP Z,TestLowBitsOfCharacter_ReportMatch Go to TestLowBitsOfCharacter_ReportMatch if the masked attribute matches.
51051 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 51053 CP 1 See whether the attribute is 1.
51055 JR NZ,ReadHighByteSource_CommandTwo Jump to ReadHighByteSource_CommandTwo when the attribute is not one.
51057 LD A,D See whether any attribute bits are still set.
51058 AND A Clear the carry before testing the attribute mask.
51059 JR Z,ReadHighByteSource_0 Jump to ReadHighByteSource_0 when the attribute mask is clear.
51061 AND C Go to ReadHighByteSource_TestWorkspaceKeepingBits if the attribute mask matches nothing.
51062 JR Z,ReadHighByteSource_TestWorkspaceKeepingBits
51064 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 51067 CP 2 See whether the attribute is 2.
51069 JR NZ,ReadHighByteSource_HighByteSource Jump to ReadHighByteSource_HighByteSource when the attribute is not two.
51071 LD A,D Go to TestLowBitsOfCharacter_ReportMatch to return zero if the attribute mask matches nothing.
51072 AND C
51073 JP Z,TestLowBitsOfCharacter_ReportMatch
51076 OR 128 Jump ahead to ReadHighByteSource_Store to store it in the token select flag and read the parser.
51078 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 51080 LD A,D Go to TestLowBitsOfCharacter_ReportMatch if the mask does not cover the attribute.
51081 AND C
51082 CP D
51083 JP NZ,TestLowBitsOfCharacter_ReportMatch
51086 OR 128 Jump ahead to ReadHighByteSource_Store to store it in the token select flag and read the parser.
51088 JR ReadHighByteSource_Store
ReadHighByteSource_FlipBitsResult 51090 XOR 255 Invert the mask and keep the bits that are also set in D.
51092 AND D
ReadHighByteSource_TestWorkspaceKeepingBits 51093 AND 127 Store it in the token select flag at 52089, keeping bits in 127.
ReadHighByteSource_Store 51095 LD (52089),A
51098 LD A,(40971) Jump to TestLowBitsOfCharacter_ReportMatch if the parser is zero.
51101 AND A
51102 JP Z,TestLowBitsOfCharacter_ReportMatch
51105 LD HL,52091 Use GetDisplayAddressBasedOnFlag as the pointer.
51108 XOR A Clear A.
51109 RET Return.
Prev: 51022 Up: Map Next: 51110