#include "sect.h"
#include "mark.h"
#include "macro.h"
-#include "risca.h"
+#include "riscasm.h"
#include "direct.h"
#include "version.h"
#include "debug.h"
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
}
+#if 0
//
// Allocate memory; Panic and Quit if we Run Out
//
return p;
}
+#endif
//
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; argno<argc; ++argno)
{
if (*argv[argno] == '-')
{
if (sy == NULL)
{
- sy = newsym(argv[argno] + 2, LABEL, 0);
+ sy = NewSymbol(argv[argno] + 2, LABEL, 0);
sy->svalue = 0;
}
break;
default:
printf("-f: unknown object format specified\n");
- ++errcnt;
+ errcnt++;
return errcnt;
}
break;
list_fname = argv[argno] + 2;
listing = 1;
list_flag = 1;
- ++lnsave;
+ lnsave++;
break;
case 'o': // Direct object file output
case 'O':
if (++argno >= argc)
{
printf("Missing argument to -o");
- ++errcnt;
+ errcnt++;
return errcnt;
}
objfname = argv[argno];
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;
}
}
if (fd < 0)
{
printf("Cannot open: %s\n", fnbuf);
- ++errcnt;
+ errcnt++;
continue;
}
include(fd, fnbuf);
- assemble();
+ Assemble();
}
}
// (`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)
{
//
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<MAXFWDJUMPS; i++)
- fwdjump[i] = 0;
-
- // Full command line passed
+ // If commands were passed in, process them
if (argc > 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;
}