Prev: 43716 Up: Map Next: 43784
43751: Print Right Half Of Character
Used by the routine at PrintLargeText.
Draws the right half of four rows of a character in double size, in the same way as PrintLeftHalfOfCharacter does for the left half, and then moves down to the cell below on the left.
Input
DE The address of the pixels of the character
HL The screen address
Output
DE The address of the pixels of the next four rows
HL The screen address of the cell below on the left
Swap the pixels and the screen address.
PrintRightHalfOfCharacter 43751 PUSH HL Stash the screen address on the stack.
43752 EX DE,HL Swap the pixels into HL and the screen address into DE.
43753 LD B,4 Set the number of rows to four.
Widen the right four pixels of each row.
PrintRightHalf_Loop 43755 LD A,(HL) Fetch a row of pixels.
43756 INC HL Move on to the next row.
43757 AND %00001111 Keep the right four pixels.
43759 PUSH HL Stash the address of the pixels on the stack.
43760 LD HL,43784 Point HL at WidenedPixels.
43763 CALL AddAToHL Point HL at the entry for the four pixels.
43766 LD A,(HL) Fetch the widened pixels.
43767 LD (DE),A Write them to the screen.
43768 INC D Move down a pixel row.
43769 LD (DE),A Write them again.
43770 INC D Move down a pixel row.
43771 POP HL Retrieve the address of the pixels.
43772 DJNZ PrintRightHalf_Loop Loop back until four rows have been drawn.
Colour the cell and move down on the left.
43774 EX DE,HL Swap the screen address back into HL and the pixels into DE.
43775 POP HL Retrieve the screen address.
43776 CALL SetTileAttribute Set the attribute of the cell.
43779 CALL MoveDownRow Move down to the next row of cells.
43782 DEC L Move back to the left.
43783 RET Return.
Prev: 43716 Up: Map Next: 43784