Prev: 46328 Up: Map Next: 46382
46346: Print Double Height Character
Used by the routine at PrintDoubleHeightText.
Prints a character with every pixel row drawn twice, so that it is two characters tall.
Input
A Character code (bit 7 is ignored)
HL Screen address
DE Pointer to the next character of the text
Output
DE Pointer to the following character of the text
HL Screen address of the next column
PrintDoubleHeightCharacter 46346 PUSH DE Save the pointer into the text.
46347 PUSH HL Save the screen address.
46348 LD DE,(38424) Fetch the address of the current character set.
46352 ADD A,A Multiply the character code by 8 (by doubling it and then multiplying it by four), ignoring bit 7.
46353 LD L,A
46354 LD H,0
46356 ADD HL,HL
46357 ADD HL,HL
46358 ADD HL,DE Add the address of the character set.
46359 EX DE,HL Point DE at the graphics of the character.
46360 POP HL Restore the screen address.
46361 PUSH HL Save it again.
46362 LD B,8 There are 8 pixel rows in a character.
PrintDoubleHeightCharacter_Row 46364 LD A,(DE) Fetch a pixel row of the character.
46365 LD (HL),A Write it to the screen.
46366 LD C,A Keep a copy.
46367 CALL NextPixelRow Move down to the next pixel row using NextPixelRow.
46370 LD (HL),C Write the pixel row again.
46371 CALL NextPixelRow Move down to the next pixel row.
46374 INC DE Move on to the next pixel row of the character.
46375 DJNZ PrintDoubleHeightCharacter_Row Loop back until the whole character has been printed.
46377 POP HL Restore the screen address.
46378 POP DE Restore the pointer into the text.
46379 INC DE Move on to the next character of the text.
46380 INC L Move on to the next column.
46381 RET Return.
Prev: 46328 Up: Map Next: 46382