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