X-Git-Url: http://shamusworld.gotdns.org/cgi-bin/gitweb.cgi?p=rmac;a=blobdiff_plain;f=rmac.c;h=8dde4c6d9a34925a534de81a25cd2c7fb8b8b8b4;hp=56ff27f014c685f6bb1a4d82d8ec10ce5013786a;hb=bb94015a443a0aebaa93ee62f9f2738fa3a96784;hpb=49cce96fba11282e4244187f15be418d5ae5bb8d diff --git a/rmac.c b/rmac.c index 56ff27f..8dde4c6 100644 --- a/rmac.c +++ b/rmac.c @@ -37,7 +37,6 @@ int rgpu, rdsp; // Assembling Jaguar GPU or DSP code int list_fd; // File to write listing to int regbank; // RISC register bank int segpadsize; // Segment padding size -int in_main; // In main memory flag for GPUMAIN int endian; // Host processor endianess char * objfname; // Object filename pointer char * firstfname; // First source filename @@ -301,6 +300,7 @@ int rmac_qsort(char * base, int n, int size, int (*compar)()) } +#if 0 // // Allocate memory; Panic and Quit if we Run Out // @@ -338,6 +338,7 @@ char * amem(LONG amount) return p; } +#endif // @@ -560,20 +561,19 @@ int process(int argc, char ** argv) orgwarning = 0; // No ORG warning issued a_amount = 0; segpadsize = 2; // Initialise segment padding size - in_main = 0; // Initialise modules - init_sym(); // Symbol table + InitSymbolTable(); // Symbol table init_token(); // Tokenizer init_procln(); // Line processor init_expr(); // Expression analyzer init_sect(); // Section manager / code generator init_mark(); // Mark tape-recorder - init_macro(); // Macro processor + InitMacro(); // Macro processor init_list(); // Listing generator // Process command line arguments and assemble source files - for(argno = 0; argno < argc; ++argno) + for(argno=0; argnosvalue = 0; } @@ -628,7 +628,7 @@ int process(int argc, char ** argv) break; default: printf("-f: unknown object format specified\n"); - ++errcnt; + errcnt++; return errcnt; } break; @@ -645,7 +645,7 @@ int process(int argc, char ** argv) list_fname = argv[argno] + 2; listing = 1; list_flag = 1; - ++lnsave; + lnsave++; break; case 'o': // Direct object file output case 'O': @@ -656,7 +656,7 @@ int process(int argc, char ** argv) if (++argno >= argc) { printf("Missing argument to -o"); - ++errcnt; + errcnt++; return errcnt; } objfname = argv[argno]; @@ -713,20 +713,20 @@ int process(int argc, char ** argv) firstfname = defname; include(0, "(stdin)"); - assemble(); + Assemble(); break; case 'h': // Display command line usage case 'H': case '?': display_version(); display_help(); - ++errcnt; + errcnt++; break; default: display_version(); printf("Unknown switch: %s\n\n", argv[argno]); display_help(); - ++errcnt; + errcnt++; break; } } @@ -743,12 +743,12 @@ int process(int argc, char ** argv) if (fd < 0) { printf("Cannot open: %s\n", fnbuf); - ++errcnt; + errcnt++; continue; } include(fd, fnbuf); - assemble(); + Assemble(); } } @@ -793,8 +793,8 @@ int process(int argc, char ** argv) // (`lo68' format, extended (postfix) format....) // (2) generate the output file image and symbol table; // (3) generate relocation information from left-over fixups. - fixups(); // Do all fixups - stopmark(); // Stop mark tape-recorder + ResolveAllFixups(); // Do all fixups + stopmark(); // Stop mark tape-recorder if (errcnt == 0) { @@ -853,27 +853,19 @@ int get_endianess(void) // int main(int argc, char ** argv) { - int status; - int i; - perm_verb_flag = 0; // Clobber "permanent" verbose flag cmdlnexec = argv[0]; // Obtain executable name endian = get_endianess(); // Get processor endianess - for(i=0; i 1) { - status = process(argc - 1, argv + 1); - } - else - { - display_version(); - display_help(); + return process(argc - 1, argv + 1); } - return status; + display_version(); + display_help(); + + return 0; }