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 