commit f804789

Devine Lu Linvega  ·  2024-11-13 17:24:39 +0000 UTC
parent 62bd408
The bios is now bundled
5 files changed,  +18, -11
+1, -1
1@@ -59,7 +59,7 @@ bin/uxncli: ${CLI_src} src/uxncli.c
2 	@ cc ${RELEASE_flags} ${CFLAGS} ${CLI_src} src/uxncli.c -lutil -o bin/uxncli
3 bin/uxn11: ${EMU_src} src/uxn11.c src/bios.c
4 	@ mkdir -p bin
5-	@ cc ${RELEASE_flags} ${CFLAGS} ${EMU_src} src/bios.c src/uxn11.c -lX11 -lutil -o bin/uxn11
6+	@ cc ${RELEASE_flags} ${CFLAGS} ${EMU_src} src/uxn11.c -lX11 -lutil -o bin/uxn11
7 
8 bin/uxnasm-debug: src/uxnasm.c
9 	@ mkdir -p bin
+1, -1
1@@ -1,4 +1,4 @@
2-unsigned charbios_rom[] = {
3+unsigned char bios_rom[] = {
4 	0xa0, 0x01, 0x11, 0x80, 0x20, 0x37, 0x80, 0x24, 0x36, 0xa0, 0x00, 0x30, 0x39, 0x80, 0x14, 0x33, 
5 	0x00, 0x80, 0x00, 0x81, 0x80, 0xfb, 0x13, 0x80, 0x07, 0x1c, 0x20, 0x00, 0x33, 0xa0, 0x00, 0x08, 
6 	0x80, 0x28, 0x37, 0xa0, 0x00, 0x00, 0x80, 0x2a, 0x37, 0xa0, 0x80, 0x00, 0x80, 0x04, 0x16, 0xa0, 
+13, -7
 1@@ -2,6 +2,8 @@
 2 #include <stdlib.h>
 3 
 4 #include "../uxn.h"
 5+#include "../bios.c"
 6+
 7 #include "system.h"
 8 
 9 /*
10@@ -79,14 +81,18 @@ system_reboot(char *rom, int soft)
11 int
12 system_boot(Uint8 *ram, char *boot)
13 {
14-	/* Load rom(bios) */
15-	if(system_load(&bios_ram[PAGE_PROGRAM], "bios.rom")) {
16-		bios.ram = bios_ram;
17-		bios.dev = bios_ram + 0x8300;
18-		bios.wst.dat = bios_ram + 0x8400;
19-		bios.rst.dat = bios_ram + 0x8500;
20-		bios.dev[0xe] = 0xff;
21+	if(!system_load(&bios_ram[PAGE_PROGRAM], "bios.rom")) {
22+		int i;
23+		size_t bios_len = sizeof(bios_rom) / sizeof(bios_rom[0]);
24+		for(i = 0; i < bios_len; i++)
25+			bios_ram[PAGE_PROGRAM + i] = bios_rom[i];
26 	}
27+	/* Load rom(bios) */
28+	bios.ram = bios_ram;
29+	bios.dev = bios_ram + 0x8300;
30+	bios.wst.dat = bios_ram + 0x8400;
31+	bios.rst.dat = bios_ram + 0x8500;
32+	bios.dev[0xe] = 0xff;
33 	/* Load rom(main) */
34 	if(system_load(&ram[PAGE_PROGRAM], boot)) {
35 		uxn.ram = ram;
+1, -1
1@@ -96,7 +96,7 @@
2 		INC2 & LDAk ?&w
3 	POP2 JMP2r
4 
5-@dict &a "unsigned 20 "char $1
6+@dict &a "unsigned 20 "char 20 $1
7 	&b "_rom[] 20 "= 20 "{ 0a 09 $1
8 	&c "}; 0a 00
9 
+2, -1
 1@@ -8,6 +8,7 @@
 2 #include <poll.h>
 3 
 4 #include "uxn.h"
 5+
 6 #include "devices/system.h"
 7 #include "devices/console.h"
 8 #include "devices/screen.h"
 9@@ -271,7 +272,7 @@ main(int argc, char **argv)
10 	else if(!system_boot(ram, argv[i++]))
11 		return !fprintf(stdout, "Could not load %s.\n", argv[i - 1]);
12 	uxn.dev[0x17] = argc - i;
13-	if(uxn_eval(&uxn, PAGE_PROGRAM)){
14+	if(uxn_eval(&uxn, PAGE_PROGRAM)) {
15 		uxn_eval(&bios, PAGE_PROGRAM);
16 		console_listen(i, argc, argv);
17 		emu_run();