Prev: C3A4 Up: Map Next: C3FF
C3C3: Draw the sun and moon window
Used by the routine at inc_days.
Builds the window in the screen buffer and copies it to the screen: a patch 48 pixels wide and 31 high in the bottom right corner, cleared, the sun or moon drawn at its current position, and the two halves of the window frame (types 90 and 186) drawn over it using the scratch record at sprite_scratchpad. Because the frame is drawn last, the sun or moon rises from behind its left side and sets behind its right.
Input
IX sun_moon_scratchpad
display_frame C3C3 LD BC,$1F06 clear 6 bytes by 31 rows of the buffer, from column 23 of the bottom row
C3C6 LD HL,$D90A
C3C9 PUSH BC
C3CA PUSH HL
C3CB LD A,C
C3CC LD C,B
C3CD LD B,A
C3CE XOR A
C3CF CALL fill_window
C3D2 CALL print_sprite the sun or moon
C3D5 LD IX,sprite_scratchpad the frame's left half, type 90, at pixel (184, 0)
C3D9 LD (IX+$07),$00
C3DD LD (IX+$00),$5A
C3E1 LD (IX+$1A),$B8
C3E5 LD (IX+$1B),$00
C3E9 CALL print_sprite
C3EC LD (IX+$1A),$D0 and its right half, type 186, at (208, 0)
C3F0 LD (IX+$00),$BA
C3F4 CALL print_sprite
C3F7 POP HL copy the 31 rows to the screen, upwards from the bottom line
C3F8 POP BC
C3F9 LD DE,$57F7
C3FC JP blit_to_screen
Prev: C3A4 Up: Map Next: C3FF