SimH DECtape vs. Tops-10 [was RE: Writing emulators [Was: Re: VCF PNW 2018: Pictures!]]
paulkoning at comcast.net
Mon Feb 26 14:19:29 CST 2018
> On Feb 26, 2018, at 12:06 PM, Doug Ingraham via cctalk <cctalk at classiccmp.org> wrote:
> The purpose of an emulator is to accurately pretend to be the original
> hardware. It doesn't matter that the original OS runs on a particular
> emulator. If a program can be written that runs on the original hardware
> but fails on the emulator then there is a flaw in that emulator.
That's true. But it is unfortunately also true that creating a bug for bug accurate model of an existing machine is extremely hard. Building an OS-compatible version is not nearly as hard, but still hard enough. Passing diagnostics is yet another hurdle; in some cases that isn't feasible without an entirely different design. For example, in the CDC 6600 there is the "exchange jump" test, which at some point depends on the execution time of a divide instruction and the timing of exchange instructions. It is very hard for an emulator to mimic that (and an utter waste of effort for every other bit of software available for that machine).
Another example is the work pdp2011 had to do in order to make RSTS boot on that FPGA based PDP-11 emulation, because RSTS was doing some CPU-specific hackery to test for an obscure CPU (or FPU?) bug that had been corrected in some ECO that it wanted to require. The only way to figure out how to do that is to reverse engineer that particular bit of code, which isn't normally available in source form.
More information about the cctalk