|  | Routines | 
| Prev: 9F14 | Up: Map | Next: A012 | 
| 
Used by the routine at 947A.
 | ||||
| 9F5F | XOR A | Reset Rex on elevtor | ||
| 9F60 | LD ($A07A),A | |||
| 9F63 | LD HL,($A019) | Set HL to point into tile type buffer data under Rex feet | ||
| 9F66 | LD DE,$0060 | |||
| 9F69 | ADD HL,DE | |||
| 9F6A | LD A,(HL) | Check tile type | ||
| 9F6B | CP $12 | Jump forward to handle elevator | ||
| 9F6D | JP Z,$9F97 | |||
| 9F70 | LD HL,($A019) | Set HL to point into tile type buffer data in front-under Rex feet | ||
| 9F73 | LD DE,$0061 | |||
| 9F76 | ADD HL,DE | |||
| 9F77 | LD A,(HL) | Check tile type | ||
| 9F78 | CP $07 | Jump to handle respawn | ||
| 9F7A | JP Z,$9C3B | |||
| 9F7D | CP $08 | Jump to handle shield recharging | ||
| 9F7F | JP Z,$9FEE | |||
| 9F82 | CP $0D | Jump to handle Double fire weapon bonus | ||
| 9F84 | JP Z,$9FB2 | |||
| 9F87 | CP $0A | Jump to handle laser weapon bonus | ||
| 9F89 | JP Z,$9FC1 | |||
| 9F8C | CP $0B | Jump to handle multiple weapon bonus | ||
| 9F8E | JP Z,$9FD0 | |||
| 9F91 | CP $0C | Jump to handle spray weapon bonus | ||
| 9F93 | JP Z,$9FDF | |||
| 9F96 | RET | |||
| 
handle Rex on elevator
 | ||||
| 9F97 | XOR A | Reset speed Rex | ||
| 9F98 | LD ($A091),A | |||
| 9F9B | LD A,$01 | Set Rex on elevator | ||
| 9F9D | LD ($A07A),A | |||
| 9FA0 | LD A,($A0B7) | Return if Rex is not grid fixed | ||
| 9FA3 | AND $07 | |||
| 9FA5 | OR A | |||
| 9FA6 | RET NZ | |||
| 9FA7 | XOR A | Set falling speed to zero | ||
| 9FA8 | LD ($A0BC),A | |||
| 9FAB | CALL $D11A | Configure Rex for falling - Does nothing | ||
| 9FAE | CALL $D0C2 | Configure Rex for jump | ||
| 9FB1 | RET | |||
| 
handle double fire weapon bonus
 | ||||
| 9FB2 | INC HL | Return if next tile is not the same type | ||
| 9FB3 | LD A,(HL) | |||
| 9FB4 | CP $0D | |||
| 9FB6 | RET NZ | |||
| 9FB7 | CALL $A78B | Update weapon in inventory (HUD) | ||
| 9FBA | LD HL,$ABA0 | Set HL the base address for text definition of DOUBLE FIRE weapon | ||
| 9FBD | CALL $D871 | Show weapon bonus windows | ||
| 9FC0 | RET | |||
| 
handle laser weapon bonus
 | ||||
| 9FC1 | INC HL | Return if next tile is not the same type | ||
| 9FC2 | LD A,(HL) | |||
| 9FC3 | CP $0A | |||
| 9FC5 | RET NZ | |||
| 9FC6 | CALL $A791 | Update weapon in inventory (HUD) | ||
| 9FC9 | LD HL,$ABB1 | Set HL the base address for text definition of LASER weapon | ||
| 9FCC | CALL $D871 | Show weapon bonus windows | ||
| 9FCF | RET | |||
| 
handle multiple weapon bonus
 | ||||
| 9FD0 | INC HL | Return if next tile is not the same type | ||
| 9FD1 | LD A,(HL) | |||
| 9FD2 | CP $0B | |||
| 9FD4 | RET NZ | |||
| 9FD5 | CALL $A797 | Update weapon in inventory (HUD) | ||
| 9FD8 | LD HL,$ABBC | Set HL the base address for text definition of MULTIPLE weapon | ||
| 9FDB | CALL $D871 | Show weapon bonus windows | ||
| 9FDE | RET | |||
| 
handle spray weapon bonus
 | ||||
| 9FDF | INC HL | Return if next tile is not the same type | ||
| 9FE0 | LD A,(HL) | |||
| 9FE1 | CP $0C | |||
| 9FE3 | RET NZ | |||
| 9FE4 | CALL $A79D | Update weapon in inventory (HUD) | ||
| 9FE7 | LD HL,$ABCA | Set HL the base address for text definition of SPRAY weapon | ||
| 9FEA | CALL $D871 | Show weapon bonus windows | ||
| 9FED | RET | |||
| 
handle shield recharging
 | ||||
| 9FEE | INC HL | Return if next tile is not the same type | ||
| 9FEF | LD A,(HL) | |||
| 9FF0 | CP $08 | |||
| 9FF2 | RET NZ | |||
| 9FF3 | LD A,($A049) | Return if shield active | ||
| 9FF6 | OR A | |||
| 9FF7 | RET NZ | |||
| 9FF8 | LD A,($A04D) | Increment shield power | ||
| 9FFB | INC A | |||
| 9FFC | CP $64 | Return if shield power = 100 | ||
| 9FFE | RET Z | |||
| 9FFF | LD ($A04D),A | Set the new shield power | ||
| A002 | CALL $99FA | Draw shield power | ||
| A005 | LD A,($D83A) | Return if channel 2 in use | ||
| A008 | CP $FF | |||
| A00A | RET NZ | |||
| A00B | LD DE,$D826 | Set DE to the shield recharging sound | ||
| A00E | CALL $D5E7 | Configure sound channel and mixer register | ||
| A011 | RET | |||
| Prev: 9F14 | Up: Map | Next: A012 |