2.11BSD/sys/pdpuba/brreg.h
struct brdevice {
short brds;
short brer;
union {
short w;
char c[2];
} brcs;
short brwc;
caddr_t brba;
short brca;
short brda;
short brae;
};
/* bits in brds */
#define BRDS_SURDY 0100000 /* selected unit ready */
#define BRDS_SUOL 0040000 /* selected unit on line */
#define BRDS_TOE 0020000 /* selected unit BR */
#define BRDS_HNF 0010000 /* header not found */
#define BRDS_SUSI 0004000 /* selected unit seek incomplete */
#define BRDS_SUFU 0001000 /* selected unit file unsafe */
#define BRDS_SUWP 0000400 /* selected unit write protected */
/* bits 7-0 are attention bits */
#define BRDS_BITS "\10\20SURDY\17SUOL\16BR\15HNF\14SUSI\12SUFU\11SUWP"
/* bits in brer */
#define BRER_WPV 0100000 /* write protect violation */
#define BRER_FUV 0040000 /* file unsafe violation */
#define BRER_NXC 0020000 /* nonexistent cylinder */
#define BRER_NXT 0010000 /* nonexistent track */
#define BRER_SUBUSY 0004000 /* selected unit busy */
#define BRER_PROG 0002000 /* program error */
#define BRER_FMTE 0001000 /* format error */
#define BRER_BSE 0000400 /* bad sector */
#define BRER_ATE 0000200 /* aborted transfer error */
#define BRER_DCE 0000100 /* data check error */
#define BRER_DSE 0000040 /* data sync error */
#define BRER_SBPE 0000020 /* system bad parity error */
#define BRER_WCE 0000010 /* write check error */
#define BRER_NXME 0000004 /* nonexistent memory */
#define BRER_EOP 0000002 /* end of pack */
#define BRER_DSKERR 0000001 /* disk error */
#define BRER_BITS \
"\10\20WPV\17FUV\16NXC\15NXT\14SUBUSY\13PROG\12FMTE\11BSE\10ATE\
\7DCE\6DSE\5SBPE\4WCE\3NXME\2EOP\1DSKERR"
/* bits in brcs */
#define BR_ERR 0100000 /* error */
#define BR_HE 0040000 /* hard error */
#define BR_AIE 0020000 /* attention interrupt enable */
#define BR_HDB 0010000 /* hold drive busy */
#define BR_HDR 0004000 /* header */
/* bits 10-8 are drive select */
#define BR_RDY 0000200 /* ready */
#define BR_IDE 0000100 /* interrupt on done (error) enable */
/* bits 5-4 are the UNIBUS extension bits */
/* bits 3-1 are the function */
#define BR_GO 0000001 /* go */
#define BR_BITS "\10\20ERR\17HE\16AIE\15HDB\14HDR\10RDY\7IDE\1GO"
/* commands */
#define BR_IDLE 0000000 /* idle */
#define BR_WCOM 0000002 /* write */
#define BR_RCOM 0000004 /* read */
#define BR_WCHK 0000006 /* write check */
#define BR_SEEK 0000010 /* seek */
#define BR_WNS 0000012 /* write (no seek) */
#define BR_HSEEK 0000014 /* home seek */
#define BR_RNS 0000016 /* read (no seek) */
#define STBE 0000100 /* Strobe early */
#define STBL 0000200 /* Strobe late */
#define OFFP 0140000 /* Positive offset */
#define OFFM 0100000 /* Negative offset */
/* Bits in br_ae */
#define AE_DTYP 0007400 /* Disk type */
#define AE_T50 0000400 /* T-50 drive */
#define AE_T80 0001000 /* T-80 drive */
#define AE_T200 0002000 /* T-200 drive */
#define AE_T300 0004000 /* T-300 drive */