![]() |
Routines |
Prev: 27621 | Up: Map |
Used by the routine at 27772. Returns with the zero flag set if the character is standing beside a chair. Returns with the carry flag set if the character should turn round.
|
|||||||||||||
27632 | BIT 7,A | Set the zero flag if the character is facing left | |||||||||||
This entry point is used by the routine at 27823 with H=172 (ERIC).
|
|||||||||||||
27634 | LD A,D | A=character's y-coordinate | |||||||||||
27635 | JR NZ,27694 | Jump if the character is facing right | |||||||||||
27637 | CP 155 | Set the zero flag if the character is on the top floor | |||||||||||
27639 | LD A,E | A=character's x-coordinate | |||||||||||
27640 | JR NZ,27666 | Jump if the character's on the middle floor | |||||||||||
27642 | CP 58 | Is the character to the right of the Map Room wall? | |||||||||||
27644 | JR NC,27659 | Jump if so | |||||||||||
27646 | CP 48 | This is the x-coordinate of the leftmost chair in the Reading Room | |||||||||||
27648 | RET C | Return if the character is to the left of this | |||||||||||
27649 | NOP | ||||||||||||
27650 | CP 56 | This is the x-coordinate of the rightmost chair in the Reading Room | |||||||||||
27652 | JR Z,27655 | Jump if the character is beside the rightmost chair in the room | |||||||||||
27654 | RET NC | Return if the character is to the right of this chair | |||||||||||
27655 | AND A | ||||||||||||
27656 | BIT 0,A | Return with the zero flag set if the character is standing beside a chair | |||||||||||
27658 | RET | ||||||||||||
The character is on the top floor to the right of the Map Room wall.
|
|||||||||||||
27659 | CP 64 | This is the x-coordinate of the leftmost chair in the Map Room | |||||||||||
27661 | RET C | Return if the character is to the left of this | |||||||||||
27662 | CP 72 | This is the x-coordinate of the rightmost chair in the Map Room | |||||||||||
27664 | JR 27652 | ||||||||||||
The character is somewhere on the middle floor.
|
|||||||||||||
27666 | CP 39 | Is the character to the right of the Exam Room wall? | |||||||||||
27668 | JR NC,27678 | Jump if so | |||||||||||
27670 | CP 29 | This is the x-coordinate of the leftmost chair in the White Room | |||||||||||
27672 | RET C | Return if the character is to the left of this | |||||||||||
27673 | INC A | This is the x-coordinate (+1) of the rightmost chair in the White Room | |||||||||||
27674 | CP 38 | ||||||||||||
27676 | JR 27652 | ||||||||||||
The character is on the middle floor to the right of the Exam Room wall.
|
|||||||||||||
27678 | CP 43 | This is the x-coordinate of the leftmost chair in the Exam Room | |||||||||||
27680 | RET C | Return if the character is to the left of this | |||||||||||
27681 | CP 60 | This is the x-coordinate of the left end of the first set of chairs in the Exam Room | |||||||||||
27683 | JR C,27689 | Jump if the character is to the left of this | |||||||||||
27685 | CP 68 | This is the x-coordinate of the rightmost chair in the Exam Room | |||||||||||
27687 | JR 27652 | ||||||||||||
The character is in the Exam Room, to the left of the first set of chairs.
|
|||||||||||||
27689 | INC A | This is the x-coordinate (+1) of the right end of the second set of chairs in the Exam Room | |||||||||||
27690 | CP 54 | ||||||||||||
27692 | JR 27652 | ||||||||||||
The character is facing right.
|
|||||||||||||
27694 | CP 155 | Set the zero flag if the character is on the top floor | |||||||||||
27696 | LD A,E | A=character's x-coordinate | |||||||||||
27697 | JR NZ,27714 | Jump if the character is on the middle floor | |||||||||||
27699 | CP 58 | This is the x-coordinate of the wall between the Reading and Map Rooms | |||||||||||
27701 | JR NC,27710 | Jump if the character is to the right of this | |||||||||||
27703 | CP 55 | This is the x-coordinate of the spot between the two chairs at the right in the Reading Room; if this were 'CP 56' instead, kids would be able to find the rightmost seat in the room | |||||||||||
27705 | CCF | Clear the carry flag if the character is to the left of the rightmost chair in the room (i.e. he's still on his way there) | |||||||||||
27706 | RET NZ | Return unless the character is beside the rightmost chair in the room | |||||||||||
27707 | AND A | Reset the zero flag, and set the carry flag to indicate that the character should turn round | |||||||||||
27708 | CCF | ||||||||||||
27709 | RET | ||||||||||||
27710 | CP 72 | This is the x-coordinate of the rightmost seat in the Map Room | |||||||||||
27712 | JR 27705 | ||||||||||||
27714 | CP 39 | This is the x-coordinate of the wall between the White and Exam Rooms | |||||||||||
27716 | JR NC,27722 | Jump if the character is to the right of this | |||||||||||
27718 | CP 37 | This is the x-coordinate of the rightmost chair in the White Room | |||||||||||
27720 | JR 27705 | ||||||||||||
27722 | CP 68 | This is the x-coordinate of the rightmost chair in the Exam Room | |||||||||||
27724 | JR 27705 |
Prev: 27621 | Up: Map |