#define CARD	unsigned short
#define LCARD	unsigned long
#define ON		1
#define OFF		0

#define	ABS(n)			( 0 <= (n) ? (n) : -(n) )
#define SGN(n,v)		( 0 <= (n) ? (v) * ( (n) != 0 ) : -(v) )
#define INT_8(x)		( ((x)&  255)< 128 ? (x)&  255 : ((x)&  255)- 256 )
#define INT12(x)		( ((x)& 4095)<2048 ? (x)& 4095 : ((x)& 4095)-4096 )
#define SIN(a)			sin_tbl[a]
#define COS(a)			( -sin_tbl[ 64 - (a) & 255 ] )
#define REFLECT(a,r)	( 256-(a)+(r)*2 & 255 )
#define LIMIT(x,y,l)	( x < -l || l < x || y < -l || l < y )
#define	KEY_IN(ch)		( ((ch)& 0xff00) != 0xff00 )
#define INLMT(n,lmt)	( ( (n) + (lmt) )% (lmt) )

typedef struct { int off ; short seg ; } OVERLAY ;

extern int		delta_ang( int dx, int dy );
extern LCARD	delta_dist ;
extern long int sin_tbl[];
