aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--memsetup.asm5
-rw-r--r--src/screen.c8
2 files changed, 9 insertions, 4 deletions
diff --git a/memsetup.asm b/memsetup.asm
index 3fe19d1..314a7df 100644
--- a/memsetup.asm
+++ b/memsetup.asm
@@ -5,6 +5,11 @@ memsetup
sta $02e6 ; MEMTOP high
lda #0
sta $02e5 ; MEMTOP low
+ sta $022f ; SDMCTL (turn off screen)
+ lda $14 ; RTCLOK+2
+loop
+ cmp $14 ; wait until next frame
+ beq loop
rts
*= $02e2 ; INITAD
diff --git a/src/screen.c b/src/screen.c
index 252d39d..8fd2309 100644
--- a/src/screen.c
+++ b/src/screen.c
@@ -39,10 +39,10 @@ static void scr_scroll(char s) {
}
void scr_init(void) {
- int i, old_dma;
+ int i;
+
+ OS.sdmctl = 0; /* disappear the screen */
- old_dma = OS.sdmctl;
- OS.sdmctl = 0;
scr_waitvcount(112); /* after the last GR.0 line */
*SDLST = DLIST_BOT_ADDR;
OS.chbas = FONT_ADDR_HI;
@@ -56,7 +56,7 @@ void scr_init(void) {
strcpy(scr_names[1], "[private]");
scr_status[0] = scr_status[1] = SCR_INACTIVE;
- OS.sdmctl = old_dma;
+ OS.sdmctl = 0x22; /* show the screen again */
scr_display(0);
}