The Tektronix direct-view storage tube was first used in the Tektronix 564 oscilloscope in 1963, and was first used for non-oscilloscope applications in the 601 monitor in 1968. A number of graphics terminals based on this tube and others from the 600-series were developed, including the Advanced Remote Display Station from MIT's Project MAC, and the KV8I (later, KV8E) from Digital Equipment Corporation using the 11-inch diagonal 611. These consisted of just the tube and related basic electronics, it was up to software on the host computer to produce a display by driving the controls directly.
Tektronix decided to enter the terminal market themselves, introducing the 4002 in 1969, and the updated 4002A in 1971. The latter sold for $9,400 in 1973, or $9,550 with a customized host adaptor. These were similar to the earlier 3rd party terminals, essentially combining one of their storage tubes with the circuitry needed to decode instructions from the host and turn those into control inputs. However, the 4002s had the unique feature that only a portion of the screen was a storage tube, with a small section set aside for normal refresh-based drawing. This area was used for status messages and entering commands. As they did not include raster scan hardware or any form of memory, refreshing this area rapidly enough to reduce flicker was up to the host computer.
The 4002s were first supplanted and then replaced by the 4010 starting in 1972. A number of changes and simplifications allowed these to be far less expensive, initially released at $3,950 without a custom host communications interface, or $4,240 with one. Other models in the 4010 series included the 4012 which added lower case characters, and the 4013 with an APL character set. These were implemented using plug-in boards that could be added to the base-model 4010 as well. In the 1980s, a version using a built-in RS-232 port and a number of missing features was released as the 4006, which was small enough to fit on a desk, selling for $2,995 in 1980.
The 4014 joined the line in 1974 at $8,450, introducing a larger 19-inch screen as well as a more an ergonomic layout. It had a wide range of new features as well, which made it much more effective in many contexts and became especially common in computer aided design use. The upgrades are so widespread that the 4014 series is sometimes considered to be a separate line from the 4010. The 4015 was a 4014 with the APL card from the 4013. The 4016, introduced in 1979, was a version with a 25-inch screen and a somewhat different mechanical layout to provide room for the much larger tube. It was much more expensive, with the base model selling for $19,500 in 1980.
A wide variety of peripherals were available that worked on some or all of these models. The first line, introduced with the 4010, included the 4610 Hard Copy Unit, a graphics printer. This used a system in the monitor to scan the display line-by-line which was then sent to the printer where a second one-line tall CRT duplicated the image on thermal paper. Normally selling for $3,550, a $3,950 version allowed the printer to be shared among four terminals. The adaptor could be pre-installed in the 4010, making it the 4010-1, and it came pre-installed on both the 4012 and 4013 which do not appear to have used the -1 notation to indicate this. The 4631 was a version of the 4610 with a sheet feeder and higher speed. A properly equipped 4014 could also drive a plotter through an expansion card, including the GPIB-based 4662 Interactive Digital Plotter and 4663 C-sized version. Plotters offered colored pen selection, which could be embedded in the graphics data.
For storage, the systems could write out a stream of characters as they were received from the host, allowing them to be played back locally to recreate the display. Storage options included the 4911 punch tape, the 4912 using cassette tapes based on a Sykes TT120 mechanism, and later added the 4923 based on the 3M DC300 digital tape system.
Other devices in the line included the 4901 and 4903 Interactive Graphic Unit which drew crosshairs on the 4002 but was later built-in to the later models, and the 4951 Joystick. The 4551 Light Pen, originally developed for the 611, could also be used.
The 4010 series was also used as the basis for two self-hosted systems. The Tektronix 4050 series used the 4010 or 4014 with internal processors and a DC300 tape unit to produce a simple desktop unit. There were three models in the original 4010-based 4051 with an 8-bit processor, the 4042 with a 16-bit processor, and the 4054 which combined the 4014 screen with the 4052 logic. The 4081 was a version with an Interdata 7/16 minicomputer built into an office desk, which saw limited use. Tektronix continued selling the storage tubes to OEMs, the 19" version as the GMA101 and 102 (the former offering roughly twice the drawing speed) and the 25" as the GMA 125.
Tektronix also sold a set of graphics routines in FORTRAN known as PLOT10 that converted simple inputs like lists of numbers into a graphic display like a chart. Another common solution was the DISSPLA system, which was adapted to run on the 4010.
The command format for sending graphics to the terminals was very simple, and was soon copied by a number of other terminal vendors. These later moved to traditional video terminals using raster scan displays, although these generally offered lower resolution, perhaps half that of the 4010. A number of these also understood the color codes from the Tektronix 4105 raster scan terminal, which added color to the original 4010 command set. This emulation continued to be used and copied by newer terminals to this day; NCSA Telnet and xterm emulates the 4014 (xterm -t).
Conventional video displays consist of a series of images, or frames, representing single snapshots in time. When the frames are updated rapidly enough, changes in those images provide the illusion of continuous motion. This makes normal television tubes unsuitable for computer displays, where the image is generally static for extended periods of time (as it is while you read this). The solution is to use additional hardware and computer memory to store the image between each update, a section of memory known as a framebuffer.
In the 1960s, memory based on core was extremely expensive, generally priced in dollars or cents per bit. If one wanted to store a screen of text at 80 columns by 25 lines and using 7-bit ASCII, one would require 80 x 25 x 8 bits = 14,000 bits, making the price of the terminal prohibitive. The cost would be even more if the terminal needed to display graphics. For instance, a graphics terminal supporting 1-bit points (on/off) at 1024 by 768 resolution would require 1024 x 768 x 1 bit = 786,432 bits of memory, likely more than the cost of the computer it connected to. One solution to reduce the amount of memory required was to represent the image not as dots, but lines. In this case only the endpoints have to be stored in memory, and additional hardware draws between them to produce the display. A coordinate within that same 1,024 resolution space requires 10 bits (210), so if the display can hold 1000 lines in total it requires 1000 lines x 2 ends x 2 coordinates per end (X and Y) x 10 bits = 40,000 bits. The IBM 2250 graphics terminal used this solution, and sold for $280 000 in 1970.
Tektronix had originally developed their storage tubes in the late 1950s as a way to store images on oscilloscope displays for study, although the same system had already been used in radar displays. The basic concept uses a conventional CRT layout but with two sets of electron guns. One, the flood gun, provides a constant flow of low-energy electrons across the entire screen, causing it to glow slightly. The second, the write gun, is the normal gun of a black and white TV, and its beam was moved about on the display surface in the conventional fashion using electromagnets. However, this gun is set to a higher than normal energy. When its beam strikes the screen, it causes an effect known as photoemission that drives electrons out of the phosphorus towards the front of the display where they are picked up by a thin transparent electrode. This area now contains less electrons than normal, giving it a positive charge relative to its surroundings. This causes some of the electrons from the flood gun to be strongly attracted to that spot, which keeps it lit up. The display using this technique is instantly recognizable by the bright flash of the write gun beam as it moves about the display.
Because the tube itself stores the image, there is no need for any sort of built-in computer memory, greatly lowering the cost of the terminal. The 4010 cost $3,950, almost two orders of magnitude less expensive than IBM's solution. This made graphics practical for a much wider audience. The Tektronix approach also has the advantage that there is no limit to the number of vectors that can be displayed, one can simply keep sending them to the display, whereas a solution like the IBM terminal had a fixed number of vectors it could display. Early computer aided design systems made by companies such as Computervision took advantage of this capability, and were able to display arbitrarily complex designs.
The main disadvantage of storage tubes is that once the image is stored, it can only be removed by erasing the entire image. This makes this display unsuitable for working with scrolling text, animation, or any other display where portions of the image are changing. Tek introduced the write through concept for non-stored vectors, but, with the terminal itself lacking any memory, these had to be continually refreshed by the host computer. This limited the number of these objects to the communications speed of the connection between the terminal and host, and was often in the low dozen range. Another disadvantage is that it takes a short time for the image to stick on the display, which limits the speed that the image can be drawn. Tektronix referred to this as the stored writing speed, and measured it in terms of vector-inches-per-second, with numbers between 1500 and 4000 being typical for their displays.
The 401x series consisted of a large monitor sitting on top of a wheeled cart. The cart held most of the electronics in a vertical case at the back. This could be opened from the front to access the various switches and jumpers, as well as providing access to the expansion cards. Inside the cart, expansion cards were connected using the "Minibus" system, using a 36-pin card connector with an 8-bit data bus. In addition to the communications card and various enhancements, the Desk-Top Mounting Kit allowed the CRT to be placed on a desk while the cart was connected to it using a cable up to 10 feet (3.0 m) away.
The 4010 used a Minibus card to handle communications with the host computer, and a wide variety of host interfaces were available. The 4014 terminal was normally shipped with the standard Communications Interface installed, offering an RS-232 connection, although only the important pins were connected. Setup was handled entirely by jumpers, so there was no way for the terminal to change these settings while connected. As an alternative to the Communications Interface, the TTY Interface allowed the terminal to be connected to a current-loop teletype interface, which was still widely used by mainframes of that era. Direct interfaces using custom serial or parallel connections were also available for most mainframe systems.
In Alpha mode, the 4010 displays 35 lines of 74 characters. The terminal was "dumb" by standards of the day, lacking various smart terminal features like addressable cursor positioning. The terminal also lacks any significant buffering, and many operations could lead to data loss. Notably, the carriage return took about 100 to 200 µs, and a screen clear operation much longer than that. It was up to the host computer to delay further data to avoid it being lost during these periods.
One interesting feature is a second margin at the 35th character, allowing lines to be limited between the left side of the screen and that point for margin 0, or that point and the right side of the screen for margin 1. This is useful for mixing graphics and text, or displaying two columns of text. Switching between the columns was accomplished by moving to the very last line in any given column and pressing line feed. The cursor would then reappear at the top of the next column. There was no attempt to limit drawing within these borders, so it was up to the host software to ensure lines remained within the margins by inserting CR/LF characters at appropriate points. Lines writing to margin 0 would extend the full length of the screen if CR/LF was not sent to wrap before he 35th character, although any data in the margin 1 area on the same line, being written later, would be drawn on top.
The terminals also optionally support a second character set via plug-in circuit boards, selecting between them with the ASCII SI and SO characters.
The 4010 is not a raster display and thus has an effectively unlimited resolution, but the command decoding circuity limits this to 1,024 by 1,024. Because the screen has a 4:3 geometry, only 780 points were visible vertically. The origin is in the lower left.
Encoding values from 0 to 1,023 requires 10 bits; 2^10 = 1024. These values were encoded in ASCII, using 5 bits per character, and thus requiring two characters per value, or 4 characters for a complete X,Y coordinate. The encoding scheme was designed to make the coordinate characters safely sent over serial links by assigning each value from the set of ASCII printable characters. X values were assigned the 32 characters between 64 and 95 decimal, mostly the uppercase letters. The Y coordinates are given a similar range from 96 to 127, mostly the lowercase letters. To convert an X value to an ASCII character code, you took the X value and add 64 to it, while for a Y value, you add 96. High-order bits for either were the same, from the range 32 to 63, mostly numerals and punctuation.
So the complete formula for calculating the points from the characters is:
X = 32 x (high X character ASCII value - 32) + (low X character ASCII value - 64)
Y = 32 x (high Y character ASCII value - 32) + (low Y character ASCII value - 96)
Although the manuals always show the calculation for X before Y, and low-order character before high-order, the four characters have to be sent in the opposite order starting with the high Y, then low Y, high X and finally low X. For instance, consider the coordinate (23, 142). The X coordinate falls within the range 0 to 31, so no shifting is required. Adding 23 to 64 gives 87, which is ASCII character W, and since no shift is required the "shift character" is space. For the Y coordinate 142, you would need to shift the number back to the range 0 to 31, which you can do by subtracting 128. Doing so leaves 14. Adding 14 to 96 to get the first character gives 110, or p. This required shifting by 128, which is 4 x 32, so the shift character is the fifth in the sequence (the first is zero shift, the space), or $. Now the characters are ordered shift-Y, Y, shift-X, X, so the complete coordinate (23, 142) would be encoded as $p W.
Each of these four coordinate characters is stored in a buffer in the terminal, which holds them until the complete coordinate is received and then drawn. The drawing process is triggered by the reception of the low-X character, which the terminal looks for by waiting for a bit pattern that indicates its in the proper decimal range. This allows a short-cut way to send points that share a Y coordinate by sending only the X coordinates, even just the low-X if the high-X has not changed. This can greatly reduce the total number of characters send to the terminal if the programmer arranges the data to minimize changes in Y over a given set of coordinates, and even more if they group together points that change only in low-X and low-Y. The overall effect can roughly halve the amount of data sent to the terminal.
Graphics are drawn by entering graph mode by sending the ASCII Group Separator (GS) character (Control+⇧ Shift+M). After that every set of four characters (or less) received by the terminal are used to define an X,Y coordinate. The first four following the GS position the graphic cursor, every point after that draws a vector on the display. The system is returned to text mode (alpha mode in their documents) using a number of commands, typically Unit Separator (US, Control+⇧ Shift+O), but a number of other sequences also have the same effect, including a Return.
Because the system draws vectors from point to point while in graphics mode, in order to draw separated lines the commands had to enter and exit graphics mode repeatedly. A single point is drawn by entering graph mode at the desired coordinate, drawing a zero length vector to the same coordinate.
For graphics input, the terminal used a pair of thumb wheels on the keyboard to control the position of a cursor. The cursor was displayed using a lower intensity of the electron beam that had insufficient energy to cause the storage system to trigger. The cursor was dynamically refreshed by the electronics of the terminal. The cursor was turned on with ESC (Control+⇧ Shift+K) (which also turned off graphic mode if it was on), and then SUB (Control+Z). The position was sent back to the computer using the same X,Y encoding as the graphics commands. This could be done interactively by sending the ESC+SUB and then pressing a key on the keyboard, or immediately by the host sending ESC+ENQ.
The 4014 series had a number of minor changes and some more major improvements.
In alpha mode, the font could be scaled to produce a number of different line sizes. The original 4010-style 35 lines by 74 characters was the default, or could be selected specifically with Esc+8. Esc+9 drew smaller glyphs to produce 38 lines of 81 characters, Esc+: for 58 by 121, and Esc+; for 64 by 133. All of these could be mixed on-screen.
In the 4010, the cursor and graphic crosshairs were interactive and used dark mode to move about the screen without writing to memory. This was accomplished by writing with less energy in the beam, just enough to be seen but not enough to store it. The 4014 added escape codes to allow the user to select this mode deliberately by sending any of the sequences from Esc+p through Esc+w. This was especially useful in graph mode, as it allowed the system to draw movable objects, although at the cost of having to continually refresh them over the serial link at about 30 times a second in order to avoid flicker. This could be used, for instance, by drawing the outline of a gauge and its scale markers normally to cause them to store, and then drawing the needle interactively using dark mode. It could also be used to move the graphics cursor to a new location without having to exit and re-enter graphics mode, previously the only way to accomplish this. Sending Esc+h through Esc+o set the terminal to defocussed mode which drew at reduced intensity by making the beam slightly wider and spreading the energy out over a wider area. Finally, Esc+` through Esc+g returned the terminal to the normal storage mode.
The 4014 made a change to the way graphics points were entered by adding an execution character which denoted that a particular coordinate was complete. This allowed, for instance, the X or Y coordinate to be changed without changing the previously stored location for the other. This was useful for drawing boxes or especially a series of lines like an axis, or drawing a point on the screen by sending in the same address as the one last stored or moved to using dark mode. Since the X and Y coordinates used separate characters, the terminal would still notice a sequence of coordinates being sent in the older 4010 format, and draw them as they arrived, providing backward compatibility.
With the Enhanced Graphic Module installed, an additional set of features were available. Primary among these was the addition of 12-bit addressing which increased the resolution to 4096 by 4096, again with the upper section of the Y axis above 3071 being unseen. Any address could be sent in 12-bit mode simply by sending in an extra byte between the high and low Y characters, using the same character range as the low-order Y addresses. On a 4010 series terminal or 4014 without the Enhanced Graphic Module, this extra byte would then immediately be overwritten by the actual low-order address that arrived as the next character, and thus have no effect. With the Enhanced Graphic Module, the terminal would use bits 1 and 2 to add to the front of the normally 5-bit high-order X address, and bits 3 and 4 to add to the high-order Y address.
Another feature of the Enhanced Graphic Module was circuity that periodically interrupted the beam as it was drawing a vector, allowing the creation of dashed lines. There were five patterns in total, dots, dash-dot and short and long dashes. These were useful for drawing axes and scales, especially when combined with the defocussed mode to lower the intensity, and using the change-one-coordinate feature to quickly draw them. These were selected using the same escape characters as the drawing mode selection of the normal 4014, the range Esc+` through Esc+w. For instance, without the Enhanced Graphics installed, sending any character from , to d selected normal line drawing mode, while with the module installed , was normal drawing, a was normal with dotted lines, and so on.
Incremental plot, entered with the ASCII Record Separator (RS) character, replaced the normal coordinates with single-character directions. For instance, sending E moved up ("north"). This was especially useful for drawing control needles and similar moving displays, and greatly reduces the amount of information that has to be sent to the terminal over time.
The Enhanced Graphic Module introduced two point plotting modes. Entering the normal point plot mode with the ACSII File Separator (FS), instead of RS for graph mode, plotted only the points at the coordinates being sent, not the vectors between them. Special point plot, entered with Esc+FS, added an intensity character to the coordinate that defocussed the beam and allowed the points to have various brightnesses.