Routines |
Prev: 94D2 | Up: Map | Next: 9534 |
Used by the routine at 89AD.
|
||||
94F9 | LD HL,($80D7) | Pick up the address of the conveyor's location in the attribute buffer at 5E00 from 80D7 | ||
94FC | LD A,H | Point DE and HL at the location of the left end of the conveyor in the screen buffer at 7000 | ||
94FD | AND $01 | |||
94FF | RLCA | |||
9500 | RLCA | |||
9501 | RLCA | |||
9502 | ADD A,$70 | |||
9504 | LD H,A | |||
9505 | LD E,L | |||
9506 | LD D,H | |||
9507 | LD A,($80D9) | Pick up the length of the conveyor from 80D9 | ||
950A | OR A | Is there a conveyor in the room? | ||
950B | RET Z | Return if not | ||
950C | LD B,A | B will count the conveyor tiles | ||
950D | LD A,($80D6) | Pick up the direction of the conveyor from 80D6 (0=left, 1=right) | ||
9510 | OR A | Is the conveyor moving right? | ||
9511 | JR NZ,$9526 | Jump if so | ||
The conveyor is moving left.
|
||||
9513 | LD A,(HL) | Copy the first pixel row of the conveyor tile to A | ||
9514 | RLC A | Rotate it left twice | ||
9516 | RLC A | |||
9518 | INC H | Point HL at the third pixel row of the conveyor tile | ||
9519 | INC H | |||
951A | LD C,(HL) | Copy this pixel row to C | ||
951B | RRC C | Rotate it right twice | ||
951D | RRC C | |||
951F | LD (DE),A | Update the first and third pixel rows of every conveyor tile in the screen buffer at 7000 | ||
9520 | LD (HL),C | |||
9521 | INC L | |||
9522 | INC E | |||
9523 | DJNZ $951F | |||
9525 | RET | |||
The conveyor is moving right.
|
||||
9526 | LD A,(HL) | Copy the first pixel row of the conveyor tile to A | ||
9527 | RRC A | Rotate it right twice | ||
9529 | RRC A | |||
952B | INC H | Point HL at the third pixel row of the conveyor tile | ||
952C | INC H | |||
952D | LD C,(HL) | Copy this pixel row to C | ||
952E | RLC C | Rotate it left twice | ||
9530 | RLC C | |||
9532 | JR $951F | Jump back to update the first and third pixel rows of every conveyor tile |
Prev: 94D2 | Up: Map | Next: 9534 |