commit a7672e6

Devine Lu Linvega  ·  2024-11-11 21:53:20 +0000 UTC
parent c0629cf
(uxn11) Cleanuo
2 files changed,  +16, -26
+1, -1
1@@ -24,7 +24,7 @@ WITH REGARD TO THIS SOFTWARE.
2 
3 /* Microcode */
4 
5-#define JMI a = uxn.ram[pc ] << 8 | uxn.ram[pc + 1], pc += a + 2;
6+#define JMI a = uxn.ram[pc] << 8 | uxn.ram[pc + 1], pc += a + 2;
7 #define JMP(i) if(_2) pc = i; else pc += (Sint8)i;
8 #define REM if(_r) uxn.rst.ptr -= 1 + _2; else uxn.wst.ptr -= 1 + _2;
9 #define INC(s) uxn.s.dat[uxn.s.ptr++]
+15, -25
 1@@ -17,6 +17,7 @@
 2 #include "devices/datetime.h"
 3 
 4 Uxn uxn;
 5+Uint8 ram[0x10000 * RAM_PAGES];
 6 
 7 /*
 8 Copyright (c) 2022 Devine Lu Linvega
 9@@ -97,17 +98,6 @@ emu_restart(char *rom, int soft)
10 	system_reboot(rom, soft);
11 }
12 
13-static int
14-emu_end(void)
15-{
16-	close_console();
17-	free(uxn.ram);
18-	XDestroyImage(ximage);
19-	XDestroyWindow(display, window);
20-	XCloseDisplay(display);
21-	return uxn.dev[0x0f] & 0x7f;
22-}
23-
24 static Uint8
25 get_button(KeySym sym)
26 {
27@@ -268,20 +258,20 @@ emu_run(void)
28 int
29 main(int argc, char **argv)
30 {
31-	int i = 1;
32-	char *rom;
33-	if(i != argc && argv[i][0] == '-' && argv[i][1] == 'v') {
34+	if(argc > 1 && argv[1][0] == '-' && argv[1][1] == 'v')
35 		fprintf(stdout, "Uxn11 - Varvara Emulator, 11 Nov 2024.\n");
36-		exit(0);
37+	else {
38+		int i = 1;
39+		char *rom = i == argc ? "boot.rom" : argv[i++];
40+		if(!system_boot(ram, rom))
41+			return !fprintf(stdout, "usage: %s [-v] file.rom [args..]\n", argv[0]);
42+		if(!display_init())
43+			return !fprintf(stdout, "Could not open display.\n");
44+		uxn.dev[0x17] = argc - i;
45+		if(uxn_eval(PAGE_PROGRAM))
46+			console_listen(i, argc, argv), emu_run();
47+		close_console();
48+		XDestroyImage(ximage), XDestroyWindow(display, window), XCloseDisplay(display);
49 	}
50-	rom = i == argc ? "boot.rom" : argv[i++];
51-	if(!system_boot((Uint8 *)calloc(0x10000 * RAM_PAGES, sizeof(Uint8)), rom))
52-		return !fprintf(stdout, "usage: %s [-v] file.rom [args..]\n", argv[0]);
53-	if(!display_init())
54-		return !fprintf(stdout, "Could not open display.\n");
55-	/* Event Loop */
56-	uxn.dev[0x17] = argc - i;
57-	if(uxn_eval(PAGE_PROGRAM))
58-		console_listen(i, argc, argv), emu_run();
59-	return emu_end();
60+	return uxn.dev[0x0f] & 0x7f;
61 }