#include "AllIncludes.c"

#define TRACKSIZE (2*512*11)
#define STACKSIZE 2048

/*
*
* Internal messages use this structure.
*
*/

struct IMsg {
	struct Message im_Message;
	short im_Action;	/* what to do */
	char im_ID;			/* the task ID */
	char im_RC;			/* the return code */
	long im_n;			/* a general purpose number */
	void *im_p;			/* a general purpose pointer */
};

/*
*
* Action allowable between the main process and the disk processes
*
*/

#define READ_TRACK 0
#define WRITE_TRACK 1
#define WRITE_AND_VERIFY_TRACK 2
#define INIT 3
#define STOP_MOTOR 4
#define EXIT 5
#define READ_ERROR 6
#define WRITE_ERROR 7
#define VERIFY_ERROR 8
#define NO_DISK 9
#define NOT_DOS 10
#define GENERIC_ERROR 11
#define WRITE_PROTECTED 12

/*
* This macros read & write the bit masks such as ActualDest
*/

#define DEST(x) (1<<(x))
#define INDEST(x) ((DEST(x)) & Dest)
#define INACTUALDEST(x) ((DEST(x)) & ActualDest)

enum Gadgets { DF0S, DF1S, DF2S, DF3S, DF0D, DF1D, DF2D, DF3D, VERIFY, BUFFER, TALK, FFS, DATE, STOP, GO, REPEAT, FORMAT, AUTO };

__asm fcpy(register __a0 void *source, register __a1 void *dest);
__asm fcmp(register __a0 void *source, register __a1 void *dest);

/*
* We link sprinf from amiga.lib, and *NOT* from the C library.
*/

extern int __stdargs sprintf(char *, char *,...);

#include "Protos.h"

extern struct IntuitionBase *IntuitionBase;
extern struct GfxBase *GfxBase;
