![]() |
Routines |
| Prev: 46085 | Up: Map | Next: 46211 |
|
Used by the routine at SwapObjectDisplayPointers.
Copies six display bytes and reports failure when every copied byte is zero.
|
||||
| CopySixDisplayBytes | 46184 | PUSH BC | Save the count, take 0 as its high byte, and point HL at the record. | |
| 46185 | LD C,A | |||
| 46186 | LD B,0 | |||
| 46188 | PUSH HL | |||
| 46189 | PUSH IY | |||
| 46191 | POP HL | |||
| 46192 | ADD HL,BC | Add the offset, copy 6 bytes and clear A. | ||
| 46193 | LD BC,6 | |||
| 46196 | LDIR | |||
| 46198 | XOR A | |||
| 46199 | LD B,6 | Count the 6 copied bytes. | ||
| CopySixDisplayBytes_TestCopied | 46201 | DEC HL | Step back one byte, or that byte into A, and repeat from CopySixDisplayBytes_TestCopied for all six. | |
| 46202 | OR (HL) | |||
| 46203 | DJNZ CopySixDisplayBytes_TestCopied | |||
| 46205 | POP HL | Restore the pointer and the count from the stack. | ||
| 46206 | POP BC | |||
| 46207 | RET Z | Return if the six copied bytes are all zero. | ||
| 46208 | SET 0,(HL) | Mark this display flag as set. | ||
| 46210 | RET | Return. | ||
| Prev: 46085 | Up: Map | Next: 46211 |