Prev: 27718 Up: Map Next: 27797
27752: Copy maze background tiles into a guard's buffer
Used by the routines at 25947 and 26276.
Input
HL Guard's new location
27752 PUSH BC Save BC.
27753 PUSH DE Save DE.
27754 PUSH HL Save the guard's location.
27755 LD BC,16384 Convert the guard's location into a display file address.
27758 ADD HL,BC
27759 CALL 27663 Set HL' to the corresponding attribute file address.
27762 LD DE,28095 Point DE at the first of the maze background tiles in the temporary guard buffer.
27765 CALL 27797 Copy the top-left maze background tile into the temporary guard buffer.
27768 CALL 27797 Copy the top-right maze background tile into the temporary guard buffer.
27771 EXX Exchange registers.
27772 LD BC,30 Point HL' at the bottom-left tile's attribute byte.
27775 ADD HL,BC
27776 EXX Exchange registers.
27777 LD A,L Point HL at the bottom-left tile in the display file.
27778 ADD A,30
27780 LD L,A
27781 JR NC,27787
27783 LD A,H
27784 ADD A,8
27786 LD H,A
27787 CALL 27797 Copy the bottom-left maze background tile into the temporary guard buffer.
27790 CALL 27797 Copy the bottom-right maze background tile into the temporary guard buffer.
27793 POP DE Restore the guard's location to DE.
27794 POP HL Restore the value in DE on entry to HL.
27795 POP BC Restore BC.
27796 RET
Prev: 27718 Up: Map Next: 27797