Annotation of 43BSDTahoe/sys/vax/rx50reg.h, revision 1.1

1.1     ! root        1: /*
        !             2:  * Copyright (c) 1988 Regents of the University of California.
        !             3:  * All rights reserved.
        !             4:  *
        !             5:  * This code is derived from software contributed to Berkeley by
        !             6:  * Chris Torek.
        !             7:  *
        !             8:  * Redistribution and use in source and binary forms are permitted
        !             9:  * provided that the above copyright notice and this paragraph are
        !            10:  * duplicated in all such forms and that any documentation,
        !            11:  * advertising materials, and other materials related to such
        !            12:  * distribution and use acknowledge that the software was developed
        !            13:  * by the University of California, Berkeley.  The name of the
        !            14:  * University may not be used to endorse or promote products derived
        !            15:  * from this software without specific prior written permission.
        !            16:  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
        !            17:  * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
        !            18:  * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
        !            19:  *
        !            20:  *     @(#)rx50reg.h   7.1 (Berkeley) 7/9/88
        !            21:  */
        !            22: 
        !            23: /*
        !            24:  * RX50 registers.
        !            25:  */
        !            26: 
        !            27: /*
        !            28:  * The names below do not quite match the DEC documentation simply because
        !            29:  * the names in the documentation are so bad.
        !            30:  */
        !            31: struct rx50device {
        !            32:        u_short rxid;           /* identification */
        !            33:        u_short reserved;
        !            34:        u_short rxcmd;          /* command function reg */
        !            35:        u_short rxtrk;          /* track */
        !            36:        u_short rxsec;          /* sector */
        !            37:        u_short rxcsc;          /* current sector */
        !            38:        u_short rxict;          /* incorrect track (???) */
        !            39:        u_short rxext;          /* extend command register */
        !            40:        u_short rxedb;          /* empty data buffer (read) */
        !            41:        u_short rxrda;          /* reset data address */
        !            42:        u_short rxgo;           /* read to start current cmd */
        !            43:        u_short rxfdb;          /* fill data buffer (write) */
        !            44: };
        !            45: 
        !            46: #define        RX50SEC         10      /* sectors per track */
        !            47: #define        RX50MAXSEC      800     /* 10 sectors times 80 tracks */
        !            48: 
        !            49: /*
        !            50:  * Do the sector skew given the sector and track
        !            51:  * number (it depends on both!).
        !            52:  */
        !            53: /*                     (((((s) / 5) + 2 * ((s) + (t))) % 10) + 1) */
        !            54: #define        RX50SKEW(s, t)  (((s) / 5) + "\1\3\5\7\11\1\3\5\7"[((s) + (t)) % 5])
        !            55: 
        !            56: /*
        !            57:  * Values in the command function register.
        !            58:  */
        !            59: #define        RXCMD_ERROR     0x80    /* error bit (composite?) */
        !            60: #define        RXCMD_READ      0x40    /* read command */
        !            61: #define        RXCMD_WRITE     0x70    /* write command */
        !            62: #define        RXCMD_RESET     0x20    /* reset command */
        !            63: #define        RXCMD_DONE      0x08    /* operation done (status) */
        !            64: #define        RXCMD_DRIVE0    0x00    /* select drive 0 (csa1) */
        !            65: #define        RXCMD_DRIVE1    0x02    /* select drive 1 (csa2) */

unix.superglobalmegacorp.com

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