# IBM System/7

The IBM System/7 was a computer system designed for industrial control, announced on October 28, 1970 and first shipped in 1971. It was a 16-bit machine and one of the first made by IBM to use novel semiconductor memory, instead of magnetic core memory conventional at that date.
IBM had earlier products in industrial control market, notably the IBM 1800 which appeared in 1964. However, there was minimal resemblance in architecture or software between the 1800 series and the System/7.
System/7 was designed and assembled in Boca Raton, Florida.

## Hardware architecture

The processor designation for the system was IBM 5010. There were 8 registers which were mostly general purpose (capable of being used equally in instructions) although R0 had some extra capabilities for indexed memory access or system I/O. Later models may have been faster, but the versions existing in 1973 had register to register operation times of 400 ns, memory read operations at 800 ns, memory write operations at 1.2 μs, and direct IO operations were generally 2.2 μs. The instruction set would be familiar to a modern RISC programmer, with the emphasis on register operations and few memory operations or fancy addressing modes. For example, the multiply and divide instructions were done in software and needed to be specifically built into the operating system to be used.
The machine was physically compact for its day, designed around chassis/gate configurations shared with other IBM machines such as the 3705 communications controller, and a typical configuration would take up one or two racks about 5 feet (1.5 m) high, the smallest System/7's were only about 3 feet (0.91 m) high. The usual console device was a Teletype Model 33 ASR (designated as the IBM 5028), which was also how the machine would generally read its boot loader sequence. Since the semiconductor memory emptied when it lost power (in those days, losing memory when you switched off the power was regarded as a novelty) and the S/7 didn't have ROM, the machine had minimal capabilities at startup. It typically would read a tiny bootloader from the Teletype, and then that program would in turn read in the full program from another computer or from a high speed paper tape reader, or from an RPQ interface to a tape cassette player. Although many of the external devices used on the system used the ASCII character set, the internal operation of the system used the EBCDIC character set which IBM used on most systems.

### Specialization

There were various specializations for process control. The CPU had 4 banks of registers each of different priority and it could respond to interrupts within one instruction cycle by switching to the higher priority set. Many specialized I/O devices could be configured for things such as analog measurement or signal generation, solid state or relay switching, or TTL digital input and output lines. The machine could be installed in an industrial environment without air conditioning, although there were feature codes available for safe operation in extreme environments.

### Standard Hardware Units

A System/7 is typically a combination of the following:
* IBM 5010: Processing Module. This module is always present in a System/7. Effectively this is the controller for the System/7, performing arithmetic and logical functions as well as providing control functions.
* IBM 5012: Multifunction Module. This module handles both digital and analog I/O. It can also be used to control an IBM 2790.
* IBM 5013: Digital Input/Output Module. This module handles digital I/O as well as the attachment for custom products. It can also be used to control an IBM 2790.
* IBM 5014: Analog Input Module. This module could take voltage signals and turn them into data inputs.
* IBM 5022: Disk Storage Unit. Announced in 1971, it could hold either 1.23 million or 2.46 million 16-bit words.
* IBM 5025: Enclosure. This is effectively the rack into which the power supplies and I/O modules are installed.
* IBM 5028: Operator Station. This is a stand-alone station that includes a keyboard and a printer. It also includes a paper tape punch and a paper tape reader. In the photo captioned IBM System/7 in use, it is to the left of the operator in the foreground of the photo. When first announced in 1970, one Operator Station was mandatory for each System/7, but in 1971 IBM announced that one 5028 could be shared by several System/7s.

### Maritime Application/Bridge System

This is a solution specifically for on board ship navigation. It consists of the following hardware:
* 5010E Processing Module. This module is always present.
* 5022 Disk Storage Unit.
* 5026 C03 Enclosure. This has been modified to handle extended heavy vibrations and tilting
* 5028 Operator Station.
* 5090: N01 Radar Navigation Interface Module (RNIM). Interfaces with OEM equipment such as radar, gyros, navigation equipment.
* 5090: N02 Bridge Console. This provides a radar plan position indicator (PPI) that allows the navigator to communicate with and control the system.
There are also RPQs to ruggedize the hardware, provide interfaces to various navigation equipment and provide spares for on board ship.

## Software

The operating system would more properly be called a monitor. IBM provided a wide variety of subroutines, mostly written in assembler, that could be configured into a minimum set to support the peripherals and the application. The application-specific code was then written on top of the monitor stack. A minimal useful configuration would run with 8 kilobytes of memory, though in practice the size of the monitor and application program was usually 12kB and upwards. The maximum configuration had 64kB of memory. The advanced (for the time) semiconductor memory made the machine fast but also expensive, so a lot of work went into minimizing the typical memory footprint of an application before deployment. The development tools normally ran on IBM's 360 computer system and the program image was then downloaded to a System/7 in a development lab by serial link. Up until 1975 at least it was rare to use disk overlays for the programs, with no support for that in the software tools. Hard disks, in the IBM Dolphin line of sealed cartridges, were available but expensive and were generally used as file systems storing data and executable programs (thereby eliminating the need to rely on the paper tape reader for system boot-up).
Most work was done in a macro assembly language, with a fairly powerful macro language facility allowing great flexibility in code configuration and generation. Static variable binding, like Fortran, was the norm and the use of arbitrary subroutine call patterns was rare. The machines were usually deployed for very fixed jobs with a rigidly planned set of software. This often extended to the real-time interrupt latency, using the 4 levels of priority and the carefully crafted software paths to ensure guaranteed latencies. Fortran and a PL/1 subset (PL/7) compilers were available no later than 1976 as larger configurations became more affordable and more complex data processing was required. System/7 programmers still needed to be aware of the actual instructions that were available for use.
Much development work was done on S/360 or S/370 using a variation of the HLASM program geared to the MSP/7 macro language. To provide more flexibility in programming the System/7, a group in the IBM San Jose Research Laboratory in San Jose, California developed the LABS/7 operating environment, which with its language Event Driven Language (EDL), was ported to the Series/1 environment as the very successful Event Driven Executive (EDX).

## Uses

The System/7 was designed to address the needs of specific "real-time" markets which required collecting and reacting to input and output (I/O) from analog devices (e.g. temperature sensors, industrial control devices). This was a very limited market at the time. Specific commercial uses included factory control systems and air conditioning energy control systems. AT&T was also a large customer. However, the main use may have been for, what were at the time, classified military uses.

### Example customers

This is an eclectic list of customers intended to show the variety of use cases for which the System/7 could be employed:
* In 1971 IBM claimed their first customer delivery of a System/7, made to American Motors Corporation (AMC) in Kenosha, WA. The system was delivered on September 16, 1971, and installed 24 hours later. It was the first of two that were to be used to measure the emissions of new production automobiles.
* In 1972 it was reported that the University of Pennsylvania was using remote terminals with card readers, attached to an IBM System/7, to reduce the incidence of meal contract abuse among 2000 students. It helped ensure students did not exceed their meal limits or eat meals in multiple dining rooms in the same meal period.
* In 1978 it was reported that Pfizer Corporation was using a System/7 equipped with audio-response to allow around 1,300 sales representatives to remotely enter orders through a mini-terminal that could send touch-tone signals via a telephone. They called the system "Joanne".

### Maritime Application/Bridge System

IBM announced this system on October 15, 1973 and by the end of 1979 over 100 vessels were using it.
This solution was the first navigational aid that the Control Engineering Department of Lloyds Register added to their list of Approved Control and Electrical Equipment.
The System/7 Maritime Application/Bridge System is designed to make the navigation of large ships safer and more efficient, by reducing the amount of data that bridge personnel needed to correlate while improving how it is presented.
It provides five programmed functions:
* Collision assessment: This uses the ship's radar as well as speed log and gyrocompass to determine where collision risks exist in up to a 16.5 nautical mile radius.
* Position fixing: This uses various inputs including satellite navigation receiver, Decca Navigator, gyrocompass and the ship's speed log to show the ship's position.
* Adaptive autopilot: This constantly adapts the ship's steering in response to sea conditions
* Route planning: This allows forecasting for navigational changes, based on the ship's current position and then either the inputted destination or the next turning point. Routes could be stored and retrieved.
* Route tracking: This uses boundaries input by the navigator and position-fixing data. It then uses the PPI to display channels or lanes. It could sound an alarm if a boundary was being approached.
In the late 1970s IBM Chairman Frank Cary made the decision to not only withdraw this system but remove it from the ships that were equipped with it. This was done due to legal and reputational concerns about what would happen if a ship equipped with the system was involved in a major incident. All clients were compensated for the removal.

## Withdrawal

The product line was withdrawn from marketing on March 20, 1984. IBM's subsequent product in industrial control was the Series/1, also designed at Boca Raton.