#ifndef DSKCTRL_H
#define DSKCTRL_H   (1)

/*****************************************************************
 *                                                               *
 *  Filename:   dskctrl.h                                        *
 *  Release:    1.01                                             *
 *  Date:       16.08.1991 14:26                                 *
 *                                                               *
 *  Private disk hardware access definitions.                    *
 *                                                               *
 *  (C) Copyright 1991 Stefan Klensch All Rights Reserved        *
 *                                                               *
 *****************************************************************/

/*****************************************************************
 * Custom hardware base.                                         *
 *****************************************************************/

#define HREG_CUSTOM     (0x00DFF000L)   /* custombase                       */

/*****************************************************************
 * Disk control register (output)                                *
 *****************************************************************/

#define HREG_DSKCTRL    (0x00BFD100L)   /* disk-control register            */

/*****************************************************************
 * Private definitions of HREG_DSKCTRL - Bits                    *
 *****************************************************************/

#define DCB_MOTOR   (7)                 /* motor on/off, active low         */
#define DCF_MOTOR   (1 << 7)

#define DCB_UNIT3   (6)                 /* unit3 - select, active low       */
#define DCF_UNIT3   (1 << 6)

#define DCB_UNIT2   (5)                 /* unit2 - select, active low       */
#define DCF_UNIT2   (1 << 5)

#define DCB_UNIT1   (4)                 /* unit1 - select, active low       */
#define DCF_UNIT1   (1 << 4)

#define DCB_UNIT0   (3)                 /* unit0 - select, active low       */
#define DCF_UNIT0   (1 << 3)

#define DCB_HEAD    (2)                 /* head-select, zero = upper head   */
#define DCF_HEAD    (1 << 2)

#define DCB_DIR     (1)                 /* step-dir, 0 goes to center       */
#define DCF_DIR     (1 << 1)

#define DCB_STEP    (0)                 /* step-pulse, 1->0->1              */
#define DCF_STEP    (1 << 0)

/*****************************************************************
 * Disk-state register (input)                                   *
 *****************************************************************/

#define HREG_DSKSTATE   (0x00BFE001L)   /* disk-states (among others)       */

/*****************************************************************
 * Disk-dependable definitions of HREG_DSKSTATE                  *
 *****************************************************************/

#define DSB_RDY     (5)                 /* drive ready, active low          */
#define DSF_RDY     (1 << 5)

#define DSB_T000    (4)                 /* drive at track00, active low     */
#define DSF_T000    (1 << 4)

#define DSB_WPROT   (3)                 /* disk write-protected, active low */
#define DSF_WPROT   (1 << 3)

#define DSB_DCHNG   (2)                 /* disk changed (rem/ins+step)      */
#define DSF_DCHNG   (1 << 2)

/*****************************************************************
 * END of dskctrl.h                                              *
 *****************************************************************/

#endif
