Prev: 07C5 Up: Map Next: 07F2
07D3: print_column_1: Write character data at column that is 1 greater than a multiple of 4.
Used by the routines at print_double_column_1 and print_normal.
Input
DE holds address of character font bitmap.
HL holds screen address to print character at.
B holds the number or pixel rows to write.
print_column_1 07D3 LD A,(DE) Load byte of font data into A.
07D4 RRCA Rotate character bitmap 4 bits to the right.
07D5 RRCA
07D6 RRCA
07D7 RRCA
07D8 AND $03 Add rightmost 2 bit to the leftmost 6 bits of existing screen byte (previous character column).
07DA LD C,A
07DB LD A,(HL)
07DC AND $FC
07DE ADD A,C
07DF LD (HL),A Write result to the screen and increment HL to move to next screen byte.
07E0 INC HL
07E1 LD A,(DE) Reload byte of font data into A.
07E2 ADD A,A Shift bitmap left 4 bits.
07E3 ADD A,A
07E4 ADD A,A
07E5 ADD A,A
07E6 LD C,A Add rightmost 4 bits of existing screen byte (part of next character column).
07E7 LD A,(HL)
07E8 AND $0F
07EA ADD A,C
07EB LD (HL),A Write result to the screen.
07EC INC H Increment H to move to next pixel row of screen bitmap.
07ED DEC HL Increment DE to move to next pixel row of font data.
07EE INC DE
07EF DJNZ print_column_1 Loop back to print_column_1 for number of iterations in B and return.
07F1 RET
Prev: 07C5 Up: Map Next: 07F2