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