Browse code

Removed device port masks

neauoire authored on 07/01/2022 19:48:09
Showing 4 changed files
... ...
@@ -122,11 +122,10 @@ uxn_boot(Uxn *u, Uint8 *ram, Uint8 *devpage, Stack *wst, Stack *rst)
122 122
 }
123 123
 
124 124
 Device *
125
-uxn_port(Uxn *u, Uint8 id, Uint16 mask, Uint8 (*deifn)(Device *d, Uint8 port), void (*deofn)(Device *d, Uint8 port))
125
+uxn_port(Uxn *u, Uint8 id, Uint8 (*deifn)(Device *d, Uint8 port), void (*deofn)(Device *d, Uint8 port))
126 126
 {
127 127
 	Device *d = &u->dev[id];
128 128
 	d->u = u;
129
-	d->mask = mask;
130 129
 	d->mem = u->ram;
131 130
 	d->dei = deifn;
132 131
 	d->deo = deofn;
... ...
@@ -37,7 +37,7 @@ typedef struct {
37 37
 typedef struct Device {
38 38
 	struct Uxn *u;
39 39
 	Uint8 *dat, *mem;
40
-	Uint16 vector, mask;
40
+	Uint16 vector;
41 41
 	Uint8 (*dei)(struct Device *d, Uint8);
42 42
 	void (*deo)(struct Device *d, Uint8);
43 43
 } Device;
... ...
@@ -51,4 +51,4 @@ typedef struct Uxn {
51 51
 int uxn_boot(Uxn *u, Uint8 *ram, Uint8 *devpage, Stack *wst, Stack *rst);
52 52
 int uxn_eval(Uxn *u, Uint16 pc);
53 53
 int uxn_halt(Uxn *u, Uint8 error, Uint16 addr);
54
-Device *uxn_port(Uxn *u, Uint8 id, Uint16 mask, Uint8 (*deifn)(Device *, Uint8), void (*deofn)(Device *, Uint8));
54
+Device *uxn_port(Uxn *u, Uint8 id, Uint8 (*deifn)(Device *, Uint8), void (*deofn)(Device *, Uint8));
... ...
@@ -124,22 +124,22 @@ main(int argc, char **argv)
124 124
 	if(!uxn_boot(&u, memory, shadow + PAGE_DEV, (Stack *)(shadow + PAGE_WST), (Stack *)(shadow + PAGE_RST)))
125 125
 		return error("Boot", "Failed");
126 126
 
127
-	/* system   */ devsystem = uxn_port(&u, 0x0, 0xffff, system_dei, system_deo);
128
-	/* console  */ devconsole = uxn_port(&u, 0x1, 0xffff, nil_dei, console_deo);
129
-	/* empty    */ uxn_port(&u, 0x2, 0xffff, nil_dei, nil_deo);
130
-	/* empty    */ uxn_port(&u, 0x3, 0xffff, nil_dei, nil_deo);
131
-	/* empty    */ uxn_port(&u, 0x4, 0xffff, nil_dei, nil_deo);
132
-	/* empty    */ uxn_port(&u, 0x5, 0xffff, nil_dei, nil_deo);
133
-	/* empty    */ uxn_port(&u, 0x6, 0xffff, nil_dei, nil_deo);
134
-	/* empty    */ uxn_port(&u, 0x7, 0xffff, nil_dei, nil_deo);
135
-	/* empty    */ uxn_port(&u, 0x8, 0xffff, nil_dei, nil_deo);
136
-	/* empty    */ uxn_port(&u, 0x9, 0xffff, nil_dei, nil_deo);
137
-	/* file     */ uxn_port(&u, 0xa, 0xffff, nil_dei, file_deo);
138
-	/* datetime */ uxn_port(&u, 0xb, 0xffff, datetime_dei, nil_deo);
139
-	/* empty    */ uxn_port(&u, 0xc, 0xffff, nil_dei, nil_deo);
140
-	/* empty    */ uxn_port(&u, 0xd, 0xffff, nil_dei, nil_deo);
141
-	/* empty    */ uxn_port(&u, 0xe, 0xffff, nil_dei, nil_deo);
142
-	/* empty    */ uxn_port(&u, 0xf, 0xffff, nil_dei, nil_deo);
127
+	/* system   */ devsystem = uxn_port(&u, 0x0, system_dei, system_deo);
128
+	/* console  */ devconsole = uxn_port(&u, 0x1, nil_dei, console_deo);
129
+	/* empty    */ uxn_port(&u, 0x2, nil_dei, nil_deo);
130
+	/* empty    */ uxn_port(&u, 0x3, nil_dei, nil_deo);
131
+	/* empty    */ uxn_port(&u, 0x4, nil_dei, nil_deo);
132
+	/* empty    */ uxn_port(&u, 0x5, nil_dei, nil_deo);
133
+	/* empty    */ uxn_port(&u, 0x6, nil_dei, nil_deo);
134
+	/* empty    */ uxn_port(&u, 0x7, nil_dei, nil_deo);
135
+	/* empty    */ uxn_port(&u, 0x8, nil_dei, nil_deo);
136
+	/* empty    */ uxn_port(&u, 0x9, nil_dei, nil_deo);
137
+	/* file     */ uxn_port(&u, 0xa, nil_dei, file_deo);
138
+	/* datetime */ uxn_port(&u, 0xb, datetime_dei, nil_deo);
139
+	/* empty    */ uxn_port(&u, 0xc, nil_dei, nil_deo);
140
+	/* empty    */ uxn_port(&u, 0xd, nil_dei, nil_deo);
141
+	/* empty    */ uxn_port(&u, 0xe, nil_dei, nil_deo);
142
+	/* empty    */ uxn_port(&u, 0xf, nil_dei, nil_deo);
143 143
 
144 144
 	for(i = 1; i < argc; i++) {
145 145
 		if(!loaded++) {
... ...
@@ -264,28 +264,28 @@ start(Uxn *u, char *rom)
264 264
 	if(!load(u, rom))
265 265
 		return error("Boot", "Failed to load rom.");
266 266
 
267
-	/* system   */ devsystem = uxn_port(u, 0x0, 0xffff, system_dei, system_deo);
268
-	/* console  */ devconsole = uxn_port(u, 0x1, 0xffff, nil_dei, console_deo);
269
-	/* screen   */ devscreen = uxn_port(u, 0x2, 0xffff, screen_dei, screen_deo);
270
-	/* audio0   */ devaudio0 = uxn_port(u, 0x3, 0xffff, audio_dei, audio_deo);
271
-	/* audio1   */ uxn_port(u, 0x4, 0xffff, audio_dei, audio_deo);
272
-	/* audio2   */ uxn_port(u, 0x5, 0xffff, audio_dei, audio_deo);
273
-	/* audio3   */ uxn_port(u, 0x6, 0xffff, audio_dei, audio_deo);
274
-	/* unused   */ uxn_port(u, 0x7, 0xffff, nil_dei, nil_deo);
275
-	/* control  */ devctrl = uxn_port(u, 0x8, 0x0000, nil_dei, nil_deo);
276
-	/* mouse    */ devmouse = uxn_port(u, 0x9, 0x0000, nil_dei, nil_deo);
277
-	/* file     */ uxn_port(u, 0xa, 0xffff, nil_dei, file_deo);
278
-	/* datetime */ uxn_port(u, 0xb, 0xffff, datetime_dei, nil_deo);
279
-	/* unused   */ uxn_port(u, 0xc, 0xffff, nil_dei, nil_deo);
280
-	/* unused   */ uxn_port(u, 0xd, 0xffff, nil_dei, nil_deo);
281
-	/* unused   */ uxn_port(u, 0xe, 0xffff, nil_dei, nil_deo);
282
-	/* unused   */ uxn_port(u, 0xf, 0xffff, nil_dei, nil_deo);
267
+	/* system   */ devsystem = uxn_port(u, 0x0, system_dei, system_deo);
268
+	/* console  */ devconsole = uxn_port(u, 0x1, nil_dei, console_deo);
269
+	/* screen   */ devscreen = uxn_port(u, 0x2, screen_dei, screen_deo);
270
+	/* audio0   */ devaudio0 = uxn_port(u, 0x3, audio_dei, audio_deo);
271
+	/* audio1   */ uxn_port(u, 0x4, audio_dei, audio_deo);
272
+	/* audio2   */ uxn_port(u, 0x5, audio_dei, audio_deo);
273
+	/* audio3   */ uxn_port(u, 0x6, audio_dei, audio_deo);
274
+	/* unused   */ uxn_port(u, 0x7, nil_dei, nil_deo);
275
+	/* control  */ devctrl = uxn_port(u, 0x8, nil_dei, nil_deo);
276
+	/* mouse    */ devmouse = uxn_port(u, 0x9, nil_dei, nil_deo);
277
+	/* file     */ uxn_port(u, 0xa, nil_dei, file_deo);
278
+	/* datetime */ uxn_port(u, 0xb, datetime_dei, nil_deo);
279
+	/* unused   */ uxn_port(u, 0xc, nil_dei, nil_deo);
280
+	/* unused   */ uxn_port(u, 0xd, nil_dei, nil_deo);
281
+	/* unused   */ uxn_port(u, 0xe, nil_dei, nil_deo);
282
+	/* unused   */ uxn_port(u, 0xf, nil_dei, nil_deo);
283 283
 
284 284
 	/* Supervisor */
285
-	uxn_port(&supervisor, 0x0, 0xffff, system_dei, system_deo);
286
-	uxn_port(&supervisor, 0x1, 0xffff, nil_dei, console_deo);
287
-	uxn_port(&supervisor, 0x2, 0xffff, screen_dei, screen_deo);
288
-	uxn_port(&supervisor, 0x8, 0x0000, nil_dei, nil_deo);
285
+	uxn_port(&supervisor, 0x0, system_dei, system_deo);
286
+	uxn_port(&supervisor, 0x1, nil_dei, console_deo);
287
+	uxn_port(&supervisor, 0x2, screen_dei, screen_deo);
288
+	uxn_port(&supervisor, 0x8, nil_dei, nil_deo);
289 289
 
290 290
 	uxn_eval(&supervisor, PAGE_PROGRAM);
291 291