... | ... |
@@ -448,6 +448,21 @@ review(char *filename) |
448 | 448 |
p.mlen); |
449 | 449 |
} |
450 | 450 |
|
451 |
+static void |
|
452 |
+writesym(char *filename) |
|
453 |
+{ |
|
454 |
+ char symdst[0x40]; |
|
455 |
+ FILE *fp = fopen(scat(scpy(filename, symdst, slen(filename) + 1), ".sym"), "w"); |
|
456 |
+ int i; |
|
457 |
+ if(fp != NULL) { |
|
458 |
+ for(i = 0; i < p.llen; i++) { |
|
459 |
+ fwrite(&p.labels[i].addr, 2, 1, fp); |
|
460 |
+ fwrite(p.labels[i].name, slen(p.labels[i].name) + 1, 1, fp); |
|
461 |
+ } |
|
462 |
+ } |
|
463 |
+ fclose(fp); |
|
464 |
+} |
|
465 |
+ |
|
451 | 466 |
int |
452 | 467 |
main(int argc, char *argv[]) |
453 | 468 |
{ |
... | ... |
@@ -464,5 +479,6 @@ main(int argc, char *argv[]) |
464 | 479 |
return !error("Assembly", "Output rom is empty."); |
465 | 480 |
fwrite(p.data + TRIM, p.length - TRIM, 1, dst); |
466 | 481 |
review(argv[2]); |
482 |
+ writesym(argv[2]); |
|
467 | 483 |
return 0; |
468 | 484 |
} |