![]() |
Routines |
| Prev: 90EA | Up: Map |
|
Used by the routine at 870E.
|
||||||||
| 9105 | LD HL,($8070) | Pick up the address of the conveyor's location in the screen buffer at 7000 from 8070 | ||||||
| 9108 | LD E,L | Copy this address to DE | ||||||
| 9109 | LD D,H | |||||||
| 910A | LD A,($8072) | Pick up the length of the conveyor from 8072 | ||||||
| 910D | LD B,A | B will count the conveyor tiles | ||||||
| 910E | LD A,($806F) | Pick up the direction of the conveyor from 806F | ||||||
| 9111 | OR A | Is the conveyor moving right? | ||||||
| 9112 | JR NZ,$9127 | Jump if so | ||||||
|
The conveyor is moving left.
|
||||||||
| 9114 | LD A,(HL) | Copy the first pixel row of the conveyor tile to A | ||||||
| 9115 | RLC A | Rotate it left twice | ||||||
| 9117 | RLC A | |||||||
| 9119 | INC H | Point HL at the third pixel row of the conveyor tile | ||||||
| 911A | INC H | |||||||
| 911B | LD C,(HL) | Copy this pixel row to C | ||||||
| 911C | RRC C | Rotate it right twice | ||||||
| 911E | RRC C | |||||||
| 9120 | LD (DE),A | Update the first and third pixel rows of every conveyor tile in the screen buffer at 7000 | ||||||
| 9121 | LD (HL),C | |||||||
| 9122 | INC L | |||||||
| 9123 | INC E | |||||||
| 9124 | DJNZ $9120 | |||||||
| 9126 | RET | |||||||
|
The conveyor is moving right.
|
||||||||
| 9127 | LD A,(HL) | Copy the first pixel row of the conveyor tile to A | ||||||
| 9128 | RRC A | Rotate it right twice | ||||||
| 912A | RRC A | |||||||
| 912C | INC H | Point HL at the third pixel row of the conveyor tile | ||||||
| 912D | INC H | |||||||
| 912E | LD C,(HL) | Copy this pixel row to C | ||||||
| 912F | RLC C | Rotate it left twice | ||||||
| 9131 | RLC C | |||||||
| 9133 | JR $9120 | Jump back to update the first and third pixel rows of every conveyor tile | ||||||
| Prev: 90EA | Up: Map |