Routines 
Prev: 62092  Up: Map  Next: 62175 
Used by the routine at 63405 when bit 7 at 32763 is set (by the routine at 29896). Note that the routine at 26175 also sets bit 7 at 32763 when someone sits in the seat occupied by ERIC, but in that case this routine is not called because bit 2 at 32763 is still set (indicating that ERIC is sitting) and takes precedence; this is a bug.


62094  LD HL,32733  32733 holds ERIC's knockout delay counter  
62097  LD A,(HL)  Is this the first time this routine's been called since ERIC was downed?  
62098  AND A  
62099  JR Z,62112  Jump if so  
62101  DEC (HL)  Otherwise wait a while before enabling ERIC to stand up again  
62102  RET NZ  
62103  LD L,243  HL=32755 (ERIC's main action timer)  
62105  LD (HL),1  Set this to 1 so that the keyboard is checked on the next pass through the main loop  
62107  LD L,251  HL=32763 (ERIC's status flags)  
62109  LD (HL),4  Set bit 2: ERIC is sitting or lying down; the routine at 62178 handles ERIC from this point  
62111  RET  
ERIC has just been hit. Determine the manner of his descent to the floor.


62112  LD (HL),40  Initialise ERIC's knockout delay counter at 32733 to 40  
62114  LD H,210  210=ERIC  
62116  CALL 25012  Update the SRB for ERIC's current animatory state and location  
62119  PUSH DE  Save ERIC's coordinates briefly  
62120  PUSH AF  Save ERIC's current animatory state briefly  
62121  CP 4  4: Was ERIC sitting on a chair?  
62123  JR NZ,62134  Jump if not  
62125  CALL 32000  Get the identifier of ERIC's location  
62128  LD B,5  5: ERIC sitting on the floor  
62130  CP 6  Is ERIC in a classroom in the boys' skool (A=6, 7 or 8)?  
62132  JR NC,62136  Jump if so  
62134  LD B,6  6: ERIC lying on his back  
62136  POP AF  Restore ERIC's current animatory state to A  
62137  POP DE  Restore ERIC's coordinates to DE  
62138  AND 128  Keep only the 'direction' bit (bit 7) of ERIC's current animatory state  
62140  ADD A,B  A=ERIC's new animatory state (sitting on the floor or lying on his back)  
62141  CALL 24880  Update ERIC's animatory state and update the SRB  
62144  CALL 25248  Update the display  
Now to initialise the sound effect parameters.


62147  LD HL,275  H=1 (pitch adjustment), L=19 (border colour XOR mask)  


62150  LD DE,0  D=0 (duration), E=0 (initial pitch)  
62153  LD A,2  A=2 (initial border colour)  
62155  XOR L  Make a sound effect  
62156  OUT (254),A  
62158  LD B,E  
62159  DJNZ 62159  
62161  LD B,A  
62162  LD A,E  
62163  ADD A,H  
62164  LD E,A  
62165  LD A,B  
62166  DEC D  
62167  JR NZ,62155  
This entry point is used by the routine at 24477.


62169  EI  Reenable interrupts  
62170  LD A,1  Reset the border colour to blue  
62172  OUT (254),A  
62174  RET 
Prev: 62092  Up: Map  Next: 62175 