PDP-10 / waits

Stanford A. I. Lab operating system 1972 to 1990 named WAITS, Western Artificial Intelligence Time Sharing. This repository provides the wide overview with pointers to and a few samples of the technical and historical details.
11 stars 3 forks source link

Display Terminals at Stanford #8

Closed larsbrinkhoff closed 1 year ago

larsbrinkhoff commented 2 years ago

Here's a film made in 1975 featuring the SAIL Data Disc display system.

https://archive.org/details/cst_000027

larsbrinkhoff commented 2 years ago

Transcript based on YouTube's automated subtitling.


This is a display terminal at the Stanford artificial intelligence lab. It consists of an ordinary TV monitor made by Miratel and a special keyboard made for Stanford by Microswitch. The monitor is controlled by a Data Disc television display system which provides refresh storage and character generation for up to 32 video channels at a time. A video switch built at Stanford is used to associate any of the 32 video channels with each of 58 such terminals. The system allows extremely high transfer rates. It can rewrite a 3360 character screen in 1/30th of a second

We use an extended version of the ASCII character set with additional graphic characters substituted for most of the ASCII control codes below 40. The keyboards produce 9-bit characters. Each 7-bit ASCII code can be modified by either or both of two extra bits called control - not the same as the ASCII control - and meta.

Most general purpose time-sharing systems which support displays use them only as simulated hard copy terminals providing little or no power beyond that available to the hard copy user. This simulated hard copy service is adequate for many applications and is provided in our system as the simplest way for a program to use the displays. Even in this simple hard copy simulation though, a few frills are made possible by the display facility. A program can create up to 16 separate simulated hard copy terminals called pieces of paper, which can be positioned arbitrarily on the screen. The program uses a UUO to select the current piece of paper, which is used for echoing and output until another is selected.

The hot program displays news stories from two news service wires connected to our PDP-10. The program simply copies the stories as they arriveto one of two pieces of paper. The time-sharing monitor automatically handles scrolling for both areas. The fast transfer rate of our terminals allows this scrolling technique to be used instead of the wrap around technique common with slower displays. Since programs can type faster than users can read, there is an escape character the user can type to hold the typeout. When the program fills the output buffer it is blocked from running until the user releases the hold. The word "holding" displayed near the top of the screen is another example of the two-dimensional display terminal providing information outside the flow of program output without confusion.

Perhaps the most important special facility offered in piece of paper mode is the system line editor. The cursor you see at the end of the line can be positioned anywhere in the line. The user can search for a particular character, replace it with another, or insert new characters using the control and meta keys to indicate editing commands in case of an error. The user can retrieve the last line typed and correct it. The line editor is an extension of the simple correction facility found in most systems like the TOPS-10 use of rubout to delete the last character. The line editor provides a correction facility which is both powerful and uniform - that is any program which accepts input from the terminal has this facility provided by the monitor without the need for programming it explicitly into each user program. Users have only one set of editing commands to learn instead of having to know each program's idiosyncratic conventions. Response to editing commands is very fast since the line editor runs at monitor interrupt level.

Two special keys, escape and break, are used to enter special commands which are carried out immediately by the display keyboard scanner service routine at interrupt level. For example escape followed by a number and "S" shows the selected Data Disc channel or other video source. Escape-S with no argument returns to the user's own channel. Typing Escape-W starts a dynamic information display, called the wholine, on the top two lines of the screen. The information shown is automatically updated by the monitor every few seconds. One line displays system-wide information such as the number of jobs logged in and the other shows information for a specific job such as the job name. By giving a numeric argument with the Escape-W command, the user can see the wholine for a job other than his own. This display has proven very useful in program debugging. Tt shows the name of the queue which the job is in, run queue, I/O wait, etc, the job's total run time, its incremental run time since the last user interaction, and the incremental number of disk transfers. A user whose program types no output for a long time can see at a glance whether the program is running, waiting for input, doing disk I/O, and so on. You can also monitor the quality of system response since the display includes the ratio of his run time to the time spent waiting for the system.

The terminals have a graphics capability which is used for applications such as picture processing, type setting, font design; however what we want to show here is the display of text. The high transfer rate is very useful to programs written to take full advantage of the system's display capability than the hard copy simulation we have seen so far.

Our system status display program "who" can provide a great deal of information without annoying delays in typing out the display. On slower terminals, there is a conflict between the user's desire for detailed information and his desire to get it over with. Status programs for such terminals must therefore implement a complicated syntax to let the user tailor their output showing only the exact information the user wants to see. We can display the full range of job status information and update it dynamically

The most commonly used program on our system is the display text editor "E". This program combines display and paper modes in its use of the terminal screen. Most of the screen contains a window into the text of the file being edited and is updated in display mode. Two lines at the top are the whole line area, and three lines at the bottom are used in piece of paper mode to echo user commands. Unlike TECO our editor does not process a string of commands at once. Each character typed by the user has an immediate effect which can be seen in the display. The general design goal of E was quick and easy operation for simple editing tasks rather than the generality and programmability of TECO. Speed considerations led to the choice of random access edit in place operation. Small modifications to an existing file can be made much faster with E than with TECO or SOS. Files to be edited with E contain a special directory page cleverly disguised as a comment to most of our language processors. The directory tells the editor the record number in the file of the beginning of each page of text so the user can quickly position himself at any page selected either by page number or by a search of the first text line of each page replicated in the directory. When the user types a character which indicates that he wants to edit the current text line he simply loads the text of that line into the same system line editor used for normal terminal input. The line editor cursors appear under that line on the screen. There are UUOs to load the text and to position the line editor display on any line of the screen, thus the user sees the line in the same place on the screen as it was before he started editing the line. Again, the advantages of this cooperation between E and the monitor's line editor are first that the user need not learn a different set of editing commands from the ones used for editing normal input lines, and second the results of the editing commands are seen very quickly since they are carried out by the monitor at the interrupt level. The user program need not be scheduled or even in core while this editing is going on. This is a best of both worlds combination of the power of character at a time transfers for the efficiency of line at a time transfers.

A recent addition to our program library is DIRED, the directory editor. This program displays the contents of a user's file directory in a format which mimics E's text display and allows the user to examine, edit, or delete files with E-like commands.

An example of how a program originally designed for simple hard copy style terminal interaction can be improved by display programming is SPELL, our spelling correction program. Using the two-dimensional screen space effectively SPELL can maintain some constant information in one area a list of commands and dynamically display variable information in other areas. The tremendous benefits obtainable from this sort of two-dimensional approach to display screens is the main lesson we think we have learned from our work in display support. Before SPELL was programmed to use the display as it does now for example, the list of command options was typed once and not repeated unless the user explicitly typed a question mark. There was no convenient way to examine the program's suggested corrections. The black-and-white display of the misspelled word was not used. None of these improvements is earth shaking in itself but a consistent awareness of display capabilities has, we think, given us a software system much more convenient for the user than it could otherwise have been.

We see much room for further development in the area of two-dimensional software support. We would like to extend the concept of our line editor to a two-dimensional screen editor which would provide many of the interline functions available in E. The ability to control several areas of a display screen independently will become even more important as operating systems offer their users the power to control several jobs at once from a single terminal, so that the information related to each process can be displayed in a way which does not interfere with other processes. We have begun to consider some of the problems for system design raised by these goals.

larsbrinkhoff commented 2 years ago

The original script is SCRIPT[1,BH] dated 1975-05-10.