//
// RMAC - Reboot's Macro Assembler for all Atari computers
// RMAC.C - Main Application Code
-// Copyright (C) 199x Landon Dyer, 2011-2017 Reboot and Friends
+// Copyright (C) 199x Landon Dyer, 2011-2018 Reboot and Friends
// RMAC derived from MADMAC v1.07 Written by Landon Dyer, 1986
// Source utilised with the kind permission of Landon Dyer
//
int lsym_flag; // Include local symbols in object file
int sbra_flag; // Warn about possible short branches
int prg_flag; // !=0, produce .PRG executable (2=symbols)
+int prg_extend; // !=0, output extended .PRG symbols
int legacy_flag; // Do stuff like insert code in RISC assembler
int obj_format; // Object format flag
int debug; // [1..9] Enable debugging levels
int err_flag; // '-e' specified
int err_fd; // File to write error messages to
int rgpu, rdsp; // Assembling Jaguar GPU or DSP code
+int robjproc; // Assembling Jaguar Object Processor code
int dsp56001; // Assembling DSP 56001 code
int list_fd; // File to write listing to
int regbank; // RISC register bank
int activefpu = FPU_NONE; // Active FPU (none by default)
+//
+// Convert a string to uppercase
+//
+void strtoupper(char * s)
+{
+ while (*s)
+ *s++ &= 0xDF;
+}
+
+
//
// Manipulate file extension.
//
" ~oall Turn all optimisations off\n"
" -p Create an ST .prg (without symbols)\n"
" -ps Create an ST .prg (with symbols)\n"
+ " -px Create an ST .prg (with exsymbols)\n"
" Forces -fa\n"
" -r[size] Pad segments to boundary size specified\n"
" w: word (2 bytes, default alignment)\n"
err_flag = 0; // Initialise error flag
rgpu = 0; // Initialise GPU assembly flag
rdsp = 0; // Initialise DSP assembly flag
+ robjproc = 0; // Initialise OP assembly flag
lsym_flag = 1; // Include local symbols in object file
regbank = BANK_N; // No RISC register bank specified
orgactive = 0; // Not in RISC org section
}
sy->sattr = DEFINED | EQUATED | ABS;
- sy->svalue = (*s ? (uint32_t)atoi(s) : 0);
+ sy->svalue = (*s ? (uint64_t)atoi(s) : 0);
break;
case 'e': // Redirect error message output
case 'E':
case 'P':
/*
* -p .PRG generation w/o symbols
- * -ps .PRG generation with symbols
+ * -ps .PRG generation with symbols
+ * -px .PRG generation with extended symbols
*/
switch (argv[argno][2])
{
prg_flag = 2;
break;
+ case 'x':
+ case 'X':
+ prg_flag = 3;
+ break;
+
default:
printf("-p: syntax error\n");
errcnt++;