... | ... |
@@ -4030,13 +4030,12 @@ uxn_boot(Uxn *u) |
4030 | 4030 |
} |
4031 | 4031 |
|
4032 | 4032 |
Device * |
4033 |
-uxn_port(Uxn *u, Uint8 id, char *name, void (*talkfn)(Device *d, Uint8 b0, Uint8 w)) |
|
4033 |
+uxn_port(Uxn *u, Uint8 id, void (*talkfn)(Device *d, Uint8 b0, Uint8 w)) |
|
4034 | 4034 |
{ |
4035 | 4035 |
Device *d = &u->dev[id]; |
4036 | 4036 |
d->addr = id * 0x10; |
4037 | 4037 |
d->u = u; |
4038 | 4038 |
d->mem = u->ram.dat; |
4039 | 4039 |
d->talk = talkfn; |
4040 |
- (void)name; |
|
4041 | 4040 |
return d; |
4042 | 4041 |
} |
... | ... |
@@ -41,10 +41,10 @@ static Uint16 devr8(Device *d, Uint8 a) { d->talk(d, a & 0x0f, 0); return d->dat |
41 | 41 |
static void warp8(Uxn *u, Uint16 a){ u->ram.ptr += (Sint8)a; } |
42 | 42 |
static void pull8(Uxn *u){ push8(u->src, peek8(u->ram.dat, u->ram.ptr++)); } |
43 | 43 |
/* short mode */ |
44 |
-void poke16(Uint8 *m, Uint16 a, Uint16 b) { poke8(m, a, b >> 8); poke8(m, a + 1, b); } |
|
45 |
-Uint16 peek16(Uint8 *m, Uint16 a) { return (peek8(m, a) << 8) + peek8(m, a + 1); } |
|
46 | 44 |
static void push16(Stack *s, Uint16 a) { push8(s, a >> 8); push8(s, a); } |
47 | 45 |
static Uint16 pop16(Stack *s) { Uint8 a = pop8(s), b = pop8(s); return a + (b << 8); } |
46 |
+ void poke16(Uint8 *m, Uint16 a, Uint16 b) { poke8(m, a, b >> 8); poke8(m, a + 1, b); } |
|
47 |
+ Uint16 peek16(Uint8 *m, Uint16 a) { return (peek8(m, a) << 8) + peek8(m, a + 1); } |
|
48 | 48 |
static void devw16(Device *d, Uint8 a, Uint16 b) { devw8(d, a, b >> 8); devw8(d, a + 1, b); } |
49 | 49 |
static Uint16 devr16(Device *d, Uint8 a) { return (devr8(d, a) << 8) + devr8(d, a + 1); } |
50 | 50 |
static void warp16(Uxn *u, Uint16 a){ u->ram.ptr = a; } |
... | ... |
@@ -148,13 +148,12 @@ uxn_boot(Uxn *u) |
148 | 148 |
} |
149 | 149 |
|
150 | 150 |
Device * |
151 |
-uxn_port(Uxn *u, Uint8 id, char *name, void (*talkfn)(Device *d, Uint8 b0, Uint8 w)) |
|
151 |
+uxn_port(Uxn *u, Uint8 id, void (*talkfn)(Device *d, Uint8 b0, Uint8 w)) |
|
152 | 152 |
{ |
153 | 153 |
Device *d = &u->dev[id]; |
154 | 154 |
d->addr = id * 0x10; |
155 | 155 |
d->u = u; |
156 | 156 |
d->mem = u->ram.dat; |
157 | 157 |
d->talk = talkfn; |
158 |
- (void)name; |
|
159 | 158 |
return d; |
160 | 159 |
} |
... | ... |
@@ -46,4 +46,4 @@ Uint16 peek16(Uint8 *m, Uint16 a); |
46 | 46 |
int uxn_boot(Uxn *c); |
47 | 47 |
int uxn_eval(Uxn *u, Uint16 vec); |
48 | 48 |
int uxn_halt(Uxn *u, Uint8 error, char *name, int id); |
49 |
-Device *uxn_port(Uxn *u, Uint8 id, char *name, void (*talkfn)(Device *, Uint8, Uint8)); |
|
49 |
+Device *uxn_port(Uxn *u, Uint8 id, void (*talkfn)(Device *, Uint8, Uint8)); |
... | ... |
@@ -167,22 +167,22 @@ main(int argc, char **argv) |
167 | 167 |
if(!load(&u, argv[1])) |
168 | 168 |
return error("Load", "Failed"); |
169 | 169 |
|
170 |
- devsystem = uxn_port(&u, 0x0, "system", system_talk); |
|
171 |
- devconsole = uxn_port(&u, 0x1, "console", console_talk); |
|
172 |
- uxn_port(&u, 0x2, "empty", nil_talk); |
|
173 |
- uxn_port(&u, 0x3, "empty", nil_talk); |
|
174 |
- uxn_port(&u, 0x4, "empty", nil_talk); |
|
175 |
- uxn_port(&u, 0x5, "empty", nil_talk); |
|
176 |
- uxn_port(&u, 0x6, "empty", nil_talk); |
|
177 |
- uxn_port(&u, 0x7, "empty", nil_talk); |
|
178 |
- uxn_port(&u, 0x8, "empty", nil_talk); |
|
179 |
- uxn_port(&u, 0x9, "empty", nil_talk); |
|
180 |
- uxn_port(&u, 0xa, "file", file_talk); |
|
181 |
- uxn_port(&u, 0xb, "datetime", datetime_talk); |
|
182 |
- uxn_port(&u, 0xc, "empty", nil_talk); |
|
183 |
- uxn_port(&u, 0xd, "empty", nil_talk); |
|
184 |
- uxn_port(&u, 0xe, "empty", nil_talk); |
|
185 |
- uxn_port(&u, 0xf, "empty", nil_talk); |
|
170 |
+ /* system */ devsystem = uxn_port(&u, 0x0, system_talk); |
|
171 |
+ /* console */ devconsole = uxn_port(&u, 0x1, console_talk); |
|
172 |
+ /* empty */ uxn_port(&u, 0x2, nil_talk); |
|
173 |
+ /* empty */ uxn_port(&u, 0x3, nil_talk); |
|
174 |
+ /* empty */ uxn_port(&u, 0x4, nil_talk); |
|
175 |
+ /* empty */ uxn_port(&u, 0x5, nil_talk); |
|
176 |
+ /* empty */ uxn_port(&u, 0x6, nil_talk); |
|
177 |
+ /* empty */ uxn_port(&u, 0x7, nil_talk); |
|
178 |
+ /* empty */ uxn_port(&u, 0x8, nil_talk); |
|
179 |
+ /* empty */ uxn_port(&u, 0x9, nil_talk); |
|
180 |
+ /* file */ uxn_port(&u, 0xa, file_talk); |
|
181 |
+ /* datetime */ uxn_port(&u, 0xb, datetime_talk); |
|
182 |
+ /* empty */ uxn_port(&u, 0xc, nil_talk); |
|
183 |
+ /* empty */ uxn_port(&u, 0xd, nil_talk); |
|
184 |
+ /* empty */ uxn_port(&u, 0xe, nil_talk); |
|
185 |
+ /* empty */ uxn_port(&u, 0xf, nil_talk); |
|
186 | 186 |
|
187 | 187 |
run(&u); |
188 | 188 |
|
... | ... |
@@ -525,24 +525,24 @@ main(int argc, char **argv) |
525 | 525 |
if(!init()) |
526 | 526 |
return error("Init", "Failed to initialize emulator."); |
527 | 527 |
|
528 |
- devsystem = uxn_port(&u, 0x0, "system", system_talk); |
|
529 |
- devconsole = uxn_port(&u, 0x1, "console", console_talk); |
|
530 |
- devscreen = uxn_port(&u, 0x2, "screen", screen_talk); |
|
531 |
- devaudio0 = uxn_port(&u, 0x3, "audio0", audio_talk); |
|
532 |
- uxn_port(&u, 0x4, "audio1", audio_talk); |
|
533 |
- uxn_port(&u, 0x5, "audio2", audio_talk); |
|
534 |
- uxn_port(&u, 0x6, "audio3", audio_talk); |
|
535 |
- uxn_port(&u, 0x7, "---", nil_talk); |
|
536 |
- devctrl = uxn_port(&u, 0x8, "controller", nil_talk); |
|
537 |
- devmouse = uxn_port(&u, 0x9, "mouse", nil_talk); |
|
538 |
- uxn_port(&u, 0xa, "file", file_talk); |
|
539 |
- uxn_port(&u, 0xb, "datetime", datetime_talk); |
|
540 |
- uxn_port(&u, 0xc, "---", nil_talk); |
|
541 |
- uxn_port(&u, 0xd, "---", nil_talk); |
|
542 |
- uxn_port(&u, 0xe, "---", nil_talk); |
|
543 |
- uxn_port(&u, 0xf, "---", nil_talk); |
|
544 |
- |
|
545 |
- /* Write screen size to dev/screen */ |
|
528 |
+ /* system */ devsystem = uxn_port(&u, 0x0, system_talk); |
|
529 |
+ /* console */ devconsole = uxn_port(&u, 0x1, console_talk); |
|
530 |
+ /* screen */ devscreen = uxn_port(&u, 0x2, screen_talk); |
|
531 |
+ /* audio0 */ devaudio0 = uxn_port(&u, 0x3, audio_talk); |
|
532 |
+ /* audio1 */ uxn_port(&u, 0x4, audio_talk); |
|
533 |
+ /* audio2 */ uxn_port(&u, 0x5, audio_talk); |
|
534 |
+ /* audio3 */ uxn_port(&u, 0x6, audio_talk); |
|
535 |
+ /* unused */ uxn_port(&u, 0x7, nil_talk); |
|
536 |
+ /* control */ devctrl = uxn_port(&u, 0x8, nil_talk); |
|
537 |
+ /* mouse */ devmouse = uxn_port(&u, 0x9, nil_talk); |
|
538 |
+ /* file */ uxn_port(&u, 0xa, file_talk); |
|
539 |
+ /* datetime */ uxn_port(&u, 0xb, datetime_talk); |
|
540 |
+ /* unused */ uxn_port(&u, 0xc, nil_talk); |
|
541 |
+ /* unused */ uxn_port(&u, 0xd, nil_talk); |
|
542 |
+ /* unused */ uxn_port(&u, 0xe, nil_talk); |
|
543 |
+ /* unused */ uxn_port(&u, 0xf, nil_talk); |
|
544 |
+ |
|
545 |
+ /* Write screen size */ |
|
546 | 546 |
poke16(devscreen->dat, 2, ppu.width); |
547 | 547 |
poke16(devscreen->dat, 4, ppu.height); |
548 | 548 |
|