![]() |
Routines |
| Prev: A0B1 | Up: Map | Next: A115 |
|
Prints one character of text at double width, using the table at 5C84 to double each nibble of the glyph into a byte. The character takes two cells across and two cells high of attributes.
|
||||||||||||||||||||||
| PrintWideCharacter | A0DB | LD A,$07 | Set the number of rows to seven. | |||||||||||||||||||
| A0DD | LD B,$5C | Use the table of doubled nibbles. | ||||||||||||||||||||
| PrintWideCharacter_Row | A0DF | EX AF,AF' | Save the number of rows. | |||||||||||||||||||
| A0E0 | LD A,(DE) | Fetch a row of the glyph. | ||||||||||||||||||||
| A0E1 | SRL A | Move the top nibble to the bottom. | ||||||||||||||||||||
| A0E3 | SRL A | |||||||||||||||||||||
| A0E5 | SRL A | |||||||||||||||||||||
| A0E7 | SRL A | |||||||||||||||||||||
| A0E9 | ADD A,$84 | Add the offset of the table to the nibble. | ||||||||||||||||||||
| A0EB | LD C,A | Put it in C. | ||||||||||||||||||||
| A0EC | LD A,(BC) | Fetch the doubled nibble. | ||||||||||||||||||||
| A0ED | LD (HL),A | Draw it on the left. | ||||||||||||||||||||
| A0EE | DEC H | Move up a pixel row. | ||||||||||||||||||||
| A0EF | LD (HL),A | Draw it again. | ||||||||||||||||||||
| A0F0 | INC H | Move back down. | ||||||||||||||||||||
| A0F1 | INC HL | Move on to the right cell. | ||||||||||||||||||||
| A0F2 | LD A,(DE) | Fetch the row of the glyph again. | ||||||||||||||||||||
| A0F3 | AND %00001111 | Keep the bottom nibble. | ||||||||||||||||||||
| A0F5 | ADD A,$84 | Add the offset of the table. | ||||||||||||||||||||
| A0F7 | LD C,A | Put it in C. | ||||||||||||||||||||
| A0F8 | LD A,(BC) | Fetch the doubled nibble. | ||||||||||||||||||||
| A0F9 | LD (HL),A | Draw it on the right. | ||||||||||||||||||||
| A0FA | DEC H | Move up a pixel row. | ||||||||||||||||||||
| A0FB | LD (HL),A | Draw it again. | ||||||||||||||||||||
| A0FC | DEC HL | Move back to the left cell. | ||||||||||||||||||||
| A0FD | INC DE | Move on to the next row of the glyph. | ||||||||||||||||||||
| A0FE | CALL MoveUpARow | Move up a row of the screen. | ||||||||||||||||||||
| A101 | EX AF,AF' | Restore the number of rows. | ||||||||||||||||||||
| A102 | DEC A | Decrease it. | ||||||||||||||||||||
| A103 | JR NZ,PrintWideCharacter_Row | Loop back to PrintWideCharacter_Row for each row. | ||||||||||||||||||||
| A105 | EXX | Switch to the attribute registers. | ||||||||||||||||||||
| A106 | LD (HL),B | Set the attribute of the cell at the left. | ||||||||||||||||||||
| A107 | SBC HL,DE | Move up to the attribute cell above. | ||||||||||||||||||||
| A109 | LD (HL),B | Set its attribute. | ||||||||||||||||||||
| A10A | INC HL | Move on to the right. | ||||||||||||||||||||
| A10B | LD (HL),B | Set the attribute of the cell above on the right. | ||||||||||||||||||||
| A10C | ADD HL,DE | Move back down. | ||||||||||||||||||||
| A10D | LD (HL),B | Set the attribute of the cell on the right. | ||||||||||||||||||||
| A10E | INC HL | Move on to the next cell. | ||||||||||||||||||||
| A10F | EXX | Switch back to the screen registers. | ||||||||||||||||||||
| A110 | POP HL | Restore the screen address. | ||||||||||||||||||||
| A111 | INC HL | Move on two cells. | ||||||||||||||||||||
| A112 | INC HL | |||||||||||||||||||||
| A113 | POP DE | Restore the address of the character code. | ||||||||||||||||||||
| A114 | RET | Return. | ||||||||||||||||||||
| Prev: A0B1 | Up: Map | Next: A115 |