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