]> Shamusworld >> Repos - rmac/blobdiff - rmac.c
Extended switch -s to also warn about automatically applied 68000 optimisations....
[rmac] / rmac.c
diff --git a/rmac.c b/rmac.c
index a8eb72c8661e95d3108a1acb2c3e7007784479b2..910cb88d5260535406cef0dd397282630b58d372 100644 (file)
--- 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;
@@ -449,7 +462,6 @@ int Process(int argc, char ** argv)
 
                strcpy(fnbuf, firstfname);
                fext(fnbuf, (prg_flag ? ".prg" : ".o"), 1);
-               fext(fnbuf, ".o", 1);
                objfname = fnbuf;
        }