Prev: 42700 Up: Map Next: 42772
42726: Copy Floating Hand To Screen
Used by the routine at Handler_FloatingHand.
CopyFloatingHandToScreen 42726 LD DE,(39619) DE=*FloatingHandCoordinates.
42730 DEC D Adjust the Y position.
42731 LD HL,30720 HL=30720.
42734 LD B,10 Set a counter in B of 10 for the height of the graphic.
CopyFloatingHandToScreen_Loop 42736 PUSH BC Stash the height counter, buffer pointer and co-ordinates on the stack.
42737 PUSH HL
42738 PUSH DE
Check if this line is within the screen boundaries.
42739 LD A,D Jump to CopyFloatingHandToScreen_1 if the Y position is less than 0 or greater than/ equal to 24.
42740 CP 0
42742 JR C,CopyFloatingHandToScreen_1
42744 CP 24
42746 JR NC,CopyFloatingHandToScreen_1
42748 LD A,E Compare E with 25.
42749 CP 25
42751 LD A,8 A=8.
42753 JR C,CopyFloatingHandToScreen_0 Jump to CopyFloatingHandToScreen_0 if E is less than 25.
42755 LD A,33 A=33.
42757 SUB E A-=E.
CopyFloatingHandToScreen_0 42758 CALL DrawFloatingHand Call DrawFloatingHand.
CopyFloatingHandToScreen_1 42761 POP DE Restore DE and HL from the stack.
42762 POP HL
42763 LD BC,64 HL+=0064.
42766 ADD HL,BC
42767 INC D Increment D by one.
42768 POP BC Restore BC from the stack.
42769 DJNZ CopyFloatingHandToScreen_Loop Decrease counter by one and loop back to CopyFloatingHandToScreen_Loop until counter is zero.
42771 RET Return.
Prev: 42700 Up: Map Next: 42772