Prev: 46085 Up: Map Next: 46211
46184: Copy Six Display Bytes
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