... | ... |
@@ -54,22 +54,20 @@ console_poke(Device *d, Uint8 b0, Uint8 b1) |
54 | 54 |
Uint8 |
55 | 55 |
file_poke(Device *d, Uint8 b0, Uint8 b1) |
56 | 56 |
{ |
57 |
- /* |
|
58 | 57 |
Uint8 read = b0 == 0xd; |
59 | 58 |
if(read || b0 == 0xf) { |
60 |
- char *name = (char *)&d->mem[mempeek16(m, 0x8)]; |
|
61 |
- Uint16 result = 0, length = mempeek16(m, 0xa); |
|
62 |
- Uint16 offset = mempeek16(m, 0x4); |
|
63 |
- Uint16 addr = (m[b0 - 1] << 8) | b1; |
|
59 |
+ char *name = (char *)&d->mem[mempeek16(d->dat, 0x8)]; |
|
60 |
+ Uint16 result = 0, length = mempeek16(d->dat, 0xa); |
|
61 |
+ Uint16 offset = mempeek16(d->dat, 0x4); |
|
62 |
+ Uint16 addr = (d->dat[b0 - 1] << 8) | b1; |
|
64 | 63 |
FILE *f = fopen(name, read ? "r" : (offset ? "a" : "w")); |
65 | 64 |
if(f) { |
66 |
- if(fseek(f, offset, SEEK_SET) != -1 && (result = read ? fread(&m[addr], 1, length, f) : fwrite(&m[addr], 1, length, f))) |
|
65 |
+ if(fseek(f, offset, SEEK_SET) != -1 && (result = read ? fread(&d->mem[addr], 1, length, f) : fwrite(&d->mem[addr], 1, length, f))) |
|
67 | 66 |
printf("%s %d bytes, at %04x from %s\n", read ? "Loaded" : "Saved", length, addr, name); |
68 | 67 |
fclose(f); |
69 | 68 |
} |
70 |
- mempoke16(m, 0x2, result); |
|
69 |
+ mempoke16(d->dat, 0x2, result); |
|
71 | 70 |
} |
72 |
- */ |
|
73 | 71 |
return b1; |
74 | 72 |
} |
75 | 73 |
|
... | ... |
@@ -225,24 +225,20 @@ screen_poke(Device *d, Uint8 b0, Uint8 b1) |
225 | 225 |
Uint8 |
226 | 226 |
file_poke(Device *d, Uint8 b0, Uint8 b1) |
227 | 227 |
{ |
228 |
- /* TODO: Figure out why fwrite doesn't work with d->mem |
|
229 | 228 |
Uint8 read = b0 == 0xd; |
230 | 229 |
if(read || b0 == 0xf) { |
231 |
- char *name = (char *)&d->mem[mempeek16(m, 0x8)]; |
|
232 |
- Uint16 result = 0, length = mempeek16(m, 0xa); |
|
233 |
- Uint16 offset = mempeek16(m, 0x4); |
|
234 |
- Uint16 addr = (m[b0 - 1] << 8) | b1; |
|
230 |
+ char *name = (char *)&d->mem[mempeek16(d->dat, 0x8)]; |
|
231 |
+ Uint16 result = 0, length = mempeek16(d->dat, 0xa); |
|
232 |
+ Uint16 offset = mempeek16(d->dat, 0x4); |
|
233 |
+ Uint16 addr = (d->dat[b0 - 1] << 8) | b1; |
|
235 | 234 |
FILE *f = fopen(name, read ? "r" : (offset ? "a" : "w")); |
236 | 235 |
if(f) { |
237 |
- if(fseek(f, offset, SEEK_SET) != -1 && (result = read ? fread(d->mem[addr], 1, length, f) : fwrite(&d->mem[addr], 1, length, f))) |
|
236 |
+ if(fseek(f, offset, SEEK_SET) != -1 && (result = read ? fread(&d->mem[addr], 1, length, f) : fwrite(&d->mem[addr], 1, length, f))) |
|
238 | 237 |
printf("%s %d bytes, at %04x from %s\n", read ? "Loaded" : "Saved", length, addr, name); |
239 | 238 |
fclose(f); |
240 | 239 |
} |
241 |
- mempoke16(m, 0x2, result); |
|
240 |
+ mempoke16(d->dat, 0x2, result); |
|
242 | 241 |
} |
243 |
- */ |
|
244 |
- (void)d; |
|
245 |
- (void)b0; |
|
246 | 242 |
return b1; |
247 | 243 |
} |
248 | 244 |
|