1: /* 2: * SYSGEN -- an imitation of the CONFIG command of VMS SYSGEN. 3: * 4: * $Id: devices.h,v 1.4 1997/06/08 08:32:13 tih Exp $ 5: */ 6: 7: #define NA 0 /* identifies irrelevant alignments */ 8: #define FLOAT 0 /* identifies floating vectors or CSRs */ 9: 10: #define DEVNAMLEN 8 /* maximum length of a device name */ 11: #define MAXDEVS 64 /* max number of configuration devices */ 12: 13: #define VECLEN 4 /* address space footprint of a vector */ 14: #define CSRLEN 2 /* address space footprint of a register */ 15: 16: #define VECBASE 0300 /* floating vectors start with this one */ 17: #define CSRBASE 0760000L /* floating CSRs start _above_ this point */ 18: 19: struct device { 20: char *name; /* device name */ 21: int vector; /* fixed vector number or FLOAT */ 22: int numvecs; /* number of vectors used by device */ 23: int vecalign; /* alignment requirement for vector number */ 24: long csr; /* fixed csr address or FLOAT */ 25: int csralign; /* alignment requirement for csr address */ 26: }; 27: 28: /* sorted (prioritized) table of DEC Q22-bus or UNIBUS vectors and CSRs */ 29: 30: struct device devtab[] = { 31: { "CR11", 0230, 1, NA, 0777160, NA }, 32: { "RK611", 0210, 1, NA, 0777440, NA }, 33: { "LP11", 0200, 1, NA, 0777514, NA }, 34: { "LP11", 0170, 1, NA, 0764004, NA }, 35: { "LP11", 0174, 1, NA, 0764014, NA }, 36: { "LP11", 0270, 1, NA, 0764024, NA }, 37: { "LP11", 0274, 1, NA, 0764034, NA }, 38: { "RL11", 0160, 1, NA, 0774400, NA }, 39: { "TS11", 0224, 1, NA, 0772520, NA }, 40: { "RX211", 0264, 1, NA, 0777170, NA }, 41: { "RB730", 0250, 1, NA, 0775606, NA }, 42: { "UDA", 0154, 1, NA, 0772150, NA }, 43: { "TU81", 0260, 1, NA, 0774500, NA }, 44: { "UNA", 0120, 1, NA, 0774510, NA }, 45: { "QNA", 0120, 1, NA, 0774440, NA }, 46: { "DC11", FLOAT, 2, 8, 0774000, NA }, 47: { "DC11", FLOAT, 2, 8, 0774010, NA }, 48: { "DC11", FLOAT, 2, 8, 0774020, NA }, 49: { "DC11", FLOAT, 2, 8, 0774030, NA }, 50: { "DC11", FLOAT, 2, 8, 0774040, NA }, 51: { "DC11", FLOAT, 2, 8, 0774050, NA }, 52: { "DC11", FLOAT, 2, 8, 0774060, NA }, 53: { "DC11", FLOAT, 2, 8, 0774070, NA }, 54: { "DC11", FLOAT, 2, 8, 0774100, NA }, 55: { "DC11", FLOAT, 2, 8, 0774110, NA }, 56: { "DC11", FLOAT, 2, 8, 0774120, NA }, 57: { "DC11", FLOAT, 2, 8, 0774130, NA }, 58: { "DC11", FLOAT, 2, 8, 0774140, NA }, 59: { "DC11", FLOAT, 2, 8, 0774150, NA }, 60: { "DC11", FLOAT, 2, 8, 0774160, NA }, 61: { "DC11", FLOAT, 2, 8, 0774170, NA }, 62: { "DC11", FLOAT, 2, 8, 0774200, NA }, 63: { "DC11", FLOAT, 2, 8, 0774210, NA }, 64: { "DC11", FLOAT, 2, 8, 0774220, NA }, 65: { "DC11", FLOAT, 2, 8, 0774230, NA }, 66: { "DC11", FLOAT, 2, 8, 0774240, NA }, 67: { "DC11", FLOAT, 2, 8, 0774250, NA }, 68: { "DC11", FLOAT, 2, 8, 0774260, NA }, 69: { "DC11", FLOAT, 2, 8, 0774270, NA }, 70: { "DC11", FLOAT, 2, 8, 0774300, NA }, 71: { "DC11", FLOAT, 2, 8, 0774310, NA }, 72: { "DC11", FLOAT, 2, 8, 0774320, NA }, 73: { "DC11", FLOAT, 2, 8, 0774330, NA }, 74: { "DC11", FLOAT, 2, 8, 0774340, NA }, 75: { "DC11", FLOAT, 2, 8, 0774350, NA }, 76: { "DC11", FLOAT, 2, 8, 0774360, NA }, 77: { "DC11", FLOAT, 2, 8, 0774370, NA }, 78: { "TU58", FLOAT, 2, 8, 0776500, NA }, 79: { "TU58", FLOAT, 2, 8, 0776510, NA }, 80: { "TU58", FLOAT, 2, 8, 0776520, NA }, 81: { "TU58", FLOAT, 2, 8, 0776530, NA }, 82: { "TU58", FLOAT, 2, 8, 0776540, NA }, 83: { "TU58", FLOAT, 2, 8, 0776550, NA }, 84: { "TU58", FLOAT, 2, 8, 0776560, NA }, 85: { "TU58", FLOAT, 2, 8, 0776570, NA }, 86: { "TU58", FLOAT, 2, 8, 0776600, NA }, 87: { "TU58", FLOAT, 2, 8, 0776610, NA }, 88: { "TU58", FLOAT, 2, 8, 0776620, NA }, 89: { "TU58", FLOAT, 2, 8, 0776630, NA }, 90: { "TU58", FLOAT, 2, 8, 0776640, NA }, 91: { "TU58", FLOAT, 2, 8, 0776650, NA }, 92: { "TU58", FLOAT, 2, 8, 0776660, NA }, 93: { "TU58", FLOAT, 2, 8, 0776670, NA }, 94: { "DN11", FLOAT, 1, 4, 0775200, NA }, 95: { "DN11", FLOAT, 1, 4, 0775210, NA }, 96: { "DN11", FLOAT, 1, 4, 0775220, NA }, 97: { "DN11", FLOAT, 1, 4, 0775230, NA }, 98: { "DN11", FLOAT, 1, 4, 0775240, NA }, 99: { "DN11", FLOAT, 1, 4, 0775250, NA }, 100: { "DN11", FLOAT, 1, 4, 0775260, NA }, 101: { "DN11", FLOAT, 1, 4, 0775270, NA }, 102: { "DN11", FLOAT, 1, 4, 0775300, NA }, 103: { "DN11", FLOAT, 1, 4, 0775310, NA }, 104: { "DN11", FLOAT, 1, 4, 0775320, NA }, 105: { "DN11", FLOAT, 1, 4, 0775330, NA }, 106: { "DN11", FLOAT, 1, 4, 0775340, NA }, 107: { "DN11", FLOAT, 1, 4, 0775350, NA }, 108: { "DN11", FLOAT, 1, 4, 0775360, NA }, 109: { "DN11", FLOAT, 1, 4, 0775370, NA }, 110: { "DM11B", FLOAT, 1, 4, 0770500, NA }, 111: { "DM11B", FLOAT, 1, 4, 0770510, NA }, 112: { "DM11B", FLOAT, 1, 4, 0770520, NA }, 113: { "DM11B", FLOAT, 1, 4, 0770530, NA }, 114: { "DM11B", FLOAT, 1, 4, 0770540, NA }, 115: { "DM11B", FLOAT, 1, 4, 0770550, NA }, 116: { "DM11B", FLOAT, 1, 4, 0770560, NA }, 117: { "DM11B", FLOAT, 1, 4, 0770570, NA }, 118: { "DM11B", FLOAT, 1, 4, 0770600, NA }, 119: { "DM11B", FLOAT, 1, 4, 0770610, NA }, 120: { "DM11B", FLOAT, 1, 4, 0770620, NA }, 121: { "DM11B", FLOAT, 1, 4, 0770630, NA }, 122: { "DM11B", FLOAT, 1, 4, 0770640, NA }, 123: { "DM11B", FLOAT, 1, 4, 0770650, NA }, 124: { "DM11B", FLOAT, 1, 4, 0770660, NA }, 125: { "DM11B", FLOAT, 1, 4, 0770670, NA }, 126: { "DR11C", FLOAT, 2, 8, 0767600, NA }, 127: { "DR11C", FLOAT, 2, 8, 0767570, NA }, 128: { "DR11C", FLOAT, 2, 8, 0767560, NA }, 129: { "DR11C", FLOAT, 2, 8, 0767550, NA }, 130: { "DR11C", FLOAT, 2, 8, 0767540, NA }, 131: { "DR11C", FLOAT, 2, 8, 0767530, NA }, 132: { "DR11C", FLOAT, 2, 8, 0767520, NA }, 133: { "DR11C", FLOAT, 2, 8, 0767510, NA }, 134: { "DR11C", FLOAT, 2, 8, 0767500, NA }, 135: { "DR11C", FLOAT, 2, 8, 0767470, NA }, 136: { "DR11C", FLOAT, 2, 8, 0767460, NA }, 137: { "DR11C", FLOAT, 2, 8, 0767450, NA }, 138: { "DR11C", FLOAT, 2, 8, 0767440, NA }, 139: { "DR11C", FLOAT, 2, 8, 0767430, NA }, 140: { "DR11C", FLOAT, 2, 8, 0767420, NA }, 141: { "DR11C", FLOAT, 2, 8, 0767410, NA }, 142: { "PR611", FLOAT, 1, 8, 0772600, NA }, 143: { "PR611", FLOAT, 1, 8, 0772604, NA }, 144: { "PR611", FLOAT, 1, 8, 0772610, NA }, 145: { "PR611", FLOAT, 1, 8, 0772614, NA }, 146: { "PR611", FLOAT, 1, 8, 0772620, NA }, 147: { "PR611", FLOAT, 1, 8, 0772624, NA }, 148: { "PR611", FLOAT, 1, 8, 0772630, NA }, 149: { "PR611", FLOAT, 1, 8, 0772634, NA }, 150: { "PP611", FLOAT, 1, 8, 0772700, NA }, 151: { "PP611", FLOAT, 1, 8, 0772704, NA }, 152: { "PP611", FLOAT, 1, 8, 0772710, NA }, 153: { "PP611", FLOAT, 1, 8, 0772714, NA }, 154: { "PP611", FLOAT, 1, 8, 0772720, NA }, 155: { "PP611", FLOAT, 1, 8, 0772724, NA }, 156: { "PP611", FLOAT, 1, 8, 0772730, NA }, 157: { "PP611", FLOAT, 1, 8, 0772734, NA }, 158: { "DT11", FLOAT, 2, 8, 0777420, NA }, 159: { "DT11", FLOAT, 2, 8, 0777422, NA }, 160: { "DT11", FLOAT, 2, 8, 0777424, NA }, 161: { "DT11", FLOAT, 2, 8, 0777426, NA }, 162: { "DT11", FLOAT, 2, 8, 0777430, NA }, 163: { "DT11", FLOAT, 2, 8, 0777432, NA }, 164: { "DT11", FLOAT, 2, 8, 0777434, NA }, 165: { "DT11", FLOAT, 2, 8, 0777436, NA }, 166: { "DX11", FLOAT, 2, 8, 0776200, NA }, 167: { "DX11", FLOAT, 2, 8, 0776240, NA }, 168: { "DL11C", FLOAT, 2, 8, 0775610, NA }, 169: { "DL11C", FLOAT, 2, 8, 0775620, NA }, 170: { "DL11C", FLOAT, 2, 8, 0775630, NA }, 171: { "DL11C", FLOAT, 2, 8, 0775640, NA }, 172: { "DL11C", FLOAT, 2, 8, 0775650, NA }, 173: { "DL11C", FLOAT, 2, 8, 0775660, NA }, 174: { "DL11C", FLOAT, 2, 8, 0775670, NA }, 175: { "DL11C", FLOAT, 2, 8, 0775700, NA }, 176: { "DL11C", FLOAT, 2, 8, 0775710, NA }, 177: { "DL11C", FLOAT, 2, 8, 0775720, NA }, 178: { "DL11C", FLOAT, 2, 8, 0775730, NA }, 179: { "DL11C", FLOAT, 2, 8, 0775740, NA }, 180: { "DL11C", FLOAT, 2, 8, 0775750, NA }, 181: { "DL11C", FLOAT, 2, 8, 0775760, NA }, 182: { "DL11C", FLOAT, 2, 8, 0775770, NA }, 183: { "DL11C", FLOAT, 2, 8, 0776000, NA }, 184: { "DL11C", FLOAT, 2, 8, 0776010, NA }, 185: { "DL11C", FLOAT, 2, 8, 0776020, NA }, 186: { "DL11C", FLOAT, 2, 8, 0776030, NA }, 187: { "DL11C", FLOAT, 2, 8, 0776040, NA }, 188: { "DL11C", FLOAT, 2, 8, 0776050, NA }, 189: { "DL11C", FLOAT, 2, 8, 0776060, NA }, 190: { "DL11C", FLOAT, 2, 8, 0776070, NA }, 191: { "DL11C", FLOAT, 2, 8, 0776100, NA }, 192: { "DL11C", FLOAT, 2, 8, 0776110, NA }, 193: { "DL11C", FLOAT, 2, 8, 0776120, NA }, 194: { "DL11C", FLOAT, 2, 8, 0776130, NA }, 195: { "DL11C", FLOAT, 2, 8, 0776140, NA }, 196: { "DL11C", FLOAT, 2, 8, 0776150, NA }, 197: { "DL11C", FLOAT, 2, 8, 0776160, NA }, 198: { "DL11C", FLOAT, 2, 8, 0776170, NA }, 199: { "DJ11", FLOAT, 2, 8, FLOAT, 8 }, 200: { "DH11", FLOAT, 2, 8, FLOAT, 16 }, 201: { "GT40", FLOAT, 4, 8, 0772000, NA }, 202: { "GT40", FLOAT, 4, 8, 0772010, NA }, 203: { "LPS11", FLOAT, 6, 8, 0770400, NA }, 204: { "DQ11", FLOAT, 2, 8, FLOAT, 8 }, 205: { "KW11W", FLOAT, 2, 8, 0772400, NA }, 206: { "DU11", FLOAT, 2, 8, FLOAT, 8 }, 207: { "DV11", FLOAT, 3, 8, 0775000, NA }, 208: { "DV11", FLOAT, 3, 8, 0775040, NA }, 209: { "DV11", FLOAT, 3, 8, 0775100, NA }, 210: { "DV11", FLOAT, 3, 8, 0775140, NA }, 211: { "LK11", FLOAT, 2, 8, FLOAT, 8 }, 212: { "DMC11", FLOAT, 2, 8, FLOAT, 8 }, 213: { "DZ11", FLOAT, 2, 8, FLOAT, 8 }, 214: { "KMC11", FLOAT, 2, 8, FLOAT, 8 }, 215: { "LPP11", FLOAT, 2, 8, FLOAT, 8 }, 216: { "VMV21", FLOAT, 2, 8, FLOAT, 8 }, 217: { "VMV31", FLOAT, 2, 8, FLOAT, 16 }, 218: { "DWR70", FLOAT, 2, 8, FLOAT, 8 }, 219: { "RL11", FLOAT, 1, 4, FLOAT, 8 }, 220: { "TS11", FLOAT, 1, 4, 0772524, NA }, 221: { "TS11", FLOAT, 1, 4, 0772530, NA }, 222: { "TS11", FLOAT, 1, 4, 0772534, NA }, 223: { "LPA11", FLOAT, 2, 8, 0770460, NA }, 224: { "LPA11", FLOAT, 2, 8, FLOAT, 16 }, 225: { "KW11C", FLOAT, 2, 8, FLOAT, 8 }, 226: { "?????", FLOAT, 0, NA, FLOAT, 8 }, /* missing in VMS docs */ 227: { "RX211", FLOAT, 1, 4, FLOAT, 8 }, 228: { "DR11W", FLOAT, 1, 4, FLOAT, 8 }, 229: { "DR11B", 0124, 1, NA, 0772410, NA }, 230: { "DR11B", FLOAT, 1, 4, 0772430, NA }, 231: { "DR11B", FLOAT, 1, 4, FLOAT, 8 }, 232: { "DMP11", FLOAT, 2, 8, FLOAT, 8 }, 233: { "DPV11", FLOAT, 2, 8, FLOAT, 8 }, 234: { "ISB11", FLOAT, 2, 8, FLOAT, 8 }, 235: { "DMV11", FLOAT, 2, 8, FLOAT, 16 }, 236: { "UNA", FLOAT, 1, 4, FLOAT, 8 }, 237: { "QNA", FLOAT, 1, 4, 0774460, NA }, 238: { "UDA", FLOAT, 1, 4, FLOAT, 4 }, 239: { "?????", FLOAT, 0, NA, FLOAT, 32 }, /* missing in VMS docs */ 240: { "KMS11", FLOAT, 3, 8, FLOAT, 16 }, 241: { "PCL11", FLOAT, 2, 8, 0764200, NA }, 242: { "PCL11", FLOAT, 2, 8, 0764240, NA }, 243: { "PCL11", FLOAT, 2, 8, 0764300, NA }, 244: { "PCL11", FLOAT, 2, 8, 0764340, NA }, 245: { "VS100", FLOAT, 1, 4, FLOAT, 16 }, 246: { "TU81", FLOAT, 1, 4, FLOAT, 4 }, 247: { "KMV11", FLOAT, 2, 8, FLOAT, 16 }, 248: { "KCT32", FLOAT, 2, 8, 0764400, NA }, 249: { "KCT32", FLOAT, 2, 8, 0764440, NA }, 250: { "KCT32", FLOAT, 2, 8, 0764500, NA }, 251: { "KCT32", FLOAT, 2, 8, 0764540, NA }, 252: { "IEQ11", FLOAT, 2, 8, 0764100, NA }, 253: { "DHV11", FLOAT, 2, 8, FLOAT, 16 }, 254: { "?????", FLOAT, 0, NA, FLOAT, 64 }, /* missing in VMS docs */ 255: { "TC11", 0214, 1, NA, 0777340, NA }, 256: { "VCB01", FLOAT, 2, 1, 0777200, NA }, 257: { "VCB01", FLOAT, 2, 1, FLOAT, 64 }, 258: { "LNV11", FLOAT, 1, 4, 0776200, NA }, 259: { "LNV21", FLOAT, 1, 4, FLOAT, 16 }, 260: { "QTA", FLOAT, 1, 4, 0772570, NA }, 261: { "QTA", FLOAT, 1, 4, FLOAT, 8 }, 262: { "DSV11", FLOAT, 1, 4, FLOAT, 8 }, 263: { "?????", FLOAT, 0, NA, FLOAT, 8 }, /* missing in VMS docs */ 264: { "ADV11C", FLOAT, 2, 8, FLOAT, 8 }, 265: { "AAV11", FLOAT, 0, NA, 0770440, NA }, 266: { "AAV11C", FLOAT, 0, NA, FLOAT, 8 }, 267: { "AXV11C", 0140, 2, NA, 0776400, NA }, 268: { "AXV11C", FLOAT, 2, 8, FLOAT, 8 }, 269: { "KWV11C", FLOAT, 2, 8, 0770420, NA }, 270: { "KWV11C", FLOAT, 2, 8, FLOAT, 4 }, 271: { "ADV11D", FLOAT, 2, 8, 0776410, NA }, 272: { "ADV11D", FLOAT, 2, 8, FLOAT, 8 }, /* VMS docs: CSR align 4 */ 273: { "AAV11D", FLOAT, 2, 8, 0776420, NA }, 274: { "AAV11D", FLOAT, 2, 8, FLOAT, 8 }, /* VMS docs: CSR align 4 */ 275: { "VCB02", FLOAT, 3, 16, 0777400, NA }, 276: { "VCB02", FLOAT, 3, 16, 0777402, NA }, 277: { "VCB02", FLOAT, 3, 16, 0777404, NA }, 278: { "VCB02", FLOAT, 3, 16, 0777406, NA }, 279: { "VCB02", FLOAT, 3, 16, 0777410, NA }, 280: { "VCB02", FLOAT, 3, 16, 0777412, NA }, 281: { "VCB02", FLOAT, 3, 16, 0777414, NA }, 282: { "VCB02", FLOAT, 3, 16, 0777416, NA }, 283: { "DRV11J", FLOAT, 16, 4, 0764160, NA }, 284: { "DRV11J", FLOAT, 16, 4, 0764140, NA }, 285: { "DRV11J", FLOAT, 16, 4, 0764120, NA }, 286: { "DRQ3B", FLOAT, 2, 8, FLOAT, 16 }, 287: { "VSV24", FLOAT, 1, 4, FLOAT, 8 }, 288: { "VSV21", FLOAT, 1, 4, FLOAT, 8 }, 289: { "IBQ01", FLOAT, 1, 4, FLOAT, 8 }, 290: { "?????", FLOAT, 0, NA, FLOAT, 8 }, /* missing in VMS docs */ 291: { "?????", FLOAT, 0, NA, FLOAT, 8 }, /* missing in VMS docs */ 292: { "?????", FLOAT, 0, NA, FLOAT, 8 }, /* missing in VMS docs */ 293: { "?????", FLOAT, 0, NA, FLOAT, 8 }, /* missing in VMS docs */ 294: { "?????", FLOAT, 0, NA, FLOAT, 8 }, /* missing in VMS docs */ 295: { "?????", FLOAT, 0, NA, FLOAT, 8 }, /* missing in VMS docs */ 296: { "MIRA", FLOAT, 2, 8, FLOAT, 8 }, 297: { "IEQ11", FLOAT, 2, 8, FLOAT, 16 }, 298: { "ADQ32", FLOAT, 2, 8, FLOAT, 32 }, 299: { "DTC04", FLOAT, 2, 8, FLOAT, 2 }, 300: { "DESNA", FLOAT, 1, 4, FLOAT, 32 }, 301: { "IGQ11", FLOAT, 2, 8, FLOAT, 4 }, 302: { "KMV1F", FLOAT, 2, 8, FLOAT, 32 }, 303: { "DIV32", FLOAT, 1, 8, FLOAT, 8 }, /* VMS docs: CSR align 4 */ 304: { "DTCN5", FLOAT, 2, 8, FLOAT, 4 }, 305: { "DTCO5", FLOAT, 2, 8, FLOAT, 4 }, 306: { "KWV32", FLOAT, 2, 8, FLOAT, 8 }, 307: { "QZA", FLOAT, 1, 4, FLOAT, 64 } 308: }; 309: 310: #define DEVTABLEN (sizeof(devtab) / sizeof(struct device)) 311: 312: struct aliastable { 313: char *alias; 314: char *name; 315: }; 316: 317: /* table of device names translations to aid lookup in the above table */ 318: 319: struct aliastable aliastab[] = { 320: { "DEQNA", "QNA" }, 321: { "DELQA", "QNA" }, 322: { "TMSCP", "TU81" }, 323: { "TK50", "TU81" }, 324: { "TK70", "TU81" }, 325: { "MSCP", "UDA" }, 326: { "RQDX", "UDA" }, 327: { "RQDX2", "UDA" }, 328: { "RQDX3", "UDA" }, 329: { "KDA50", "UDA" }, 330: { "TSV05", "TS11" } 331: }; 332: 333: #define ALIASTABLEN (sizeof(aliastab) / sizeof(struct aliastable)) 334: 335: /* 336: * eof 337: */