![]() |
Routines |
| Prev: 51022 | Up: Map | Next: 51110 |
|
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 |