Routines |
Prev: A90C | Up: Map | Next: A9AF |
A915 | LD A,$C8 | Set A0C3 the loop counter for the showed room = 200 | ||
A917 | LD ($A0C3),A | |||
A91A | LD A,($A0C2) | Pick up the list number for the next room to show | ||
A91D | LD E,A | Set A the room number to show | ||
A91E | LD D,$00 | |||
A920 | LD HL,$A90C | |||
A923 | ADD HL,DE | |||
A924 | LD A,(HL) | |||
A925 | CP $FF | the room number is $FF? | ||
A927 | JP NZ,$A931 | Jump if it isn't | ||
A92A | XOR A | Reset the list number at R$A0C2 | ||
A92B | LD ($A0C2),A | |||
A92E | JP $A91A | Jump back | ||
A931 | LD ($A0B8),A | Set A0B8 to the room number to display | ||
A934 | LD A,($A0C2) | Point $A0C2 to the next room on the list | ||
A937 | INC A | |||
A938 | LD ($A0C2),A | |||
A93B | CALL $A89D | Configure current room | ||
A93E | LD A,($A0C3) | Pick up loop counter | ||
A941 | DEC A | Decrement loop counter | ||
A942 | OR A | is zero? | ||
A943 | JP Z,$A915 | Jump back if so and show next room | ||
A946 | LD ($A0C3),A | Save loop counter at A0C3 | ||
A949 | CALL $B645 | Draw enemy projectiles | ||
A94C | CALL $BA5C | Draw enemies | ||
A94F | CALL $D68C | Play sound channels | ||
A952 | CALL $B33E | Copy tile graphic into room graphic data | ||
A955 | CALL $A28A | Copy room graphic buffer to display file | ||
A958 | CALL $B205 | Reset room graphic buffer | ||
A95B | CALL $D68C | Play sound channels | ||
A95E | CALL $D1B9 | Handle enemy projectile collision with Rex | ||
A961 | CALL $B96B | Update color attribute for weapon icon on HUD | ||
A964 | CALL $C978 | Generate train parts: front, middle or rear wagon | ||
A967 | CALL $C9CA | Creates a new mobile enemy on room | ||
A96A | CALL $9992 | Update attribute color for score points in HUD | ||
A96D | CALL $9A4C | HUD flash | ||
A970 | CALL $A0C4 | Update timer bar in HUD | ||
A973 | CALL $A477 | Check fire pressed | ||
A976 | JP Z,$9498 | Jump to init game if pressed | ||
A979 | LD HL,$6758 | Rotate left tile $6F. Not used in game | ||
A97C | LD B,$08 | |||
A97E | RRC (HL) | |||
A980 | INC HL | |||
A981 | DJNZ $A97E | |||
A983 | LD HL,$6858 | Rotate right two times tile $8F. Simulate horizontal conveyor belt | ||
A986 | LD B,$08 | |||
A988 | RLC (HL) | |||
A98A | RLC (HL) | |||
A98C | INC HL | |||
A98D | DJNZ $A988 | |||
A98F | LD HL,$64C0 | Set HL to point to tile $1C graphic data (vertical conveyor belt) | ||
A992 | CALL $A7BA | Simulate conveyor belt going down | ||
A995 | LD HL,$6438 | Set HL to point to tile $0B graphic data (vertical conveyor belt) | ||
A998 | CALL $A7A9 | Simulate conveyor belt going up | ||
A99B | LD HL,$64B0 | Set HL to point to tile $1A graphic data (vertical conveyor belt) | ||
A99E | CALL $A7BA | Simulate conveyor belt going down | ||
A9A1 | CALL $A55E | Update arrow tiles, shield recharger, respawn indicator, fire and water effect | ||
A9A4 | LD A,($A017) | Change tilt arrow tiles | ||
A9A7 | XOR $01 | |||
A9A9 | LD ($A017),A | |||
A9AC | JP $A93E | Jump back to the main loop |
Prev: A90C | Up: Map | Next: A9AF |