2016-12-28 20:32:00 +00:00
|
|
|
// ACME - a crossassembler for producing 6502/65c02/65816/65ce02 code.
|
2016-08-05 09:59:07 +00:00
|
|
|
// Copyright (C) 1998-2016 Marco Baye
|
2012-02-27 21:14:46 +00:00
|
|
|
// Have a look at "acme.c" for further info
|
|
|
|
//
|
|
|
|
// Configuration
|
|
|
|
#ifndef config_H
|
|
|
|
#define config_H
|
|
|
|
|
|
|
|
|
|
|
|
// types
|
2016-08-05 09:59:07 +00:00
|
|
|
typedef unsigned int scope_t;
|
2012-02-27 21:14:46 +00:00
|
|
|
typedef signed long intval_t; // at least 32 bits
|
|
|
|
typedef unsigned long uintval_t; // just for logical shift right
|
|
|
|
// result structure type definition with support for floating point
|
2015-06-14 23:16:23 +00:00
|
|
|
// future result types: EMPTY, UNDEFINED, INT, FLOAT (, STRING)
|
2014-06-07 00:12:10 +00:00
|
|
|
struct result { // either int or float
|
2012-02-27 21:14:46 +00:00
|
|
|
int flags; // expression flags
|
|
|
|
union {
|
|
|
|
intval_t intval; // integer value
|
|
|
|
double fpval; // floating point value
|
|
|
|
} val; // Expression value
|
2014-06-02 00:47:46 +00:00
|
|
|
int addr_refs; // address reference count (only look at this if value is DEFINED)
|
2012-02-27 21:14:46 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
// debugging flag, should be undefined in release version
|
|
|
|
// #define FDEBUG
|
|
|
|
|
|
|
|
// maximum nesting depth of "!src" and macro calls
|
|
|
|
// is not actually a limitation, but a means of finding recursions
|
|
|
|
#define MAX_NESTING 64
|
|
|
|
// default value for output buffer
|
|
|
|
#define FILLVALUE_INITIAL 0
|
|
|
|
// default value for "!fill"
|
|
|
|
#define FILLVALUE_FILL 0
|
|
|
|
|
|
|
|
// Nullpointer definition
|
|
|
|
#ifndef NULL
|
|
|
|
#define NULL ((void *) 0)
|
|
|
|
#endif
|
|
|
|
// Boolean values
|
|
|
|
#ifndef FALSE
|
|
|
|
#define FALSE 0
|
2014-05-31 00:46:55 +00:00
|
|
|
#define TRUE (!FALSE)
|
2012-02-27 21:14:46 +00:00
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
#endif
|