24 Interactive Terminals
Our remaining task, to be completed in this and the following chapter, is to consider the code which controls interactive terminals (or “terminals”, for short).
A wide variety of terminals is available and several different types may be simultaneously attached to a single computer. Distinguishing characteristics for different classes of terminal include (besides such non-essential features as shape, size and colour):
- (a)
transmission speed, e.g. 110 baud for an ASR33 teletype, 300 baud for a DECwriter, 2400 baud or 9600 baud for a Visual Display unit (“VD”);
- (b)
graphic character set, notably the full ASCII graphic set and the 64 graphic subset;
- (c)
transmission parity: odd, even, none or inoperatlve;
- (d)
output technique: serial printer or visual display;
- (e)
miscellaneous: combined carriage return/line feed character, half duplex terminal (input characters do not need echoing); recognition of tab characters;
- (f)
characteristic delays for certain control functions, e.g. carriage returns may not be completed within a single character transmission time, etc.
As well as the wide variety of terminals which are available and in use, there is also a variety of hardware devices which may be used to interface a terminal to a PDP 11 computer. For example:
DL11/KL11 |
single line, asynchronous |
|
interface; 13 standard |
|
transmission rates between |
|
40 and 9600 baud; |
DJ11 |
16 line, asynchronous, buffered |
|
serial line multiplexer; 11 |
|
speeds between 75 and 9600 baud, |
|
selectable in four line groups; |
DH11 |
16 line, asynchronous, buffered, |
|
serial line multiplexer; 14 speeds, |
|
individually selectable; DMA |
|
transmission |
Each of the above interfaces will work in full or half duplex mode; handle 5, 6, 7 or 8 level codes; generate odd, even or no parity; and generate a stop code of 1, 1.5 or 2 bits.
In addition to the above asynchronous interfaces, there are a number of synchronous interfaces, e.g. DQ11.
Each interface has its own control characteristics and it requires a separate operating system device driver. The common code which can be shared between these is gathered into a single file “tty.c”, to be found on Sheets 81 to 85. A set of common definitions is gathered in the file “tty.h” on Sheet 79.
By way of example, Sheet 80 contains the file “kl.c”, which constitutes the device driver for a set of DL11/KL11 interfaces. This device driver always needs to be present, since one KL11 interface is invariably included in a system for the the operator’s console terminal.