{$if not def DEVICES_TRACKDISK_H}
Const DEVICES_TRACKDISK_H=0;
{$if not def EXEC_IO_H;incl"exec/io.h";endif}
{$if not def EXEC_DEVICES_H;incl"exec/devices.h";endif}
Const
 NUMCYLS=80;
 MAXCYLS=100;  {NUMCYLS+20}
 NUMSECS=11;
 NUMHEADS=2;
 MAXRETRY=10;
 NUMTRACKS=160; {NUMCYLS*NUMHEADS}
 NUMUNITS=4;
 TD_SECTOR=512;
 TD_SECSHIFT=9;
 TD_NAME="trackdisk.device";
 TDF_EXTCOM=$8000; {1L<<15}
 TD_MOTOR=CMD_NONSTD;
 TD_SEEK=10;   {CMD_NONSTD+1}
 TD_FORMAT=11; {CMD_NONSTD+2}
 TD_REMOVE=12; {CMD_NONSTD+3}
 TD_CHANGENUM=13;   {CMD_NONSTD+4}
 TD_CHANGESTATE=14; {CMD_NONSTD+5}
 TD_PROTSTATUS=15;  {CMD_NONSTD+6}
 TD_RAWREAD=16;     {CMD_NONSTD+7}
 TD_RAWWRITE=17;    {CMD_NONSTD+8}
 TD_GETDRIVETYPE=18;{CMD_NONSTD+9}
 TD_GETNUMTRACKS=19;{CMD_NONSTD+10}
 TD_ADDCHANGEINT=20;{CMD_NONSTD+11}
 TD_REMCHANGEINT=21;{CMD_NONSTD+12}
 TD_LASTCOMM=22;    {CMD_NONSTD+13}
 ETD_WRITE=$8003; {CMD_WRITE+TDF_EXTCOM}
 ETD_READ=$8002;  {CMD_READ+TDF_EXTCOM}
 ETD_MOTOR=$8009; {TD_MOTOR+TDF_EXTCOM}
 ETD_SEEK=$800A; {TD_SEEK+TDF_EXTCOM}
 ETD_FORMAT=$800B; {TD_FORMAT+TDF_EXTCOM}
 ETD_UPDATE=$8004; {CMD_UPDATE+TDF_EXTCOM}
 ETD_CLEAR=$8005; {CMD_CLEAR+TDF_EXTCOM}
 ETD_RAWREAD=$8010; {TD_RAWREAD+TDF_EXTCOM}
 ETD_RAWWRITE=$8011; {TD_RAWWRITE+TDF_EXTCOM}
 IOTDB_INDEXSYNC=4;
 IOTDF_INDEXSYNC=$10;
 TD_LABELSIZE=16;
 TDB_ALLOW_NON_3_5=0;
 TDF_ALLOW_NON_3_5=1;
 DRIVE3_5=1;
 DRIVE5_25=2;
 TDERR_NotSpecified=20;
 TDERR_NoSecHdr=21;
 TDERR_BadSecPreamble=22;
 TDERR_BadSecID=23;
 TDERR_BadHdrSum=24;
 TDERR_BadSecSum=25;
 TDERR_TooFewSecs=26;
 TDERR_BadSecHdr=27;
 TDERR_WriteProt=28;
 TDERR_DiskChanged=29;
 TDERR_SeekError=30;
 TDERR_NoMem=31;
 TDERR_BadUnitNum=32;
 TDERR_BadDriveType=33;
 TDERR_DriveInUse=34;
 TDERR_PostReset=35;

Type
{
p_IOExtTD=^IOExtTD;
IOExtTD=Record
 iotd_Req:IOStdReq;
 iotd_Count,iotd_SecLabel:Long
End;
}
p_TDU_Public=^TDU_PublicUnit;
TDU_PublicUnit=Record
 tdu_Unit:Unit;
 tdu_Comp01Track,tdu_Comp10Track,tdu_Comp11Track:Word;
 tdu_StepDelay,tdu_SettleDelay:Long;
 tdu_RetryCnt:Byte
End;
{$endif DEVICES_TRACKDISK_H }

