+char infilename[PATH_MAX];
+char outfilename[PATH_MAX];
+char listfilename[PATH_MAX];
+char symfilename[PATH_MAX];
+//char mapfilename[PATH_MAX];
+
+int verbose=0, createSymbolFile=0;
+
+void process_args(int argc, char **argv)
+{
+ int i=0;
+
+ if (argc < 2) print_usage(1);
+
+ while (++i<argc && *argv[i]=='-') {
+ if (strcmp(argv[i], "--version")==0) {
+ printVersion();
+ exit (0);
+ }
+ if (strcmp(argv[i], "--help")==0) {
+ print_usage(0);
+ }
+ if (strcmp(argv[i], "-v")==0) {
+ verbose++;
+ continue;
+ }
+ if (strcmp(argv[i], "-s")==0) {
+ createSymbolFile++;
+ continue;
+ }
+ print_usage(1);
+ }
+
+ if (i!=argc-1) {
+ // only 1 source file for now
+ print_usage(1);
+ }
+
+ strcpy(infilename, argv[i]);
+
+ if (strncasecmp(infilename+strlen(infilename)-3, ".xa", 3)) {
+ fprintf (stderr, "unrecognized input file: \"%s\"\n", argv[i]);
+ print_usage(1);
+ }
+
+ strcpy(outfilename, infilename);
+ outfilename[strlen(outfilename)-3] = '\0';
+ strcpy(listfilename, outfilename);
+ if (createSymbolFile) {
+ strcpy(symfilename, outfilename);
+ strcat(symfilename, ".sym");
+ }
+ //strcpy(mapfilename, outfilename);
+ strcat(outfilename, ".hex");
+ strcat(listfilename, ".lst");
+ //strcat(mapfilename, ".map");
+}