![]() |
Routines |
| Prev: E2FC | Up: Map | Next: E3D3 |
| E329 | LD A,($A838) | A=*A838-(*IY+05)-0D. | ||
| E32C | SUB (IY+$05) | |||
| E32F | SUB $0D | |||
| E331 | CP $E6 | |||
| E333 | RET C | |||
| E334 | LD A,($A839) | A=*A839-(*IY+0A)-1C. | ||
| E337 | SUB (IY+$0A) | |||
| E33A | SUB $1C | |||
| E33C | CP $D6 | |||
| E33E | RET C | |||
|
This entry point is used by the routines at F177, F5F1 and F8B9.
|
||||
| E33F | LD A,($B55F) | Return if Flag_DemoMode is not zero. | ||
| E342 | OR A | |||
| E343 | RET NZ | |||
| E344 | EXX | Switch to the shadow registers. | ||
| E345 | LD BC,$640A | BC=640A. | ||
| E348 | LD DE,$0101 | DE=0101. | ||
| E34B | LD HL,$6401 | HL=6401. | ||
| E34E | CALL PlayWaveSequence | Call PlayWaveSequence. | ||
| E351 | LD A,($F26E) | *IY+14-=*F26E. | ||
| E354 | LD B,A | |||
| E355 | LD A,(IY+$14) | |||
| E358 | SUB B | |||
| E359 | LD (IY+$14),A | |||
| E35C | JR Z,$E362 | If *IY+14 <= 00 jump to E362. | ||
| E35E | JR C,$E362 | |||
| E360 | JR $E36C | Jump to E36C. | ||
|
A life has been "spent" so refill the endurance meter to the top.
|
||||
| E362 | LD (IY+$14),$80 | Write 80 to *IY+14. | ||
|
Lose one heart...
|
||||
| E366 | DEC (IY+$2D) | Decrease *IY+2D by one. | ||
|
If the players hearts are now zero the game is over.
|
||||
| E369 | JP Z,GameOver | If current players hearts (*IY+2D) are now zero jump to GameOver. | ||
| E36C | EXX | Switch back to the normal registers. | ||
|
This entry point is used by the routines at PrintBanner and F814.
|
||||
| E36D | EXX | Switch to the shadow registers. | ||
|
Draw the hearts to indicate the number of lives remaining.
|
||||
| E36E | LD C,$46 | C=46 (INK: YELLOW, PAPER: BLACK (BRIGHT) ). | ||
| E370 | LD HL,$DFDC | Write Font to B7E9. | ||
| E373 | LD ($B7E9),HL | |||
| E376 | LD DE,$021C | DE=021C (screen co-ordinates). | ||
| E379 | LD L,(IY+$2D) | L=*IY+2D (current players hearts). | ||
| E37C | DEC L | Decrease L by one. | ||
| E37D | LD B,$02 | B=02 (counter). | ||
| E37F | LD A,L | |||
| E380 | OR A | |||
| E381 | LD A,$1F | A=1F. | ||
| E383 | JR NZ,$E386 | |||
| E385 | INC A | |||
| E386 | CALL DrawSprite | Call DrawSprite. | ||
| E389 | INC E | Increment E by two. | ||
| E38A | INC E | |||
| E38B | CP $20 | |||
| E38D | JR Z,$E390 | |||
| E38F | DEC L | |||
| E390 | DJNZ $E37F | |||
|
Draws the endurance ribbon.
|
||||
| E392 | LD C,$43 | C=43 (INK: MAGENTA, PAPER: BLACK (BRIGHT) ). | ||
| E394 | LD DE,$0310 | DE=0310. | ||
| E397 | LD L,$5C | L=5C. | ||
| E399 | LD B,(IY+$14) | B=*IY+14. | ||
| E39C | LD A,B | |||
| E39D | SUB $08 | |||
| E39F | JR C,$E3BC | |||
| E3A1 | LD B,A | |||
| E3A2 | LD A,L | |||
| E3A3 | CALL DrawSprite | Call DrawSprite. | ||
| E3A6 | XOR $01 | |||
| E3A8 | LD L,A | |||
| E3A9 | INC E | |||
| E3AA | LD A,B | |||
| E3AB | OR A | |||
| E3AC | JR NZ,$E39C | |||
| E3AE | BIT 5,E | |||
| E3B0 | JR Z,$E3B4 | |||
| E3B2 | EXX | Switch back to the normal registers. | ||
| E3B3 | RET | Return. | ||
| E3B4 | LD A,$20 | A=20. | ||
| E3B6 | CALL DrawSprite | Call DrawSprite. | ||
| E3B9 | INC E | Increment E by one. | ||
| E3BA | JR $E3AE | Jump to E3AE. | ||
| E3BC | ADD A,$08 | A+=08. | ||
| E3BE | SRL A | |||
| E3C0 | LD B,A | |||
| E3C1 | LD A,L | |||
| E3C2 | CP $5C | |||
| E3C4 | JR NZ,$E3CA | |||
| E3C6 | LD A,$5D | A=5D. | ||
| E3C8 | JR $E3CC | Jump to E3CC. | ||
| E3CA | LD A,$60 | A=60. | ||
| E3CC | ADD A,B | A+=B. | ||
| E3CD | CALL DrawSprite | Call DrawSprite. | ||
| E3D0 | INC E | Increment E by one. | ||
| E3D1 | JR $E3AE | Jump to E3AE. | ||
| Prev: E2FC | Up: Map | Next: E3D3 |