|
|
1.1 ! root 1: /* @(#)vsreg.h 7.1 (MIT) 6/5/86 */ ! 2: /**************************************************************************** ! 3: * * ! 4: * Copyright (c) 1983, 1984 by * ! 5: * DIGITAL EQUIPMENT CORPORATION, Maynard, Massachusetts. * ! 6: * All rights reserved. * ! 7: * * ! 8: * This software is furnished on an as-is basis and may be used and copied * ! 9: * only with inclusion of the above copyright notice. This software or any * ! 10: * other copies thereof may be provided or otherwise made available to * ! 11: * others only for non-commercial purposes. No title to or ownership of * ! 12: * the software is hereby transferred. * ! 13: * * ! 14: * The information in this software is subject to change without notice * ! 15: * and should not be construed as a commitment by DIGITAL EQUIPMENT * ! 16: * CORPORATION. * ! 17: * * ! 18: * DIGITAL assumes no responsibility for the use or reliability of its * ! 19: * software on equipment which is not supplied by DIGITAL. * ! 20: * * ! 21: * * ! 22: ****************************************************************************/ ! 23: ! 24: /* ! 25: * vsreg.h - VS100 Registers and Bits ! 26: * ! 27: * Author: Christopher A. Kent ! 28: * Digital Equipment Corporation ! 29: * Western Research Lab ! 30: * Date: Tue Jun 14 1983 ! 31: */ ! 32: ! 33: struct vsdevice{ ! 34: u_short vs_csr0; /* Control and Status */ ! 35: u_short vs_csr1; /* Interrupt Reason */ ! 36: u_short vs_csr2; /* Keyboard Receive */ ! 37: u_short vs_csr3; /* Function Parameter Low */ ! 38: u_short vs_csr4; /* Function Parameter High */ ! 39: u_short vs_csr5; /* Cursor Position X */ ! 40: u_short vs_csr6; /* Cursor Position Y */ ! 41: u_short vs_csr7; /* Interrupt Vector */ ! 42: u_short vs_csr8; /* Spare 1 */ ! 43: u_short vs_csr9; /* Spare 2 */ ! 44: u_short vs_csra; /* Spare 3 */ ! 45: u_short vs_csrb; /* Spare 4 */ ! 46: u_short vs_csrc; /* Spare 5 */ ! 47: u_short vs_csrd; /* Spare 6 */ ! 48: u_short vs_csre; /* Spare 7 */ ! 49: u_short vs_csrf; /* Interrupt Vector (2Bs) */ ! 50: }; ! 51: ! 52: /* ! 53: * CSR0 - Control and Status ! 54: */ ! 55: ! 56: #define VS_LNK_TRNS 0100000 /* Link Transition */ ! 57: #define VS_LNK_AVL 0040000 /* Link Available */ ! 58: #define VS_LNK_ERR 0020000 /* Link Error */ ! 59: #define VS_XMIT_ON 0010000 /* Transmitter On */ ! 60: #define VS_MNT_MODE 0004000 /* Maintenance Mode */ ! 61: #define VS_CRC_DIS 0002000 /* CRC Disable */ ! 62: #define VS_MNT_DONE 0001000 /* Maintenance Done */ ! 63: #define VS_SPARE 0000400 /* Spare */ ! 64: #define VS_OWN 0000200 /* Owner */ ! 65: #define VS_IE 0000100 /* Interrupt Enable */ ! 66: #define VS_FCN 0000076 /* Function Code */ ! 67: #define VS_GO 0000001 /* GO! */ ! 68: ! 69: struct vs_csr{ ! 70: union{ ! 71: u_short _register; ! 72: struct{ ! 73: unsigned _go : 1; ! 74: unsigned _function : 5; ! 75: unsigned _ie : 1; ! 76: unsigned _own : 1; ! 77: unsigned _spare : 1; ! 78: unsigned _mainDone : 1; ! 79: unsigned _CRCdisable : 1; ! 80: unsigned _mainMode : 1; ! 81: unsigned _xmitOn : 1; ! 82: unsigned _linkErr : 1; ! 83: unsigned _linkAvail : 1; ! 84: unsigned _linkTran : 1; ! 85: }_bits; ! 86: }_X; ! 87: }; ! 88: ! 89: #define csr_reg _X._register ! 90: #define csr_go _X._bits._go ! 91: #define csr_ie _X._bits._ie ! 92: #define csr_own _X._bits._own ! 93: #define csr_mainDone _X._bits._mainDone ! 94: #define csr_CRCdisable _X._bits._CRCdisable ! 95: #define csr_mainMode _X._bits._mainMode ! 96: #define csr_xmitOn _X._bits._xmitOn ! 97: #define csr_linkErr _X._bits._linkErr ! 98: #define csr_linkAvail _X._bits._linkAvail ! 99: #define csr_linkTran _X._bits._linkTran ! 100: ! 101: /* Function Codes */ ! 102: ! 103: #define VS_INIT 01 /* Initialize Display */ ! 104: #define VS_SEND 02 /* Send Packet */ ! 105: #define VS_START 03 /* Start Microcode */ ! 106: #define VS_ABORT 04 /* Abort Command Chain */ ! 107: #define VS_PWRUP 05 /* Power Up Reset */ ! 108: /**/ ! 109: #define VS_ENABBA 020 /* Enable BBA */ ! 110: #define VS_DISBBA 021 /* Disable BBA */ ! 111: #define VS_INFINITE 022 /* Inifinite Retries */ ! 112: #define VS_FINITE 023 /* Finite Retries */ ! 113: ! 114: /* amount to shift to get function code into right place */ ! 115: ! 116: #define VS_FCSHIFT 01 ! 117: ! 118: /* ! 119: * CSR1 - Interrupt Reason ! 120: */ ! 121: ! 122: #define vs_irr vs_csr1 ! 123: ! 124: #define VS_ERROR 0100000 /* Any error */ ! 125: #define VS_REASON 0077777 /* Reason Mask */ ! 126: #define VSIRR_BITS \ ! 127: "\20\20ERROR\10PWRUP\6TABLET\5MOUSE\4BUTTON\3START\2DONE\1INIT" ! 128: ! 129: #define VS_INT_US 0 ! 130: #define VS_INT_ID 01 ! 131: #define VS_INT_CD 02 ! 132: #define VS_INT_SE 04 ! 133: #define VS_INT_BE 010 ! 134: #define VS_INT_MM 020 ! 135: #define VS_INT_TM 040 ! 136: #define VS_INT_PWR 0200 ! 137: ! 138: struct vs_intr{ ! 139: union{ ! 140: u_short _register; /* whole register */ ! 141: struct{ ! 142: unsigned _reason : 14; /* Reason bits */ ! 143: unsigned _diagnostic : 1; /* Diagnostic Error bit */ ! 144: unsigned _error : 1; /* Error bit */ ! 145: }_bits; ! 146: }_X; ! 147: }; ! 148: ! 149: #define intr_reg _X._register ! 150: #define intr_reason _X._bits._reason ! 151: #define intr_diagnostic _X._bits._diagnostic /* not in rev 2b */ ! 152: #define intr_error _X._bits._error ! 153: ! 154: /* ! 155: * CSR2 - Keyboard Receive ! 156: */ ! 157: ! 158: #define vs_krr vs_csr2 ! 159: ! 160: #define VS_KBDEV 0007000 /* Device mask */ ! 161: #define VS_KBT 0000400 /* Transition direction */ ! 162: #define VS_KBKEY 0000377 /* Key mask */ ! 163: ! 164: struct vs_kbd{ ! 165: union{ ! 166: u_short _register; /* whole register */ ! 167: struct{ ! 168: unsigned _key : 8; /* Key number */ ! 169: unsigned _transition : 1; /* Transition direction */ ! 170: unsigned _device : 3; /* Device */ ! 171: unsigned _x : 4; /* Unused */ ! 172: }_bits; ! 173: }_X; ! 174: }; ! 175: ! 176: #define kbd_reg _X._register ! 177: #define kbd_key _X._bits._key ! 178: #define kbd_transition _X._bits._transition ! 179: #define kbd_device _X._bits._device ! 180: ! 181: #define VS_KBTUP 0 /* up */ ! 182: #define VS_KBTDOWN 1 /* down */ ! 183: ! 184: /* ! 185: * CSR3/4 Function Parameter Address ! 186: */ ! 187: ! 188: #define vs_pr1 vs_csr3 ! 189: #define vs_pr2 vs_csr4 ! 190: ! 191: struct vs_fparm{ ! 192: union{ ! 193: struct{ ! 194: u_short _plow; /* low 16 bits of address */ ! 195: u_short _phigh; /* high 16 bits of address */ ! 196: }_parts; ! 197: caddr_t _pall; ! 198: }_X; ! 199: }; ! 200: #define fparm_low _X._parts._plow ! 201: #define fparm_high _X._parts._phigh ! 202: #define fparm_all _X._pall ! 203: ! 204: /* ! 205: * CSR5/6 - Cursor position ! 206: */ ! 207: ! 208: #define vs_cxr vs_csr5 ! 209: #define vs_cyr vs_csr6 ! 210: ! 211: ! 212: /* ! 213: * CSR 7 - Interrupt vector in fiber cable machines ! 214: */ ! 215: ! 216: #define vs_ivr vs_csr7 ! 217: ! 218: /* ! 219: * CSR 8 through 14 Spare ! 220: */ ! 221: ! 222: #define vs_spr2 vs_csr8 ! 223: #define vs_spr3 vs_csr9 ! 224: #define vs_spr4 vs_csra ! 225: #define vs_spr5 vs_csrb ! 226: #define vs_spr6 vs_csrc ! 227: #define vs_spr7 vs_csrd ! 228: #define vs_spr8 vs_csre ! 229: ! 230: /* ! 231: * CSR 15 - Interrupt vector in rev 2B ! 232: */ ! 233: ! 234: #define vs_ivr2 vs_csrf
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.