
#include <all.h>

/* Debugger macro */

#ifdef DEBUG
void kprintf(UBYTE *fmt,...);
#define bug kprintf
#define D(X) X
#define if_bug(X)   if (X) kprintf("*** failed in line %ld file %s\n",__LINE__,__FILE__)
#define else_bug(X) else kprintf("*** failed in line %ld file %s code %ld\n",__LINE__,__FILE__,X)
#else
#define D(X)
#define if_bug(X)
#define else_bug(X)
#endif

/* Register interface for the SASC compiler */

#if defined(__SASC)
#define SAVEDS		__saveds
#define ASM		__asm
#define REG(x)		register __ ## x
#define REGISTER	register
#define STDARGS	__stdargs
#define CONST		const
#define INLINE		__inline
#else
#error wrong compiler ;-)
#endif

typedef enum { false=0, true=~(false) } bool;

#define ifn(x) if(!(x))
#define and	&&
#define or	||
#define not	!
#define AND	&
#define OR	|
#define NOT	~

#ifndef MAKE_ID
#define MAKE_ID(a,b,c,d) ((ULONG) (a)<<24 | (ULONG) (b)<<16 | (ULONG) (c)<<8 | (ULONG) (d))
#endif
