next up previous contents
Next: The Original ENIAC Up: A Java Simulation of Previous: Contents   Contents

Introduction

During World War II, the Moore School of Electrical Engineering at the University of Pennsylvania developed a general purpose computing machine for the US Army, the ENIAC--Electronic Numerical Integrator and Computer. Its primary task was to perform ballistical calculations. The ENIAC was the first American digital computer, and interestingly it was based on the decimal system. It consisted of 40 panels, standing in the shape of a big U in a space of 170 m$^2$, contained around 18000 vacuum tubes, consumed 140-174 kW of electrical power, and weighed 30 tons [2, p. 178].

Figure 1: ENIAC, J. P. Eckert (left) , J. Mauchly (right) in the foreground (from [2]).
\includegraphics[width=\textwidth]{pictures/eniac_room.ps}

The ENIAC was no stored-program computer, so programming was very different from what we know of modern computer systems. There was no ENIAC programming language; all instructions were given to the machine by connecting wires to special ports on the panels, in a way to allow goal-directed information flow to occur, and by setting switches on the various units. Examples of how to do this are given later in this paper.

The original hardware of the ENIAC is not complete anymore, there are only some surviving panels. To celebrate the ENIAC's 50th birthday, a team around Jan Van der Spiegel of the University of Pennsylvania reconstructed the ENIAC machine in modern hardware [2], which resulted in a single silicon chip [3]. For this project, extensive research on the original hardware details was done.

In contrast to other ancient computers, such as the German Zuse Z3 [4], or the EDSAC [5][6], there has been no software simulation of the ENIAC. The aim of this paper is to document the author's writing of a Java simulation of the basic parts of the ENIAC, and to provide a user manual. With the simulator, old programs for the ENIAC can be tried out and traced back in every detail. Also, the simulator offers a comfortable environment for the development of new programs. All sources, this documentation in various formats, and the running simulator as a Java applet can be found on the web [1]. For detailed specification of what parts of the original machine are not yet implemented in this version of the simulator, see Section 7.

After a short account on the original machine, this paper continues by describing the graphical user interface of the simulator, and then goes into the Java implementation details, showing also an example of how to program the simulator (and the original) to calculate a modulo division.


next up previous contents
Next: The Original ENIAC Up: A Java Simulation of Previous: Contents   Contents
Peter Hansen 2003-09-21