Prev: 47213 Up: Map Next: 47302
47241: Reset show-score flag and draw timer figures bar
Used by the routines at 34438, 34916 and 47468.
47241 LD A,(34208) Reset show-score flag...
47244 RES 7,A ...
47246 LD (34208),A ...
47249 LD IX,23232 Point IX to start of second-last row of attribute file
47253 LD A,(34210) Load remaining time / lives into A...
47256 OR A ...and if zero...
47257 JR Z,47267 ...then skip ahead 47267
47259 LD B,A Load number of lives into B
47260 PUSH BC If show-score flag reset then draw pair of timer figure eyes (open, random frame) at attribute file address in IX and advance by two bytes
47261 CALL 47315
47264 POP BC
47265 DJNZ 47260 Decrease B (remaining number of pairs of open eyes to draw) and loop back to 47260 if not zero
47267 LD A,(34210) Load remaining time / lives into E...
47270 LD E,A ...
47271 LD A,16 Load A with number of lives lost by subtracting E from 16...
47273 SUB E ...
47274 JR Z,47284 If zero, then skip ahead to 47284
47276 LD B,A Load number of lost lives into B as counter for loop
47277 PUSH BC Store BC (B = remaining number of pairs of closed eyes to draw)
47278 CALL 47302 If show-score flag reset then draw pair of timer figure eyes (closed) at attribute file address in IX and advance by two bytes
47281 POP BC Restore BC (B = remaining number of pairs of closed eyes to draw)
47282 DJNZ 47277 Decrease B (remaining number of pairs of open eyes to draw) and loop back to 47277 if not zero
47284 LD C,27 Set graphic index to 27 (timer figures' bodies)
47286 LD A,(34226) Load attribute of current character into A
47289 LD B,16 Load B with 16 (as 16 timer figures' bodies to draw)
47291 PUSH BC Store B (remaining number of timer figure bodies to draw)
47292 CALL 47333 Draw left half of timer figure's body and invert mirror flag on attribute
47295 CALL 47333 Draw right half of timer figure's body
47298 POP BC Restore B (remaining number of timer figure bodies to draw)
47299 DJNZ 47291 Decrease B and loop back to 47291
47301 RET Return
Prev: 47213 Up: Map Next: 47302