Prev: 37602 Up: Map Next: 37695
37637: Main Menu: Print Dart Pointer
Used by the routine at MainMenu.
Input
DE The co-ordinates of the dart
MainMenu_PrintDartPointer 37637 LD A,E Return if E is greater than 32.
37638 CP 32
37640 RET NC
37641 PUSH DE Stash DE on the stack.
On return from CalculateScreenBuffer HL will contain the screen buffer destination.
37642 CALL CalculateScreenBuffer Call CalculateScreenBuffer.
37645 POP DE Restore DE from the stack.
37646 LD A,32 A=32.
37648 SUB E A-=E.
37649 CP 6 Jump to MainMenu_PrintDartPointer_0 if A is greater than or equal to 6.
37651 JR NC,MainMenu_PrintDartPointer_0
37653 JR MainMenu_PrintDartPointer_1 Jump to MainMenu_PrintDartPointer_1.
MainMenu_PrintDartPointer_0 37655 LD A,6 A=6.
MainMenu_PrintDartPointer_1 37657 LD DE,44915 DE=Graphics_DartPointer.
37660 LD B,11 B=11.
MainMenu_PrintDartPointer_2 37662 PUSH BC Stash BC and HL on the stack.
37663 PUSH HL
37664 EX DE,HL Exchange the DE and HL registers.
37665 LD B,0 B=0.
37667 LD C,A C=A.
37668 LDIR LDIR.
37670 CP 6 Jump to MainMenu_PrintDartPointer_3 if A is equal to 6.
37672 JR Z,MainMenu_PrintDartPointer_3
37674 PUSH AF Stash AF on the stack.
37675 LD C,A C=A.
37676 LD A,6 A=6.
37678 SUB C A-=C.
37679 LD B,0 B=0.
37681 LD C,A C=A.
37682 POP AF Restore AF from the stack.
37683 ADD HL,BC HL+=BC.
MainMenu_PrintDartPointer_3 37684 EX DE,HL Exchange the DE and HL registers.
37685 POP HL Restore HL from the stack.
37686 EX AF,AF' Exchange the AF register with the shadow AF register.
37687 CALL NextScreenBufferLine Call NextScreenBufferLine.
37690 EX AF,AF' Exchange the shadow AF register with the AF register.
37691 POP BC Restore BC from the stack.
37692 DJNZ MainMenu_PrintDartPointer_2 Decrease counter by one and loop back to MainMenu_PrintDartPointer_2 until counter is zero.
37694 RET Return.
Prev: 37602 Up: Map Next: 37695