return to main page

IBM 1401 to PC Interface Adapter

Bob Feretich (bob.feretich@rafresearch.com)
June 24, 2005

Executive Summary

Problem statement:

The IBM 1401 that is being restored is beginning to show some signs of life. Soon we will want to start loading diagnostic and demonstration software on the system to support the bring-up effort and begin to exercise/demonstrate the components of the system. Unfortunately, the chasm between the 1401's bring-up/operating environment and today's computing environment has grown so large that we currently have no effective way of linking the 1401 to its web based cross-development environment. This lack accessibility will result in increasingly difficult progress and growing frustration for both the 1401 restoration team (who will tire very quickly of punching program binaries into cards) and museum management (who will want to open the 1401 exhibit to the public as a living example of vintage computer technology).

Proposed solution:

Construct an adapter that interfaces a standard PC USB port to the tape drive interface of the 1401. The 1401 will be configured with a card reader/punch, line printer and multiple tape drives. This adapter would appear to the 1401 as one of its tape drives. The adapter will be able to fully emulate the functional behavior of a tape drive:

  • Data records could be read from files on the PC.

  • Data records could be written to files on the PC.

  • Most importantly the 1401 could be booted from program binaries files on the PC! The PC could thus act as the bridge between the 1401 and its web based software cross development environment while permitting the full traditional configuration and operation of the 1401.

The accessibility provided by the PC Interface Adapter would also provide benefits beyond completion of the restoration project. It could be used to support a live demonstration environment for the 1401 exhibit and be leveraged to support the restoration of other vintage computer systems.

The cost of the adapter development is expected to be <$1000 (we may be able to get all the materials donated). Potentially, corporate sponsorship of this effort could make it cash flow positive.

Background

The IBM 1401 Central Processing Unit that we are restoring can support a 1402 Card Reader/Punch, a 1403 Line Printer, and up to 6 magnetic tape drives. (We have about six IBM 529 tape drives in various states of disrepair.) Currently, the restoration team is using the 1401's switch console to manually enter simple diagnostic programs. As system bring-up progresses, these diagnostic programs will need to become larger and more complex. The switch console will no longer be a practical means of loading these programs.

The 1401 is designed to perform its "Initial Program Load" (bootstrap load) from either the card reader or a tape drive. Use of the card reader as the primary bootstrap unit requires that program binaries from the web based 1401 software cross development environment, be punched into computer cards in column binary format. To take advantage of this capability, we would need easy reliable access to modern computer attached a card punch unit. Use of a magnetic tape drive as the primary bootstrap unit requires that the program binaries be recorded on IBM compatible 7-track tape reels at about 200 bpi density. To take advantage of this capability, we would need easy reliable access to modern computer attached to such a tape drive. Currently access to such equipment attached to a modern computer is neither easy nor reliable.

Assessment of Options

Relying upon the use of punched cards or magnetic tapes for the 1401 system bring-up is not viable for the reasons presented above. We must discover some other way of bridging the software cross development environment to the 1401. The 1401's supported bootstrap mechanisms give us a place to start.

We could build something that would interface to the card reader/punch interface. Attaching to this interface presents significant problems.

  • Architecturally the 1401 supports only one card reader/punch. We would have to deal with the problem of attachment to this interface interfering with the 1401's use of its 1402 reader/punch unit. The strong visual impact of making the 1402 part of a live system demonstration makes non-interference a priority.

  • The 1402 process each computer card along its widest dimension, presenting the 80 card columns as separate signals on the interface. This makes the interface that we need to intercept very wide.

Use of the magnetic tape drive interface avoids these problems. The 1401 tape drive interface supports up to six drives on the interface, so the adapter we build can coexist on the interface with up to 5 real tape drives. And, the data path on this interface is only 7 bits wide. Given other things being equal, interfacing to the magnetic tape interface is the clear preference.

Now we must consider how to attach the adapter to a PC. Previously, it would have been natural to use a PC's parallel port to connect to this type of adapter. I am recommending

  • Many notebook computers no longer have parallel ports.

  • The path between the tape drive and the 1401 is unbuffered. The 1401 expects a time sensitive stream of data coming from the tapes read head. I believe meeting these timing constraints through a parallel port would require a real time environment (more real time than Microsoft Windows can support).

  • Modern USB peripheral chips have embedded have a microcontroller, 8k-16k of RAM buffer, and several parallel (GPIO) ports. This would permit Windows to buffer an entire tape block in the adapter. Then, the time sensitive block transfer operation could be performed locally from the adapter to the 1401 tape interface.

We also examined how to physically package the adapter. Two options were apparent. One was to build it off a salvaged tape drive connector block. The other was to build it into/onto the tape drive Interface Terminator.

The interface cables on the 1401 are big and heavy. The tape data cable is more than an inch in diameter containing about 50 shielded conductors. The unique cable connectors are about 4"Wx4"Hx3"D and use a levered cam to mate the contacts. The tape drives are connected to the 1401 in a daisy chain configuration so each tape drive contains an upstream and a downstream connector. Some of the tape drives we have are dual ported, which means they have two sets of these connectors. The data interface is terminated by a similar connector that has resistor boards and capacitor boards housed within its shell.

We could salvage the connector block from the most seriously impaired tape drive without affecting the drives outward appearance and use it to interface the PC Interface Adapter to the 1401. This would grant significant freedom in designing the other aspects of the adapter. We could design it to be inconspicuous to observers. Or, we could highlight it as part of the exhibit, showing the contrast between a 1960's era mainframe computer that ran the data center of major corporations and the microcontroller in the USB peripheral chip, which has similar memory resources and datapath characteristics, but is embedded and not even noticed by people who use them in devices like Apple Ipods.

The other alternative we examined was housing the USB controller in a tape drive Interface Terminator. I am pessimistic about this option. The shell of the terminator has only two separate 1 cubic inch spaces available inside it. It would be difficult to fit the adapter circuitry within these spaces without resorting to very high density assembly technology. This technology would be too expensive for a one-of-a-kind adapter like this one. I also suspect that since the terminator has a solid metal shell, with zero air flow, inserting the adapter circuitry, power regulator, and emitter follower cable driver transistors in the shell along with the terminator resistor boards would result in overheating. The terminator can not be used without its shell, because the contact cam mechanism is part of the shell.

I propose that we construct a PC Interface Adapter upon the connector block of an IBM 529 magnetic tape drive. This adapter would be cabled into the IBM 1401's tape drive string and used as a bring-up bootstrap vehicle and to bridge the 1401 system to the modern computing environment.

Deliverables for this project are:

  1. The PC Interface Adapter Hardware

  2. A Windows XP device driver for the adapter.

  3. Modifications to the 1401 software cross development environment to target this path.

PC Interface Adapter hardware

USB peripheral chips with embedded microcontroller and GPIO ports are available from multiple sources. Some of these sources have development facilities here in Silicon Valley. Obtaining the peripheral chip is not expected to be a major issue. The more serious issue is getting access to a development environment for the firmware that is needed for the chip's microcontroller. A reasonable plan would be to select a short list of chips that could do the job, and approach the manufacturer's for support in developing the firmware. There are several possibilities from loaning us the equipment to formally participating in the 1401 restoration project (perhaps in exchange for some sponsorship signage in the exhibit).

Detailed development schedules can not be constructed until the USB peripheral chip is selected and the development environment is understood. However, the job being performed by the USB microcontroller is simple relative to the tasks that these microcontrollers normally perform. Given the museum's volunteer work environment, once the development environment is secured, construction of the adapter shouldn't take more than two months. I expect that this task will be the critical path in the overall adapter development project.

Windows XP device driver

Normally the manufacturers of peripheral chips support their hardware with free downloadable Windows device drivers as part of their "reference kit" for the chip. We can make this a requirement of our hardware chip selection. Some modification to the device driver is likely to be necessary. The problem here is that we need to find someone on the restoration project who is experienced in device drivers and who has access to a Window device driver development environment (primarily a Windows C++ compiler and debug tools).

Cross development environment modifications

The cross development environment would need to be modified to provide an interface to and a user interface to above driver and adapter functionality. A separate proposal for this subproject should be written. The features and complexity of this software depends on how the IBM 1401 system will be demonstrated and made accessible to the public.

It should be clear from the above arguments that the construction of a PC Interface Adapter for the IBM 1401 system would significantly accelerate the 1401 debug and bring-up process. Months of increasingly frustrating effort would be saved.

In addition to this acceleration, the efficient bridge from the 1401 to the modern computing environment that this adapter creates can significantly effect the strategy related to how the IBM 1401 exhibit could interact with the public.

The IBM 1401 and its CISC instruction set is a great vehicle to teach a hands-on course on how computer hardware functions. While I was in high school, I drove from the Chicago suburbs to the Illinois Institute of Technology (near downtown) to take special Saturday courses on computers and programming that were targeted at interested high school students (future geeks). Being allowed to touch, learn about, and operate a mainframe class computer made an indelible impression that impacted my career path. Even though the common PC is orders of magnitude more powerful that the 1401 there is something impressive about being in a raised floor area with the noise, the air flow, and the massiveness of the mainframe's hardware.

  • The programming model of the 1401 is simple by today's standards and could easily be taught.

    • Students could develop simple assembly language programs that could interact visibly with equipment in the room. In a single assembly language instruction the 1401 can...

      • Read a console sense switch

      • Read in or punch a computer card

    • - Print a line on the printer
    • - Read, Write, or Move magnetic tapes (a single instruction can rewind a magnetic tape and have the glass panel on the drive open to permit removal of the tape)
    • - Add or subtract numbers of arbitrary length
  • Since the 1401 performs all of its operations using decimal numbers, it isn't necessary to introduce concepts like binary arithmetic to understand how to program the machine.

A high school level computer architecture course based on the 1401 could be composed of classroom and laboratory sessions. The classroom session could be lecture, program development and debug using the 1401 emulator PC software. The lab sessions could cover hands-on computer operations and demonstration of the programs they wrote.

The existence of the PC Interface Adapter would provide the link that would make this type of transition from classroom to laboratory possible.

Other Benefits

  • The technology and software developed could be leveraged for use on other restoration projects.

  • The adapter project creates an opportunity for corporate involvement with the museum. (The USB chip manufacturer's potential participation in the project.)

The accessibility provided by the PC Interface Adapter would significantly accelerate the IBM 1401 restoration project. It would accomplish that by providing an efficient bridge to download diagnostic software to the 1401.

The adapter provides benefits beyond completion of the restoration project. It could be used to support a live demonstration environment for the 1401 exhibit and be leveraged to support the restoration of other vintage computer systems.

The cost of the adapter development is expected to be <$1000 (we may be able to get all the materials donated). Potentially, corporate sponsorship of this effort could make it cash flow positive.