Annotation of 42BSD/sys/vaxuba/rkreg.h, revision 1.1

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

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.