commit 43910ce

Devine Lu Linvega  ·  2024-12-15 17:14:36 +0000 UTC
parent 75e9007
Removed BIOS
7 files changed,  +12, -42
R src/utils/bios.tal => etc/utils/bios.tal
+0, -0
R src/utils/format-c.tal => etc/utils/format-c.tal
+0, -0
+3, -8
 1@@ -9,7 +9,7 @@ PREFIX=${HOME}/.local
 2 
 3 .PHONY: all debug run test install uninstall format clean grab archive
 4 
 5-all: src/bios.c bin/uxnasm bin/uxncli bin/uxn11 
 6+all: bin/uxnasm bin/uxncli bin/uxn11 
 7 
 8 run: all bin/mouse.rom
 9 	@ bin/uxn11 bin/mouse.rom
10@@ -36,7 +36,7 @@ uninstall:
11 format:
12 	@ clang-format -i src/uxnasm.c src/uxncli.c src/uxn11.c src/devices/*
13 lint:
14-	@ bin/uxncli ~/roms/uxnlin.rom src/utils/bios.tal
15+	@ bin/uxncli ~/roms/uxnlin.rom
16 grab:
17 	@ cp ../uxn-utils/cli/opctest/opctest.tal etc/opctest.tal
18 archive:
19@@ -50,18 +50,13 @@ bin/opctest.rom: bin/uxnasm
20 bin/mouse.rom: bin/uxnasm etc/mouse.tal
21 	@ bin/uxnasm etc/mouse.tal bin/mouse.rom
22 
23-src/bios.c: src/utils/bios.tal
24-	@ uxnasm src/utils/bios.tal bin/bios.rom
25-	@ uxnasm src/utils/format-c.tal bin/format-c.rom
26-	@ uxncli bin/format-c.rom bin/bios.rom > src/bios.c
27-
28 bin/uxnasm: src/uxnasm.c
29 	@ mkdir -p bin
30 	@ cc ${RELEASE_flags} ${CFLAGS} src/uxnasm.c -o bin/uxnasm
31 bin/uxncli: src/uxncli.c
32 	@ mkdir -p bin
33 	@ cc ${RELEASE_flags} ${CFLAGS} src/uxncli.c -lutil -o bin/uxncli
34-bin/uxn11: ${EMU_src} src/uxn11.c src/bios.c
35+bin/uxn11: ${EMU_src} src/uxn11.c
36 	@ mkdir -p bin
37 	@ cc ${RELEASE_flags} ${CFLAGS} ${EMU_src} src/uxn11.c -lX11 -lutil -o bin/uxn11
38 
+1, -19
 1@@ -2,7 +2,6 @@
 2 #include <stdlib.h>
 3 
 4 #include "../uxn.h"
 5-#include "../bios.c"
 6 
 7 #include "system.h"
 8 
 9@@ -17,7 +16,6 @@ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10 WITH REGARD TO THIS SOFTWARE.
11 */
12 
13-Uxn bios;
14 char *boot_rom;
15 
16 static void
17@@ -78,23 +76,7 @@ system_reboot(int soft)
18 int
19 system_boot(Uint8 *ram, char *boot)
20 {
21-	/* Load rom(bios) */
22-	bios.ram = ram;
23-	bios.dev = bios.ram + 0x8300;
24-	bios.wst.dat = bios.ram + 0x8400;
25-	bios.rst.dat = bios.ram + 0x8500;
26-	bios.dev[0xe] = 0xff;
27-	if(!system_load(bios.ram + PAGE_PROGRAM, "bios.rom")) {
28-		size_t i, bios_len = sizeof(bios_rom) / sizeof(bios_rom[0]);
29-		for(i = 0; i < bios_len; i++)
30-			bios.ram[PAGE_PROGRAM + i] = bios_rom[i];
31-	}
32-	/* Load rom(main) */
33-	uxn.ram = ram + 0x10000;
34-	uxn.dev = bios.ram + 0x8000;
35-	uxn.wst.dat = bios.ram + 0x8100;
36-	uxn.rst.dat = bios.ram + 0x8200;
37-	boot_rom = boot;
38+	uxn.ram = ram, boot_rom = boot;
39 	return system_load(uxn.ram + PAGE_PROGRAM, boot);
40 }
41 
+1, -3
1@@ -17,6 +17,4 @@ int system_error(char *msg, const char *err);
2 int system_boot(Uint8 *ram, char *rom);
3 
4 Uint8 system_dei(Uxn *u, Uint8 addr);
5-void system_deo(Uxn *u, Uint8 addr);
6-
7-extern Uxn bios;
8+void system_deo(Uxn *u, Uint8 addr);
+2, -2
 1@@ -26,11 +26,11 @@ typedef signed short Sint16;
 2 typedef unsigned int Uint32;
 3 
 4 typedef struct {
 5-	Uint8 *dat, ptr;
 6+	Uint8 dat[0x100], ptr;
 7 } Stack;
 8 
 9 typedef struct Uxn {
10-	Uint8 *ram, *dev;
11+	Uint8 *ram, dev[0x100];
12 	Stack wst, rst;
13 } Uxn;
14 
+5, -10
 1@@ -142,7 +142,7 @@ emu_event(void)
 2 		XLookupString((XKeyPressedEvent *)&ev, buf, 7, &sym, 0);
 3 		switch(sym) {
 4 		case XK_F1: toggle_scale(); break;
 5-		case XK_F2: uxn.dev[0x0e] = !uxn.dev[0x0e]; break;
 6+		case XK_F2: system_inspect(), uxn.dev[0x0e] = !uxn.dev[0x0e]; break;
 7 		case XK_F3: uxn.dev[0x0f] = 0xff; break;
 8 		case XK_F4: emu_restart(0); break;
 9 		case XK_F5: emu_restart(1); break;
10@@ -239,8 +239,6 @@ emu_run(void)
11 			read(fds[1].fd, expirations, 8);
12 			if(uxn.dev[0x20])
13 				uxn_eval(&uxn, uxn.dev[0x20] << 8 | uxn.dev[0x21]);
14-			if(uxn.dev[0xe] && bios.dev[0x20])
15-				uxn_eval(&bios, bios.dev[0x20] << 8 | bios.dev[0x21]);
16 			if(screen_changed()) {
17 				int x = uxn_screen.x1 * uxn_screen.scale, y = uxn_screen.y1 * uxn_screen.scale;
18 				int w = uxn_screen.x2 * uxn_screen.scale - x, h = uxn_screen.y2 * uxn_screen.scale - y;
19@@ -263,19 +261,16 @@ main(int argc, char **argv)
20 {
21 	int i = 1;
22 	if(argc == 2 && argv[1][0] == '-' && argv[1][1] == 'v')
23-		return !fprintf(stdout, "Uxn11 - Varvara Emulator, 10 Dec 2024.\n");
24+		return !fprintf(stdout, "Uxn11 - Varvara Emulator, 15 Dec 2024.\n");
25 	else if(argc == 1)
26 		return !fprintf(stdout, "usage: %s [-v] file.rom [args..]\n", argv[0]);
27 	else if(!display_init())
28 		return !fprintf(stdout, "Could not open display.\n");
29-	else if(!system_boot((Uint8 *)calloc(0x10000 * (RAM_PAGES + 1), sizeof(Uint8)), argv[i++]))
30+	else if(!system_boot((Uint8 *)calloc(0x10000 * RAM_PAGES, sizeof(Uint8)), argv[i++]))
31 		return !fprintf(stdout, "Could not load %s.\n", argv[i - 1]);
32 	uxn.dev[0x17] = argc - i;
33-	if(uxn_eval(&uxn, PAGE_PROGRAM)) {
34-		uxn_eval(&bios, PAGE_PROGRAM);
35-		console_listen(i, argc, argv);
36-		emu_run();
37-	}
38+	if(uxn_eval(&uxn, PAGE_PROGRAM))
39+		console_listen(i, argc, argv), emu_run();
40 	close_console();
41 	XDestroyImage(ximage), XDestroyWindow(display, window), XCloseDisplay(display);
42 	return uxn.dev[0x0f] & 0x7f;