commit dbd4300
neauoire
·
2022-04-05 03:04:32 +0000 UTC
parent e549266
Added the missing device initializers
3 files changed,
+32,
-2
+0,
-1
1@@ -111,7 +111,6 @@ uxn_boot(Uxn *u, Uint8 *ram)
2 u->ram = ram;
3 u->wst = (Stack*)(ram + 0x10000);
4 u->rst = (Stack*)(ram + 0x10100);
5- u->dev2 = (Uint8*)(ram + 0x10200);
6 return 1;
7 }
8
+1,
-1
1@@ -37,7 +37,7 @@ typedef struct Device {
2 } Device;
3
4 typedef struct Uxn {
5- Uint8 *ram, *dev2;
6+ Uint8 *ram;
7 Stack *wst, *rst;
8 Uint8 (*dei)(struct Uxn *u, Uint8 address);
9 void (*deo)(struct Uxn *u, Uint8 address, Uint8 value);
+31,
-0
1@@ -168,6 +168,19 @@ processEvent(void)
2 }
3 }
4
5+static Uint8
6+nil_dei(Device *d, Uint8 port)
7+{
8+ return d->dat[port];
9+}
10+
11+static void
12+nil_deo(Device *d, Uint8 port)
13+{
14+ (void)d;
15+ (void)port;
16+}
17+
18 static int
19 start(Uxn *u, char *rom)
20 {
21@@ -178,6 +191,24 @@ start(Uxn *u, char *rom)
22 fprintf(stderr, "Loaded %s\n", rom);
23 u->dei = uxn11_dei;
24 u->deo = uxn11_deo;
25+
26+ /* system */ uxn_port(u, 0x0, nil_dei, system_deo);
27+ /* console */ uxn_port(u, 0x1, nil_dei, console_deo);
28+ /* screen */ devscreen = uxn_port(u, 0x2, screen_dei, screen_deo);
29+ /* empty */ uxn_port(u, 0x3, nil_dei, nil_deo);
30+ /* empty */ uxn_port(u, 0x4, nil_dei, nil_deo);
31+ /* empty */ uxn_port(u, 0x5, nil_dei, nil_deo);
32+ /* empty */ uxn_port(u, 0x6, nil_dei, nil_deo);
33+ /* empty */ uxn_port(u, 0x7, nil_dei, nil_deo);
34+ /* control */ devctrl = uxn_port(u, 0x8, nil_dei, nil_deo);
35+ /* mouse */ devmouse = uxn_port(u, 0x9, nil_dei, nil_deo);
36+ /* file0 */ uxn_port(u, 0xa, file_dei, file_deo);
37+ /* file1 */ uxn_port(u, 0xb, file_dei, file_deo);
38+ /* datetime */ uxn_port(u, 0xc, datetime_dei, nil_deo);
39+ /* empty */ uxn_port(u, 0xd, nil_dei, nil_deo);
40+ /* reserved */ uxn_port(u, 0xe, nil_dei, nil_deo);
41+ /* reserved */ uxn_port(u, 0xf, nil_dei, nil_deo);
42+
43 screen_resize(&uxn_screen, WIDTH, HEIGHT);
44 if(!uxn_eval(u, PAGE_PROGRAM))
45 return error("Boot", "Failed to start rom.");