//
-// RMAC - Reboot's Macro Assembler for all Atari computers
+// RMAC - Renamed Macro Assembler for all Atari computers
// RMAC.C - Main Application Code
-// Copyright (C) 199x Landon Dyer, 2011-2020 Reboot and Friends
+// Copyright (C) 199x Landon Dyer, 2011-2021 Reboot and Friends
// RMAC derived from MADMAC v1.07 Written by Landon Dyer, 1986
// Source utilised with the kind permission of Landon Dyer
//
*s++ &= 0xDF;
}
-
//
// Manipulate file extension.
//
return name;
}
+static int is_sep(char c)
+{
+ const char *seps = PATH_SEPS;
+
+ for (seps = PATH_SEPS; *seps; seps++) {
+ if (*seps == c)
+ return 1;
+ }
+
+ return 0;
+}
//
// Return 'item'nth element of semicolon-seperated pathnames specified in the
return 0;
while (itemno--)
- while (*s != EOS && *s++ != ';')
+ while (*s != EOS && !is_sep(*s++))
;
if (*s == EOS)
return 0;
- while (*s != EOS && *s != ';')
+ while (*s != EOS && !is_sep(*s))
*buf++ = *s++;
*buf++ = EOS;
return 1;
}
-
//
// Display command line help
//
" o7: clr.l Dx to moveq #0,Dx (off)\n"
" o8: adda.w/l #x,Dy to addq.w/l #x,Dy (off)\n"
" o9: adda.w/l #x,Dy to lea x(Dy),Dy (off)\n"
- " op: Enforce PC relative (off)\n"
+ " o10: Enforce PC relative (alternative: op) (off)\n"
" ~o[value] Turn a specific optimisation off\n"
" +oall Turn all optimisations on\n"
" ~oall Turn all optimisations off\n"
"| '__| '_ ` _ \\ / _` |/ __|\n"
"| | | | | | | | (_| | (__ \n"
"|_| |_| |_| |_|\\__,_|\\___|\n"
- "\nReboot's Macro Assembler\n"
- "Copyright (C) 199x Landon Dyer, 2011-2020 Reboot\n"
+ "\nRenamed Macro Assembler\n"
+ "Copyright (C) 199x Landon Dyer, 2011-2021 Reboot and Friends\n"
"V%01i.%01i.%01i %s (%s)\n\n", MAJOR, MINOR, PATCH, __DATE__, PLATFORM);
}
-
//
// Parse optimisation options
//
else if (*optstring != '~')
return ERROR;
+ if (optstring[2] == 0)
+ return error(".opt called with zero arguments");
+
if ((optstring[2] == 'a' || optstring[2] == 'A')
&& (optstring[3] == 'l' || optstring[3] == 'L')
&& (optstring[4] == 'l' || optstring[4] == 'L'))
return OK;
}
-
//
// Process command line arguments and do an assembly
//
return errcnt;
}
-
//
// Determine processor endianess
//
return 1;
}
-
//
// Application entry point
//
return 0;
}
-