Annotation of 43BSD/sys/vaxuba/tmreg.h, revision 1.1.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.