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+}