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
M
makefile
+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;