![]() |
Routines |
| Prev: C3A4 | Up: Map | Next: C3FF |
|
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.
|
||||||||
| 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 |