| Routines

EAF8: Check whether a character is on the sidewalk or road

Used by the routines at 64BD and EB13. Returns with the carry flag reset if the character has both feet on the ground (the sidewalk or road), and with the carry flag set otherwise.
Input
H | Character number (0xD7-0xE6)
EAF8 | LD L,$01 | Point HL at byte 0x01 of the character's buffer
EAFA | LD E,(HL) | E=character's x-coordinate
EAFB | INC L | L=0x02
EAFC | LD D,(HL) | D=character's y-coordinate
EAFD | LD L,$04 |
This entry point is used by the routines at 64BD and ED36.
EAFF | LD A,D | A=y-coordinate for comparison
EB00 | CP $22 | 34 is the y-coordinate of a character on the sidewalk
EB02 | RET C | Return with the carry flag set if the character is above the level of the sidewalk (A<=33)
EB03 | RET NZ | Return with the carry flag reset if the character is on the road (A=35)
This entry point is used by the routine at 634C.
EB04 | LD A,E | A=x-coordinate for comparison
This entry point is used by the routines at 6558, 72B1 and FB52.
EB05 | CP $07 | Is A<=6 (where there is sidewalk)?
EB07 | CCF | Return with the carry flag reset if so
EB08 | RET NC
EB09 | CP $0F | Is 7<=A<=14 (where there is no sidewalk)?
EB0B | RET C | Return with the carry flag set if so
EB0C | CP $A4 | Is 15<=A<=163 (where there is sidewalk)?
EB0E | CCF | Return with the carry flag reset if so
EB0F | RET NC
EB10 | CP $C7 | Set the carry flag if 164<=A<=198 (where there is no sidewalk), or reset it if A>=199 (where there is sidewalk)
EB12 | RET |