unit Trackdisk;

INTERFACE
uses Exec;


type
	pIOExtTD = ^tIOExtTD;
	tIOExtTD = record
		iotd_Req: tIOStdReq;
		iotd_Count: long;
		iotd_SecLabel: long;
		end;

	pDriveGeometry = ^tDriveGeometry;
	tDriveGeometry = record
		dg_SectorSize: long;
		dg_TotalSectors: long;
		dg_Cylinders: long;
		dg_CylSectors: long;
		dg_Heads: long;
		dg_TrackSectors: long;
		dg_BufMemType: long;
		dg_DeviceType: byte;
		dg_Flags: byte;
		dg_Reserved: word;
		end;

	pTDU_PublicUnit = ^tTDU_PublicUnit;
	tTDU_PublicUnit = record
		tdu_Unit: tUnit;
		tdu_Comp01Track: word;
		tdu_Comp10Track: word;
		tdu_Comp11Track: word;
		tdu_StepDelay: long;
		tdu_SettleDelay: long;
		tdu_RetryCnt: byte;
		tdu_PubFlags: byte;
		tdu_CurrTrk: word;
		tdu_CalibrateDelay: long;
		tdu_Counter: long;
		end;



const
	TD_CHANGENUM = $D;
	DG_CDROM = 5;
	TD_REMOVE = $C;
	TDERR_PostReset = $23;
	TDPF_NOCLICK = 1;
	TD_SECTOR = $200;
	TD_EJECT = $17;
	ETD_WRITE = $8003;
	DG_COMMUNICATION = 9;
	TD_LABELSIZE = $10;
	ETD_SEEK = $800A;
	TDB_ALLOW_NON_3_5 = 0;
	ETD_MOTOR = $8009;
	TDERR_WriteProt = $1C;
	DG_SEQUENTIAL_ACCESS = 1;
	TDF_ALLOW_NON_3_5 = 1;
	TDERR_BadSecPreamble = $16;
	TD_REMCHANGEINT = $15;
	TDERR_BadSecSum = $19;
	DRIVE5_25 = 2;
	TDERR_BadHdrSum = $18;
	ETD_RAWREAD = $8010;
	TDERR_NoSecHdr = $15;
	DG_PROCESSOR = 3;
	TD_NAME = 'trackdisk.device';
	ETD_RAWWRITE = $8011;
	NUMSECS = $B;
	NUMUNITS = 4;
	TD_SEEK = $A;
	TD_SECSHIFT = 9;
	DG_OPTICAL_DISK = 7;
	TD_MOTOR = 9;
	TDERR_DiskChanged = $1D;
	TD_CHANGESTATE = $E;
	TD_PROTSTATUS = $F;
	TD_LASTCOMM = $18;
	IOTDB_INDEXSYNC = 4;
	TDERR_NoMem = $1F;
	DG_SCANNER = 6;
	TDERR_BadUnitNum = $20;
	IOTDF_INDEXSYNC = $10;
	DRIVE3_5_150RPM = 3;
	TDERR_BadDriveType = $21;
	DG_WORM = 4;
	TD_GETNUMTRACKS = $13;
	TDERR_BadSecID = $17;
	TDERR_DriveInUse = $22;
	TD_RAWREAD = $10;
	TD_GETDRIVETYPE = $12;
	ETD_UPDATE = $8004;
	DGB_REMOVABLE = 0;
	TDERR_TooFewSecs = $1A;
	DGF_REMOVABLE = 1;
	ETD_FORMAT = $800B;
	TD_RAWWRITE = $11;
	ETD_CLEAR = $8005;
	DG_MEDIUM_CHANGER = 8;
	DRIVE3_5 = 1;
	TDF_EXTCOM = $8000;
	DG_PRINTER = 2;
	TDERR_NotSpecified = $14;
	TD_GETGEOMETRY = $16;
	TDERR_SeekError = $1E;
	DG_UNKNOWN = $1F;
	IOTDB_WORDSYNC = 5;
	IOTDF_WORDSYNC = $20;
	TD_ADDCHANGEINT = $14;
	ETD_READ = $8002;
	DG_DIRECT_ACCESS = 0;
	TD_FORMAT = $B;
	TDERR_BadSecHdr = $1B;
	TDPB_NOCLICK = 0;


IMPLEMENTATION
end.
