xref: /csrg-svn/sys/vax/if/if_ddnreg.h (revision 29275)
1*29275Smckusick /*	@(#)if_ddnreg.h	7.1 (Berkeley) 06/05/86 */
224434Skarels 
324434Skarels 
424434Skarels /************************************************************************\
524434Skarels 
624434Skarels      ________________________________________________________
724434Skarels     /                                                        \
824434Skarels    |          AAA          CCCCCCCCCCCCCC    CCCCCCCCCCCCCC   |
924434Skarels    |         AAAAA        CCCCCCCCCCCCCCCC  CCCCCCCCCCCCCCCC  |
1024434Skarels    |        AAAAAAA       CCCCCCCCCCCCCCCCC CCCCCCCCCCCCCCCCC |
1124434Skarels    |       AAAA AAAA      CCCC              CCCC              |
1224434Skarels    |      AAAA   AAAA     CCCC              CCCC              |
1324434Skarels    |     AAAA     AAAA    CCCC              CCCC              |
1424434Skarels    |    AAAA       AAAA   CCCC              CCCC              |
1524434Skarels    |   AAAA  AAAAAAAAAAA  CCCCCCCCCCCCCCCCC CCCCCCCCCCCCCCCCC |
1624434Skarels    |  AAAA    AAAAAAAAAAA CCCCCCCCCCCCCCCC  CCCCCCCCCCCCCCCC  |
1724434Skarels    | AAAA      AAAAAAAAA   CCCCCCCCCCCCCC    CCCCCCCCCCCCCC   |
1824434Skarels     \________________________________________________________/
1924434Skarels 
2024434Skarels 	Copyright (c) 1985 by Advanced Computer Communications
2124434Skarels 	720 Santa Barbara Street, Santa Barbara, California  93101
2224434Skarels 	(805) 963-9431
2324434Skarels 
2424434Skarels 	This software may be duplicated and used on systems
2524434Skarels 	which are licensed to run U.C. Berkeley versions of
2624434Skarels 	the UNIX operating system.  Any duplication of any
2724434Skarels 	part of this software must include a copy of ACC's
2824434Skarels 	copyright notice.
2924434Skarels 
3024434Skarels 
3124434Skarels File:
3224434Skarels 		if_ddnreg.h
3324434Skarels 
3424434Skarels Author:
3524434Skarels 		Art Berggreen
3624434Skarels 
3724434Skarels Project:
3824434Skarels 		4.2 DDN X.25 network driver
3924434Skarels 
4024434Skarels Function:
4124434Skarels 		This file contains definitions of the hardware
4224434Skarels 		interface of the ACP625 (IF-11/X25).
4324434Skarels 
4424434Skarels Components:
4524434Skarels 
4624434Skarels Revision History:
4724434Skarels 		16-May-1985:	V1.0 - First release.
4824434Skarels 				Art Berggreen.
4924434Skarels 
5024434Skarels \************************************************************************/
5124434Skarels 
5224434Skarels 
5324434Skarels /*	if_ddnvar.h	 V1.0	5/16/85	*/
5424434Skarels 
5524434Skarels /*
5624434Skarels  * ACC IF-11/DDN-X25 interface
5724434Skarels  */
5824434Skarels 
5924434Skarels struct ddnregs {			/* device registers */
6024434Skarels 	u_short	csr;			/* control and status register */
6124434Skarels 	u_char	iochn;			/* logical channel */
6224434Skarels 	u_char	ioadx;			/* address extension (A16,A17) */
6324434Skarels 	u_short	ioadl;			/* buffer address (A0-A15) */
6424434Skarels 	u_short	iocnt;			/* byte count */
6524434Skarels 	u_char	iofcn;			/* UMC funciton code */
6624434Skarels 	u_char	iosbf;			/* UMC subfunction code */
6724434Skarels 	u_char	ioini;			/* comm regs valid flag */
6824434Skarels 	u_char	staack;			/* interrupt acknowledge flag */
6924434Skarels 	u_char	ionmi;			/* NMI routine active flag */
7024434Skarels 	u_char	xfrgnt;			/* UMR transfer grant flag */
7124434Skarels 	u_char	stachn;			/* interrupt channel number */
7224434Skarels 	u_char	statyp;			/* interrupt type code */
7324434Skarels 	u_char	stacc;			/* completion function code */
7424434Skarels 	u_char	stacs;			/* completion subfunction code */
7524434Skarels 	u_short	stacnt;			/* completion byte count */
7624434Skarels };
7724434Skarels 
7824434Skarels #define	iovect	iochn
7924434Skarels 
8024434Skarels /* defines for CSR */
8124434Skarels 
8224434Skarels #define DDN_UER		0100000		/* UMC error condition */
8324434Skarels #define DDN_NXM		0040000		/* non-existent memory error */
8424434Skarels #define DDN_PER		0020000		/* UNIBUS parity error */
8524434Skarels #define DDN_ZRUN	0010000		/* Z80 running */
8624434Skarels #define DDN_ZGO		0004000		/* Z80 not in wait state */
8724434Skarels #define DDN_MBLK	0000200		/* memory swap state (0=main, 1=srv) */
8824434Skarels #define	DDN_SRV		0000100		/* select UMC service memory */
8924434Skarels #define DDN_MAIN	0000040		/* select UMC main memory */
9024434Skarels #define DDN_DMA		0000020		/* DMA enable */
9124434Skarels #define DDN_WRT		0000010		/* DMA write enable */
9224434Skarels #define DDN_IEN		0000004		/* interrupt enable */
9324434Skarels #define DDN_RST		0000002		/* reset */
9424434Skarels #define	DDN_NMI		0000001		/* cause NMI */
9524434Skarels 
9624434Skarels #define DDN_BITS \
9724434Skarels "\10\20UER\17NXM\16PER\15ZRUN\14ZGO\10MBLK\7SRV\6MAIN\5DMA\4WRT\3IEN\2RST\1NMI"
9824434Skarels 
9924434Skarels /* start i/o function code definitions */
10024434Skarels 
10124434Skarels #define DDNWRT		0	/* write to if-11 */
10224434Skarels #define DDNRDB		1	/* read from if-11 */
10324434Skarels #define DDNSTR		2	/* stream flag */
10424434Skarels #define DDNEOS		(4|DDNSTR)  /* end of stream flag */
10524434Skarels #define DDNABT		8	/* abort flag */
10624434Skarels #define DDNUMR		16	/* UMR protocol flag */
10724434Skarels 
10824434Skarels /* interrupt type definitions */
10924434Skarels 
11024434Skarels #define DDNSACK		0	/* start i/o ack */
11124434Skarels #define DDNDONE		1	/* i/o completion */
11224434Skarels #define DDNXREQ		2	/* UMR protocol transfer request */
11324434Skarels 
11424434Skarels /* i/o completion codes */
11524434Skarels 
11624434Skarels #define DDNIOCOK	0001	/* successful completion */
11724434Skarels #define DDNIOCOKP 	0002	/* successful completion, more data pending */
11824434Skarels #define DDNIOCABT 	0361	/* i/o aborted */
11924434Skarels #define DDNIOCERR 	0321	/* program error */
12024434Skarels #define DDNIOCOVR 	0363	/* overrun error */
12124434Skarels #define DDNIOCUBE 	0374	/* non-existant memory or unibus error */
12224434Skarels 
12324434Skarels /* UMR protocol transfer grant code definitions */
12424434Skarels 
12524434Skarels #define DDNXEVN		1	/* start with even address */
12624434Skarels #define DDNXODD		2	/* start with odd address */
12724434Skarels #define DDNNUMR		4	/* non-UMR transfer */
12824434Skarels #define DDNXABT		8	/* abort transfer */
129