|
|
1.1 root 1: /*-
2: * Copyright (c) 1982, 1986 The Regents of the University of California.
3: * All rights reserved.
4: *
5: * Redistribution and use in source and binary forms, with or without
6: * modification, are permitted provided that the following conditions
7: * are met:
8: * 1. Redistributions of source code must retain the above copyright
9: * notice, this list of conditions and the following disclaimer.
10: * 2. Redistributions in binary form must reproduce the above copyright
11: * notice, this list of conditions and the following disclaimer in the
12: * documentation and/or other materials provided with the distribution.
13: * 3. All advertising materials mentioning features or use of this software
14: * must display the following acknowledgement:
15: * This product includes software developed by the University of
16: * California, Berkeley and its contributors.
17: * 4. Neither the name of the University nor the names of its contributors
18: * may be used to endorse or promote products derived from this software
19: * without specific prior written permission.
20: *
21: * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
22: * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23: * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
24: * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
25: * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
26: * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
27: * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
28: * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
29: * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
30: * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
31: * SUCH DAMAGE.
32: *
33: * @(#)psreg.h 7.3 (Berkeley) 5/9/91
34: */
35:
36:
37: /*
38: * The Real Nitty Gritty Device Registers
39: */
40:
41: struct psdevice {
42: short int ps_data; /* data register */
43: short int ps_addr; /* address register */
44: short int ps_wcount; /* word count register */
45: short int ps_busaddr; /* unibus address register */
46: short int ps_iostat; /* io status register */
47: };
48:
49: /*
50: * Possible ioctl's
51: */
52: #define PSIOAUTOREFRESH _IO('p', 0) /* auto refresh */
53: #define PSIOSINGLEREFRESH _IO('p', 1) /* single refresh */
54: #define PSIOAUTOMAP _IO('p', 2) /* auto map */
55: #define PSIOSINGLEMAP _IO('p', 3) /* single map */
56: #define PSIODOUBLEBUFFER _IO('p', 4) /* double buffer */
57: #define PSIOSINGLEBUFFER _IO('p', 5) /* single buffer */
58: #define PSIOWAITREFRESH _IO('p', 6) /* await refresh */
59: #define PSIOWAITMAP _IO('p', 7) /* await map */
60: #define PSIOWAITHIT _IO('p', 8) /* await hit */
61: #define PSIOSTOPREFRESH _IO('p', 9) /* stop refresh */
62: #define PSIOSTOPMAP _IO('p',10) /* stop map */
63: #define PSIOGETADDR _IOR('p',11, int) /* get Unibus address */
64: #define PSIOTIMEREFRESH _IO('p',12) /* time refresh */
65:
66: /*
67: * Picture system io status register bits
68: */
69:
70: #define DIOREADY 0100000
71: #define PSAHOLD 040000
72: #define PSRESET 020000
73: #define DIORESET 010000
74: #define DMARESET 04000
75: #define PSIE 0400
76: #define DMAREADY 0200
77: #define DMAIE 0100
78: #define PASSIVE 010
79: #define DMAIN 04
80: #define NEXEM 02
81: #define GO 01
82:
83: /*
84: * Picture system memory mapping control registers: SCB 0177400-0177410
85: */
86:
87: #define EXMMR_DMA 0177400
88: #define EXMMR_DIO 0177404
89: #define EXMMR_RC 0177405
90: #define EXMMR_MAPOUT 0177406
91: #define EXMMR_MAPIN 0177407
92: #define EXMSR 0177410
93:
94: /*
95: * Extended memory status register bits
96: */
97:
98: #define DBERROR 0100000
99: #define SBERROR 040000
100: #define MEMREADY 0200
101: #define DBIE 0100
102: #define MMENBL 02
103: #define INITMEM 01
104:
105: /*
106: * Size of extended memory
107: */
108:
109: #define NEXMPAGES (256*2)
110: #define WORDSPERPAGE (256)
111:
112: /*
113: * MAP picture processor registers: SCB 0177750-0177753
114: */
115:
116: #define MAOL 0177750
117: #define MAOA 0177751
118: #define MAIA 0177752
119: #define MASR 0177753
120: #define MAMSR 0177754
121:
122: /*
123: * MAP status register bits
124: */
125:
126: #define PPDONE 0100000
127: #define FIFOFULL 040000
128: #define FIFOEMPTY 020000
129: #define HIT 010000
130: #define IB 04000
131: #define TAKE 02000
132: #define MMODE 01400
133: #define MOSTOPPED 0200
134: #define IOUT 0100
135: #define MAO 040
136: #define MAI 020
137: #define HIT_HOLD 010
138: #define RSR_HOLD 04
139: #define VEC_HOLD 02
140: #define MAP_RESET 01
141:
142: /*
143: * Refresh controller registers: SCB 0177730-0177737
144: */
145:
146: #define RFCSN 0177730
147: #define RFSN 0177731
148: #define RFAWA 0177732
149: #define RFAWL 0177733
150: #define RFAIA 0177734
151: #define RFASA 0177735
152: #define RFAIL 0177736
153: #define RFSR 0177737
154:
155: /*
156: * Refresh controller status register bits
157: */
158:
159: #define RFSTOPPED 0100000
160: #define RFHOLD 040000
161: #define RFSTART 020000
162: #define AUTOREF 010000
163: #define RFBLANK 04000
164: #define RIGHT 02000
165: #define LGFIFO_FULL 01000
166: #define NOT_EXEC 0200
167: #define SKIPSEG 0100
168: #define WRITEBACK 040
169: #define SEARCH 020
170: #define MATCH_HOLD 010
171: #define MATCH_DEC 04
172: #define SEARCH_MODE 03
173:
174: /*
175: * Interrupt control
176: */
177:
178: #define RTCREQ 0177760
179: #define RTCIE 0177761
180: #define SYSREQ 0177762
181: #define SYSIE 0177763
182: #define DEVREQ 0177764
183: #define DEVIE 0177765
184:
185: /*
186: * System interrupt request bits
187: */
188:
189: #define LPEN_REQ 0200
190: #define MATCH_REQ 0100
191: #define WBSTOP_REQ 040
192: #define RFSTOP_REQ 020
193: #define MOSTOP_REQ 010
194: #define JUMP_REQ 04
195: #define HIT_REQ 02
196: #define HALT_REQ 01
197:
198: /*
199: * Real-Time Clock registers
200: */
201:
202: #define RTCCNT 0177744
203: #define RTCSR 0177745
204:
205: /*
206: * Real-Time Clock status register bits
207: */
208:
209: #define HZ120 040
210: #define EXT 020
211: #define SYNC 010
212: #define EXTSEL2 04
213: #define EXTSEL1 02
214: #define RUN 01
215:
216: /*
217: * Control dials a/d registers
218: */
219:
220: #define ADDR0 0177500
221: #define ADDR1 0177501
222: #define ADDR2 0177502
223: #define ADDR3 0177503
224: #define ADDR4 0177504
225: #define ADDR5 0177505
226: #define ADDR6 0177506
227: #define ADDR7 0177507
228:
229: /*
230: * Function switches and lights
231: */
232:
233: #define FSWR 0177626
234: #define FSLR 0177627
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.