/*
 *  File:
 *      general.h
 *
 *  Contents:
 *      Generaly usefuls constants, defs, etc.  NOT Amgia specific.
 */

/*
 *  Convenient shorthands
 */
typedef unsigned char    uchar;
typedef char             byte;
typedef unsigned char    ubyte;
typedef unsigned int     uint;
typedef unsigned short   ushort;
typedef unsigned long    ulong;

/*
 *  Special types for increased readability.
 */
typedef unsigned int     bool;      /* 0 is FALSE !0 is TRUE */
typedef unsigned short   shortbits; /* for small bit variables     */
typedef unsigned long    longbits;  /* for large bit variables     */
typedef int              generic;   /* any thing we don't care about */
typedef int              intFunc(); /* integer returning function */
typedef void             voidFunc();/* void returning function */

/*
 *  Address register defines for the 68000
 */
#define AR0  register
#define AR1  register
#define AR2  register
#define AR3
#define AR4
#define AR5
#define AR6
#define AR7

/*
 *  Data register defines for the 68000
 */
#define DR0  register
#define DR1  register
#define DR2  register
#define DR3  register
#define DR4
#define DR5
#define DR6
#define DR7

/*
 *  Special pointer definitions.
 */
#undef NIL
#define NIL           ((void *)0)

#define IS_NIL(x)     ((void *)(x) == NIL)

#define EOS           ('\0')

#define TO_BOOL(x)    ((bool)((x) != 0))

#define MIN(x,y)      ((x) < (y) ? (x) : (y))
#define MAX(x,y)      ((x) > (y) ? (x) : (y))

#undef TRUE
#undef FALSE
#define TRUE          ((bool)1)
#define FALSE         ((bool)0)

#define SUCCESS		  0
#define FAIL		  (-1)
