|
|
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.