//
// TARGET SPECIFIC BUILD SETTINGS
//
-
#ifdef WIN32
- #define PLATFORM "Win32" // Release platform - windows
+ // 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
#include <sys/stat.h>
#else
#ifdef __GCCUNIX__
- #define PLATFORM "OSX/Linux" // Release platform - mac OS-X or linux
+ // Release platform - mac OS-X or linux
+ #define PLATFORM "OSX/Linux"
#define _OPEN_FLAGS O_TRUNC|O_CREAT|O_RDWR
#define _OPEN_INC O_RDONLY
#define _PERM_MODE S_IREAD|S_IWRITE
#include <sys/stat.h>
#include <unistd.h>
#else
- #define PLATFORM "Unknown" // Release platform - not specified
+ // Release platform - not specified
+ #define PLATFORM "Unknown"
#define _OPEN_FLAGS O_TRUNC|O_CREAT|O_RDWR
#define _OPEN_INC O_RDONLY
#define _PERM_MODE S_IREAD|S_IWRITE
#endif
#endif
+//
+// Non-target specific stuff
+//
#include <inttypes.h>
+#include "symbol.h"
#define BYTE uint8_t
#define WORD uint16_t
#define ERROR (-1) // Generic error return
#define EOS '\0' // End of string
-#define SPACE ' ' // Ascii space
+#define SPACE ' ' // ASCII space
#define SLASHCHAR '/'
#define SLASHSTRING "/"
#define VALUE LONG // Assembler value
#define MWC 1 // Mark Williams object format
#define BSD 2 // BSD object format
-// Symbols
-#define SYM struct _sym
-SYM
-{
- SYM * snext; // * -> Next symbol on hash-chain
- SYM * sorder; // * -> Next sym in order of refrence
- SYM * sdecl; // * -> Next sym in order of declaration
- BYTE stype; // Symbol type
- WORD sattr; // Attribute bits
- LONG sattre; // Extended attribute bits
- WORD senv; // Enviroment number
- LONG svalue; // Symbol value
- char * sname; // * -> Symbol's print-name
-};
-
// Pointer type that can point to (almost) anything
#define PTR union _ptr
PTR
#define EQUATEDCC 0x0020
#define UNDEF_CC 0x0040
-#define RISCSYM 0x00010000
+//#define RISCSYM 0x00010000
-// Globals, externals etc
+// Globals, externals, etc.
extern int verb_flag;
extern int debug;
extern int rgpu, rdsp;
extern int lsym_flag;
extern int sbra_flag;
extern int obj_format;
-extern LONG amemtot;
-extern int in_main;
+extern int legacy_flag;
-// Prototypes
-void init_sym(void);
-SYM * newsym(char *, int, int);
+// Exported functions
char * fext(char *, char *, int);
-void cantcreat(char *);
-int kmatch(char *, int *, int *, int *, int *);
-void autoeven(int);
int nthpath(char *, int, char *);
-void clear(char *, LONG);
-char * copy(char *, char *, LONG);
-int rmac_qsort(char *, int, int, int (*)());
-//char * amem(LONG);
#endif // __RMAC_H__
+