The IBM System/7 was a computer system, designed in Boca Raton, Florida, and delivered 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.
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 ROM was unknown (after all, it was not needed with magnetic core memory) 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.
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.
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 that. 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. That fancy 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 of summer interns developed the LABS/7 operating environment, which with its language Event Driven Language, was ported to the Series/1 environment as the very successful Event Drive Executive (EDX).
The System/7 was designed to address the needs of a specific market where there was a need to collect and react to input from analog devices (e.g. temperature sensors). This was a very limited market at the time. Specific commercial uses included factory control systems and air conditioning energy control systems. ATT was also a large customer. However, the main use may have been for, what were at the time, classified military uses.
The product line was withdrawn from marketing in 1984. IBM's subsequent product in industrial control was the Series/1, also designed at Boca Raton.