Roger Holmes wrote:
There is another class of simulation I have been
considering
lately. For machines like my ICT 1301, which I would guess
has about ten thousand gates, it would be possible to write a
program which does a gate level simulation on a fast machine
like my 2GHz Mac. You could even simulate the signals in
the machine, hook up a simulated oscilloscope and look at
the waveforms. The slow rise times and overshooting might
not be possible to show of course, but maybe even this could
be added. You could even simulate logic faults for educational
purposes and show how they used to be tracked down via the
console, the logic diagrams and an oscilloscope. Now that
really would be a historical/educational tool. Or am I just dreaming?
Certainly I don't see why you couldn't implement this at the gate level; I
suppose it's just a massive data structure of signal lines and logic
functions. Maybe for it to work accurately you have to simulate the
propagation delays of the various logic gates - but assuming it's all straight
digital logic I would have thought it would work.
Could I OCR the old line printer listings of the
interconnection lists
and use them to build the simulator?
Gah. Possibly, depending on quality. At least something that old should be in
a pretty regular typeface, so if the OCR procedures get any of it right then
they stand a good chance of doing the whole lot. It'll still be a pain to
proof-read though!
Simulating the audio output (which is pulsed on most
conditional
branch instructions) is another issue I am thinking about. Modern
computers can obviously make the sounds, but how do I convert
from a live stream of speaker reversals into what a modern
machine needs?
Well I suppose on a lot of Unix systems it's just a case of opening /dev/audio
and spitting data down the line - maybe the mac's no different?
cheers
Jules