Add screen(), memory mapped frame buffer
diff --git a/gui.c b/gui.c
index a03d948..cfaa097 100644
--- a/gui.c
+++ b/gui.c
@@ -15,6 +15,7 @@
 #define NK_SDL_GL3_IMPLEMENTATION
 #include "nuklear/nuklear.h"
 #include "nuklear/demo/sdl_opengl3/nuklear_sdl_gl3.h"
+#include "screen.h"
 
 #define WINDOW_WIDTH 720
 #define WINDOW_HEIGHT 640
@@ -45,8 +46,10 @@
 		.a = 255,
 	};
 
-	uint16_t disas_start = 0,
-		disas_end = 32;
+	uint16_t disas_start = 0x600,
+		disas_end = 0x600 + 32;
+
+	uint8_t screen_scale = 4;
 
 	SDL_SetHint(SDL_HINT_VIDEO_HIGHDPI_DISABLED, "0");
 	SDL_Init(SDL_INIT_VIDEO|SDL_INIT_TIMER|SDL_INIT_EVENTS);
@@ -95,7 +98,7 @@
 		if (!cpu->running)
 			cpu_running = false;
 
-		if (nk_begin(ctx, "Registers", nk_rect(50, 300, 400, 90),
+		if (nk_begin(ctx, "Registers", nk_rect(50, 300, 500, 90),
 			NK_WINDOW_BORDER|NK_WINDOW_MOVABLE|NK_WINDOW_SCALABLE|
 			NK_WINDOW_MINIMIZABLE|NK_WINDOW_TITLE))
 		{
@@ -107,7 +110,19 @@
 		}
 		nk_end(ctx);
 
-		if (nk_begin(ctx, "Disassembler", nk_rect(330, 50, 250, 200),
+		if (nk_begin(ctx, "Screen", nk_rect(50, 400, 150, 220),
+			NK_WINDOW_BORDER|NK_WINDOW_MOVABLE|NK_WINDOW_SCALABLE|
+			NK_WINDOW_MINIMIZABLE|NK_WINDOW_TITLE))
+		{
+			nk_layout_row_dynamic(ctx, 24, 1);
+			screen_scale = nk_propertyi(ctx, "Scale", 1, screen_scale, 8, 1, 1);
+			
+			nk_layout_row_static(ctx, screen_scale * 32, screen_scale * 32, 1);
+			screen(ctx, cpu->mem + CPU_FB_ADDR, screen_scale);
+		}
+		nk_end(ctx);
+
+		if (nk_begin(ctx, "Disassembler", nk_rect(330, 50, 300, 200),
 			NK_WINDOW_BORDER|NK_WINDOW_MOVABLE|NK_WINDOW_SCALABLE|
 			NK_WINDOW_MINIMIZABLE|NK_WINDOW_TITLE))
 		{