commit 6ce45b5

Devine Lu Linvega  ·  2024-12-18 16:16:49 +0000 UTC
parent a557be8
Save image.rom with F3
3 files changed,  +15, -2
+12, -0
 1@@ -58,6 +58,18 @@ system_inspect(void)
 2 	fprintf(stderr, "RST "), system_print(&uxn.rst);
 3 }
 4 
 5+void
 6+system_image(void)
 7+{
 8+	int i, len = 0;
 9+	FILE *f = fopen("image.rom", "wb");
10+	for(i = PAGE_PROGRAM; i < 0x10000; i++)
11+		if(uxn.ram[i])
12+			len = i;
13+	fwrite(uxn.ram + PAGE_PROGRAM, len - PAGE_PROGRAM + 1, 1, f), fclose(f);
14+	printf("Saved image.rom, %d bytes\n", len);
15+}
16+
17 int
18 system_error(char *msg, const char *err)
19 {
+1, -0
1@@ -13,6 +13,7 @@ WITH REGARD TO THIS SOFTWARE.
2 
3 void system_reboot(int soft);
4 void system_inspect(void);
5+void system_image(void);
6 int system_error(char *msg, const char *err);
7 int system_boot(Uint8 *ram, char *rom);
8 
+2, -2
 1@@ -143,7 +143,7 @@ emu_event(void)
 2 		switch(sym) {
 3 		case XK_F1: toggle_scale(); break;
 4 		case XK_F2: system_inspect(), uxn.dev[0x0e] = !uxn.dev[0x0e]; break;
 5-		case XK_F3: uxn.dev[0x0f] = 0xff; break;
 6+		case XK_F3: system_image(); break;
 7 		case XK_F4: emu_restart(0); break;
 8 		case XK_F5: emu_restart(1); break;
 9 		}
10@@ -261,7 +261,7 @@ main(int argc, char **argv)
11 {
12 	int i = 1;
13 	if(argc == 2 && argv[1][0] == '-' && argv[1][1] == 'v')
14-		return !fprintf(stdout, "Uxn11 - Varvara Emulator, 15 Dec 2024.\n");
15+		return !fprintf(stdout, "Uxn11 - Varvara Emulator, 18 Dec 2024.\n");
16 	else if(argc == 1)
17 		return !fprintf(stdout, "usage: %s [-v] file.rom [args..]\n", argv[0]);
18 	else if(!display_init())