Prev: 0B60 Up: Map Next: 0EC9
0E60: init_mosaics: Initialize font data for contiguous and separated mosaic character sets.
Used by the routine at init_variables.
init_mosaics 0E60 LD HL,(mosaics_font_pointer) Load mosaics_font_pointer into HL.
0E63 LD B,$20 Set B to character code $20 and save on stack.
init_mosaics_0 0E65 PUSH BC
0E66 CALL generate_mosaics Call generate_mosaics to generate contiguous mosaic font data.
0E69 POP BC Get character code back off stack and increment it.
0E6A INC B
0E6B LD A,B Loop through all characters less than $40.
0E6C CP $40
0E6E JR NZ,init_mosaics_0
0E70 LD DE,(contiguous_blast_through) Load address of font data for blast through alphanumerics in contiguous mosaics into DE and call copy_blast_through to copy the font data from ROM.
0E74 CALL copy_blast_through
0E77 LD DE,(separated_blast_through) Load address of font data for blast through alphanumerics in separated mosaics into DE and call copy_blast_through to copy the font data from ROM.
0E7B CALL copy_blast_through
0E7E LD HL,(mosaics_font_pointer) Load address of font data for contiguous mosaics character $60 into HL.
0E81 INC H
0E82 INC H
0E83 LD B,$60 Set B to character code $60 and save on stack.
init_mosaics_1 0E85 PUSH BC
0E86 CALL generate_mosaics Call generate_mosaics to generate contiguous mosaic font data.
0E89 POP BC Get character code back off stack and increment it.
0E8A INC B
0E8B LD A,B Loop through all remaining character codes.
0E8C CP $80
0E8E JR NZ,init_mosaics_1
0E90 LD HL,(mosaics_font_pointer) Load mosaics_font_pointer into HL.
0E93 LD D,H Load mosaics_font_pointer + $0300 into DE (address of separated mosaics font data).
0E94 LD E,L
0E95 INC D
0E96 INC D
0E97 INC D
0E98 CALL $0F06 Call 0F06 to copy 32 contiguous mosaic characters with columns separated.
0E9B LD HL,(mosaics_font_pointer) Load mosaics_font_pointer + $0200 into HL (font data for contiguous mosaic $60).
0E9E INC H
0E9F INC H
0EA0 LD DE,(mosaics_font_pointer) Load mosaics_font_pointer + $0500 into HL (font data for separated mosaic $60).
0EA4 LD A,D
0EA5 ADD A,$05
0EA7 LD D,A
0EA8 CALL $0F06 Call 0F06 to copy 32 contiguous mosaic characters with columns separated.
0EAB LD HL,(mosaics_font_pointer) Load mosaics_font_pointer + $0300 into HL (address of separated mosaics font data).
0EAE INC H
0EAF INC H
0EB0 INC H
0EB1 XOR A Set A to 0.
0EB2 LD B,$02 Set B to 2 as outer loop counter and save it on the stack.
init_mosaics_2 0EB4 PUSH BC
0EB5 LD B,$20 Set B to 32 as inner loop counter.
init_mosaics_3 0EB7 INC HL Clear pixels in row 2 of character data.
0EB8 INC HL
0EB9 LD (HL),A
0EBA INC HL Clear pixels in row 4 of character data.
0EBB INC HL
0EBC LD (HL),A
0EBD INC HL Clear pixels in row 7 of character data.
0EBE INC HL
0EBF INC HL
0EC0 LD (HL),A
0EC1 INC HL Loop back to init_mosaics_3 with address of next character in HL for 32 characters.
0EC2 DJNZ init_mosaics_3
0EC4 INC H Increment H to move to address of font data for separated mosaics character $60.
0EC5 POP BC Restore the outer loop counter and loop back to init_mosaics_2 once, then return.
0EC6 DJNZ init_mosaics_2
0EC8 RET
Prev: 0B60 Up: Map Next: 0EC9