# Hazeltine 2000

The Hazeltine 2000 is one of the first general-purpose "smart" computer terminals, introduced in October 1970 at a price of $2,995 (equivalent to $23,500 in 2023). While earlier terminal systems included "smart" editing features, notably the IBM 2260, the Hazeltine 2000 was the first that used a standard RS-232 interface and sent its control sequences in the data stream. It could be attached to any contemporary minicomputer or mainframe that had a serial port and used ASCII-standard character sets.
One advanced feature of the design was the concept of "batch mode" that cached data being typed by the user and sent it all at once to the host. The system also had two display intensities, foreground and background (bright and dim). Data sent in background mode was independent and not sent back to the server. This allowed forms to be sent as text in background mode and then switch the terminal to foreground mode for data entry. This was used to create on-screen forms that could be filled out and cleared without having to re-send the background layout.
The base model displayed 27 lines of 74 characters, uppercase only, while an expansion added lowercase and 80-by-25 layout. In 1974 the expanded version became the only model and the price was lowered. The basic system was reimplemented several times using newer electronics as they became available during the 1970s. The Hazeltine 1500 was a lower-cost version introduced in 1977. The development team was unhappy with the support they received from the corporation, and the division was spun off to form Esprit Systems.

## Description
### Basic system

The system was an all-in-one unit with a 12" diagonal green phosphor screen with a 8.5" by 5.75" display area. The system weighed 62 pounds (28 kg) and required at least 24 inches (610 mm) of depth on a desk, and drew a massive 350 W in operation. It required 30 seconds to "warm up", and continually ran a fan to cool the system. Later models first grew to 63 pounds (29 kg) before falling to 57 pounds (26 kg).
In contrast to most glass terminals of the era, the 2000 offered only RS-232, lacking the common current loop based on the Teletype Model 33 that was widely used as an ad hoc terminal in the 1970s. Switches on the back of the case allowed the speed to be set to all common speeds between 110 and 9600 bit/s. A second switch, "CA", added additional Request To Send characters to send data in order to turn around the communications channel in half-duplex modems like the WE202C. This also had the side-effect of reducing the speeds; when turned on the highest speed was 1200 bit/s, but it also supported a wider variety of speeds below that to match the variety of speeds seen with these modems, adding 150 and 600 bit/s.
The system also had outputs for a printer, cassette storage, and the video signal so it could be mirrored on up to three additional screens. The connectors were complex, HDR panel mounts based on those used in avionics, Hazeltine's primary business. The RS-232 was connected via a hard-wired cable with a 25-pin connector at the end, not a rear-panel port.
The keyboard could be detached, connecting to the terminal using a 5 foot (1.5 m) 54-pin HDR connector. It had a 51-key typewriter layout main section, along with a numeric keypad to the right, and a cursor control section to the right of the numeric keypad. Running in a column down the extreme right hand side was a series of seven status lamps and pushbuttons with the on/off switch at the top of the column.
Parity was selected using a rear-panel rotating switch, odd, even, always-1 or always-0. A parity error would cause the parity lamp to light, which could be cleared by pressing it.
The base-model system had a character set of 64 characters covering the upper case ASCII set. These were drawn on-screen in a 5 by 7 dot matrix, allowing 27 rows of 74 characters per line. With the optional lower case option, the character matrix was expanded to 5 by 8, thereby allowing only 25 lines, although by adjusting the display slightly, they expanded to 80 columns wide.

### Batch mode

A key feature of the 2000 was its ability to be put into "batch mode", either by pressing the appropriate lamp/button on the right of the keyboard, or by sending the appropriate command as ASCII codes from the host computer. When the terminal was in this mode, the batch lamp/button was turned on.
In batch mode, typing on the keyboard was not immediately sent to the host, but was instead buffered into the 2 KB of internal core memory. Buffered data was sent when the user pressed the return key. The data to be sent was normally everything on the line up to the cursor, but this could be modified by pressing holding down ⇧ Shift and pressing the special XMIT key in the cursor cluster. This caused a second cursor to appear on-screen at the current location, and it will begin sending data from that position to the first carriage return it sees in the data.

### Foreground/Background

Batch mode was normally used in conjunction with a separate feature, foreground/background mode. This system allowed the text on the screen to be displayed at normal intensity, foreground, or a reduced intensity, background. The mode for every character on the screen was held in the buffer, so foreground and background data could be displayed anywhere on the screen.
The key feature of this concept is that common commands, like clear screen, could be issued to clear only the foreground or background data, and batch mode only sends the foreground characters. In practice, the host computer would send a stream of data in background mode to lay out a form, sending spaces in foreground mode to indicate input areas. Once the form was complete, it would switch back to foreground mode and turn on batch.
Once sent up in this fashion, the user's input would only be into those portions of the screen that were in foreground mode, and only their entries would be sent back to the host. Additionally, the cursor keys and tab key skipped over background characters, allowing the user to easily move around the form from field to field.

### Sending commands

Like the wide variety of smart terminals that followed, the 2000 used an escape sequence to send commands to the terminal. For the 2000, the commands were indicated by Control-Shift-period, what they referred to as the "lead-in code". The single character following the lead-in defines an action. These included SO (shift out) to trigger a transmit in batch mode, US (unit separator) to indicate following data was in foreground mode, EM (end of medium) to indicate background, FS (file separator) to clear the screen, or GS (group separator) to clear just the foreground.
The command set also included basic editing and cursor positioning typical of other smart terminals. DC2 sent the cursor to the "home" position in the upper left, DC3 deleted the line, and SUB (substitute) inserted a blank line below the cursor position. DC1 allowed the cursor to be sent to an indicated location on the screen by following it with two ASCII characters where the character code indicated a number. For instance, the NUL, ASCII code 0, would send the cursor to row or column 0. To avoid problems in transmission, the pattern repeated at 32, Space, so that the Y coordinate could be sent using the characters in the printable character range. The X coordinate was too large to fit in the printable range, so it repeated at character 96, although this did not allow the full range to be addressed in this manner.