
#define VERSION_MADE_BY	103
#define VERSION_NEEDED	100

#define GENERIC			0
#define SERIALNO		GENERIC

#define OPT_NOZERO		(1L<<0)
#define OPT_ENCRYPT		(1L<<1)
#define OPT_OPTIMIZED	(1L<<2)
#define OPT_BANNER		(1L<<3)

#define READ		0
#define WRITE		1
#define REPACK		2
#define TEST		3
#define VIEW		4
#define TEXT		5
#define HELP		6

#define UNKNOWN		0

#define AMIGA1_OFS	1		/* Disk Types */
#define AMIGA1_FFS	2
#define MSDOS		3
#define AMAX		4
#define MAC			5

#define AMIGA16		1
#define PC_CLONE	2
#define ATARI_ST	3
#define MACINTOSH	4

#define MC68000		1
#define MC68010		2
#define MC68020		3
#define MC68030		4
#define MC68040		5
#define MC68050		6

#define IAPX86		7
#define IAPX88		8
#define IAPX188		9
#define IAPX186		10
#define IAPX286		11
#define IAPX386SX	12
#define IAPX386		13
#define IAPX486		14
#define IAPX586		15

#define MC68881		1
#define MC68882		2

#define IAPX87		3
#define IAPX287		4
#define IAPX387SX	5
#define IAPX387		6

#define NOCOMP		0		/* Compression modes */
#define RLE			1

#define QUICK		2
#define MEDIUM		3
#define DEEP		4

#define TESTPACK	5

#define DLE			0x90

typedef unsigned short ushort;
typedef unsigned long ulong;
typedef unsigned char ubyte;

#define INFO_IDENT 0x444D5321L

struct infoheader
{
	long extra;			/* for future expansion */
	long general;			/* General Purpose flags */
	long timestamp;		/* When archive was created */
	short lowtrack;		/* Low track in Archive */
	short hightrack;		/* High track in Archive */
	long plength;			/* Total Packed bytes */
	long ulength;			/* Total UnPacked bytes (of disk) */
	long serialno;			/* Serial Number of creator */
	short cpu;				/* CPU type of machine (680xx, 80x86, etc...) */
	short cpuco;			/* CPU coprocessor (68881, 8087, ...) */
	short machine;			/* Machine of creator (Amiga, ST, IBM, etc...) */
	short mextra;			/* Extra ID information (Machine Specific) */
	short speed;			/* CPU speed index (Approximate) */
	long timecreate;		/* Time it took to create archive */
	short version_made_by;	/* What version created it */
	short version_needed;	/* What version is needed to extract it */
	short disktype;		/* Disk type of archive */
	short cmode;			/* Compression mode (generally) used */
	short hdrsum;		/* Header checksum */
};

#define TRACK_IDENT	0x5452

struct header
{
	short ident;
	short track;		/* track number */
	short flags;		/* General flags */
	short plength;		/* actual packed length */
	short rlength;		/* packed pre-RLE length */
	short ulength;		/* unpacked length */
	byte cflag;		/* general purpose compression flag */
	byte cmode;		/* compression mode used */
	short checksum;	/* checksum of unpacked bytes */
	short datasum;		/* Data Checksum */
	short hdrsum;		/* Header Checksum */
};
/*	char buffer[plength] 	- packed data */

