Routines |
Prev: 37543 | Up: Map | Next: 37637 |
Used by the routine at ProcessRevealLine.
|
||||||||
CopyRevealLine | 37602 | PUSH DE | Stash the screen position on the stack. | |||||
On return from CalculateDartBoardAddress HL will contain the dart board graphic destination (i.e. DartBoard onwards).
|
||||||||
37603 | CALL CalculateDartBoardAddress | Call CalculateDartBoardAddress. | ||||||
Set up the source and destination addresses.
|
||||||||
37606 | LD D,H | Copy the dart board graphic location from HL into DE. | ||||||
37607 | LD E,L | |||||||
37608 | LD A,H | H-=32. | ||||||
37609 | SUB 32 | |||||||
37611 | LD H,A | |||||||
Copy 8 pixel rows that make up one character cell of the dartboard.
|
||||||||
37612 | LD B,8 | Set a counter in B for the number of pixels rows to process. | ||||||
CopyRevealLine_Loop | 37614 | LD A,(DE) | Copy a byte of the dartboard graphic to the screen buffer. | |||||
37615 | LD (HL),A | |||||||
37616 | INC H | Move to the next screen line. | ||||||
37617 | INC D | Move to the next dartboard graphic line. | ||||||
37618 | DJNZ CopyRevealLine_Loop | Decrease counter by one and loop back to CopyRevealLine_Loop until counter is zero. | ||||||
Work out which attribute byte to apply.
|
||||||||
37620 | POP HL | Restore the screen position from the stack. | ||||||
37621 | LD A,L | Is the co-ordinate in the menu or dartboard area? | ||||||
37622 | CP 8 | |||||||
Default with the dartboard attribute value.
|
||||||||
37624 | LD A,112 | A=INK: BLACK, PAPER: YELLOW (BRIGHT) . | ||||||
37626 | JR NC,RevealLine_SetAttribute | Jump to RevealLine_SetAttribute if the X co-ordinate is greater than or equal to 8. | ||||||
The X co-ordinate was less than 8 so use the menu attribute value.
|
||||||||
37628 | LD A,71 | A=INK: WHITE, PAPER: BLACK (BRIGHT) . | ||||||
RevealLine_SetAttribute | 37630 | EX AF,AF' | Temporarily switch the AF register with the shadow AF register. | |||||
On return from CalculateAttributeBuffer HL will contain the attribute buffer location.
|
||||||||
37631 | CALL CalculateAttributeBuffer | Call CalculateAttributeBuffer. | ||||||
37634 | EX AF,AF' | Restore the AF register from the shadow AF register. | ||||||
37635 | LD (HL),A | Write the colour attribute byte to *HL. | ||||||
37636 | RET | Return. |
Prev: 37543 | Up: Map | Next: 37637 |