|
|
1.1 ! root 1: /* ! 2: * Copyright (c) 1999 Apple Computer, Inc. All rights reserved. ! 3: * ! 4: * @APPLE_LICENSE_HEADER_START@ ! 5: * ! 6: * Portions Copyright (c) 1999 Apple Computer, Inc. All Rights ! 7: * Reserved. This file contains Original Code and/or Modifications of ! 8: * Original Code as defined in and that are subject to the Apple Public ! 9: * Source License Version 1.1 (the "License"). You may not use this file ! 10: * except in compliance with the License. Please obtain a copy of the ! 11: * License at http://www.apple.com/publicsource and read it before using ! 12: * this file. ! 13: * ! 14: * The Original Code and all software distributed under the License are ! 15: * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER ! 16: * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, ! 17: * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, ! 18: * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the ! 19: * License for the specific language governing rights and limitations ! 20: * under the License. ! 21: * ! 22: * @APPLE_LICENSE_HEADER_END@ ! 23: */ ! 24: ! 25: /* ! 26: * Copyright 1996 1995 by Open Software Foundation, Inc. 1997 1996 1995 1994 1993 1992 1991 ! 27: * All Rights Reserved ! 28: * ! 29: * Permission to use, copy, modify, and distribute this software and ! 30: * its documentation for any purpose and without fee is hereby granted, ! 31: * provided that the above copyright notice appears in all copies and ! 32: * that both the copyright notice and this permission notice appear in ! 33: * supporting documentation. ! 34: * ! 35: * OSF DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE ! 36: * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS ! 37: * FOR A PARTICULAR PURPOSE. ! 38: * ! 39: * IN NO EVENT SHALL OSF BE LIABLE FOR ANY SPECIAL, INDIRECT, OR ! 40: * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM ! 41: * LOSS OF USE, DATA OR PROFITS, WHETHER IN ACTION OF CONTRACT, ! 42: * NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION ! 43: * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ! 44: * ! 45: */ ! 46: /* ! 47: * Copyright 1996 1995 by Apple Computer, Inc. 1997 1996 1995 1994 1993 1992 1991 ! 48: * All Rights Reserved ! 49: * ! 50: * Permission to use, copy, modify, and distribute this software and ! 51: * its documentation for any purpose and without fee is hereby granted, ! 52: * provided that the above copyright notice appears in all copies and ! 53: * that both the copyright notice and this permission notice appear in ! 54: * supporting documentation. ! 55: * ! 56: * APPLE COMPUTER DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE ! 57: * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS ! 58: * FOR A PARTICULAR PURPOSE. ! 59: * ! 60: * IN NO EVENT SHALL APPLE COMPUTER BE LIABLE FOR ANY SPECIAL, INDIRECT, OR ! 61: * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM ! 62: * LOSS OF USE, DATA OR PROFITS, WHETHER IN ACTION OF CONTRACT, ! 63: * NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION ! 64: * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ! 65: */ ! 66: /* ! 67: * MKLINUX-1.0DR2 ! 68: */ ! 69: /* ! 70: File: via6522.h ! 71: ! 72: Contains: xxx put contents here xxx ! 73: ! 74: Written by: xxx put writers here xxx ! 75: ! 76: Copyright: � 1993, 1995 by Apple Computer, Inc., all rights reserved. ! 77: ! 78: Change History (most recent first): ! 79: ! 80: <1> 2/22/95 AM First checked in. ! 81: <1> 04/04/94 MRN First checked in. ! 82: ! 83: */ ! 84: ! 85: /* ! 86: * Copyright 1987-91 Apple Computer, Inc. ! 87: * All Rights Reserved. ! 88: */ ! 89: ! 90: #ifndef __VIA6522_H__ ! 91: #define __VIA6522_H__ ! 92: ! 93: /* ! 94: * Synertek SY6522 VIA Versatile Interface Adapter ! 95: */ ! 96: ! 97: /* ! 98: * This has been modified to address BOTH the via and RBV registers, ! 99: * because we know that both chips ignore part of the address, thus ! 100: * only responding correctly. It's ugly, but the ROM does it... ! 101: */ ! 102: ! 103: #if defined(powerc) || defined (__powerc) ! 104: #pragma options align=mac68k ! 105: #endif ! 106: ! 107: typedef struct via6522Regs /* VIA / RBV address */ ! 108: { ! 109: volatile unsigned char vBufB; /* 0000/0000 register b */ ! 110: volatile unsigned char RvExp; /* 0001 RBV future expansion */ ! 111: volatile unsigned char RvSlotIFR; /* 0002 RBV Slot interrupts reg. */ ! 112: volatile unsigned char RvIFR; /* 0003 RBV interrupt flag reg. */ ! 113: unsigned char jnk0[ 12 ]; ! 114: ! 115: volatile unsigned char RvMonP; /* xxxx/0010 RBV video monitor type */ ! 116: volatile unsigned char RvChpT; /* xxxx/0011 RBV test mode register */ ! 117: volatile unsigned char RvSlotIER; /* xxxx/0012 RBV slot interrupt enables */ ! 118: volatile unsigned char RvIER; /* xxxx/0013 RBV interrupt flag enable reg */ ! 119: unsigned char jnk1[ 0x1FF - 0x13 ]; ! 120: ! 121: volatile unsigned char vBufAH; /* 0200 buffer a (with handshake). */ ! 122: unsigned char jnk2[ 0x1FF ]; /* Dont use! Here only for completeness */ ! 123: ! 124: volatile unsigned char vDIRB; /* 0400 data direction register B */ ! 125: unsigned char jnk25[ 0x1FF ]; ! 126: ! 127: volatile unsigned char vDIRA; /* 0600 data direction register A */ ! 128: unsigned char jnk3[ 0x1FF ]; ! 129: ! 130: volatile unsigned char vT1C; /* 0800 timer one low */ ! 131: unsigned char jnk4[ 0x1FF ]; ! 132: ! 133: volatile unsigned char vT1CH; /* 0A00 timer one high */ ! 134: unsigned char jnk5[ 0x1FF ]; ! 135: ! 136: volatile unsigned char vT1L; /* 0C00 timer one latches low */ ! 137: unsigned char jnk6[ 0x1FF ]; ! 138: ! 139: volatile unsigned char vT1LH; /* 0E00 timer one latches high */ ! 140: unsigned char jnk7[ 0x1FF ]; ! 141: ! 142: volatile unsigned char vT2C; /* 1000 timer 2 low */ ! 143: unsigned char jnk8[ 0x1FF ]; ! 144: ! 145: volatile unsigned char vT2CH; /* 1200 timer two counter high */ ! 146: unsigned char jnk9[ 0x1FF ]; ! 147: ! 148: volatile unsigned char vSR; /* 1400 shift register */ ! 149: unsigned char jnka[ 0x1FF ]; ! 150: ! 151: volatile unsigned char vACR; /* 1600 auxilary control register */ ! 152: unsigned char jnkb[ 0x1FF ]; ! 153: ! 154: volatile unsigned char vPCR; /* 1800 peripheral control register */ ! 155: unsigned char jnkc[ 0x1FF ]; ! 156: ! 157: volatile unsigned char vIFR; /* 1A00 interrupt flag register */ ! 158: unsigned char jnkd[ 0x1FF ]; ! 159: ! 160: volatile unsigned char vIER; /* 1C00 interrupt enable register */ ! 161: unsigned char jnkf[ 0x1FF ]; ! 162: ! 163: volatile unsigned char vBufA; /* 1E00 register A, read and write */ ! 164: } via6522Regs; ! 165: ! 166: #if defined(powerc) || defined(__powerc) ! 167: #pragma options align=reset ! 168: #endif ! 169: ! 170: ! 171: /* Register B contents */ ! 172: ! 173: #define VRB_POWEROFF 0x04 /* disk head select */ ! 174: #define RBV_POWEROFF VRB_POWEROFF ! 175: #define VRB_BUSLOCK 0x02 /* NuBus Transactions are locked */ ! 176: ! 177: ! 178: /* Register A contents */ ! 179: ! 180: #define VRA_DRIVE 0x10 /* drive select */ ! 181: #define VRA_HEAD 0x20 /* disk head select */ ! 182: ! 183: ! 184: /* Auxillary control register contents */ ! 185: ! 186: #define VAC_PAENL 0x01 /* Enable latch for PA */ ! 187: #define VAC_PADISL 0x00 /* Disable latch for PA */ ! 188: #define VAC_PBENL 0x02 /* Enable latch for PA */ ! 189: #define VAC_PBDISL 0x00 /* Disable latch for PA */ ! 190: #define VAC_SRDIS 0x00 /* Shift Reg Disabled */ ! 191: #define VAC_SRMD1 0x04 /* Shift In under control of T2 */ ! 192: #define VAC_SRMD2 0x08 /* Shift In under control of Phase 2 */ ! 193: #define VAC_SRMD3 0x0C /* Shift in under control of Ext Clk */ ! 194: #define VAC_SRMD4 0x10 /* Shift Out free running at T2 rate */ ! 195: #define VAC_SRMD5 0x14 /* Shift Out under control of T2 */ ! 196: #define VAC_SRMD6 0x18 /* Shift Out under control of theta2 */ ! 197: #define VAC_SRMD7 0x1C /* Shift Out under control of Ext Clk */ ! 198: #define VAC_T2CTL 0x20 /* Timer two, control */ ! 199: #define VAC_T2TI 0x00 /* Timer Two, Timed Interrupt */ ! 200: #define VAC_T2CD 0x20 /* Timer Two, count down with pulses on PB6 */ ! 201: #define VAC_T1CONT 0x40 /* Timer one, continous counting */ ! 202: #define VAC_T11SHOT 0x00 /* Timer One, one shot output */ ! 203: #define VAC_T1PB7 0x80 /* Timer one, drives PB7 */ ! 204: #define VAC_T1PB7DIS 0x00 /* Timer one, drives PB7 disabled */ ! 205: ! 206: ! 207: /* Interrupt enable register contents */ ! 208: ! 209: #define VIE_CA2 0x01 /* interrupt on CA2 */ ! 210: #define VIE_CA1 0x02 /* interrupt on CA1 */ ! 211: #define VIE_SR 0x04 /* Shift Register */ ! 212: #define VIE_CB2 0x08 /* interrupt on CB2 */ ! 213: #define VIE_CB1 0x10 /* interrupt on CB1 */ ! 214: #define VIE_TIM2 0x20 /* timer 2 interrupt */ ! 215: #define VIE_TIM1 0x40 /* timer 1 interrupt */ ! 216: #define VIE_SET 0x80 /* Set interrupt bits if this is on */ ! 217: #define VIE_CLEAR 0x00 /* Clear bits if used */ ! 218: ! 219: #define VIE_ALL ( VIE_TIM1 | VIE_TIM2 | VIE_CB1 | VIE_CB2 | VIE_SR | VIE_CA1 | VIE_CA2 ) ! 220: ! 221: ! 222: /* VIA Data Direction Register Contents */ ! 223: ! 224: #define VDR_P7_O 0x80 /* P7 is output */ ! 225: #define VDR_P7_I 0x00 /* P7 is input */ ! 226: #define VDR_P6_O 0x40 /* P6 is output */ ! 227: #define VDR_P6_I 0x00 /* P6 is input */ ! 228: #define VDR_P5_O 0x20 /* P5 is output */ ! 229: #define VDR_P5_I 0x00 /* P5 is input */ ! 230: #define VDR_P4_O 0x10 /* P4 is output */ ! 231: #define VDR_P4_I 0x00 /* P4 is input */ ! 232: #define VDR_P3_O 0x08 /* P3 is output */ ! 233: #define VDR_P3_I 0x00 /* P3 is input */ ! 234: #define VDR_P2_O 0x04 /* P2 is output */ ! 235: #define VDR_P2_I 0x00 /* P2 is input */ ! 236: #define VDR_P1_O 0x02 /* P1 is output */ ! 237: #define VDR_P1_I 0x00 /* P1 is input */ ! 238: #define VDR_P0_O 0x01 /* P0 is output */ ! 239: #define VDR_P0_I 0x00 /* P0 is input */ ! 240: ! 241: ! 242: /* VIA1 Register A contents where they differ from standard VIA1 */ ! 243: ! 244: #define RBV_BURNIN 0x01 /* burnin flag */ ! 245: #define RBV_CPUID0 0x02 /* CPU id bit 0 */ ! 246: #define RBV_CPUID1 0x04 /* CPU id bit 1 */ ! 247: #define RBV_CPUID2 0x10 /* CPU id bit 2 */ ! 248: #define RBV_CPUID3 0x40 /* CPU id bit 3 */ ! 249: ! 250: ! 251: /* VIA1 Register B contents where they differ from standard VIA1 */ ! 252: ! 253: #define RBV_PARDIS 0x40 /* disable parity */ ! 254: #define RBV_PAROK 0x80 /* parity OK */ ! 255: ! 256: #define EVRB_XCVR 0x08 /* XCVR_SESSION* */ ! 257: #define EVRB_FULL 0x10 /* VIA_FULL */ ! 258: #define EVRB_SYSES 0x20 /* SYS_SESSION */ ! 259: #define EVRB_AUXIE 0x00 /* Enable A/UX Interrupt Scheme */ ! 260: #define EVRB_AUXID 0x40 /* Disable A/UX Interrupt Scheme */ ! 261: #define EVRB_SFTWRIE 0x00 /* Software Interrupt ReQuest */ ! 262: #define EVRB_SFTWRID 0x80 /* Software Interrupt ReQuest */ ! 263: ! 264: ! 265: /* VIA2 Register A contents where they differ from standard VIA2 */ ! 266: ! 267: #define RBV_SZEROIRQ 0x40 /* slot 0 irq */ ! 268: #define EVRA_ENETIRQ 0x01 /* Ethernet irq */ ! 269: #define EVRA_VIDIRQ 0x40 /* Video irq */ ! 270: ! 271: ! 272: /* VIA2 Register B contents where they differ from standard VIA2 */ ! 273: ! 274: #define RBV_CDIS 0x01 /* disable external cache */ ! 275: #define RBV_CFLUSH 0x08 /* flush external cache */ ! 276: #define EVRB_LED 0x10 /* LED */ ! 277: #define RBV_PARODD 0x80 /* 1 for odd, 0 for even */ ! 278: ! 279: ! 280: /* Video monitor parameters: */ ! 281: #define RBV_DEPTH 0x07 /* bits per pixel: 000=1,001=2,010=4,011=8 */ ! 282: #define RBV_MONID 0x38 /* monitor type as below */ ! 283: #define RBV_VIDOFF 0x40 /* 1 turns off onboard video */ ! 284: ! 285: ! 286: /* Supported video monitor types: */ ! 287: ! 288: #define MON_15BW ( 1 << 3 ) /* 15" BW portrait */ ! 289: #define MON_IIGS ( 2 << 3 ) /* modified IIGS monitor */ ! 290: #define MON_15RGB ( 5 << 3 ) /* 15" RGB portrait */ ! 291: #define MON_12OR13 ( 6 << 3 ) /* 12" BW or 13" RGB */ ! 292: #define MON_NONE ( 7 << 3 ) /* No monitor attached */ ! 293: ! 294: #endif /* __VIA6522_H__ */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.