# Event Driven Executive

The Event Driven Executive (EDX) is a computer operating system originally developed by IBM for the control of research laboratory devices and experiments. It included an application programming language known as EDL and HCF, a Host Communication Facility.

## Background

IBM's Research Division opened the San Jose Research Laboratory (SJRL) in 1956, in building 025 on the IBM plant site in San Jose, California. Dr. Henry M. Gladney established the first laboratory automation project in 1968, with an IBM 1800 computer. Various instruments in chemistry and physics laboratories throughout the SJRL were linked to the 1800 for control, data acquisition and processing. (Note that this was a long time before instrumentation came with embedded chips and microprocessors and the output from a sophisticated research instrument was likely to be a strip of chart paper with squiggly marks on it or perhaps punched paper tape.)
Dr. Gladney became the manager of the Research Computing Facility (RCF) and, when Research moved to Building 028 in 1970, he established a new department in the RCF, the Laboratory Automation Group, which was tasked to transition to a new sensor-based computer, the IBM System/7 produced in Boca Raton, Florida. Robert W. Martin was appointed as first line manager of the group with a staff consisting of Ray Aylsworth, Donald L. Raimondi, and Gerd Hochweller, a post-doctoral fellow on assignment from Germany.

## LABS/7 – the precursor to EDX

The System/7 was a much smaller machine than the 1800 and was intended to be co-located in individual research labs along with the instruments it would service. Multiple System/7s were to be hosted, large scale computing purposes, by the IBM System/360 “mainframe” which served the SJRL as a whole.
The System/7 was somewhat unusual, especially, from a programmer's perspective, in its lack of supporting software. Its basic human input/output interface was a teletype keyboard and printer along with a paper tape reader punch. It had a hard disc drive for data storage along with digital and analog input/output and process interrupt all of which could be used for lab instrument interface, data acquisition and instrument control. What it did not have was any sort of operating system or high level programming facility, only a basic assembler language program. Another way of putting it would be to say that, as delivered, it was not very user friendly, if the users were to be research scientists and engineers, i.e. non-programming professionals.
It was clear from the start that, in order to provide a successful System/7 based environment for laboratory automation in the SJRL, it would be necessary to develop a real-time, sensor-based, multitasking and multiprogramming operating system, an associated application development facility which provided not only an appropriate high level application programming language with requisite special features, e.g. sensor I/O, but also a communication interface to the large scale host computer for program development, bidirectional data transfer and data analysis.
The result was the development of an operating system known as the Laboratory Automation Basic Supervisor for the System/7 (LABS/7) and an application development language. LABS/7 was a real-time multitasking, multiprogramming operating system.

## The programming language

An application development language was needed to provide timing and process interrupt capability, analog and digital input and output commands to allow data acquisition from and control of external laboratory instruments along with basic computational functions, direct access data storage and host communications in a hierarchical environment. In addition to a programming language, an associated program preparation facility (such as a compiler) also needed to be defined. It was decided that the use of a syntactical model which could be processed by the System/360 Macro Assembler would obviate the need for writing a compiler. Machine language instructions were created to interpret the object code, the output of the assembler. In effect, this was a high level instruction set, or programming language, for a hypothetical or virtual real-time sensor-based computer and LABS/7 provided a language interpreter implemented in System/7 machine language which mimicked, or, in today's language, emulated, the virtual machine. Another element of LABS/7 was a package of general purpose utility programs; today these would probably be called apps. Finally, a System/360 software package known as the Host Communication Facility (HCF) was developed to provide bi-directional data transfer between a host System/360 and multiple satellite System/7s. All together, LABS/7 provided an environment where 1) an application program could be written and compiled on a host System/360, downloaded from the host to a System/7 in a scientist's laboratory, 3) invoked to control a laboratory apparatus/instrument/machine, 4) acquire measurement results from the instrument, 5) send the data to the host computer, 6) start a program on the host to analyze the data and 7) return and display the results of the analysis for the scientist in the laboratory. Of course, the System/7 could be operated in a completely standalone, i.e. non-hierarchical, environment.

## LABS/7 becomes an IUP

As usage of LABS/7 increased in the SJRL, other IBM organizations, who were trying to implement applications on the System/7, became aware of LABS/7, tried it and found that it was extremely useful. Among these were the General Product Division on the IBM plant site in San Jose, SJRL's sister research labs in Yorktown, NY and Zürich, Switzerland, the IBM Federal Systems Division in Oswego, NY and the IBM Office Products Division in Lexington, KY. Word about LABS/7 then spread to “the field”, those who were charged with marketing the System/7 to IBM customers. A cooperative effort was mounted involving the program authors at SJRL and a team of IBM System Engineers, led by Fred Schneider, to make the software available to customers as an Installed User Program or IUP. An IUP can be thought of as an “as is” software package available from IBM without the support and warranties associated with formal product software. The LABS/7 IUP was relatively successful but came rather late in the product lifetime of the System/7.

## EDX & EDL

In 1976, IBM announced the IBM Series/1, the successor to the System/7. The Series/1 was the last in the line of special purpose sensor-based computers produced by IBM. The Laboratory Automation Group in SJRL acquired an early model of the Series/1 and by announcement time had ported LABS/7 to the Series/1. LABS/7 became EDX/1, the Event Driven Executive which, of course, included an embedded interpreter for the programming language which was appropriately named EDL (Event Driven Language). At the same time, IBM's field support team was expanded and a significant effort was underway to make the software available to IBM customers as a Field Developed Program or FDP. An FDP was a step up in the IBM software hierarchy but still had the caveat of an “as is” package with minimal formal IBM support. With the development of a powerful terminal control product known as the Communications Facility (EDX/CF), the sales of EDX was especially focused on a distributed computing environment whereby the Series/1 was used primarily as a terminal controller, in many cases attached to a System/370 host computer. EDX was a very efficient system able to support a large number of work stations. As the installed base of EDX grew, the product support for EDX was transferred to the IBM General Systems Division, the Series/1 product division, in Boca Raton, FL and EDX became a fully supported IBM program product. EDX had its origin as a tool for Laboratory Automation and in 1981, IBM announced a Series/1 & EDX-based application software package, EDX Laboratory Automation Software which was developed at the SJRL, as an IUP, product number 5798-RHB.

## Impact of EDX

EDX and EDL was well accepted in the marketplace. Other successful IBM software products, application programs, were developed with EDL to run under EDX, e.g. the Communication Facility and the Multiple Terminal Monitor. The U.S. Marine Corps is recognized for its extensive usage of the Series/1 and EDX. In 1984, EDX & EDL were ported to the IBM PC in a product known as Hummingbird. The IBM plant site in San Jose, California implemented a completely automated warehouse facility and inventory system for production parts complete with robot fork lifts all under the control of one Series/1 computer running EDX. This system was in operation until late in 1999 and is just one example of major applications within IBM. Other companies developed EDX-based applications, e.g. utility packages developed by Legler, and as recently as September 2014, a program was announced by business partners IBM & Datatrend which allows running applications to be ported from a Series/1 to UNIX based systems.
In 1980, Martin and Raimondi received an IBM Corporate Award for their work in developing EDX and EDL.