commit 6b33519

Devine Lu Linvega  ·  2024-07-15 18:42:00 +0000 UTC
parent f6c66d5
Standardized boot sequence
3 files changed,  +40, -28
+5, -2
 1@@ -46,8 +46,11 @@ The file device is _sandboxed_, meaning that it should not be able to read or wr
 2 
 3 ## Emulator Controls
 4 
 5-- `F2` toggle on-screen debugger
 6-- `F4` load boot.rom, or reload rom
 7+- `F1` toggle zoom
 8+- `F2` toggle debugger
 9+- `F3` quit
10+- `F4` reboot
11+- `F5` reboot(soft)
12 
13 ### Buttons
14 
+3, -5
 1@@ -268,7 +268,7 @@ main(int argc, char **argv)
 2 	int i = 1;
 3 	char *rom;
 4 	if(i != argc && argv[i][0] == '-' && argv[i][1] == 'v') {
 5-		fprintf(stdout, "Uxn11 - Varvara Emulator, 2 Jul 2024.\n");
 6+		fprintf(stdout, "Uxn11 - Varvara Emulator, 15 Jul 2024.\n");
 7 		i++;
 8 	}
 9 	rom = i == argc ? "boot.rom" : argv[i++];
10@@ -278,9 +278,7 @@ main(int argc, char **argv)
11 		return !fprintf(stdout, "Could not open display.\n");
12 	/* Event Loop */
13 	uxn.dev[0x17] = argc - i;
14-	if(uxn_eval(PAGE_PROGRAM)) {
15-		console_listen(i, argc, argv);
16-		emu_run();
17-	}
18+	if(uxn_eval(PAGE_PROGRAM))
19+		console_listen(i, argc, argv), emu_run();
20 	return emu_end();
21 }
+32, -21
 1@@ -43,30 +43,41 @@ emu_deo(Uint8 addr, Uint8 value)
 2 	}
 3 }
 4 
 5-int
 6-main(int argc, char **argv)
 7+static void
 8+emu_run(void)
 9 {
10-	int i = 1;
11-	if(i == argc)
12-		return system_error("usage", "uxncli [-v] file.rom [args..]");
13-	/* Read flags */
14-	if(argv[i][0] == '-' && argv[i][1] == 'v')
15-		return !printf("Uxncli - Console Varvara Emulator, 2 Jul 2024\n");
16-	if(!system_boot((Uint8 *)calloc(0x10000 * RAM_PAGES, sizeof(Uint8)), argv[i++]))
17-		return system_error("Init", "Failed to initialize uxn.");
18-	/* Game Loop */
19-	uxn.dev[0x17] = argc - i;
20-	if(uxn_eval(PAGE_PROGRAM) && PEEK2(uxn.dev + 0x10)) {
21-		console_listen(i, argc, argv);
22-		while(!uxn.dev[0x0f]) {
23-			int c = fgetc(stdin);
24-			if(c == EOF) {
25-				console_input(0x00, CONSOLE_END);
26-				break;
27-			}
28-			console_input(c, CONSOLE_STD);
29+	while(!uxn.dev[0x0f]) {
30+		int c = fgetc(stdin);
31+		if(c == EOF) {
32+			console_input(0x00, CONSOLE_END);
33+			break;
34 		}
35+		console_input(c, CONSOLE_STD);
36 	}
37+}
38+
39+static int
40+emu_end(void)
41+{
42 	free(uxn.ram);
43 	return uxn.dev[0x0f] & 0x7f;
44 }
45+
46+int
47+main(int argc, char **argv)
48+{
49+	int i = 1;
50+	char *rom;
51+	if(i != argc && argv[i][0] == '-' && argv[i][1] == 'v') {
52+		fprintf(stdout, "Uxncli - Console Varvara Emulator, 15 Jul 2024.\n");
53+		i++;
54+	}
55+	rom = i == argc ? "boot.rom" : argv[i++];
56+	if(!system_boot((Uint8 *)calloc(0x10000 * RAM_PAGES, sizeof(Uint8)), rom))
57+		return !fprintf(stdout, "usage: %s [-v] file.rom [args..]\n", argv[0]);
58+	/* Event Loop */
59+	uxn.dev[0x17] = argc - i;
60+	if(uxn_eval(PAGE_PROGRAM) && PEEK2(uxn.dev + 0x10))
61+		console_listen(i, argc, argv), emu_run();
62+	return emu_end();
63+}