/* View.h - View.C support file (PC version) : (c) 1988 DJH */

#define TITLE "Pc-View 2.1 : (c) 1988 John Hodgson\n"

#define LOWIDTH  320 /* max lores width */
#define LOHEIGHT 200 /* max non-interlaced height */
#define MAXPLANES 8  /* max # planes support (VGA!) */
#define MAXCLRS  (1<<MAXPLANES) /* max # colors supported (VGA!) */

#define LINELEN  (1024/8) /* arbitrary max line buffer length */

/* Since Intel chips store their constants in reverse order, this MakeID
   builds its constants in reverse order so the Motorola constants will
   match even after being read into Intel machines. */

#define MakeID(a,b,c,d) ((long)d<<24 | (long)c<<16 | b<<8 | a)

#define ID_FORM MakeID('F','O','R','M')
#define ID_ILBM MakeID('I','L','B','M')
#define ID_BMHD MakeID('B','M','H','D')
#define ID_CAMG MakeID('C','A','M','G')
#define ID_CMAP MakeID('C','M','A','P')
#define ID_BODY MakeID('B','O','D','Y')

#define cmpByteRun1 1

#define ROUNDODDUP(a) (((a)+1)&(~1L))

enum colors { RGB_RED,RGB_GREEN,RGB_BLUE };

/* masking types */

#define mskNone 0
#define mskHasMask 1
#define mskHasTransparentColor 2
#define mskLasso 3

typedef struct {
  long ckID,ckSize;
} Chunk;

typedef struct {
  short w,h,x,y;
  char  nPlanes,masking,compression,pad1;
  short transparentColor;
  char  xAspect, yAspect;
  short pageWidth,pageHeight;
} BitMapHeader;

/* Non-IFF related structures */

#define TRUE 1

struct Screen {
  short width,
        height,
	compression,
	mask,
	planes,
	colors;
  long ViewModes;
  unsigned char colormap[MAXCLRS][3],
		huge *buffer;
};
