/* -*-C-*-
********************************************************************************
*
* File:         frmtdsk.h
* RCS:          $Header: frmtdsk.h,v 1.1 93/03/19 14:24:47 mjp Exp $
* Description:  Format an Emax disc.
* Author:       Mike Prudence, (mjp@hplb.hpl.hp.com)
* Created:      Wed Mar 17 14:41:20 1993
* Modified:     Fri Mar 19 14:16:44 1993 (Mike Prudence) mjp@prudence
* Language:     C
*
* (c) Copyright 1993, Mike Prudence.
*
********************************************************************************
*/

#ifndef __FRMTDSK_H
#define __FRMTDSK_H

#define SIZE_CODE       2
#define INTERLEAVE      1
#define GAP_LENGTH      0x28

#define FORMAT_SECTOR   5

typedef struct {
  char track;
  char head;
  char sector;
  char sizecode;
} FormatEntry;

typedef FormatEntry FormatTable[SCTR_TRK];

typedef struct {
  char specify[2];
  char motor_delay;
  char bytes_sector;
  char sectors_track;
  char sector_gap;
  char data_length;
  char gap_length;
  char format_filler;
  char head_settle;
  char motor_start;
} DriveParamTable;

typedef union {
  void far *fp;
  unsigned int word[2];
} FAR_PTR;

extern void SetFormatTable (FormatTable ft, int head, int track);

extern int FormatTrack (int drive, int head, int track);

extern int FormatDisk (int drive);

#endif
