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.");