|
|
1.1 root 1: .pa 1
2: .he 'VT (IV)'2/11/73'VT (IV)'
3: .ti 0
4: NAME vt -- 11/20 (vt01) interface
5: .sp
6: .ti 0
7: DESCRIPTION
8: .br
9: .in 8
10: The file vt0___ provides
11: the interface to a PDP 11/20 which
12: runs both a VT01A-controlled Tektronix 611
13: storage display,
14: and a Federal Screw Works (Vocal Interface Division)
15: voice synthesizer.
16: The inter-computer interface is
17: a pair of DR-11C word interfaces.
18:
19: Although the display has essentially only two commands,
20: namely "erase screen" and "display point", the 11/20 program
21: will draw points, lines, and arcs, and print
22: text on the screen.
23: The 11/20 can also type information
24: on the attached 33 TTY and generate utterances via the
25: voice synthesizer.
26:
27: This special file operates in two basic modes, selected
28: by bit 2 (octal 04) on the 11/20's console switches.
29: If this bit is on at the opening of the file,
30: all bytes written on the file are interpreted as ASCII characters
31: and written on the screen.
32: The screen has 33 lines (1/2 a standard page).
33: The file simulates a 37 TTY: the control characters
34: NL, CR, BS, and TAB are interpreted correctly.
35: It also interprets the usual escape sequences
36: for forward and reverse half-line motion and for
37: full-line reverse.
38: Greek is not available yet.
39: Normally, when the screen is full (i.e. the 34th line is started)
40: the screen is erased before starting a new page.
41: To allow perusal of the displayed text, it is usual to
42: assert bit 0 of the console switches (octal 01).
43: As explained below, this causes the program to
44: pause before erasing until one of the attached pushbuttons
45: is depressed.
46:
47: If bit 2 of the switches is down, the display is in graphic
48: mode.
49: In this case bytes written on the file
50: are interpreted as display and vocal
51: commands.
52: Each command consists of a single byte usually followed
53: by parameter bytes.
54: Often the parameter bytes represent
55: points in the plotting area.
56: Each point coordinate consists of 2 bytes
57: interpreted as a 2's complement 16-bit number.
58: The plotting area itself measures (+_03777)X(+_03777)
59: (numbers in octal);
60: that is, 12 bits of precision.
61: Attempts to plot
62: points outside the screen limits are ignored.
63:
64: The graphic and sonic commands are:
65:
66: .in +5
67: .ti -5
68: order (1); 1 parameter byte
69: .br
70: The parameter indicates a subcommand, possibly followed
71: by subparameter bytes, as follows:
72: .in +5
73:
74: .ti -5
75: erase (1)
76: .br
77: The screen is erased.
78: This action may be delayed, as explained below,
79: until a pushbutton is depressed.
80:
81: .ti -5
82: label (2); several subparameter bytes
83: .br
84: The following bytes up to a null character
85: are taken as a label and typed on the console TTY.
86: One of the console switches gives labels
87: a special interpretation, as explained below.
88:
89: .ti -5
90: .nf
91: display label (3); several subparameter bytes
92: .fi
93: .br
94: The following bytes up to a null byte are printed
95: as ASCII text on the screen.
96: The origin of the text is the last previous point
97: plotted; or the upper left hand of the screen if there were none.
98:
99: .in -5
100: .ti -5
101: point (2); 4 parameter bytes
102: .br
103: The 4 parameter bytes are taken as a pair of coordinates
104: representing a point to be plotted.
105:
106: .ti -5
107: line (3); 8 parameter bytes
108: .br
109: The parameter bytes are taken as 2 pairs of coordinates
110: representing the ends of a line segment which is plotted.
111: Only the portion lying within the screen is displayed.
112:
113: .ti -5
114: frame (4); 1 parameter byte
115: .br
116: The parameter byte is taken as a number of sixtieths of a second;
117: an externally-available lead is asserted for that time.
118: Typically the lead is connected to
119: an automatic camera
120: which advances its film and opens the
121: shutter for the specified time.
122:
123: .ti -5
124: circle (5); 6 parameter bytes
125: .br
126: The parameter bytes are taken as a coordinate pair representing
127: the origin, and a word representing the radius of a circle.
128: That portion of the circle which lies within the screen is plotted.
129:
130: .ti -5
131: arc (6); 12 parameter bytes
132: .br
133: The first 4 parameter bytes are taken to be a coordinate-pair
134: representing the center of a circle.
135: The next 4 represent a coordinate-pair specifying a point
136: on this circle.
137: The last 4 should represent another point on the
138: circle.
139: An arc is drawn counter-clockwise from the first circle point
140: to the second.
141: If the two points are the same, the whole circle is drawn.
142: For the second point, only the smaller in magnitude
143: of its two coordinates is significant;
144: the other is used only to find the quadrant of the end of the arc.
145: In any event only points within the screen limits are
146: plotted.
147:
148: .ti -5
149: dot-line (7); at least 6 parameter bytes
150: .br
151: The first 4 parameter bytes are taken
152: as a coordinate-pair representing the origin
153: of a dot-line.
154: The next byte is taken as a signed
155: x-increment.
156: The next byte is an unsigned word-count,
157: with "0" meaning "256".
158: The indicated
159: number of words is picked up.
160: For each bit in each word a point is plotted
161: which is visible if the bit is "1", invisible
162: if not.
163: High-order bits are plotted first.
164: Each successive point (or non-point) is offset
165: rightward by the given x-increment.
166:
167: .ti -5
168: speak(8); several parameter bytes
169: .br
170: The following bytes up to a null byte are taken
171: to represent phonemes which are fed to
172: the voice synthesizer.
173: vsp(VII) gives the encoding.
174:
175: .in -5
176: The 3 low-order console switches of the 11/20
177: modify the operation of the display as follows.
178:
179: Bit 2 (octal 04) is examined at the time the display
180: file is opened (more precisely, when the first byte
181: is written after an open); as indicated,
182: when on__ it selects character mode, otherwise graphic
183: mode.
184:
185: Bit 1 (octal 02)
186: determines whether TTY labels are to be interpreted.
187: Unless this bit is on__, labels are ignored.
188: (except to terminate skip mode, see below).
189:
190: Bit 0 (octal 01) determines
191: whether the display will pause before erasing
192: the screen;
193: if off___ there will be no pause.
194: .a
195: If bit 0 is on__, the erase will occur
196: and displaying will resume only when one of the
197: 16 pushbuttons is depressed.
198:
199: There is a box with 16 pushbuttons connected
200: to the 11/20.
201: Their state is at all times available in the 11/45
202: by executing the csw___ system call (II).
203: They are used by the 11/20 when it is pausing
204: before an erase.
205: 14 of the buttons merely serve to allow the display
206: to continue.
207: If, however, button 7
208: is pushed,
209: the display will ignore commands up to the
210: next erase command, then ring the TTY console's bell,
211: thereby skipping an entire picture.
212:
213: If button 8 is depressed,
214: the display will ignore commands up to the next TTY label
215: (whether or not its typing is suppressed) before
216: resuming the displays.
217: Thus a sequence of frames may be skipped.
218: .sp
219: .in 16
220: .ti 0
221: FILES /dev/vt0
222: .sp
223: .ti 0
224: SEE ALSO csw(II), vsp(VII)
225: .sp
226: .ti 0
227: BUGS Two
228: users using vt0 simultaneously
229: can interfere with each other,
230: e.g. plot phonemes or speak display coordinates.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.