|
|
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 is only permitted until one year after the first shipment ! 9: * of 4.4BSD by the Regents. Otherwise, redistribution and use in source and ! 10: * binary forms are permitted provided that: (1) source distributions retain ! 11: * this entire copyright notice and comment, and (2) distributions including ! 12: * binaries display the following acknowledgement: This product includes ! 13: * software developed by the University of California, Berkeley and its ! 14: * contributors'' in the documentation or other materials provided with the ! 15: * distribution and in all advertising materials mentioning features or use ! 16: * of this software. Neither the name of the University nor the names of ! 17: * its contributors may be used to endorse or promote products derived from ! 18: * this software without specific prior written permission. ! 19: * THIS SOFTWARE IS PROVIDED AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED ! 20: * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF ! 21: * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ! 22: * ! 23: * @(#)rx50reg.h 7.2 (Berkeley) 6/28/90 ! 24: */ ! 25: ! 26: /* ! 27: * RX50 registers. ! 28: */ ! 29: ! 30: /* ! 31: * The names below do not quite match the DEC documentation simply because ! 32: * the names in the documentation are so bad. ! 33: */ ! 34: struct rx50device { ! 35: u_short rxid; /* identification */ ! 36: u_short reserved; ! 37: u_short rxcmd; /* command function reg */ ! 38: u_short rxtrk; /* track */ ! 39: u_short rxsec; /* sector */ ! 40: u_short rxcsc; /* current sector */ ! 41: u_short rxict; /* incorrect track (???) */ ! 42: u_short rxext; /* extend command register */ ! 43: u_short rxedb; /* empty data buffer (read) */ ! 44: u_short rxrda; /* reset data address */ ! 45: u_short rxgo; /* read to start current cmd */ ! 46: u_short rxfdb; /* fill data buffer (write) */ ! 47: }; ! 48: ! 49: #define RX50SEC 10 /* sectors per track */ ! 50: #define RX50MAXSEC 800 /* 10 sectors times 80 tracks */ ! 51: ! 52: /* ! 53: * Do the sector skew given the sector and track ! 54: * number (it depends on both!). ! 55: */ ! 56: /* (((((s) / 5) + 2 * ((s) + (t))) % 10) + 1) */ ! 57: #define RX50SKEW(s, t) (((s) / 5) + "\1\3\5\7\11\1\3\5\7"[((s) + (t)) % 5]) ! 58: ! 59: /* ! 60: * Values in the command function register. ! 61: */ ! 62: #define RXCMD_ERROR 0x80 /* error bit (composite?) */ ! 63: #define RXCMD_READ 0x40 /* read command */ ! 64: #define RXCMD_WRITE 0x70 /* write command */ ! 65: #define RXCMD_RESET 0x20 /* reset command */ ! 66: #define RXCMD_DONE 0x08 /* operation done (status) */ ! 67: #define RXCMD_DRIVE0 0x00 /* select drive 0 (csa1) */ ! 68: #define RXCMD_DRIVE1 0x02 /* select drive 1 (csa2) */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.