Annotation of 43BSDReno/sys/vaxuba/tmreg.h, revision 1.1

1.1     ! root        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:  *     @(#)tmreg.h     7.1 (Berkeley) 6/5/86
        !             7:  */
        !             8: 
        !             9: /*
        !            10:  * TM11 controller registers
        !            11:  */
        !            12: struct tmdevice {
        !            13:        u_short tmer;           /* error register, per drive */
        !            14:        u_short tmcs;           /* control-status register */
        !            15:        short   tmbc;           /* byte/frame count */
        !            16:        u_short tmba;           /* address */
        !            17:        short   tmdb;           /* data buffer */
        !            18:        short   tmrd;           /* read lines */
        !            19:        short   tmmr;           /* maintenance register */
        !            20: #ifdef AVIV
        !            21:        short   tmfsr;          /* formatter status reading */
        !            22: #endif
        !            23: };
        !            24: 
        !            25: #define        b_repcnt  b_bcount
        !            26: #define        b_command b_resid
        !            27: 
        !            28: /* bits in tmcs */
        !            29: #define        TM_GO           0000001
        !            30: #define        TM_OFFL         0000000         /* offline */
        !            31: #define        TM_RCOM         0000002         /* read */
        !            32: #define        TM_WCOM         0000004         /* write */
        !            33: #define        TM_WEOF         0000006         /* write-eof */
        !            34: #define        TM_SFORW        0000010         /* space forward */
        !            35: #define        TM_SREV         0000012         /* space backwards */
        !            36: #define        TM_WIRG         0000014         /* write with xtra interrecord gap */
        !            37: #define        TM_REW          0000016         /* rewind */
        !            38: #define        TM_SENSE        TM_IE           /* sense (internal to driver) */
        !            39: 
        !            40: #define        tmreverseop(cmd)                ((cmd)==TM_SREV || (cmd)==TM_REW)
        !            41: 
        !            42: /* TM_SNS is a pseudo-op used to get tape status */
        !            43: #define        TM_IE           0000100         /* interrupt enable */
        !            44: #define        TM_CUR          0000200         /* control unit is ready */
        !            45: #define        TM_DCLR         0010000         /* drive clear */
        !            46: #define        TM_D800         0060000         /* select 800 bpi density */
        !            47: #define        TM_ERR          0100000         /* drive error summary */
        !            48: 
        !            49: /* bits in tmer */
        !            50: #define        TMER_ILC        0100000         /* illegal command */
        !            51: #define        TMER_EOF        0040000         /* end of file */
        !            52: #define        TMER_CRE        0020000         /* cyclic redundancy error */
        !            53: #define        TMER_PAE        0010000         /* parity error */
        !            54: #define        TMER_BGL        0004000         /* bus grant late */
        !            55: #define        TMER_EOT        0002000         /* at end of tape */
        !            56: #define        TMER_RLE        0001000         /* record length error */
        !            57: #define        TMER_BTE        0000400         /* bad tape error */
        !            58: #define        TMER_NXM        0000200         /* non-existant memory */
        !            59: #define        TMER_SELR       0000100         /* tape unit properly selected */
        !            60: #define        TMER_BOT        0000040         /* at beginning of tape */
        !            61: #define        TMER_CH7        0000020         /* 7 channel tape */
        !            62: #define        TMER_SDWN       0000010         /* gap settling down */
        !            63: #define        TMER_WRL        0000004         /* tape unit write protected */
        !            64: #define        TMER_RWS        0000002         /* tape unit rewinding */
        !            65: #define        TMER_TUR        0000001         /* tape unit ready */
        !            66: 
        !            67: #define        TMER_BITS       \
        !            68: "\10\20ILC\17EOF\16CRE\15PAE\14BGL\13EOT\12RLE\11BTE\10NXM\
        !            69: \7SELR\6BOT\5CH7\4SDWN\3WRL\2RWS\1TUR"
        !            70: 
        !            71: #define        TMER_HARD       (TMER_ILC|TMER_EOT)
        !            72: #define        TMER_SOFT       (TMER_CRE|TMER_PAE|TMER_BGL|TMER_RLE|TMER_BTE|TMER_NXM)
        !            73: 
        !            74: #ifdef AVIV
        !            75: /* bits in tmmr (formatter diagnostic reading) */
        !            76: #define        DTS             000000          /* select dead track status */
        !            77: #   define     DTS_MASK        0xff
        !            78: 
        !            79: #define        DAB             010000          /* select diagnostic aid bits */
        !            80: #   define  DAB_MASK           037     /* reject code only */
        !            81: 
        !            82: #define        RWERR           020000          /* select read-write errors */
        !            83: #    define RWERR_MASK         01777   /* include bit 9 (MAI) */
        !            84: #    define RWERR_BITS \
        !            85: "\10\12MAI\11CRC ERR\10WTMCHK\7UCE\6PART REC\5MTE\3END DATA CHK\
        !            86: \2VEL ERR\1DIAG MODE"
        !            87: 
        !            88: #define        DRSENSE         030000          /* select drive sense */
        !            89: #    define DRSENSE_MASK       0777
        !            90: #    define DRSENSE_BITS \
        !            91: "\10\11WRTS\10EOTS\7BOTS\6WNHB\5PROS\4BWDS\3HDNG\2RDYS\1ON LINE"
        !            92: 
        !            93: #define        CRCF            040000          /* CRC-F Generator */
        !            94: 
        !            95: #define        FSR_BITS \
        !            96: "\10\20REJ\17TMS\16OVRN\15DATACHK\14SSC\13EOTS\12WRTS\11ROMPS\10CRERR\
        !            97: \7ONLS\6BOTS\5HDENS\4BUPER\3FPTS\2REWS\1RDYS"
        !            98: #endif AVIV

unix.superglobalmegacorp.com

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