![]() |
Routines |
Prev: 35140 | Up: Map |
|
|||||||
35388 | LD A,(32957) | Update the game clock at 32957 | |||||
35391 | SUB 4 | ||||||
35393 | LD (32957),A | ||||||
35396 | CP 252 | Was it just decreased from zero? | |||||
35398 | JR NZ,35413 | Jump if not | |||||
35400 | LD A,(32956) | Pick up the value of the remaining air supply from 32956 | |||||
35403 | CP 36 | Has the air supply run out? | |||||
35405 | RET Z | Return (with the zero flag set) if so | |||||
35406 | DEC A | Decrement the air supply at 32956 | |||||
35407 | LD (32956),A | ||||||
35410 | LD A,(32957) | Pick up the value of the game clock at 32957 | |||||
35413 | AND 224 | A=INT(A/32); this value specifies how many pixels to draw from left to right in the cell at the right end of the air bar | |||||
35415 | RLCA | ||||||
35416 | RLCA | ||||||
35417 | RLCA | ||||||
35418 | LD E,0 | Initialise E to 0 (all bits reset) | |||||
35420 | OR A | Do we need to draw any pixels in the cell at the right end of the air bar? | |||||
35421 | JR Z,35430 | Jump if not | |||||
35423 | LD B,A | Copy the number of pixels to draw (1-7) to B | |||||
35424 | RRC E | Set this many bits in E (from bit 7 towards bit 0) | |||||
35426 | SET 7,E | ||||||
35428 | DJNZ 35424 | ||||||
35430 | LD A,(32956) | Pick up the value of the remaining air supply from 32956 | |||||
35433 | LD L,A | Set HL to the display file address at which to draw the top row of pixels in the cell at the right end of the air bar | |||||
35434 | LD H,82 | ||||||
35436 | LD B,4 | There are four rows of pixels to draw | |||||
35438 | LD (HL),E | Draw the four rows of pixels at the right end of the air bar | |||||
35439 | INC H | ||||||
35440 | DJNZ 35438 | ||||||
35442 | XOR A | Reset the zero flag to indicate that there is still some air remaining; these instructions are redundant, since the zero flag is already reset at this point | |||||
35443 | INC A | ||||||
35444 | RET |
Prev: 35140 | Up: Map |