![]() |
Routines |
| Prev: A6CC | Up: Map | Next: A714 |
|
Used by the routine at Handler_FloatingHand.
|
||||
| CopyFloatingHandToScreen | A6E6 | LD DE,($9AC3) | DE=*FloatingHandCoordinates. | |
| A6EA | DEC D | Adjust the Y position. | ||
| A6EB | LD HL,$7800 | HL=7800. | ||
| A6EE | LD B,$0A | Set a counter in B of 0A for the height of the graphic. | ||
| CopyFloatingHandToScreen_Loop | A6F0 | PUSH BC | Stash the height counter, buffer pointer and co-ordinates on the stack. | |
| A6F1 | PUSH HL | |||
| A6F2 | PUSH DE | |||
|
Check if this line is within the screen boundaries.
|
||||
| A6F3 | LD A,D | Jump to CopyFloatingHandToScreen_1 if the Y position is less than 00 or greater than/ equal to 18. | ||
| A6F4 | CP $00 | |||
| A6F6 | JR C,CopyFloatingHandToScreen_1 | |||
| A6F8 | CP $18 | |||
| A6FA | JR NC,CopyFloatingHandToScreen_1 | |||
| A6FC | LD A,E | Compare E with 19. | ||
| A6FD | CP $19 | |||
| A6FF | LD A,$08 | A=08. | ||
| A701 | JR C,CopyFloatingHandToScreen_0 | Jump to CopyFloatingHandToScreen_0 if E is less than 19. | ||
| A703 | LD A,$21 | A=21. | ||
| A705 | SUB E | A-=E. | ||
| CopyFloatingHandToScreen_0 | A706 | CALL DrawFloatingHand | Call DrawFloatingHand. | |
| CopyFloatingHandToScreen_1 | A709 | POP DE | Restore DE and HL from the stack. | |
| A70A | POP HL | |||
| A70B | LD BC,$0040 | HL+=0040. | ||
| A70E | ADD HL,BC | |||
| A70F | INC D | Increment D by one. | ||
| A710 | POP BC | Restore BC from the stack. | ||
| A711 | DJNZ CopyFloatingHandToScreen_Loop | Decrease counter by one and loop back to CopyFloatingHandToScreen_Loop until counter is zero. | ||
| A713 | RET | Return. | ||
| Prev: A6CC | Up: Map | Next: A714 |