X-Git-Url: http://shamusworld.gotdns.org/cgi-bin/gitweb.cgi?p=rmac;a=blobdiff_plain;f=rmac.c;h=6bf5a5060fb8a23e109d308bc0a0109e9a1992ed;hp=5745d5274e82a1b35a2d66a846c4aae5337b96e8;hb=052be802baa4836564801c780b1d432cfe17c576;hpb=1feb728a9eb579b6441daf0124d81483f600365c diff --git a/rmac.c b/rmac.c index 5745d52..6bf5a50 100644 --- a/rmac.c +++ b/rmac.c @@ -25,6 +25,7 @@ int perm_verb_flag; // Permanently verbose, interactive mode int list_flag; // "-l" listing flag on command line int verb_flag; // Be verbose about what's going on +int m6502; // 1, assembling 6502 code int as68_flag; // as68 kludge mode int glob_flag; // Assume undefined symbols are global int lsym_flag; // Include local symbols in object file @@ -39,11 +40,11 @@ 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 endian; // Host processor endianess +int endian; // Host processor endianess (0 = LE, 1 = BE) char * objfname; // Object filename pointer char * firstfname; // First source filename char * cmdlnexec; // Executable name, pointer to ARGV[0] -char * searchpath; // Search path for include files +char * searchpath; // Search path for include files char defname[] = "noname.o"; // Default output filename int optim_flags[OPT_COUNT]; // Specific optimisations on/off matrix @@ -128,11 +129,18 @@ void DisplayHelp(void) " -f[format] Output object file format\n" " a: ALCYON (use this for ST)\n" " b: BSD (use this for Jaguar)\n" + " e: ELF\n" + " x: com/exe/xex (Atari 800)\n" " -i[path] Directory to search for include files\n" " -l[filename] Create an output listing file\n" " -n Don't do things behind your back in RISC assembler\n" " -o file Output file name\n" " +o[value] Turn a specific optimisation on\n" + " Available optimisation values and default settings:\n" + " o0: Absolute long adddresses to word (on)\n" + " o1: move.l #x,dn/an to moveq (on)\n" + " o2: Word branches to short (on)\n" + " o3: Outer displacement 0(an) to (an) (off)\n" " ~o[value] Turn a specific optimisation off\n" " +oall Turn all optimisations on\n" " ~oall Turn all optimisations off\n" @@ -209,7 +217,7 @@ int ParseOptimization(char * optstring) } -// +// // Process command line arguments and do an assembly // int Process(int argc, char ** argv) @@ -244,6 +252,7 @@ int Process(int argc, char ** argv) orgactive = 0; // Not in RISC org section orgwarning = 0; // No ORG warning issued segpadsize = 2; // Initialise segment padding size + m6502 = 0; // 6502 mode off by default // Initialise modules InitSymbolTable(); // Symbol table @@ -254,6 +263,7 @@ int Process(int argc, char ** argv) InitMark(); // Mark tape-recorder InitMacro(); // Macro processor InitListing(); // Listing generator + Init6502(); // 6502 assembler // Process command line arguments and assemble source files for(argno=0; argno