diff --git a/nemu/src/device/vga.c b/nemu/src/device/vga.c index 7b9c26d..44313aa 100644 --- a/nemu/src/device/vga.c +++ b/nemu/src/device/vga.c @@ -33,7 +33,6 @@ static uint32_t screen_size() { static void *vmem = NULL; static uint32_t *vgactl_port_base = NULL; -static uint32_t *sync_reg = NULL; #ifdef CONFIG_VGA_SHOW_SCREEN #ifndef CONFIG_TARGET_AM @@ -75,10 +74,10 @@ static inline void update_screen() { void vga_update_screen() { // TODO: call `update_screen()` when the sync register is non-zero, // then zero out the sync register - if (*sync_reg != 0) { - printf("Update Screen\n"); + if (vgactl_port_base[1] != 0) { + // printf("Update Screen\n"); update_screen(); - *sync_reg = 0; + vgactl_port_base[1] = 0; } } @@ -91,9 +90,6 @@ void init_vga() { add_mmio_map("vgactl", CONFIG_VGA_CTL_MMIO, vgactl_port_base, 8, NULL); #endif - sync_reg = (uint32_t*)new_space(8); - add_mmio_map("sync", CONFIG_VGA_CTL_MMIO + 8, sync_reg, 8, NULL); - vmem = new_space(screen_size()); add_mmio_map("vmem", CONFIG_FB_ADDR, vmem, screen_size(), NULL); IFDEF(CONFIG_VGA_SHOW_SCREEN, init_screen());