1: /*
   2:  * Copyright (c) 1982, 1986 Regents of the University of California.
   3:  * All rights reserved.  The Berkeley software License Agreement
   4:  * specifies the terms and conditions for redistribution.
   5:  *
   6:  *	@(#)rkreg.h	7.1 (Berkeley) 6/5/86
   7:  */
   8: 
   9: #define NRK7CYL     815
  10: #define NRK6CYL     411
  11: #define NRKSECT     22
  12: #define NRKTRK      3
  13: 
  14: struct rkdevice
  15: {
  16:     short   rkcs1;      /* control status reg 1 */
  17:     short   rkwc;       /* word count */
  18:     u_short rkba;       /* bus address */
  19:     short   rkda;       /* disk address */
  20:     short   rkcs2;      /* control status reg 2 */
  21:     short   rkds;       /* drive status */
  22:     short   rker;       /* driver error register */
  23:     short   rkatt;      /* attention status/offset register */
  24:     short   rkcyl;      /* current cylinder register */
  25:     short   rkxxx;
  26:     short   rkdb;       /* data buffer register */
  27:     short   rkmr1;      /* maint reg 1 */
  28:     short   rkec1;      /* burst error bit position */
  29:     short   rkec2;      /* burst error bit pattern */
  30:     short   rkmr2;      /* maint reg 2 */
  31:     short   rkmr3;      /* maint reg 3 */
  32: };
  33: 
  34: /* rkcs1 */
  35: #define RK_CCLR     0100000     /* controller clear (also error) */
  36: #define RK_CERR     RK_CCLR
  37: #define RK_DI       0040000     /* drive interrupt */
  38: #define RK_DTCPAR   0020000     /* drive to controller parity */
  39: #define RK_CFMT     0010000     /* 18 bit word format */
  40: #define RK_CTO      0004000     /* controller timeout */
  41: #define RK_CDT      0002000     /* drive type (rk07/rk06) */
  42: /* bits 8 and 9 are the extended bus address */
  43: #define RK_CRDY     0000200     /* controller ready */
  44: #define RK_IE       0000100     /* interrupt enable */
  45: /* bits 1 to 4 are the function code */
  46: #define RK_GO       0000001
  47: 
  48: /* commands */
  49: #define RK_SELECT   000     /* select drive */
  50: #define RK_PACK     002     /* pack acknowledge */
  51: #define RK_DCLR     004     /* drive clear */
  52: #define RK_UNLOAD   006     /* unload */
  53: #define RK_START    010     /* start spindle */
  54: #define RK_RECAL    012     /* recalibrate */
  55: #define RK_OFFSET   014     /* offset */
  56: #define RK_SEEK     016     /* seek */
  57: #define RK_READ     020     /* read data */
  58: #define RK_WRITE    022     /* write data */
  59: #define RK_RHDR     026     /* read header */
  60: #define RK_WHDR     030     /* write header */
  61: 
  62: /* rkcs2 */
  63: #define RKCS2_DLT   0100000     /* data late */
  64: #define RKCS2_WCE   0040000     /* write check */
  65: #define RKCS2_UPE   0020000     /* unibus parity */
  66: #define RKCS2_NED   0010000     /* non-existant drive */
  67: #define RKCS2_NEM   0004000     /* non-existant memory */
  68: #define RKCS2_PGE   0002000     /* programming error */
  69: #define RKCS2_MDS   0001000     /* multiple drive select */
  70: #define RKCS2_UFE   0000400     /* unit field error */
  71: #define RKCS2_OR    0000200     /* output ready */
  72: #define RKCS2_IR    0000100     /* input ready */
  73: #define RKCS2_SCLR  0000040     /* subsystem clear */
  74: #define RKCS2_BAI   0000020     /* bus address increment inhibit */
  75: #define RKCS2_RLS   0000010     /* release */
  76: /* bits 0-2 are drive select */
  77: 
  78: #define RKCS2_BITS \
  79: "\10\20DLT\17WCE\16UPE\15NED\14NEM\13PGE\12MDS\11UFE\
  80: \10OR\7IR\6SCLR\5BAI\4RLS"
  81: 
  82: #define RKCS2_HARD      (RKCS2_NED|RKCS2_PGE)
  83: 
  84: /* rkds */
  85: #define RKDS_SVAL   0100000     /* status valid */
  86: #define RKDS_CDA    0040000     /* current drive attention */
  87: #define RKDS_PIP    0020000     /* positioning in progress */
  88: /* bit 12 is spare */
  89: #define RKDS_WRL    0004000     /* write lock */
  90: /* bits 9 and 10 are spare */
  91: #define RKDS_DDT    0000400     /* disk drive type */
  92: #define RKDS_DRDY   0000200     /* drive ready */
  93: #define RKDS_VV     0000100     /* volume valid */
  94: #define RKDS_DROT   0000040     /* drive off track */
  95: #define RKDS_SPLS   0000020     /* speed loss */
  96: #define RKDS_ACLO   0000010     /* ac low */
  97: #define RKDS_OFF    0000004     /* offset mode */
  98: #define RKDS_DRA    0000001     /* drive available */
  99: 
 100: #define RKDS_DREADY (RKDS_DRA|RKDS_VV|RKDS_DRDY)
 101: #define RKDS_BITS \
 102: "\10\20SVAL\17CDA\16PIP\14WRL\11DDT\
 103: \10DRDY\7VV\6DROT\5SPLS\4ACLO\3OFF\1DRA"
 104: #define RKDS_HARD   (RKDS_ACLO|RKDS_SPLS)
 105: 
 106: /* rker */
 107: #define RKER_DCK    0100000     /* data check */
 108: #define RKER_UNS    0040000     /* drive unsafe */
 109: #define RKER_OPI    0020000     /* operation incomplete */
 110: #define RKER_DTE    0010000     /* drive timing error */
 111: #define RKER_WLE    0004000     /* write lock error */
 112: #define RKER_IDAE   0002000     /* invalid disk address error */
 113: #define RKER_COE    0001000     /* cylinder overflow error */
 114: #define RKER_HRVC   0000400     /* header vertical redundancy check */
 115: #define RKER_BSE    0000200     /* bad sector error */
 116: #define RKER_ECH    0000100     /* hard ecc error */
 117: #define RKER_DTYE   0000040     /* drive type error */
 118: #define RKER_FMTE   0000020     /* format error */
 119: #define RKER_DRPAR  0000010     /* control-to-drive parity error */
 120: #define RKER_NXF    0000004     /* non-executable function */
 121: #define RKER_SKI    0000002     /* seek incomplete */
 122: #define RKER_ILF        0000001     /* illegal function */
 123: 
 124: #define RKER_BITS \
 125: "\10\20DCK\17UNS\16OPI\15DTE\14WLE\13IDAE\12COE\11HRVC\
 126: \10BSE\7ECH\6DTYE\5FMTE\4DRPAR\3NXF\2SKI\1ILF"
 127: #define RKER_HARD   \
 128:     (RKER_WLE|RKER_IDAE|RKER_COE|RKER_DTYE|RKER_FMTE|RKER_ILF)
 129: 
 130: /* offset bits in rkas */
 131: #define RKAS_P400   0020        /*  +400 RK06,  +200 RK07 */
 132: #define RKAS_M400   0220        /*  -400 RK06,  -200 RK07 */
 133: #define RKAS_P800   0040        /*  +800 RK06,  +400 RK07 */
 134: #define RKAS_M800   0240        /*  -800 RK06,  -400 RK07 */
 135: #define RKAS_P1200  0060        /*  +800 RK06,  +400 RK07 */
 136: #define RKAS_M1200  0260        /* -1200 RK06, -1200 RK07 */

Defined struct's

rkdevice defined in line 14; used 46 times

Defined macros

NRK6CYL defined in line 10; used 1 times
NRK7CYL defined in line 9; used 1 times
NRKSECT defined in line 11; used 9 times
NRKTRK defined in line 12; used 7 times
RKAS_M1200 defined in line 136; used 2 times
RKAS_M400 defined in line 132; used 2 times
RKAS_M800 defined in line 134; used 2 times
RKAS_P1200 defined in line 135; used 2 times
RKAS_P400 defined in line 131; used 2 times
RKAS_P800 defined in line 133; used 2 times
RKCS2_BAI defined in line 74; never used
RKCS2_BITS defined in line 78; used 3 times
RKCS2_DLT defined in line 63; never used
RKCS2_HARD defined in line 82; used 1 times
RKCS2_IR defined in line 72; never used
RKCS2_MDS defined in line 69; used 1 times
RKCS2_NED defined in line 66; used 2 times
RKCS2_NEM defined in line 67; never used
RKCS2_OR defined in line 71; never used
RKCS2_PGE defined in line 68; used 1 times
  • in line 82
RKCS2_RLS defined in line 75; never used
RKCS2_SCLR defined in line 73; used 2 times
RKCS2_UFE defined in line 70; never used
RKCS2_UPE defined in line 65; never used
RKCS2_WCE defined in line 64; never used
RKDS_ACLO defined in line 96; used 1 times
RKDS_BITS defined in line 101; used 2 times
RKDS_CDA defined in line 86; never used
RKDS_DDT defined in line 91; never used
RKDS_DRA defined in line 98; used 1 times
RKDS_DRDY defined in line 92; used 1 times
RKDS_DREADY defined in line 100; used 6 times
RKDS_DROT defined in line 94; used 1 times
RKDS_HARD defined in line 104; used 1 times
RKDS_OFF defined in line 97; never used
RKDS_PIP defined in line 87; used 1 times
RKDS_SPLS defined in line 95; used 1 times
RKDS_SVAL defined in line 85; used 3 times
RKDS_VV defined in line 93; used 3 times
RKDS_WRL defined in line 89; never used
RKER_BITS defined in line 124; used 3 times
RKER_BSE defined in line 115; used 1 times
RKER_COE defined in line 113; used 1 times
RKER_DCK defined in line 107; used 2 times
RKER_DRPAR defined in line 119; never used
RKER_DTE defined in line 110; never used
RKER_DTYE defined in line 117; used 2 times
RKER_ECH defined in line 116; used 1 times
RKER_FMTE defined in line 118; used 1 times
RKER_HARD defined in line 127; used 1 times
RKER_HRVC defined in line 114; never used
RKER_IDAE defined in line 112; used 1 times
RKER_ILF defined in line 122; used 1 times
RKER_NXF defined in line 120; never used
RKER_OPI defined in line 109; used 1 times
RKER_SKI defined in line 121; used 1 times
RKER_UNS defined in line 108; used 1 times
RKER_WLE defined in line 111; used 2 times
RK_CCLR defined in line 35; used 11 times
RK_CDT defined in line 41; used 8 times
RK_CERR defined in line 36; used 5 times
RK_CFMT defined in line 39; never used
RK_CRDY defined in line 43; used 3 times
RK_CTO defined in line 40; never used
RK_DCLR defined in line 51; used 10 times
RK_DI defined in line 37; never used
RK_DTCPAR defined in line 38; never used
RK_GO defined in line 46; used 22 times
RK_IE defined in line 44; used 11 times
RK_OFFSET defined in line 55; used 1 times
RK_PACK defined in line 50; used 3 times
RK_READ defined in line 57; used 3 times
RK_RECAL defined in line 54; used 1 times
RK_RHDR defined in line 59; never used
RK_SEEK defined in line 56; used 2 times
RK_SELECT defined in line 49; never used
RK_START defined in line 53; never used
RK_UNLOAD defined in line 52; never used
RK_WHDR defined in line 60; never used
RK_WRITE defined in line 58; used 4 times

Usage of this include

Last modified: 1986-06-05
Generated: 2016-12-26
Generated by src2html V0.67
page hit count: 1611
Valid CSS Valid XHTML 1.0 Strict