Routines |
Prev: 6E4F | Up: Map | Next: 6E91 |
Used by the routines at 5D4F, 5EC7, 6F14, 6F2C, 6F44, 6FA0, 7140 and F3D7 to check whether ERIC is on a staircase, and by the routines at 64F3 and 6558 to check whether ERIC or a teacher is on a staircase. Returns with the carry flag reset if the character is not on a staircase. Otherwise returns with the carry flag set and A holding 0x00 (if the staircase goes up and to the left) or 0x80 (if the staircase goes up and to the right).
|
||||||||
6E50 | LD H,$D2 | 0xD2=ERIC | ||||||
This entry point is used by the routines at 64F3 and 6558.
|
||||||||
6E52 | LD L,$01 | Collect the character's coordinates in DE | ||||||
6E54 | LD E,(HL) | |||||||
6E55 | INC L | |||||||
6E56 | LD D,(HL) | |||||||
6E57 | LD A,D | A=character's y-coordinate | ||||||
6E58 | CP $03 | Is the character on the top floor? | ||||||
6E5A | RET Z | Return with the carry flag reset if so | ||||||
6E5B | CP $0A | Is the character on the middle floor? | ||||||
6E5D | RET Z | Return with the carry flag reset if so | ||||||
6E5E | CP $11 | Is the character on the bottom floor? | ||||||
6E60 | RET Z | Return with the carry flag reset if so | ||||||
6E61 | CP $0E | The assembly hall stage has y-coordinate 14 | ||||||
6E63 | JR NZ,$6E6D | Jump if the character's y-coordinate doesn't match that | ||||||
6E65 | LD A,E | A=character's x-coordinate | ||||||
6E66 | CP $52 | This is the x-coordinate of the right-hand edge of the assembly hall stage | ||||||
6E68 | JR NC,$6E6D | Jump if the character's to the right of this | ||||||
6E6A | CP $4C | This is the x-coordinate of the left-hand edge of the assembly hall stage | ||||||
6E6C | RET NC | Return with the carry flag reset if the character's on the stage | ||||||
The character is not standing on the top floor, middle floor, bottom floor or assembly hall stage, so he must be on a staircase. Determine the orientation of the staircase.
|
||||||||
6E6D | LD A,D | A=character's y-coordinate | ||||||
6E6E | CP $0A | Is the character somewhere between the middle and bottom floors? | ||||||
6E70 | JR NC,$6E7F | Jump if so | ||||||
6E72 | LD A,E | A=character's x-coordinate | ||||||
6E73 | CP $40 | Is the character on the stairs leading up to the Revision Library? | ||||||
6E75 | JR C,$6E7B | Jump if so | ||||||
6E77 | LD A,$00 | Signal: character is on an up-and-to-the-left staircase | ||||||
6E79 | SCF | Signal: character's on a staircase | ||||||
6E7A | RET | Return with the carry flag set and A=0x00 | ||||||
6E7B | LD A,$80 | Signal: character is on an up-and-to-the-right staircase | ||||||
6E7D | SCF | Signal: character's on a staircase | ||||||
6E7E | RET | Return with the carry flag set and A=0x80 | ||||||
6E7F | CP $0F | |||||||
6E81 | LD A,E | A=character's x-coordinate | ||||||
6E82 | JR C,$6E8A | Jump if the character is on or above the level of the assembly hall stage | ||||||
6E84 | CP $80 | Is the character on either the stairs leading down from the stage or the stairs leading down from the toilets in the boys' skool? | ||||||
6E86 | JR C,$6E77 | Jump if so | ||||||
6E88 | JR $6E7B | The character is on the stairs leading down to the bottom floor in the girls' skool | ||||||
6E8A | CP $40 | Is the character on either the stairs leading down to the stage or the stairs leading down to the bottom floor in the girls' skool? | ||||||
6E8C | JR NC,$6E7B | Jump if so | ||||||
6E8E | LD A,$00 | Signal: character is on an up-and-to-the-left staircase (the one leading down from the toilets in the boys' skool, in fact) | ||||||
6E90 | RET | Return with the carry flag set and A=0 |
Prev: 6E4F | Up: Map | Next: 6E91 |