| ... | ... |
@@ -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 |
|