/* defs.h for FO2 */

#include <exec/types.h>
#include <exec/memory.h>
#include <libraries/dos.h>
#include <libraries/dosextens.h>
#include <intuition/intuition.h>
#include <graphics/text.h>
#include <clib/all_protos.h>

#include <stdio.h>
#include <string.h>
#include <signal.h>
#include <stdlib.h>

#define Prototype extern

#include "RoutinesTD.h"

#include "Blocks.h"
#include "ShortBlocks.h"

/*#define DEBUG 1
*/
#define ON 1L
#define OFF 0L
#define R CMD_READ
#define W CMD_WRITE
#define used 0
#define var Variables
#define BBM VarAdr->BuffBitMap
#define BT VarAdr->BuffTrack
#define sourceDrive VarAdr->sourcedrive
#define destDrive VarAdr->destdrive
#define dsklist VarAdr->disklist
#define CLI VarAdr->Cli
#define err VarAdr->Err
#define GFree VarAdr->GestFree
#define DFree VarAdr->DataFree
#define FLnog VarAdr->FLnoG
#define drivebusy VarAdr->DriveBusy
#define FORMAT VarAdr->Format
#define CHECK VarAdr->Check
#define FOWin VarAdr->FOwin
#define INIT  VarAdr->Init
#define PREPARING 0x01
#define ARRANGE   0x02
#define AUTO VarAdr->Auto
#define MULTI VarAdr->Multi
#define DF0 VarAdr->Df0
#define DF1 VarAdr->Df1
#define DF2 VarAdr->Df2
#define DF3 VarAdr->Df3
#define FPointer VarAdr->Filepointer
#define FFS VarAdr->FastFS

#define ID_FFS_DISK		(0x444F5301L)	/* 'DOS\1' */
#define Intuition_rev 33

extern struct DosLibrary *DOSBase;

struct Variables{
	BOOL	Auto;
	BOOL	Multi;
	BOOL	Df0;	/* if set, df0 active */
	BOOL	Df1;	/*  ""	*/
	BOOL	Df2;	/*  ""	*/
	BOOL	Df3;	/*  ""	*/
	BYTE	sourcedrive;	/* */
	BYTE	destdrive;	/* */
	BYTE	Cli;	/* if non set, optimize for WB use */
	BYTE	FLnoG;	/* if set, File List will no longuer be considered as Gestion B */
	BYTE	Format; /* if set, the whole disk is formatted */
	BYTE	Check;	/* if set, The Dos Structure of Source is Checked */
	BYTE	FastFS;	/* if set, FFS disk */
	BYTE	DriveBusy[5];
	BYTE	Init;
	WORD	BitMap;		/* n° du Block BitMap */
	WORD	EndTMem;	/* indice sur le dernier LONG occupé de TableMem */
	WORD	GestFree;	/* dernier bloc de Gestion libre */
	WORD	DataFree;	/* dernier bloc de Data libre */
	WORD	Err;	/* compteur d' erreur */
	LONG	*BuffBitMap;	/* adr du buffer contenant le bloc BitMap */
	LONG	*BuffTrack; /* Buffer de track pour le formattage de la destination */
	LONG	*Empty;		/* pointeur sur zone contenant datas pour blocs vides */
	LONG	TotalBlocks; /* */
	LONG	(*TableMem)[]; /* */
	LONG	*inCHIP;	/* Buffer 512L en CHIP pour TD */
	struct  DiskList *disklist;	/* */
	struct  Window *FOwin;	/* pointer to FO Window struct */
	FILE	*Filepointer;	/* file pointer on err file to RAM:*/
};

extern struct var *VarAdr;

#include "FO2_protos.h"
