Prev: 933F Up: Map Next: 94AF
944E: Main Menu: Colour Dart Pointer
Used by the routine at MainMenu.
dart-pointer-colour
MainMenu_ColourDartPointer 944E LD A,($99F6) Fetch *DartPointer_Position and store it in A.
9451 ADD A,A Double the value as the entries have spacing between them.
9452 ADD A,$05 Add 05 as the entries start five rows from the top of the screen.
9454 LD H,A Store the result in H as the Y co-ordinate.
9455 LD L,$01 Store 01 in L as the X co-ordinate.
This entry point is used by the routine at MainMenu.
MainMenu_ColourDartPointer_0 9457 LD A,L Return if L is greater than 20.
9458 CP $20
945A RET NC
945B PUSH HL Stash the dart attribute co-ordinates on the stack.
First colour the flight.
Convert the co-ordinates to an actual attribute buffer memory location.
945C CALL CalculateAttributeBuffer Call CalculateAttributeBuffer.
945F LD B,$45 Set the flight colour of INK: CYAN, PAPER: BLACK (BRIGHT) in B.
9461 LD DE,$0020 Set one row length of 0020 in DE.
9464 LD (HL),B Write INK: CYAN, PAPER: BLACK (BRIGHT) to the attribute buffer pointer.
9465 ADD HL,DE Move down one row.
9466 LD (HL),B Write INK: CYAN, PAPER: BLACK (BRIGHT) to the attribute buffer pointer.
9467 POP HL Restore the dart attribute co-ordinates from the stack.
9468 INC L Move right one character block.
9469 LD A,L Return if L is greater than 20.
946A CP $20
946C RET NC
946D PUSH HL Stash the dart attribute co-ordinates on the stack.
Now the shaft.
Again, convert the co-ordinates to an actual attribute buffer memory location.
946E CALL CalculateAttributeBuffer Call CalculateAttributeBuffer.
9471 LD B,$45 Set the shaft colour of INK: CYAN, PAPER: BLACK (BRIGHT) in B.
9473 LD DE,$0020 Set one row length of 0020 in DE.
9476 LD (HL),B Write INK: CYAN, PAPER: BLACK (BRIGHT) to the attribute buffer pointer.
9477 ADD HL,DE Move down one row.
9478 LD (HL),B Write INK: CYAN, PAPER: BLACK (BRIGHT) to the attribute buffer pointer.
9479 POP HL Restore the dart attribute co-ordinates from the stack.
947A INC L Move right one character block.
947B LD A,L Return if L is greater than 20.
947C CP $20
947E RET NC
947F PUSH HL Stash the dart attribute co-ordinates on the stack.
Move onto the barrel.
Convert the co-ordinates to an actual attribute buffer memory location.
9480 CALL CalculateAttributeBuffer Call CalculateAttributeBuffer.
9483 LD B,$46 Set the barrel colour of INK: YELLOW, PAPER: BLACK (BRIGHT) in B.
9485 LD DE,$0020 Set one row length of 0020 in DE.
9488 LD (HL),B Write INK: YELLOW, PAPER: BLACK (BRIGHT) to the attribute buffer pointer.
9489 ADD HL,DE Move down one row.
948A LD (HL),B Write INK: YELLOW, PAPER: BLACK (BRIGHT) to the attribute buffer pointer.
948B POP HL Restore the dart attribute co-ordinates from the stack.
948C INC L Move right one character block.
948D LD A,L Return if L is greater than 20.
948E CP $20
9490 RET NC
9491 PUSH HL Stash the dart attribute co-ordinates on the stack.
Continue on with the barrel.
Convert the co-ordinates to an actual attribute buffer memory location.
9492 CALL CalculateAttributeBuffer Call CalculateAttributeBuffer.
9495 LD B,$46 Set the barrel colour of INK: YELLOW, PAPER: BLACK (BRIGHT) in B.
9497 LD DE,$0020 Set one row length of 0020 in DE.
949A LD (HL),B Write INK: YELLOW, PAPER: BLACK (BRIGHT) to the attribute buffer pointer.
949B ADD HL,DE Move down one row.
949C LD (HL),B Write INK: YELLOW, PAPER: BLACK (BRIGHT) to the attribute buffer pointer.
949D POP HL Restore the dart attribute co-ordinates from the stack.
949E INC L Move right one character block.
949F LD A,L Return if L is greater than 20.
94A0 CP $20
94A2 RET NC
Lastly, colour the point.
Convert the co-ordinates to an actual attribute buffer memory location.
94A3 CALL CalculateAttributeBuffer Call CalculateAttributeBuffer.
94A6 LD B,$47 Set the barrel colour of INK: WHITE, PAPER: BLACK (BRIGHT) in B.
94A8 LD DE,$0020 Set one row length of 0020 in DE.
94AB LD (HL),B Write INK: WHITE, PAPER: BLACK (BRIGHT) to the attribute buffer pointer.
94AC ADD HL,DE Move down one row.
94AD LD (HL),B Write INK: WHITE, PAPER: BLACK (BRIGHT) to the attribute buffer pointer.
94AE RET Return.
Prev: 933F Up: Map Next: 94AF