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 |