![]() |
Routines |
| Prev: 38098 | Up: Map | Next: 38196 |
|
Used by the routine at 35245.
|
||||
| 38137 | LD HL,(32983) | Pick up the address of the conveyor's location in the attribute buffer at 24064 from 32983 | ||
| 38140 | LD A,H | Point DE and HL at the location of the left end of the conveyor in the screen buffer at 28672 | ||
| 38141 | AND 1 | |||
| 38143 | RLCA | |||
| 38144 | RLCA | |||
| 38145 | RLCA | |||
| 38146 | ADD A,112 | |||
| 38148 | LD H,A | |||
| 38149 | LD E,L | |||
| 38150 | LD D,H | |||
| 38151 | LD A,(32985) | Pick up the length of the conveyor from 32985 | ||
| 38154 | OR A | Is there a conveyor in the room? | ||
| 38155 | RET Z | Return if not | ||
| 38156 | LD B,A | B will count the conveyor tiles | ||
| 38157 | LD A,(32982) | Pick up the direction of the conveyor from 32982 (0=left, 1=right) | ||
| 38160 | OR A | Is the conveyor moving right? | ||
| 38161 | JR NZ,38182 | Jump if so | ||
|
The conveyor is moving left.
|
||||
| 38163 | LD A,(HL) | Copy the first pixel row of the conveyor tile to A | ||
| 38164 | RLC A | Rotate it left twice | ||
| 38166 | RLC A | |||
| 38168 | INC H | Point HL at the third pixel row of the conveyor tile | ||
| 38169 | INC H | |||
| 38170 | LD C,(HL) | Copy this pixel row to C | ||
| 38171 | RRC C | Rotate it right twice | ||
| 38173 | RRC C | |||
| 38175 | LD (DE),A | Update the first and third pixel rows of every conveyor tile in the screen buffer at 28672 | ||
| 38176 | LD (HL),C | |||
| 38177 | INC L | |||
| 38178 | INC E | |||
| 38179 | DJNZ 38175 | |||
| 38181 | RET | |||
|
The conveyor is moving right.
|
||||
| 38182 | LD A,(HL) | Copy the first pixel row of the conveyor tile to A | ||
| 38183 | RRC A | Rotate it right twice | ||
| 38185 | RRC A | |||
| 38187 | INC H | Point HL at the third pixel row of the conveyor tile | ||
| 38188 | INC H | |||
| 38189 | LD C,(HL) | Copy this pixel row to C | ||
| 38190 | RLC C | Rotate it left twice | ||
| 38192 | RLC C | |||
| 38194 | JR 38175 | Jump back to update the first and third pixel rows of every conveyor tile | ||
| Prev: 38098 | Up: Map | Next: 38196 |