X-Git-Url: http://shamusworld.gotdns.org/cgi-bin/gitweb.cgi?p=rmac;a=blobdiff_plain;f=rmac.c;h=910cb88d5260535406cef0dd397282630b58d372;hp=ba0f63cc54432fb413b15cc8ab9d51c2ee6c4039;hb=917bfc1503181b7e762b73b9560bb834c12c64fa;hpb=e17b90fcd806fee2da5754968f576b161706ec5b diff --git a/rmac.c b/rmac.c index ba0f63c..910cb88 100644 --- a/rmac.c +++ b/rmac.c @@ -45,7 +45,7 @@ char * firstfname; // First source filename char * cmdlnexec; // Executable name, pointer to ARGV[0] char * searchpath; // Search path for include files char defname[] = "noname.o"; // Default output filename - +int optim_flag; // Optimise all the things! // // Manipulate file extension. @@ -132,7 +132,8 @@ void DisplayHelp(void) " -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" - " -p[n] Create an ST .prg (1=normal, 2=w/symbols)\n" + " -p Create an ST .prg (without symbols)\n" + " -ps Create an ST .prg (with symbols)\n" " Forces -fa\n" " -r[size] Pad segments to boundary size specified\n" " w: word (2 bytes, default alignment)\n" @@ -141,7 +142,9 @@ void DisplayHelp(void) " d: double phrase (16 bytes)\n" " q: quad phrase (32 bytes)\n" " -s Warn about possible short branches\n" + " and applied optimisations\n" " -u Force referenced and undefined symbols global\n" + " -w Turn off optimisations done automatically\n" " -v Set verbose mode\n" " -y[pagelen] Set page line length (default: 61)\n" "\n", cmdlnexec); @@ -153,7 +156,12 @@ void DisplayHelp(void) // void DisplayVersion(void) { - printf("\nReboot's Macro Assembler for Atari Jaguar\n" + printf("\n" + " _ __ _ __ ___ __ _ ___ \n" + "| '__| '_ ` _ \\ / _` |/ __|\n" + "| | | | | | | | (_| | (__ \n" + "|_| |_| |_| |_|\\__,_|\\___|\n" + "\nReboot's Macro Assembler\n" "Copyright (C) 199x Landon Dyer, 2011-2015 Reboot\n" "V%01i.%01i.%01i %s (%s)\n\n", MAJOR, MINOR, PATCH, __DATE__, PLATFORM); } @@ -194,6 +202,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 + optim_flag = 1; // Automatically optimise // Initialise modules InitSymbolTable(); // Symbol table @@ -351,6 +360,10 @@ int Process(int argc, char ** argv) DisplayVersion(); break; + case 'w': + case 'W': + optim_flag=0; + break; case 'x': // Turn on debugging case 'X': debug = 1;