Prev: 47315 Up: Map Next: 47355
47323: Draw a timer figure's eye (random frame) at attribute file address in IX and advance IX by one byte
Used by the routine at 47315.
Input
IX (Entry at 47323 and 47333) Pointer to a location in attribute file
A (Entry at 47333 only) Attribute
C (Entry at 47333 only) Graphic index (e.g. 27 for timer figures' bodies)
Output
A Attribute (including inverted mirror flag)
IX Pointer to next location in attribute file
47323 LD A,5 Load A with a random number, 0-4...
47325 CALL 54222 ...
47328 ADD A,29 Add 29 (as 29 is the index of the first of five eye direction graphics) in C...
47330 LD C,A ...
47331 LD A,7 Set attribute for timer indicator figures' eyes to white INK, black PAPER
This entry point is used by the routines at 47241, 47302 and 47315.
47333 LD B,4 Set graphic set index to 4
47335 PUSH AF Store AF (A = attribute)
47336 PUSH BC Store BC (B = graphic set index, C = graphic index)
47337 CALL 54144 Draw a graphic character block to display
47340 POP BC Restore BC (B = graphic set index, C = graphic index)
47341 LD A,C Load graphic index into A
47342 CP 32 If graphic index is less than 32 (i.e. we're not dealing with #32 - eyes looking right or #33 - eyes looking left and don't need to cancel inversion at 47350) then skip ahead to 47348
47344 JR C,47348
47346 XOR 1 Add or subtract 1 if graphic index is 32 or 33 respectively (timer figures' eyes looking right or left respectively) to cancel out inversion at 47350
47348 LD C,A Load graphic index into C
47349 POP AF Restore AF (A = attribute)
47350 XOR 128 Flip mirror flag to prepare to draw mirror image of just-drawn character block
47352 INC IX Advance IX to next byte in attribute file
47354 RET Return
Prev: 47315 Up: Map Next: 47355