... | ... |
@@ -151,7 +151,7 @@ screen_deo(Device *d, Uint8 port) |
151 | 151 |
DEVPEEK16(x, 0x8); |
152 | 152 |
DEVPEEK16(y, 0xa); |
153 | 153 |
DEVPEEK16(addr, 0xc); |
154 |
- screen_blit(&uxn_screen, layer, x, y, &d->mem[addr], d->dat[0xf] & 0xf, d->dat[0xf] & 0x10, d->dat[0xf] & 0x20, twobpp); |
|
154 |
+ screen_blit(&uxn_screen, layer, x, y, &d->u->ram[addr], d->dat[0xf] & 0xf, d->dat[0xf] & 0x10, d->dat[0xf] & 0x20, twobpp); |
|
155 | 155 |
if(d->dat[0x6] & 0x04) DEVPOKE16(0xc, addr + 8 + twobpp * 8); /* auto addr+length */ |
156 | 156 |
if(d->dat[0x6] & 0x01) DEVPOKE16(0x8, x + 8); /* auto x+8 */ |
157 | 157 |
if(d->dat[0x6] & 0x02) DEVPOKE16(0xa, y + 8); /* auto y+8 */ |
... | ... |
@@ -108,14 +108,14 @@ err: |
108 | 108 |
/* clang-format on */ |
109 | 109 |
|
110 | 110 |
int |
111 |
-uxn_boot(Uxn *u, Uint8 *ram, Uint8 *devpage, Stack *wst, Stack *rst) |
|
111 |
+uxn_boot(Uxn *u, Uint8 *ram, Uint8 *devices, Stack *wst, Stack *rst) |
|
112 | 112 |
{ |
113 | 113 |
Uint32 i; |
114 | 114 |
char *cptr = (char *)u; |
115 | 115 |
for(i = 0; i < sizeof(*u); i++) |
116 | 116 |
cptr[i] = 0x00; |
117 | 117 |
u->ram = ram; |
118 |
- u->devpage = devpage; |
|
118 |
+ u->devices = devices; |
|
119 | 119 |
u->wst = wst; |
120 | 120 |
u->rst = rst; |
121 | 121 |
return 1; |
... | ... |
@@ -126,9 +126,8 @@ uxn_port(Uxn *u, Uint8 id, Uint8 (*deifn)(Device *d, Uint8 port), void (*deofn)( |
126 | 126 |
{ |
127 | 127 |
Device *d = &u->dev[id]; |
128 | 128 |
d->u = u; |
129 |
- d->mem = u->ram; |
|
129 |
+ d->dat = u->devices + id * 0x10; |
|
130 | 130 |
d->dei = deifn; |
131 | 131 |
d->deo = deofn; |
132 |
- d->dat = u->devpage + id * 0x10; |
|
133 | 132 |
return d; |
134 | 133 |
} |
... | ... |
@@ -43,12 +43,12 @@ typedef struct Device { |
43 | 43 |
} Device; |
44 | 44 |
|
45 | 45 |
typedef struct Uxn { |
46 |
- Uint8 *ram, *devpage; |
|
46 |
+ Uint8 *ram, *devices; |
|
47 | 47 |
Stack *wst, *rst; |
48 | 48 |
Device dev[16]; |
49 | 49 |
} Uxn; |
50 | 50 |
|
51 |
-int uxn_boot(Uxn *u, Uint8 *ram, Uint8 *devpage, Stack *wst, Stack *rst); |
|
51 |
+int uxn_boot(Uxn *u, Uint8 *ram, Uint8 *devices, 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 | 54 |
Device *uxn_port(Uxn *u, Uint8 id, Uint8 (*deifn)(Device *, Uint8), void (*deofn)(Device *, Uint8)); |
... | ... |
@@ -210,7 +210,7 @@ audio_deo(Device *d, Uint8 port) |
210 | 210 |
DEVPEEK16(adsr, 0x8); |
211 | 211 |
DEVPEEK16(c->len, 0xa); |
212 | 212 |
DEVPEEK16(addr, 0xc); |
213 |
- c->addr = &d->mem[addr]; |
|
213 |
+ c->addr = &d->u->ram[addr]; |
|
214 | 214 |
c->volume[0] = d->dat[0xe] >> 4; |
215 | 215 |
c->volume[1] = d->dat[0xe] & 0xf; |
216 | 216 |
c->repeat = !(d->dat[0xf] & 0x80); |