commit a48fcce
Devine Lu Linvega
·
2024-11-13 17:00:08 +0000 UTC
parent 21296bd
Added bios building
4 files changed,
+238,
-7
M
makefile
+9,
-7
1@@ -9,9 +9,9 @@ PREFIX=${HOME}/.local
2
3 .PHONY: all debug run test install uninstall format clean grab archive
4
5-all: bin/uxnasm bin/uxncli bin/uxn11
6+all: src/utils/bios.c bin/uxnasm bin/uxncli bin/uxn11
7
8-run: all bin/mouse.rom bios.rom
9+run: all bin/mouse.rom
10 @ bin/uxn11 bin/mouse.rom
11 debug: bin/uxnasm-debug bin/uxncli-debug bin/uxn11-debug
12 @ bin/uxncli-debug bin/opctest.rom
13@@ -45,8 +45,10 @@ clean:
14 bin/mouse.rom: etc/mouse.tal
15 @ bin/uxnasm etc/mouse.tal bin/mouse.rom
16
17-bios.rom: src/bios.tal
18- @ bin/uxnasm src/bios.tal bios.rom
19+bios.c: src/utils/bios.tal src/utils/format-c.tal
20+ @ bin/uxnasm src/utils/bios.tal bin/bios.rom
21+ @ bin/uxnasm src/utils/format-c.tal bin/format-c.rom
22+ @ bin/uxncli bin/format-c.rom bin/bios.rom > src/utils/bios.c
23
24 bin/uxnasm: src/uxnasm.c
25 @ mkdir -p bin
26@@ -54,9 +56,9 @@ bin/uxnasm: src/uxnasm.c
27 bin/uxncli: ${CLI_src} src/uxncli.c
28 @ mkdir -p bin
29 @ cc ${RELEASE_flags} ${CFLAGS} ${CLI_src} src/uxncli.c -lutil -o bin/uxncli
30-bin/uxn11: ${EMU_src} src/uxn11.c
31+bin/uxn11: ${EMU_src} src/uxn11.c src/utils/bios.c
32 @ mkdir -p bin
33- @ cc ${RELEASE_flags} ${CFLAGS} ${EMU_src} src/uxn11.c -lX11 -lutil -o bin/uxn11
34+ @ cc ${RELEASE_flags} ${CFLAGS} ${EMU_src} src/utils/bios.c src/uxn11.c -lX11 -lutil -o bin/uxn11
35
36 bin/uxnasm-debug: src/uxnasm.c
37 @ mkdir -p bin
38@@ -66,4 +68,4 @@ bin/uxncli-debug: ${CLI_src} src/uxncli.c
39 @ cc ${DEBUG_flags} ${CFLAGS} ${CLI_src} src/uxncli.c -lutil -o bin/uxncli-debug
40 bin/uxn11-debug: ${EMU_src} src/uxn11.c
41 @ mkdir -p bin
42- @ cc ${DEBUG_flags} ${CFLAGS} ${EMU_src} src/uxn11.c -lX11 -lutil -o bin/uxn11-debug
43+ @ cc ${DEBUG_flags} ${CFLAGS} ${EMU_src} src/utils/bios.c src/uxn11.c -lX11 -lutil -o bin/uxn11-debug
+127,
-0
1@@ -0,0 +1,127 @@
2+unsigned charbios_rom[] = {
3+ 0xa0, 0x01, 0x11, 0x80, 0x20, 0x37, 0x80, 0x24, 0x36, 0xa0, 0x00, 0x30, 0x39, 0x80, 0x14, 0x33,
4+ 0x00, 0x80, 0x00, 0x81, 0x80, 0xfb, 0x13, 0x80, 0x07, 0x1c, 0x20, 0x00, 0x33, 0xa0, 0x00, 0x08,
5+ 0x80, 0x28, 0x37, 0xa0, 0x00, 0x00, 0x80, 0x2a, 0x37, 0xa0, 0x80, 0x00, 0x80, 0x04, 0x16, 0xa0,
6+ 0x02, 0x33, 0x60, 0x00, 0x1c, 0xa0, 0x00, 0x08, 0x80, 0x28, 0x37, 0x80, 0x2a, 0xb6, 0xa0, 0x00,
7+ 0x19, 0x38, 0x05, 0x37, 0xa0, 0x81, 0x00, 0x80, 0x05, 0x16, 0xa0, 0x02, 0x37, 0x60, 0x00, 0x01,
8+ 0x00, 0x60, 0x00, 0x88, 0x80, 0x28, 0xb6, 0xa0, 0x00, 0x08, 0x38, 0x05, 0x37, 0x80, 0x43, 0xa0,
9+ 0x02, 0x12, 0x15, 0x06, 0x60, 0x00, 0x84, 0x80, 0x28, 0xb6, 0xa0, 0x00, 0x08, 0x38, 0x05, 0x37,
10+ 0x80, 0x41, 0xa0, 0x02, 0x12, 0x15, 0x80, 0x04, 0x19, 0x80, 0x00, 0x04, 0x38, 0x26, 0xa0, 0x00,
11+ 0x09, 0x38, 0x24, 0x8f, 0xcf, 0x80, 0x80, 0x0b, 0x80, 0x42, 0x04, 0x19, 0xa0, 0x02, 0x12, 0x15,
12+ 0x94, 0x60, 0x00, 0x57, 0x80, 0x28, 0xb6, 0xa0, 0x00, 0x08, 0x38, 0x05, 0x37, 0x41, 0x21, 0xaa,
13+ 0x20, 0xff, 0xe1, 0x22, 0x22, 0x42, 0x80, 0x28, 0xb6, 0xa0, 0x00, 0x80, 0x39, 0x05, 0x37, 0x80,
14+ 0x2a, 0xb6, 0xa0, 0x00, 0x08, 0x39, 0x05, 0x37, 0xa0, 0x35, 0x26, 0x17, 0xa0, 0x02, 0x63, 0x80,
15+ 0x2c, 0x37, 0xa0, 0x4a, 0x2f, 0x97, 0x97, 0x97, 0x17, 0x80, 0x2a, 0xb6, 0xa0, 0x00, 0x08, 0x38,
16+ 0x05, 0x37, 0x80, 0x28, 0xb6, 0xa0, 0x00, 0x18, 0x39, 0x05, 0x37, 0x6c, 0xa0, 0x15, 0x26, 0x17,
17+ 0x94, 0x60, 0x00, 0x1d, 0x21, 0x94, 0x20, 0xff, 0xf7, 0x22, 0x6c, 0xa0, 0x15, 0x26, 0x17, 0x06,
18+ 0x80, 0x04, 0x1f, 0x60, 0x00, 0x00, 0x80, 0x0f, 0x1c, 0x80, 0x00, 0x04, 0xa0, 0x02, 0x3b, 0x38,
19+ 0x14, 0x80, 0x20, 0x19, 0x80, 0x00, 0x04, 0x80, 0x40, 0x3f, 0xa0, 0x02, 0xe3, 0x38, 0x80, 0x2c,
20+ 0x37, 0xa0, 0x41, 0x2f, 0x17, 0x6c, 0x04, 0x60, 0x00, 0x00, 0x06, 0x80, 0x04, 0x1f, 0x60, 0x00,
21+ 0x00, 0x80, 0x0f, 0x1c, 0x06, 0x80, 0x09, 0x0a, 0x80, 0x27, 0x1a, 0x18, 0x80, 0x30, 0x18, 0x80,
22+ 0x19, 0x17, 0x6c, 0x57, 0x53, 0x54, 0x00, 0x52, 0x53, 0x54, 0x00, 0x30, 0x31, 0x32, 0x33, 0x34,
23+ 0x35, 0x36, 0x37, 0x38, 0x39, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0xff, 0xff, 0xff, 0xff, 0xff,
24+ 0xff, 0xff, 0xff, 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa,
25+ 0x55, 0xaa, 0x55, 0x00, 0x00, 0x00, 0x00, 0x03, 0x04, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
26+ 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x04, 0x03, 0x00,
27+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
28+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00,
29+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
30+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00,
31+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x20, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
32+ 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x20, 0xc0, 0x00,
33+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
34+ 0x00, 0x00, 0x00, 0x00, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x10, 0x10, 0x10, 0x10, 0x00, 0x00,
35+ 0x10, 0x38, 0x10, 0x6c, 0x6c, 0x24, 0x24, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
36+ 0x00, 0x00, 0x00, 0x00, 0x12, 0x12, 0x12, 0x7f, 0x24, 0x24, 0x24, 0x24, 0x24, 0xfe, 0x48, 0x48,
37+ 0x48, 0x48, 0x00, 0x10, 0x38, 0x54, 0x92, 0x96, 0x90, 0x50, 0x38, 0x14, 0x12, 0xd2, 0x92, 0x94,
38+ 0x78, 0x10, 0x10, 0x02, 0x62, 0x94, 0x94, 0x94, 0x98, 0x68, 0x10, 0x10, 0x2c, 0x32, 0x52, 0x52,
39+ 0x52, 0x8c, 0x80, 0x00, 0x30, 0x48, 0x48, 0x48, 0x50, 0x20, 0x2e, 0x54, 0x54, 0x94, 0x88, 0x8c,
40+ 0x72, 0x00, 0x00, 0xe0, 0xe0, 0x20, 0x20, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
41+ 0x00, 0x00, 0x00, 0x02, 0x04, 0x08, 0x08, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x08,
42+ 0x08, 0x04, 0x02, 0x80, 0x40, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x20,
43+ 0x20, 0x40, 0x80, 0x00, 0x00, 0x00, 0x10, 0x38, 0x92, 0xd6, 0x38, 0xd6, 0x92, 0x38, 0x10, 0x00,
44+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x10, 0x10, 0xfe, 0x10, 0x10, 0x10, 0x10, 0x00,
45+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xe0,
46+ 0x20, 0x20, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00,
47+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xe0,
48+ 0xe0, 0x40, 0x00, 0x02, 0x02, 0x04, 0x04, 0x08, 0x08, 0x08, 0x10, 0x10, 0x10, 0x20, 0x20, 0x40,
49+ 0x40, 0x80, 0x80, 0x00, 0x18, 0x24, 0x24, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x24,
50+ 0x24, 0x18, 0x00, 0x00, 0x10, 0x70, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
51+ 0x7c, 0x00, 0x00, 0x00, 0x18, 0x24, 0x42, 0x62, 0x02, 0x04, 0x08, 0x08, 0x10, 0x20, 0x22, 0x42,
52+ 0x7e, 0x00, 0x00, 0x00, 0x38, 0x44, 0x82, 0x82, 0x02, 0x04, 0x38, 0x04, 0x02, 0x82, 0x82, 0x44,
53+ 0x38, 0x00, 0x00, 0x00, 0x08, 0x18, 0x28, 0x28, 0x48, 0x48, 0x88, 0x88, 0xfe, 0x08, 0x08, 0x08,
54+ 0x3c, 0x00, 0x00, 0x00, 0xfc, 0x80, 0x80, 0x80, 0xb8, 0xc4, 0x82, 0x02, 0x02, 0xc2, 0x82, 0x44,
55+ 0x38, 0x00, 0x00, 0x00, 0x3c, 0x42, 0x46, 0x80, 0x80, 0xb8, 0xc4, 0x82, 0x82, 0x82, 0x82, 0x44,
56+ 0x38, 0x00, 0x00, 0x00, 0xfe, 0x82, 0x82, 0x04, 0x04, 0x04, 0x08, 0x08, 0x08, 0x08, 0x10, 0x10,
57+ 0x10, 0x10, 0x00, 0x00, 0x38, 0x44, 0x82, 0x82, 0x82, 0x44, 0x38, 0x44, 0x82, 0x82, 0x82, 0x44,
58+ 0x38, 0x00, 0x00, 0x00, 0x38, 0x44, 0x82, 0x82, 0x82, 0x82, 0x46, 0x3a, 0x02, 0x02, 0x82, 0x44,
59+ 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38,
60+ 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x38, 0x00, 0x00, 0x00, 0x00, 0x38, 0x38,
61+ 0x18, 0x10, 0x30, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, 0x10, 0x20, 0x20, 0x10, 0x10, 0x08, 0x08,
62+ 0x04, 0x04, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00,
63+ 0x00, 0x00, 0x00, 0x80, 0x40, 0x40, 0x20, 0x20, 0x10, 0x10, 0x08, 0x08, 0x10, 0x10, 0x20, 0x20,
64+ 0x40, 0x40, 0x80, 0x00, 0x38, 0x44, 0x82, 0xc2, 0x02, 0x04, 0x04, 0x08, 0x10, 0x10, 0x00, 0x00,
65+ 0x10, 0x38, 0x10, 0x00, 0x3c, 0x42, 0x82, 0x9a, 0xa6, 0xa2, 0xa2, 0xa2, 0xa6, 0x9a, 0x80, 0x42,
66+ 0x3c, 0x00, 0x00, 0x00, 0x10, 0x28, 0x28, 0x28, 0x44, 0x44, 0x44, 0x44, 0x7c, 0x82, 0x82, 0x82,
67+ 0xc6, 0x00, 0x00, 0x00, 0xf8, 0x44, 0x42, 0x42, 0x42, 0x44, 0x78, 0x44, 0x42, 0x42, 0x42, 0x42,
68+ 0xfc, 0x00, 0x00, 0x00, 0x3a, 0x46, 0x42, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x82, 0x42, 0x42,
69+ 0x3c, 0x00, 0x00, 0x00, 0xf8, 0x44, 0x44, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x44, 0x44,
70+ 0xf8, 0x00, 0x00, 0x00, 0xfe, 0x42, 0x42, 0x40, 0x48, 0x48, 0x78, 0x48, 0x48, 0x42, 0x42, 0x42,
71+ 0xfe, 0x00, 0x00, 0x00, 0xfe, 0x42, 0x42, 0x40, 0x48, 0x48, 0x78, 0x48, 0x48, 0x40, 0x40, 0x40,
72+ 0xf0, 0x00, 0x00, 0x00, 0x1a, 0x26, 0x42, 0x40, 0x80, 0x80, 0x8f, 0x82, 0x82, 0x82, 0x42, 0x66,
73+ 0x1a, 0x00, 0x00, 0x00, 0xe7, 0x42, 0x42, 0x42, 0x42, 0x7e, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42,
74+ 0xe7, 0x00, 0x00, 0x00, 0xfe, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
75+ 0xfe, 0x00, 0x00, 0x00, 0x1f, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x82, 0x82, 0x82, 0x44,
76+ 0x38, 0x00, 0x00, 0x00, 0xe6, 0x44, 0x44, 0x48, 0x48, 0x70, 0x50, 0x48, 0x48, 0x44, 0x44, 0x42,
77+ 0xe3, 0x00, 0x00, 0x00, 0xf0, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x42, 0x42, 0x42,
78+ 0xfe, 0x00, 0x00, 0x00, 0x82, 0xc6, 0xaa, 0xaa, 0xaa, 0x92, 0x92, 0x92, 0x82, 0x82, 0x82, 0x82,
79+ 0xc6, 0x00, 0x00, 0x00, 0x87, 0xc2, 0xa2, 0xa2, 0xa2, 0x92, 0x92, 0x92, 0x8a, 0x8a, 0x8a, 0x86,
80+ 0xc2, 0x00, 0x00, 0x00, 0x38, 0x44, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x44,
81+ 0x38, 0x00, 0x00, 0x00, 0xf8, 0x44, 0x42, 0x42, 0x42, 0x42, 0x44, 0x78, 0x40, 0x40, 0x40, 0x40,
82+ 0xf0, 0x00, 0x00, 0x00, 0x38, 0x44, 0x44, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0xba, 0x44, 0x44,
83+ 0x38, 0x08, 0x06, 0x00, 0xf8, 0x44, 0x42, 0x42, 0x42, 0x44, 0x78, 0x48, 0x44, 0x44, 0x44, 0x42,
84+ 0xe3, 0x00, 0x00, 0x00, 0x34, 0x4c, 0x84, 0x80, 0x80, 0x60, 0x18, 0x04, 0x82, 0x82, 0x82, 0xc4,
85+ 0xb8, 0x00, 0x00, 0x00, 0xfe, 0x92, 0x92, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
86+ 0x7c, 0x00, 0x00, 0x00, 0xe7, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42,
87+ 0x3c, 0x00, 0x00, 0x00, 0xc6, 0x82, 0x82, 0x82, 0x82, 0x44, 0x44, 0x44, 0x44, 0x28, 0x28, 0x10,
88+ 0x10, 0x00, 0x00, 0x00, 0xc6, 0x82, 0x82, 0x82, 0x92, 0x92, 0x92, 0xaa, 0xaa, 0xaa, 0x44, 0x44,
89+ 0x44, 0x00, 0x00, 0x00, 0xee, 0x44, 0x44, 0x28, 0x28, 0x10, 0x28, 0x28, 0x28, 0x44, 0x44, 0x82,
90+ 0xc6, 0x00, 0x00, 0x00, 0xc6, 0x82, 0x44, 0x44, 0x44, 0x28, 0x28, 0x10, 0x10, 0x10, 0x10, 0x10,
91+ 0x7c, 0x00, 0x00, 0x00, 0xfe, 0x84, 0x88, 0x08, 0x10, 0x10, 0x10, 0x20, 0x20, 0x42, 0x42, 0x82,
92+ 0xfe, 0x00, 0x00, 0x1e, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
93+ 0x10, 0x10, 0x1e, 0x00, 0x80, 0x80, 0x40, 0x40, 0x20, 0x20, 0x10, 0x10, 0x08, 0x08, 0x04, 0x04,
94+ 0x02, 0x02, 0x00, 0xf0, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
95+ 0x10, 0x10, 0xf0, 0x10, 0x28, 0x44, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
96+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
97+ 0x00, 0x00, 0xff, 0x30, 0x30, 0x20, 0x20, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
98+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x42, 0x02, 0x3e, 0x42, 0x82, 0x82, 0x86,
99+ 0x7b, 0x00, 0x00, 0x00, 0xc0, 0x40, 0x40, 0x40, 0x78, 0x44, 0x42, 0x42, 0x42, 0x42, 0x42, 0x44,
100+ 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3a, 0x46, 0x82, 0x80, 0x80, 0x80, 0x82, 0x42,
101+ 0x3c, 0x00, 0x00, 0x00, 0x06, 0x04, 0x04, 0x04, 0x3c, 0x44, 0x84, 0x84, 0x84, 0x84, 0x84, 0x44,
102+ 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x44, 0x82, 0xfe, 0x80, 0x80, 0x82, 0x42,
103+ 0x3c, 0x00, 0x00, 0x00, 0x0e, 0x11, 0x10, 0x10, 0xfe, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
104+ 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3b, 0x44, 0x44, 0x44, 0x38, 0x40, 0x78, 0x84,
105+ 0x82, 0x82, 0x7c, 0x00, 0xc0, 0x40, 0x40, 0x40, 0x5c, 0x62, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42,
106+ 0xe7, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x78, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
107+ 0xff, 0x00, 0x00, 0x06, 0x06, 0x00, 0x00, 0x00, 0x3e, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x82,
108+ 0x82, 0x44, 0x38, 0x00, 0xc0, 0x40, 0x40, 0x40, 0x42, 0x44, 0x48, 0x58, 0x64, 0x44, 0x42, 0x42,
109+ 0xe3, 0x00, 0x00, 0x00, 0x78, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
110+ 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6c, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92,
111+ 0xdb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdc, 0x62, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42,
112+ 0xe7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x44, 0x82, 0x82, 0x82, 0x82, 0x82, 0x44,
113+ 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x44, 0x42, 0x42, 0x42, 0x42, 0x44, 0x78,
114+ 0x40, 0x40, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x44, 0x84, 0x84, 0x84, 0x84, 0x44, 0x3c,
115+ 0x04, 0x04, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0xec, 0x32, 0x22, 0x20, 0x20, 0x20, 0x20, 0x20,
116+ 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3a, 0x46, 0x42, 0x40, 0x3c, 0x02, 0x82, 0xc2,
117+ 0xbc, 0x00, 0x00, 0x00, 0x00, 0x20, 0x20, 0x20, 0xfc, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x22,
118+ 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc6, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x46,
119+ 0x39, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc6, 0x82, 0x82, 0x44, 0x44, 0x44, 0x28, 0x28,
120+ 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x92, 0x92, 0x92, 0x92, 0xaa, 0xaa, 0x44, 0x44,
121+ 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xee, 0x44, 0x28, 0x28, 0x10, 0x28, 0x28, 0x44,
122+ 0xee, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe7, 0x42, 0x22, 0x24, 0x14, 0x08, 0x08, 0x10,
123+ 0x90, 0xa0, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x44, 0x08, 0x08, 0x10, 0x10, 0x22, 0x42,
124+ 0xfe, 0x00, 0x00, 0x06, 0x08, 0x08, 0x08, 0x08, 0x08, 0x10, 0x20, 0x10, 0x08, 0x08, 0x08, 0x08,
125+ 0x08, 0x08, 0x06, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
126+ 0x10, 0x10, 0x10, 0xc0, 0x20, 0x20, 0x20, 0x20, 0x20, 0x10, 0x08, 0x10, 0x20, 0x20, 0x20, 0x20,
127+ 0x20, 0x20, 0xc0, 0x60, 0x92, 0x0c,
128+};
R src/bios.tal =>
src/utils/bios.tal
+0,
-0
+102,
-0
1@@ -0,0 +1,102 @@
2+( uxncli format-c.rom file.bin )
3+
4+|10 @Console &vector $2 &read $1 &pad $5 &write $1 &error $1
5+|a0 @File &vector $2 &success $2 &stat $2 &delete $1 &append $1 &name $2 &length $2 &read $2 &write $2
6+
7+|0000
8+
9+ @src $40
10+
11+|0100
12+
13+@on-reset ( -> )
14+ ;meta #06 DEO2
15+ ;on-console .Console/vector DEO2
16+ BRK
17+
18+@on-console ( -> )
19+ .Console/read DEI .src skey ?{ BRK }
20+ <print-program>
21+ #800f DEO
22+ BRK
23+
24+@meta $1
25+ ( name ) "Format(C) 0a
26+ ( details ) "A 20 "C-like 20 "Formatter 0a
27+ ( author ) "By 20 "Devine 20 "Lu 20 "Linvega 0a
28+ ( date ) "30 20 "Nov 20 "2023 $1
29+ ( fields ) 00
30+
31+@<print-program> ( src* -- )
32+ ;src .File/name DEO2
33+ #0001 .File/length DEO2
34+ ;dict/a <pstr>
35+ ;src <print-name>
36+ ;dict/b <pstr>
37+ [ LIT2r 0000 ]
38+ &stream ( -- )
39+ ;&buf feof ?&end
40+ [ LIT2 "0 18 ] DEO
41+ [ LIT2 "x 18 ] DEO
42+ [ LIT &buf $1 ] <phex>/b
43+ [ LIT2 ", 18 ] DEO
44+ #2018 DEO
45+ INC2r
46+ ( lb ) STHkr #0f AND ?{
47+ #0a18 DEO
48+ #0918 DEO }
49+ !&stream
50+ &end POP2r #0a18 DEO
51+ ;dict/c !<pstr>
52+
53+@<print-name> ( src* -- )
54+ scap/ [ LIT "/ ] srew
55+ &w ( -- )
56+ LDAk [ LIT ". ] EQU ?&end
57+ LDAk #18 DEO
58+ INC2 LDAk ?&w
59+ &end POP2 JMP2r
60+
61+(
62+@|stdlib )
63+
64+@skey ( key buf -- proc )
65+ OVR #21 LTH ?{
66+ #00 SWP scap/ STA
67+ #00 JMP2r }
68+ POP2 #01 JMP2r
69+
70+@srew ( str* char -- )
71+ ,&t STR
72+ &w ( -- )
73+ LDAk [ LIT &t $1 ] EQU ?&end
74+ #0001 SUB2 LDAk ?&w
75+ &end INC2 JMP2r
76+
77+@scap ( str* -- end* )
78+ &w ( -- )
79+ INC2 & LDAk ?&w
80+ JMP2r
81+
82+@feof ( buf* -- f )
83+ .File/read DEO2
84+ .File/success DEI2 #0000 EQU2 JMP2r
85+
86+@<phex> ( short* -- )
87+ SWP <phex>/b
88+ &b ( -- )
89+ DUP #04 SFT <phex>/c
90+ &c ( -- )
91+ #0f AND DUP #09 GTH #27 MUL ADD #30 ADD #18 DEO
92+ JMP2r
93+
94+@<pstr> ( str* -- )
95+ &w ( -- )
96+ LDAk #18 DEO
97+ INC2 & LDAk ?&w
98+ POP2 JMP2r
99+
100+@dict &a "unsigned 20 "char $1
101+ &b "_rom[] 20 "= 20 "{ 0a 09 $1
102+ &c "}; 0a 00
103+