xref: /original-bsd/share/man/man4/man4.vax/ps.4 (revision c3e32dec)
1.\" Copyright (c) 1983, 1991, 1993
2.\"	The Regents of the University of California.  All rights reserved.
3.\"
4.\" %sccs.include.redist.man%
5.\"
6.\"     @(#)ps.4	8.1 (Berkeley) 06/05/93
7.\"
8.Dd
9.Dt PS 4 vax
10.Os BSD 4.2
11.Sh NAME
12.Nm ps
13.Nd Evans and Sutherland Picture System 2 graphics device interface
14.Sh SYNOPSIS
15.Cd "device ps0 at uba? csr 0172460 vector psclockintr pssystemintr"
16.Sh DESCRIPTION
17The
18.Nm ps
19driver provides access
20to an Evans and
21Sutherland Picture System 2 graphics device.
22Each minor device is a new
23.Tn PS2 .
24When the device is opened, its interface registers are mapped,
25via virtual memory, into a user process's address space.
26This allows the user process very high bandwidth to the device
27with no system call overhead.
28.Pp
29.Tn DMA
30to and from the
31.Tn PS2
32is not supported. All read and write
33system calls will fail.
34All data is moved to and from the
35.Tn PS2
36via programmed
37.Tn I/O
38using
39the device's interface registers.
40.Pp
41Commands are fed to and from the driver using the following
42.Xr ioctl 2 Ns s :
43.Bl -tag -width PSIOSINGLEREFRESH
44.It Dv PSIOGETADDR
45Returns the virtual address through which the user process can access
46the device's interface registers.
47.It Dv PSIOAUTOREFRESH
48Start auto refreshing the screen.
49The argument is an address in user space where the following data resides.
50The first longword is a
51.Em count
52of the number of static refresh buffers.
53The next
54.Em count
55longwords are the addresses in refresh memory where
56the refresh buffers lie.
57The driver will cycle through these refresh buffers displaying them one by one
58on the screen.
59.It Dv PSIOAUTOMAP
60Start automatically passing the display file through the matrix processor and
61into the refresh buffer.
62The argument is an address in user memory where the following data resides.
63The first longword is a
64.Em count
65of the number of display files to operate on.
66The next
67.Em count
68longwords are the address of these display files.
69The final longword is the address in refresh buffer memory where transformed
70coordinates are to be placed if the driver is not in double buffer mode (see
71below).
72.It Dv PSIODOUBLEBUFFER
73Cause the driver to double buffer the output from the map that
74is going to the refresh buffer.
75The argument is again a user space address where the real arguments are stored.
76The first argument is the starting address of refresh memory where the two
77double buffers are located.
78The second argument is the length of each double buffer.
79The refresh mechanism displays the current double buffer, in addition
80to its static refresh lists, when in double buffer mode.
81.It Dv PSIOSINGLEREFRESH
82Single step the refresh process. That is, the driver does not continually
83refresh the screen.
84.It Dv PSIOSINGLEMAP
85Single step the matrix process.
86The driver does not automatically feed display files through the matrix unit.
87.It Dv PSIOSINGLEBUFFER
88Turn off double buffering.
89.It Dv PSIOTIMEREFRESH
90The argument is a count of the number of refresh interrupts to take
91before turning off the screen.  This is used to do time exposures.
92.It Dv PSIOWAITREFRESH
93Suspend the user process until a refresh interrupt has occurred.
94If in
95.Dv TIMEREFRESH
96mode, suspend until count refreshes have occurred.
97.It Dv PSIOSTOPREFRESH
98Wait for the next refresh, stop all refreshes, and then return to user process.
99.It Dv PSIOWAITMAP
100Wait until a map done interrupt has occurred.
101.It Dv PSIOSTOPMAP
102Wait for a map done interrupt, do not restart the map, and then
103return to the user.
104.El
105.Sh FILES
106.Bl -tag -width /dev/psxx
107.It Pa /dev/ps
108.El
109.Sh DIAGNOSTICS
110.Bl -diag
111.It ps device intr.
112.It ps dma intr.
113An interrupt was received from the device.
114This shouldn't happen,
115check your device configuration for overlapping interrupt vectors.
116.El
117.Sh HISTORY
118The
119.Nm
120driver appeared in
121.Bx 4.2 .
122.Sh BUGS
123An invalid access (e.g., longword) to a mapped interface register
124can cause the system to crash with a machine check.
125A user process could possibly cause infinite interrupts hence
126bringing things to a crawl.
127