//
// RMAC - Renamed Macro Assembler for all Atari computers
// RMAC.H - Main Application Code
-// Copyright (C) 199x Landon Dyer, 2011-2021 Reboot and Friends
+// Copyright (C) 199x Landon Dyer, 2011-2022 Reboot and Friends
// RMAC derived from MADMAC v1.07 Written by Landon Dyer, 1986
// Source utilised with the kind permission of Landon Dyer
//
#if defined(WIN32) || defined(WIN64)
#include <io.h>
#include <fcntl.h>
+ #include "dirent_lose.h"
// Release platform - windows
#define PLATFORM "Win32"
#define _OPEN_FLAGS _O_TRUNC|_O_CREAT|_O_BINARY|_O_RDWR
#define _OPEN_INC _O_RDONLY|_O_BINARY
#define _PERM_MODE _S_IREAD|_S_IWRITE
#define PATH_SEPS ";"
+ #define realpath(_fn, _abs) _fullpath((_abs), (_fn), _MAX_PATH)
#ifdef _MSC_VER
#if _MSC_VER > 1000
#endif
+ // Ever since Visual Studio... 2017? 2019? the following constants come
+ // defined in the platform SDK, which leads to endless warnings from the
+ // compiler. So let's just put the pacifier on and undef them, sheesh! (No,
+ // we won't rename the defines, we've been here since 1986, Visual Studio
+ // wasn't even a glimpse in the milkman's eyes, if you catch my drift)
+ #undef CONST
+ #undef ERROR
+ #undef TEXT
+
#else
+ #include <dirent.h>
+
#ifdef __GCCUNIX__
#include <sys/fcntl.h>
// Non-target specific stuff
//
#include <inttypes.h>
-#include <dirent.h>
#include "symbol.h"
-#if defined(WIN32) || defined(WIN64)
-// Ever since Visual Studio... 2017? 2019? the following constants come defined in the
-// platform SDK, which leads to endless warnings from the compiler. So let's just
-// put the pacifier on and undef them, sheesh! (No, we won't rename the defines,
-// we've been here since 1986, Visual Studio wasn't even a glimpse in the milkman's eyes,
-// if you catch my drift)
-#undef CONST
-#undef ERROR
-#undef TEXT
-#endif
-
#define BYTE uint8_t
#define WORD uint16_t
#define LONG uint32_t
P56, // DSP 56001 object format
XEX, // COM/EXE/XEX/whatever a8 object format
RAW, // Output at absolute address
+C64PRG, // C64 .PRG format
};
// Assembler token
#define LABEL 0 // User-defined symbol
#define MACRO 1 // Macro definition
#define MACARG 2 // Macro argument
+#define DBGSYM 3 // stabs debug symbol
#define SY_UNDEF -1 // Undefined (lookup never matches it)
// Symbol and expression attributes
#define SIZP 0x0080 // .p (FPU pakced decimal real)
#define SIZQ 0x0100 // .q (quad word)
+// Extended attributes
#define EQUATEDREG 0x0008 // Equated register symbol
#define UNDEF_EQUR 0x0010
#define EQUATEDCC 0x0020
extern int list_flag;
extern int glob_flag;
extern int lsym_flag;
+extern int dsym_flag;
extern int optim_warn_flag;
extern int obj_format;
extern int legacy_flag;
extern int activefpu;
extern uint32_t org68k_address;
extern int org68k_active;
+extern int *regbase;
+extern int *regtab;
+extern int *regcheck;
+extern int *regaccept;
+extern uint32_t used_architectures;
// Exported functions
void strtoupper(char * s);