xref: /csrg-svn/sys/vax/if/if_ddnreg.h (revision 24434)
1*24434Skarels 
2*24434Skarels 
3*24434Skarels 
4*24434Skarels /************************************************************************\
5*24434Skarels 
6*24434Skarels      ________________________________________________________
7*24434Skarels     /                                                        \
8*24434Skarels    |          AAA          CCCCCCCCCCCCCC    CCCCCCCCCCCCCC   |
9*24434Skarels    |         AAAAA        CCCCCCCCCCCCCCCC  CCCCCCCCCCCCCCCC  |
10*24434Skarels    |        AAAAAAA       CCCCCCCCCCCCCCCCC CCCCCCCCCCCCCCCCC |
11*24434Skarels    |       AAAA AAAA      CCCC              CCCC              |
12*24434Skarels    |      AAAA   AAAA     CCCC              CCCC              |
13*24434Skarels    |     AAAA     AAAA    CCCC              CCCC              |
14*24434Skarels    |    AAAA       AAAA   CCCC              CCCC              |
15*24434Skarels    |   AAAA  AAAAAAAAAAA  CCCCCCCCCCCCCCCCC CCCCCCCCCCCCCCCCC |
16*24434Skarels    |  AAAA    AAAAAAAAAAA CCCCCCCCCCCCCCCC  CCCCCCCCCCCCCCCC  |
17*24434Skarels    | AAAA      AAAAAAAAA   CCCCCCCCCCCCCC    CCCCCCCCCCCCCC   |
18*24434Skarels     \________________________________________________________/
19*24434Skarels 
20*24434Skarels 	Copyright (c) 1985 by Advanced Computer Communications
21*24434Skarels 	720 Santa Barbara Street, Santa Barbara, California  93101
22*24434Skarels 	(805) 963-9431
23*24434Skarels 
24*24434Skarels 	This software may be duplicated and used on systems
25*24434Skarels 	which are licensed to run U.C. Berkeley versions of
26*24434Skarels 	the UNIX operating system.  Any duplication of any
27*24434Skarels 	part of this software must include a copy of ACC's
28*24434Skarels 	copyright notice.
29*24434Skarels 
30*24434Skarels 
31*24434Skarels File:
32*24434Skarels 		if_ddnreg.h
33*24434Skarels 
34*24434Skarels Author:
35*24434Skarels 		Art Berggreen
36*24434Skarels 
37*24434Skarels Project:
38*24434Skarels 		4.2 DDN X.25 network driver
39*24434Skarels 
40*24434Skarels Function:
41*24434Skarels 		This file contains definitions of the hardware
42*24434Skarels 		interface of the ACP625 (IF-11/X25).
43*24434Skarels 
44*24434Skarels Components:
45*24434Skarels 
46*24434Skarels Revision History:
47*24434Skarels 		16-May-1985:	V1.0 - First release.
48*24434Skarels 				Art Berggreen.
49*24434Skarels 
50*24434Skarels \************************************************************************/
51*24434Skarels 
52*24434Skarels 
53*24434Skarels /*	if_ddnvar.h	 V1.0	5/16/85	*/
54*24434Skarels 
55*24434Skarels /*
56*24434Skarels  * ACC IF-11/DDN-X25 interface
57*24434Skarels  */
58*24434Skarels 
59*24434Skarels struct ddnregs {			/* device registers */
60*24434Skarels 	u_short	csr;			/* control and status register */
61*24434Skarels 	u_char	iochn;			/* logical channel */
62*24434Skarels 	u_char	ioadx;			/* address extension (A16,A17) */
63*24434Skarels 	u_short	ioadl;			/* buffer address (A0-A15) */
64*24434Skarels 	u_short	iocnt;			/* byte count */
65*24434Skarels 	u_char	iofcn;			/* UMC funciton code */
66*24434Skarels 	u_char	iosbf;			/* UMC subfunction code */
67*24434Skarels 	u_char	ioini;			/* comm regs valid flag */
68*24434Skarels 	u_char	staack;			/* interrupt acknowledge flag */
69*24434Skarels 	u_char	ionmi;			/* NMI routine active flag */
70*24434Skarels 	u_char	xfrgnt;			/* UMR transfer grant flag */
71*24434Skarels 	u_char	stachn;			/* interrupt channel number */
72*24434Skarels 	u_char	statyp;			/* interrupt type code */
73*24434Skarels 	u_char	stacc;			/* completion function code */
74*24434Skarels 	u_char	stacs;			/* completion subfunction code */
75*24434Skarels 	u_short	stacnt;			/* completion byte count */
76*24434Skarels };
77*24434Skarels 
78*24434Skarels #define	iovect	iochn
79*24434Skarels 
80*24434Skarels /* defines for CSR */
81*24434Skarels 
82*24434Skarels #define DDN_UER		0100000		/* UMC error condition */
83*24434Skarels #define DDN_NXM		0040000		/* non-existent memory error */
84*24434Skarels #define DDN_PER		0020000		/* UNIBUS parity error */
85*24434Skarels #define DDN_ZRUN	0010000		/* Z80 running */
86*24434Skarels #define DDN_ZGO		0004000		/* Z80 not in wait state */
87*24434Skarels #define DDN_MBLK	0000200		/* memory swap state (0=main, 1=srv) */
88*24434Skarels #define	DDN_SRV		0000100		/* select UMC service memory */
89*24434Skarels #define DDN_MAIN	0000040		/* select UMC main memory */
90*24434Skarels #define DDN_DMA		0000020		/* DMA enable */
91*24434Skarels #define DDN_WRT		0000010		/* DMA write enable */
92*24434Skarels #define DDN_IEN		0000004		/* interrupt enable */
93*24434Skarels #define DDN_RST		0000002		/* reset */
94*24434Skarels #define	DDN_NMI		0000001		/* cause NMI */
95*24434Skarels 
96*24434Skarels #define DDN_BITS \
97*24434Skarels "\10\20UER\17NXM\16PER\15ZRUN\14ZGO\10MBLK\7SRV\6MAIN\5DMA\4WRT\3IEN\2RST\1NMI"
98*24434Skarels 
99*24434Skarels /* start i/o function code definitions */
100*24434Skarels 
101*24434Skarels #define DDNWRT		0	/* write to if-11 */
102*24434Skarels #define DDNRDB		1	/* read from if-11 */
103*24434Skarels #define DDNSTR		2	/* stream flag */
104*24434Skarels #define DDNEOS		(4|DDNSTR)  /* end of stream flag */
105*24434Skarels #define DDNABT		8	/* abort flag */
106*24434Skarels #define DDNUMR		16	/* UMR protocol flag */
107*24434Skarels 
108*24434Skarels /* interrupt type definitions */
109*24434Skarels 
110*24434Skarels #define DDNSACK		0	/* start i/o ack */
111*24434Skarels #define DDNDONE		1	/* i/o completion */
112*24434Skarels #define DDNXREQ		2	/* UMR protocol transfer request */
113*24434Skarels 
114*24434Skarels /* i/o completion codes */
115*24434Skarels 
116*24434Skarels #define DDNIOCOK	0001	/* successful completion */
117*24434Skarels #define DDNIOCOKP 	0002	/* successful completion, more data pending */
118*24434Skarels #define DDNIOCABT 	0361	/* i/o aborted */
119*24434Skarels #define DDNIOCERR 	0321	/* program error */
120*24434Skarels #define DDNIOCOVR 	0363	/* overrun error */
121*24434Skarels #define DDNIOCUBE 	0374	/* non-existant memory or unibus error */
122*24434Skarels 
123*24434Skarels /* UMR protocol transfer grant code definitions */
124*24434Skarels 
125*24434Skarels #define DDNXEVN		1	/* start with even address */
126*24434Skarels #define DDNXODD		2	/* start with odd address */
127*24434Skarels #define DDNNUMR		4	/* non-UMR transfer */
128*24434Skarels #define DDNXABT		8	/* abort transfer */
129