... | ... |
@@ -30,7 +30,7 @@ typedef struct { |
30 | 30 |
|
31 | 31 |
typedef struct { |
32 | 32 |
Uint8 data[256 * 256], llen, mlen; |
33 |
- Uint16 ptr; |
|
33 |
+ Uint16 ptr, length; |
|
34 | 34 |
Label labels[256]; |
35 | 35 |
Macro macros[256]; |
36 | 36 |
} Program; |
... | ... |
@@ -64,6 +64,7 @@ pushbyte(Uint8 b, int lit) |
64 | 64 |
{ |
65 | 65 |
if(lit) pushbyte(0x01, 0); |
66 | 66 |
p.data[p.ptr++] = b; |
67 |
+ p.length = p.ptr; |
|
67 | 68 |
} |
68 | 69 |
|
69 | 70 |
void |
... | ... |
@@ -338,7 +339,7 @@ void |
338 | 339 |
cleanup(char *filename) |
339 | 340 |
{ |
340 | 341 |
int i; |
341 |
- printf("Assembled %s(%d bytes), %d labels, %d macros.\n\n", filename, (p.ptr - TRIM), p.llen, p.mlen); |
|
342 |
+ printf("Assembled %s(%d bytes), %d labels, %d macros.\n\n", filename, (p.length - TRIM), p.llen, p.mlen); |
|
342 | 343 |
for(i = 0; i < p.llen; ++i) |
343 | 344 |
if(!p.labels[i].refs) |
344 | 345 |
printf("--- Unused label: %s\n", p.labels[i].name); |
... | ... |
@@ -357,7 +358,7 @@ main(int argc, char *argv[]) |
357 | 358 |
return !error("Open", "Failed"); |
358 | 359 |
if(!pass1(f) || !pass2(f)) |
359 | 360 |
return !error("Assembly", "Failed"); |
360 |
- fwrite(p.data + TRIM, p.ptr - TRIM, 1, fopen(argv[2], "wb")); |
|
361 |
+ fwrite(p.data + TRIM, p.length - TRIM, 1, fopen(argv[2], "wb")); |
|
361 | 362 |
fclose(f); |
362 | 363 |
cleanup(argv[2]); |
363 | 364 |
return 0; |