Prev: B761 Up: Map Next: B7A0
B77A: Copy Floating Hand To Dartboard
Used by the routine at 9D42.
CopyFloatingHandToDartboard B77A LD DE,($9AC3) DE=*FloatingHandCoordinates.
B77E LD B,$08 B=08.
CopyFloatingHandToDartboard_0 B780 LD A,D Jump to CopyFloatingHandToDartboard_1 if D is less than 00.
B781 CP $00
B783 JR C,CopyFloatingHandToDartboard_1
B785 CP $18 Jump to CopyFloatingHandToDartboard_1 if D is greater than or equal to 18.
B787 JR NC,CopyFloatingHandToDartboard_1
B789 PUSH BC Stash BC, DE and DE on the stack.
B78A PUSH DE
B78B PUSH DE
B78C LD A,E A=E.
B78D EX AF,AF' Exchange the AF register with the shadow AF register.
On return from CalculateScreenBuffer HL will contain the screen buffer destination.
B78E CALL CalculateScreenBuffer Call CalculateScreenBuffer.
B791 POP DE Restore DE from the stack.
B792 PUSH HL Stash HL on the stack.
B793 CALL CalculateDartBoardAddress Call CalculateDartBoardAddress.
B796 POP DE Restore DE from the stack.
B797 CALL $B7A0 Call B7A0.
B79A POP DE Restore DE and BC from the stack.
B79B POP BC
CopyFloatingHandToDartboard_1 B79C INC D Increment D by one.
B79D DJNZ CopyFloatingHandToDartboard_0 Decrease counter by one and loop back to CopyFloatingHandToDartboard_0 until counter is zero.
B79F RET Return.
Prev: B761 Up: Map Next: B7A0