Prev: 41504 Up: Map Next: 41578
41545: Copy 2 × 4 (characters) region from temporary storage into display file
Used by the routine at 39958.
41545 LD DE,23299 Load DE with start address of temporary storage area
The operand of the instruction at 41548 represents the x- and y-coordinates at which to copy the previously stored bitmap data into the display file. This is modified by the instruction at 41514.
41548 LD BC,0 Load B and C with the y- and x-coordinates to copy to, respectively
41551 LD A,4 Load A with 4 (as characters are 4 characters high)
41553 PUSH AF Store AF (A = remaining height in characters to copy)
41554 INC B Increase destination y-coordinate by one
41555 PUSH BC Store BC (B = current y-coordinate, C = current x-coordinate)
41556 CALL 63203 Move virtual cursor (bitmap) to display file address for coordinates x=C, y=B and load address into HL
41559 LD B,8 Load B with 8 (as there are eight pixel rows per character)
41561 LD A,(DE) Copy byte from temporary storage area starting at 23299...
41562 LD (HL),A ...to current location in display file
41563 INC HL Advance right one character in display file
41564 INC DE Advance to next byte in temporary storage area
41565 LD A,(DE) Copy byte from temporary storage area starting at 23299...
41566 LD (HL),A ...to current location in display file
41567 INC DE Advance to next byte in temporary storage area
41568 DEC HL Move left one character...
41569 INC H ...and down one pixel in display file
41570 DJNZ 41561 Decrease B (remaining number of pixel rows) and loop back to 41561 if not zero
41572 POP BC Restore BC (B = current y-coordinate, C = current x-coordinate)
41573 POP AF Restore AF (A = remaining height in characters to copy)
41574 DEC A Decrease remaining height to copy...
41575 JR NZ,41553 ...and loop back to 41553 if not zero
41577 RET Return
Prev: 41504 Up: Map Next: 41578