Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/nathanw_sa]: src/sys/arch/atari/include Adapt these for use on the Milan.
details: https://anonhg.NetBSD.org/src/rev/48bad15b60ed
branches: nathanw_sa
changeset: 504618:48bad15b60ed
user: leo <leo%NetBSD.org@localhost>
date: Wed Apr 11 14:45:08 2001 +0000
description:
Adapt these for use on the Milan.
diffstat:
sys/arch/atari/include/mfp.h | 187 +++++++++++++++++++++++++++++++++++++++++++
1 files changed, 187 insertions(+), 0 deletions(-)
diffs (191 lines):
diff -r 9489b1074775 -r 48bad15b60ed sys/arch/atari/include/mfp.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sys/arch/atari/include/mfp.h Wed Apr 11 14:45:08 2001 +0000
@@ -0,0 +1,187 @@
+/* $NetBSD: mfp.h,v 1.4.8.2 2001/04/11 14:45:08 leo Exp $ */
+
+/*
+ * Copyright (c) 1995 Leo Weppelman.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by Leo Weppelman.
+ * 4. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef _MACHINE_MFP_H
+#define _MACHINE_MFP_H
+
+/*
+ * Atari TT hardware: MFP1/MFP2
+ * Motorola 68901 Multi-Function Peripheral
+ */
+
+#define MFP ((struct mfp *)AD_MFP)
+#define MFP2 ((struct mfp *)AD_MFP2)
+
+#ifdef _MILANHW_
+#define __MR(n) (3 + (4 * n))
+#endif
+#ifdef _ATARIHW_
+#define __MR(n) (1 + (2 * n))
+#endif
+
+struct mfp {
+ volatile u_char mfb[__MR(24)-1]; /* Sparse */
+};
+
+#define mf_gpip mfb[__MR(0) ] /* gen-purp I/O interrupt port */
+#define mf_aer mfb[__MR(1) ] /* active edge register */
+#define mf_ddr mfb[__MR(2) ] /* data direction register */
+#define mf_iera mfb[__MR(3) ] /* interrupt enable register A */
+#define mf_ierb mfb[__MR(4) ] /* interrupt enable register B */
+#define mf_ipra mfb[__MR(5) ] /* interrupt pending register A */
+#define mf_iprb mfb[__MR(6) ] /* interrupt pending register B */
+#define mf_isra mfb[__MR(7) ] /* interrupt in-service register A */
+#define mf_isrb mfb[__MR(8) ] /* interrupt in-service register B */
+#define mf_imra mfb[__MR(9) ] /* interrupt mask register A */
+#define mf_imrb mfb[__MR(10)] /* interrupt mask register B */
+#define mf_vr mfb[__MR(11)] /* vector register */
+#define mf_tacr mfb[__MR(12)] /* timer control register A */
+#define mf_tbcr mfb[__MR(13)] /* timer control register B */
+#define mf_tcdcr mfb[__MR(14)] /* timer control register C+D */
+#define mf_tadr mfb[__MR(15)] /* timer data register A */
+#define mf_tbdr mfb[__MR(16)] /* timer data register B */
+#define mf_tcdr mfb[__MR(17)] /* timer data register C */
+#define mf_tddr mfb[__MR(18)] /* timer data register D */
+#define mf_scr mfb[__MR(19)] /* synchronous character register */
+#define mf_ucr mfb[__MR(20)] /* USART control register */
+#define mf_rsr mfb[__MR(21)] /* receiver status register */
+#define mf_tsr mfb[__MR(22)] /* transmitter status register */
+#define mf_udr mfb[__MR(23)] /* USART data register */
+
+/* names of IO port bits: */
+#define IO_PBSY 0x01 /* Parallel Busy */
+#define IO_SDCD 0x02 /* Serial Data Carrier Detect */
+#define IO_SCTS 0x04 /* Serial Clear To Send */
+#define IO_ISA1 0x08 /* ISA slot1 [ Hades only ] */
+#define IO_AINT 0x10 /* ACIA interrupt (KB or MIDI) */
+#define IO_DINT 0x20 /* DMA interrupt (FDC or HDC) */
+#define IO_SRI 0x40 /* Serial Ring Indicator */
+#define IO_MONO 0x80 /* Monochrome Monitor Detect */
+#define IO_ISA2 0x80 /* ISA slot2 [ Hades only ] */
+
+/* names of interrupts in register A: MFP1 */
+#define IA_MONO 0x80 /* IO_MONO */
+#define IA_ISA2 0x80 /* IO_ISA2 */
+#define IA_SRI 0x40 /* IO_SRI */
+#define IA_TIMA 0x20 /* Timer A */
+#define IA_RRDY 0x10 /* Serial Receiver Ready(=Full) */
+#define IA_RERR 0x08 /* Serial Receiver Error */
+#define IA_TRDY 0x04 /* Serial Transmitter Ready(=Empty) */
+#define IA_TERR 0x02 /* Serial Transmitter Error */
+#define IA_TIMB 0x01 /* Timer B */
+
+/* names of interrupts in register A: MFP2 */
+#define IA_SCSI 0x80 /* SCSI-controller */
+#define IA_RTC 0x40 /* Real Time Clock */
+#define IA_TIMA2 0x20 /* Timer A */
+/* 0x10 *//* reserved */
+/* 0x08 *//* reserved */
+/* 0x04 *//* reserved */
+/* 0x02 *//* reserved */
+#define IA_TIMB2 0x01 /* Timer B */
+
+/* names of interrupts in register B: MFP1*/
+#define IB_DINT 0x80 /* IO_DINT: from DMA devices */
+#define IB_AINT 0x40 /* IO_AINT: from kbd or midi */
+#define IB_TIMC 0x20 /* Timer C */
+#define IB_TIMD 0x10 /* Timer D */
+#define IB_ISA1 0x08 /* ISA1 interrupt [ Hades only ] */
+#define IB_SCTS 0x04 /* IO_SCTS */
+#define IB_SDCD 0x02 /* IO_SDCD */
+#define IB_PBSY 0x01 /* IO_PBSY */
+
+/* names of interrupts in register B: MFP2*/
+#define IB_SCDM 0x80 /* SCSI-dma */
+#define IB_DCHG 0x40 /* Diskette change */
+/* 0x20 *//* reserved */
+/* 0x10 *//* reserved */
+#define IB_RISB 0x80 /* Serial Ring indicator SCC port B */
+#define IB_DMSC 0x40 /* SCC-dma */
+#define IB_J602_3 0x02 /* Pin 3 J602 */
+#define IB_J602_1 0x01 /* Pin 1 J602 */
+
+/* bits in VR: */
+#define V_S 0x08 /* software end-of-interrupt mode */
+#define V_V 0xF0 /* four high bits of vector */
+
+/* bits in TCR: */
+/* 0x07 *//* divider */
+#define T_STOP 0x00 /* don't count */
+#define T_Q004 0x01 /* divide by 4 */
+#define T_Q010 0x02 /* divide by 10 */
+#define T_Q016 0x03 /* divide by 16 */
+#define T_Q050 0x04 /* divide by 50 */
+#define T_Q064 0x05 /* divide by 64 */
+#define T_Q100 0x06 /* divide by 100 */
+#define T_Q200 0x07 /* divide by 200 */
+#define T_EXTI 0x08 /* use extern impulse */
+#define T_LOWO 0x10 /* force output low */
+
+/* bits in UCR: */
+/* 0x01 *//* not used */
+#define U_EVEN 0x02 /* even parity */
+#define U_PAR 0x04 /* use parity */
+/* 0x18 *//* sync/async and stop bits */
+#define U_SYNC 0x00 /* synchrone */
+#define U_ST1 0x08 /* async, 1 stop bit */
+#define U_ST1_5 0x10 /* async, 1.5 stop bit */
+#define U_ST2 0x18 /* async, 2 stop bits */
+/* 0x60 *//* number of data bits */
+#define U_D8 0x00 /* 8 data bits */
+#define U_D7 0x20 /* 7 data bits */
+#define U_D6 0x40 /* 6 data bits */
+#define U_D5 0x60 /* 5 data bits */
+#define U_Q16 0x80 /* divide clock by 16 */
+
+/* bits in RSR: */
+#define RS_ENA 0x01 /* Receiver Enable */
+#define RS_STRIP 0x02 /* Synchronous Strip Enable */
+#define RS_CIP 0x04 /* Character in Progress */
+#define RS_BREAK 0x08 /* Break Detected */
+#define RS_FE 0x10 /* Frame Error */
+#define RS_PE 0x20 /* Parity Error */
+#define RS_OE 0x40 /* Overrun Error */
+#define RS_FULL 0x80 /* Buffer Full */
+
+/* bits in TSR: */
+#define TS_ENA 0x01 /* Transmitter Enable */
+/* 0x06 *//* state of dead transmitter output */
+#define TS_TRI 0x00 /* Quiet Output Tristate */
+#define TS_LOW 0x02 /* Quiet Output Low */
+#define TS_HIGH 0x04 /* Quiet Output High */
+#define TS_BACK 0x06 /* Loop Back Mode */
+#define TS_BREAK 0x08 /* Break Detected */
+#define TS_EOT 0x10 /* End of Transmission */
+#define TS_TURN 0x20 /* Auto Turnaround */
+#define TS_UE 0x40 /* Underrun Error */
+#define TS_EMPTY 0x80 /* Buffer Empty */
+#endif /* _MACHINE_MFP_H */
Home |
Main Index |
Thread Index |
Old Index