![]() |
Routines |
Prev: 27125 | Up: Map | Next: 27191 |
The address of this continual subcommand routine is placed into bytes 124 and 125 of little boy no. 1's character buffer by the routine at 27246, and into bytes 124 and 125 of the character buffers of little boys 2-11 by the routine at 27266.
|
||||
27126 | LD L,97 | Pick up the little boy's y-coordinate in A | ||
27128 | LD A,(HL) | |||
27129 | CALL 26185 | Is the boy on a staircase? | ||
27132 | RET NZ | Return if so | ||
27133 | LD B,10 | We will check characters 163-172 (teachers and main kids) | ||
27135 | LD DE,41826 | D=163 (MR WACKER), E=98 | ||
27138 | INC L | L=98 | ||
27139 | EX DE,HL | |||
27140 | LD A,(DE) | A=little boy's x-coordinate | ||
27141 | CP (HL) | Does this teacher's or main kid's x-coordinate match? | ||
27142 | JR Z,27149 | Jump if so | ||
27144 | INC H | Next teacher or main kid | ||
27145 | DJNZ 27140 | Jump back until all teachers and main kids have been checked | ||
27147 | EX DE,HL | |||
27148 | RET | |||
A teacher or main kid is at the same x-coordinate as the little boy. Now check the y-coordinates.
|
||||
27149 | DEC E | E=L=97 | ||
27150 | DEC L | |||
27151 | LD A,(DE) | A=little boy's y-coordinate | ||
27152 | INC E | E=98 | ||
27153 | CP (HL) | Does this teacher's or main kid's y-coordinate match? | ||
27154 | INC HL | L=98 | ||
27155 | JR NZ,27144 | Consider the next teacher or main kid if not | ||
A teacher or main kid is at the same location as the little boy.
|
||||
27157 | LD L,112 | Bytes 111 and 112 of the character's buffer may hold a routine address; pick up the MSB in A | ||
27159 | LD A,(HL) | |||
27160 | LD L,98 | |||
27162 | AND A | Is there an uninterruptible subcommand routine address in bytes 111 and 112? | ||
27163 | JR NZ,27144 | Consider the next teacher or main kid if so | ||
27165 | LD A,H | A=number of the character in the same location as the little boy | ||
27166 | CP 172 | Is it ERIC? | ||
27168 | JR Z,27184 | Jump if so | ||
27170 | LD L,111 | Place the address of the uninterruptible subcommand routine at 27206 into bytes 111 and 112 of the teacher's or main kid's buffer | ||
27172 | LD (HL),70 | |||
27174 | INC L | |||
27175 | LD (HL),106 | |||
27177 | INC L | Initialise the timing parameter in byte 113 of the character's buffer (which determines how long the character will stay down) | ||
27178 | LD (HL),20 | |||
27180 | LD L,98 | |||
27182 | JR 27144 | Consider the next teacher or main kid | ||
ERIC is in the same location as the little boy. Knock ERIC out.
|
||||
27184 | LD HL,32763 | 32763 holds ERIC's status flags | ||
27187 | SET 4,(HL) | Signal: ERIC has been knocked out | ||
27189 | EX DE,HL | |||
27190 | RET |
Prev: 27125 | Up: Map | Next: 27191 |