Prev: 41649 Up: Map Next: 41700
41661: Extract Object Attributes
Packs two attribute nibbles from the object record into 40990 and ObjectAttributeValue.
Input
IX Pointer to object data
Extract the first attribute value from bit-packed object data.
ExtractObjectAttributes 41661 LD A,(IX+5) Read the object attribute.
41664 RRCA
41665 RRCA
41666 RRCA
41667 RRCA
41668 AND %00001111 Keep the high nibble of the object attribute (now in bits 0-3) as the low half of the display flag.
41670 LD C,A Read the character record.
41671 LD A,(IX+7)
41674 AND %11110000 Take the high nibble of byte 7 of the object data as the high half of the display flag.
41676 ADD A,C Join the two halves into one byte.
41677 LD (40990),A Record the result in the display flag at 40990.
Extract the second attribute value from bit-packed object data.
41680 LD A,(IX+1) Read the moved marker.
41683 RRCA
41684 RRCA
41685 RRCA
41686 RRCA
41687 AND %00001111 Keep the high nibble of the moved marker (now in bits 0-3) as the low half of the object attribute value.
41689 LD C,A Read the action flags.
41690 LD A,(IX+3)
41693 AND %11110000 Take the high nibble of the action flags (byte 3) as the high half of the object attribute value.
41695 ADD A,C Join the two halves into one byte.
41696 LD (40989),A Record the result in the object attribute value at ObjectAttributeValue.
41699 RET Return.
View the equivalent code in;
Prev: 41649 Up: Map Next: 41700