IBM 1620 Project Journal
After a good, interactive email discussion of initial implementation issues and
some prototyping, the simulator team has settled on the following points:
Chap Harrison has been busy working on the core simulator with technical support
from several people on the team. He has the basic instruction set implemented
and it passes the IBM CU01 instruction diagnostic! Still to be added, is the
divide instruction, indirect addressing, floating point and I/O simulations.
The latest version of the simulator (with a text-based UI) is available via ftp
from Chap. Contact Chap for more
The implementation is in Java and uses separate threads for the core simulator,
console display, console typewriter, and each I/O device.
The granularity of simulation is at what the 1620 defines as the "Cycle" level.
That is, the 'Single Cycle' button causes the expected behavior. This level of
simulation is higher than gate-level and lower than instruction-level.
The simulator thread follows the machine specifications and it maintains a 100%
consistent state of what should be displayed on the console lights at any given
For the communication between the simulator and display threads there is
a display state structure. The display thread requests that the structure be
updated and the core simulator updates it with current state.
The display thread does the best it can to display a realistic picture of the
current console when the machine is running. When the simulator is stopped, the
console display is perfect.
The console display will be in a single window with zoom and pan capability.
This will be done using scalable graphic elements. The overriding consideration
is that the simulator passes the "Parody Check".
Richard Jowsey has been working hard on the Graphic UI. For a sneak peak at
how it's shaping up have a look
For fun, Adams Douglas did a rough timing comparison between the 1620 and
Mathematica on a 300MHz Pentium II computing powers of 2. If it is any
indication then we may be ok with running the 1620 simulator in real time (or
faster with appropriate speed throttling).