IBM 3270


The IBM 3270 is a class of block oriented computer terminals introduced by IBM in 1971 normally used to communicate with IBM mainframes. The 3270 was the successor to the IBM 2260 display terminal. Due to the text colour on the original models, these terminals are informally known as green screen terminals. Unlike a character-oriented terminal, the 3270 minimizes the number of I/O interrupts required by transferring large blocks of data known as data streams, and uses a high speed proprietary communications interface, using coaxial cable.
IBM no longer manufactures 3270 terminals, but the IBM 3270 protocol is still commonly used via 3270 terminal emulation or web interfaces to access mainframe-based applications, which are sometimes referred to as green screen applications.

Principles

The 3270 series was designed to connect with mainframe computers, often at a remote location, using the technology then available in the early 1970s. The main goal of the system was to maximize the number of terminals that could be used on a single mainframe. To do this, the 3270 was designed to minimize the amount of data transmitted, and minimize the frequency of interrupts to the mainframe. By ensuring the CPU is not interrupted at every keystroke, a 1970s-era IBM 3033 mainframe fitted with only 16 MB of main memory was able to support up to 17,500 3270 terminals under CICS.

3270 devices are clustered, with one or more displays or printers connected to a control unit. Originally devices were connected to the control unit over coaxial cable; later token ring, twisted pair, or Ethernet connections were available. A local control unit attaches directly to the channel of a nearby mainframe. A remote control unit is connected to a communications line by a modem. Remote 3270 controllers are frequently multi-dropped, with multiple control units on a line.
In a data stream, both text and control are interspersed allowing an entire screen to be "painted" as a single output operation. The concept of formatting in these devices allows the screen to be divided into fields for which numerous field attributes can be set. A field attribute occupies a physical location on the screen that also determines the beginning and end of a field.
Using a technique known as "read modified", a single transmission back to the mainframe can contain the changes from any number of formatted fields that have been modified, but without sending any unmodified fields or static data. This technique enhances the terminal throughput of the CPU, and minimizes the data transmitted. Some users familiar with character interrupt-driven terminal interfaces find this technique unusual. There is also a "read buffer" capability that transfers the entire content of the 3270-screen buffer including field attributes. This is mainly used for debugging purposes to preserve the application program screen contents while replacing it, temporarily, with debugging information.
Early 3270s offered three types of keyboards. The typewriter keyboard came in both a 66 key version, with no programmed function keys, and a 78 key version with twelve. Both versions had two program attention keys. The data entry keyboard had five PF keys and two PA keys. The operator console keyboard had twelve PF keys and two PA keys. Later 3270s had twenty-four PF keys and three PA keys. When one of these keys is pressed, it will cause its control unit to generate an I/O interrupt to the host computer and present a special code identifying which key was pressed. Application program functions such as termination, page-up, page-down, or help can be invoked by a single key press, thereby reducing the load on very busy processors.
A downside to this approach was that vi-like behaviour, responding to individual keystrokes, was not possible. For the same reason, a porting of Lotus 1-2-3 to mainframes with 3279 screens did not meet with success because its programmers were not able to properly adapt the spreadsheet's user interface to a "screen at a time" rather than "character at a time" device. But end-user responsiveness was arguably more predictable with 3270, something users appreciated.

Applications

Following its introduction the 3270 and compatibles were by far the most commonly used terminals on IBM System/370 and successor systems. IBM and third-party software that included an interactive component took for granted the presence of 3270 terminals and provided a set of ISPF panels and supporting programs.
Conversational Monitor System in VM/SP has support for the 3270.
Time Sharing Option in OS/360 and successors has line mode command line support and also has facilities for full screen applications, e.g., ISPF.
Device independent Display Operator Console Support in Multiple Console Support for OS/360 and successors.
The SPF and Program Development Facility editors for MVS and VM/SP and XEDIT editors for VM/SP respectively make extensive use of 3270 features.
Customer Information Control System has support for 3270 panels.
Various versions of Wylbur have support for 3270, including support for full-screen applications.
The modified data tag is well suited to converting formatted, structured punched card input onto the 3270 display device. With the appropriate programming, any batch program that uses formatted, structured card input can be layered onto a 3270 terminal.
IBM's OfficeVision office productivity software enjoyed great success with 3270 interaction because of its design understanding. And for many years the PROFS calendar was the most commonly displayed screen on office terminals around the world.
A version of the WordPerfect word processor ported to System/370 was designed for the 3270 architecture.
3270 and The Web are similar in that both follow a thin client client-server architecture whereby they, the clients, are given primary responsibility for managing presentation and user input. This minimizes host interactions while still facilitating server-based information retrieval and processing.
With the arrival of the web, application development has in many ways returned to the 3270 approach. In the 3270 era, all application functionality was provided centrally. With the advent of the PC, the idea was to invoke central systems only when absolutely unavoidable, and to do all application processing with local software on the personal computer. Now in the web era, the application again is strongly centrally controlled, with only technical functionality distributed to the PC.
In the early 1990s a popular solution to link PCs with the mainframes was the Irma board, an expansion card that plugged into a PC and connected to the controller through a coaxial cable. IRMA also allows file transfers between the PC and the mainframe.

Third parties

One of the first groups to write and provide operating system support for the 3270 and its early predecessors was the University of Michigan, who created the Michigan Terminal System in order for the hardware to be useful outside of the manufacturer. MTS was the default OS at Michigan for many years, and was still used at Michigan well into the 1990s.
Many manufacturers, such as GTE, Hewlett Packard, Honeywell/Incoterm Div, Memorex, ITT Courier and Teletype/AT&T created 3270 compatible terminals, or adapted ASCII terminals such as the HP 2640 series to have a similar block-mode capability that would transmit a screen at a time, with some form validation capability. Modern applications are sometimes built upon legacy 3270 applications, using software utilities to capture screens and transfer the data to web pages or GUI interfaces.

Models

The IBM 3270 display terminal subsystem consists of displays, printers and controllers.
Optional features for the 3275 and 3277 are the selector-pen or light pen, ASCII rather than EBCDIC character set, an audible alarm, and a keylock for the keyboard. A keyboard numeric lock was available and will lock the keyboard if the operator attempts to enter non-numeric data into a field defined as numeric. Later an Operator Identification Card Reader was added which could read information encoded on a magnetic stripe card.

Displays

Generally, 3277 models allow only upper-case input, except for the mixed EBCDIC/APL or text keyboards, which have lower case. Lower-case capability and possibility of dead keys, at first a simple RPQ were only added in 3278 & 3279 models.
A version of the IBM PC called the 3270 PC, released in October 1983, includes 3270 terminal emulation. Later, the 3270 PC/G and 3270 PC/GX followed.

3277

The IBM 3279 was IBM's first colour terminal. IBM initially announced four models, and later added a fifth model for use as a processor console.
In base color mode the protection and intensity field attributes determine the color:
In extended color mode the color field and character attributes determine the color as one of
The 3279 was introduced in 1979. The 3279 was widely used as an IBM mainframe terminal before PCs became commonly used for the purpose. It was part of the 3270 series, using the 3270 data stream. from IBM. Terminals could be connected to a 3274 controller, either channel connected to an IBM mainframe or linked via an SDLC link. In the Systems Network Architecture protocol these terminals were logical unit type 2. The basic model 2 used red, green for input fields, and blue and white for output fields. However, there were other models with seven colours and different screen sizes, and one kind had a loadable character set that could be used to show graphics.
The IBM 3279 with its graphics software support, Graphical Data Display Manager, was designed at IBM's Hursley Development Laboratory, near Winchester, England.

3290

The 3180 was a monochrome display, introduced on March 20, 1984, that the user could configure for several different basic and extended display modes; all of the basic modes have a primary screen size of 24x80. Modes 2 and 2+ have a secondary size of 24x80, 3 and 3+ have a secondary size of 32x80, 4 and 4+ have a secondary size of 43x80 and 5 and 5+ have a secondary size of 27x132. An application can override the primary and alternate screen sizes for the extended mode. The 3180 also supported a single explicit partition that could be reconfigured under application control.

3192

The original 3192 was a monochrome display with the same characteristics as the 3180.

Subsequent

By 1994 the "3174 Establishment Controller" supported features such as attachment to multiple hosts via token ring, Ethernet, or X.25 in addition to the standard channel attach or SDLC, and terminal attachment via twisted pair, token ring or Ethernet in addition to co-ax. They also support attachment of asynchronous ASCII terminals, printers, and plotters alongside 3270 devices.

Graphics models

These were specialized models: As with the 3179, the 3279 and 3472 had "G" models.

IBM 3179G

The IBM 3179G released in March 1984 is an IBM mainframe computer terminal providing 80×24 or 80×32 characters plus graphics.
3179-G terminals combine text and graphics as separate layers on the screen. Although the text and graphics appear combined on the screen, the text layer actually sits over the graphics layer. The text layer contains the usual 3270-style cells which display characters. The graphics layer is an area of 720×384 pixels. 'All Points Addressable' or 'vector graphics' is used to paint each pixel in one of sixteen colors. As well as being separate layers on the screen, the text and graphics layers are sent to the display in separate data streams, making them completely independent.
The G10 model is a standard 122-key typewriter keyboard, while the G20 model offers APL on the same layout. Compatible with IBM System/370, IBM 4300 series, 303x, 308x, IBM 3090, and IBM 9370.

IBM 3279G

The 3279g has a capability called "Extended Data Stream". Documentation for the SAS software package says
"The ability to do graphics on a 3270 terminal implies that it is an EDS device."

IBM 3472G

The IBM 3472G has Native Vector Graphics capability.

Manufacture

The IBM 3270 display terminal subsystem was designed and developed by IBM's Kingston, New York, laboratory. The printers were developed by the Endicott, New York, laboratory. As the subsystem expanded, the 3276 display-controller was developed by the Fujisawa laboratory, Japan, and later the Yamato laboratory; and the 3279 colour display and 3287 colour printer by the Hursley, UK, laboratory. The subsystem products were manufactured in Kingston, Endicott, and Greenock, Scotland, UK, and shipped to users in U.S. and worldwide. 3278 terminals continued to be manufactured in Hortolândia, near Campinas, Brazil as far as late 1980s, having its internals redesigned by a local engineering team using modern CMOS technology, while retaining its external look and feel.

Telnet 3270

Telnet 3270, or tn3270 describes both the process of sending and receiving 3270 data streams using the telnet protocol and the software that emulates a 3270 class terminal that communicates using that process. tn3270 allows a 3270 terminal emulator to communicate over a TCP/IP network instead of an SNA network. Telnet 3270 can be used for either terminal or print connections. Standard telnet clients cannot be used as a substitute for tn3270 clients, as they use fundamentally different techniques for exchanging data.

Technical Information

3270 character set

The following table shows the 3275/3277/3284/3286 character set for US English EBCDIC. The numbers are the equivalent Unicode code points.
On the 3275 and 3277 terminals without the a text feature, lower case characters display as uppercase. NL, EM, DUP, and FM control characters display and print as 5, 9, *, and ; characters, respectively, except by the printer when WCC or CCC bits 2 and 3 = '00'b, in which case NL and EM serve their control function and do not print.

Data stream

Data sent to the 3270 consists of commands and orders. Commands instruct the 3270 control unit to perform some action on a specified device, such a read or write. Orders are sent as part of the data stream to control the format of the device buffer.
The following description applies to the 3271, 3272, and 3275 control units. Later models of 3270 have additional capabilities.

Commands

Commandhexadecimal
Code
Function
Write01Writes data to the device
Erase/Write05Erases device buffer and writes data
Read Buffer02Reads entire device buffer, for example always 1920 bytes on a 3277-2
Read Modified06Reads only modified data from device
CopyN/A Copies data from one device buffer to another, for example from a display to a printer attached to the same control unit
Select0BTransfers data from device to control unit
Erase All Unprotected0FErases all unprotected data and resets modified data tags
No Operation03May be used to retrieve pending status
Sense04Retrieves error information after unit check
For remote 3270s non-significant bits are set so that the command forms a valid EBCDIC character.--

Write control character

The data sent by Write or Erase/Write consists of the command code itself followed by a Write Control Character optionally followed by a buffer containing orders or data. The WCC controls the operation of the device. Bits may start printer operation and specify a print format. Other bit settings will sound the audible alarm if installed, unlock the keyboard to allow operator entry, or reset all the Modified Data Tags in the device buffer.

Orders

Orders consist of the order code byte followed by zero to three bytes of variable information.

Attributes

The original 3277 and 3275 displays used an 8-bit field attribute byte of which five bits were used.
Later models include base colour "In base color mode, the protection and intensity bits are used in combination to select among four colors: normally white, red, blue, and green; the protection bits retain their protection functions as well as determining color." Still later models used extended attributes to add support for seven colours, blinking, reverse video, underscoring, field outlining, field validation, and programmed symbols. In addition, later models added character attributes, which could establish, e.g., color for individual characters without starting a new field or taking up a screen position.

Buffer addressing

3270 displays and printers have a buffer containing one byte for every screen position. For example, a 3277 model 2 featured a screen size of 24 rows of 80 columns for a buffer size of 1920 bytes. Bytes are addressed from zero to the screen size minus one, in this example 1919. "There is a fixed relationship between each... buffer storage location and its position on the display screen." Most orders start operation at the "current" buffer address, and executing an order or writing data will update this address. The buffer address can be set directly using the Set Buffer Address order, often followed by Start Field. For a device with a 1920 character display a twelve bit address is sufficient. Later 3270s with larger screen sizes use fourteen or sixteen bits.
Addresses are encoded in orders in two bytes. For twelve bit addresses the high order two bits of each byte are normally set to form valid EBCDIC characters. For example, address 0 is coded as X'4040', or space-space, address 1919 is coded as X'5D7F', or ''. Programmers hand coding panels usually keep the table of addresses from the 3270 Component Description or the 3270 Reference Card handy. For fourteen and sixteen bit address, the address uses contiguous bits in two bytes.

Example

The following data stream writes an attribute in row 24, column 1, writes the characters '> ' in row 24, columns 2 and 3, and creates an unprotected field on row 24 from columns 5-79. Because the buffer wraps around an attribute is placed on row 24, column 80 to terminate the input field. This data stream would normally be written using an Erase/Write command which would set undefined positions on the screen to '00'x. Values are given in hexadecimal.

Data Description
D3 WCC
11 5C F0 SBA Row 24 Column 1
1D F0 SF/Attribute

6E 40 '> '
1D 40 SF/Attribute

SBA is not required here since this is being written at the current buffer position
13 IC - cursor displays at current position: Row 24, column 5
11 5D 7F SBA Row 24 Column 80
1D F0 SF/Attribute