![]() |
Routines |
| Prev: 56041 | Up: Map | Next: 56098 |
|
Used by the routine at PrintDoubleHeightCharacter.
|
||||||||||
| PrintHalfDoubleHeightTextCharacter | 56066 | PUSH HL | Stash HL and BC on the stack. | |||||||
| 56067 | PUSH BC | |||||||||
| 56068 | LD A,(28054) | Load StoredAttribute into A. | ||||||||
| 56071 | LD (HL),A | Write this to attribute buffer. | ||||||||
| 56072 | LD A,H | Multiply the most significant byte (MSB) of the attribute buffer address by 8 to put it on the same scale as the MSB of the display buffer address MSB (see notes). | ||||||||
| 56073 | ADD A,A | |||||||||
| 56074 | ADD A,A | |||||||||
| 56075 | ADD A,A | |||||||||
| 56076 | AND %01011011 | Drop the most significant bit to point to the correct location in the display buffer. | ||||||||
| 56078 | LD H,A | Load back into HL (L is unaffected, as it should be). | ||||||||
| 56079 | LD B,4 | Set B to 4 (loop counter). | ||||||||
| PrintHalfDoubleHeightTextCharacter_Loop | 56081 | LD A,(DE) | Load a byte from the graphic data into C. | |||||||
| 56082 | LD C,A | |||||||||
| 56083 | SRL C | Shift bitmap data left one pixel in C. | ||||||||
| 56085 | OR C | Merge this into bitmap data already in A to give a "bold" typeface appearance. | ||||||||
| 56086 | AND %01111111 | Drop the leftmost bit to prevent one character touching the next (space between letters). | ||||||||
| 56088 | LD (HL),A | Load the bitmap data into two consecutive rows to provide double-height (2 chars) text. | ||||||||
| 56089 | INC H | |||||||||
| 56090 | LD (HL),A | |||||||||
| 56091 | INC H | |||||||||
| 56092 | INC DE | Advance to next byte of graphic data. | ||||||||
| 56093 | DJNZ PrintHalfDoubleHeightTextCharacter_Loop | Loop back to PrintHalfDoubleHeightTextCharacter_Loop to repeat for next row of graphic data. | ||||||||
| 56095 | POP BC | Restore BC and HL from the stack. | ||||||||
| 56096 | POP HL | |||||||||
| 56097 | RET | Return. | ||||||||
| Prev: 56041 | Up: Map | Next: 56098 |