#else
#ifdef __GCCUNIX__
- #ifdef __MINGW32__
- #define off64_t long
- #define off_t long
- #endif
#include <sys/fcntl.h>
#include <unistd.h>
#define _OPEN_FLAGS O_TRUNC|O_CREAT|O_RDWR
#define _OPEN_INC O_RDONLY
#define _PERM_MODE S_IRUSR|S_IWUSR
+
+ #ifdef __MINGW32__
+ #define off64_t long
+ #define off_t long
+ #undef _OPEN_FLAGS
+ #undef _OPEN_INC
+ #define _OPEN_FLAGS _O_TRUNC|_O_CREAT|_O_BINARY|_O_RDWR
+ #define _OPEN_INC O_RDONLY|_O_BINARY
+ #endif
+
// WARNING WARNING WARNING
#define DO_PRAGMA(x) _Pragma (#x)
#define WARNING(desc) DO_PRAGMA(message (#desc))
#define MWC 1 // Mark Williams object format
#define BSD 2 // BSD object format
#define ELF 3 // ELF object format
+#define XEX 4 // COM/EXE/XEX/whatever a8 object format
// Pointer type that can point to (almost) anything
#define PTR union _ptr
#define TEXT 0x0001 // Relative to text
#define DATA 0x0002 // Relative to data
#define BSS 0x0004 // Relative to BSS
-//#define M6502 0x0008 // 6502/microprocessor (absolute)
+#define M6502 0x0008 // 6502/microprocessor (absolute)
#define TDB (TEXT|DATA|BSS) // Mask for text+data+bss
// Sizes
extern char * firstfname;
extern int list_fd;
extern int as68_flag;
+extern int m6502;
extern int list_flag;
extern int glob_flag;
extern int lsym_flag;
extern int prg_flag; // 1 = write ".PRG" relocatable executable
extern LONG PRGFLAGS;
extern int optim_flags[OPT_COUNT];
+extern void Init6502();
// Exported functions
char * fext(char *, char *, int);