[Simh] Simulator accuracy (was Re: New TC11)

Bob Supnik bob at supnik.org
Tue Dec 6 20:29:44 EST 2016


Simulators should never fix "bugs". The question at issue is how deeply 
to mimic them, in order to assure maximum compatibility with software.

Over the years, I've concluded that straying too far from the hardware 
is dangerous. I'm not suggesting that every register-transfer-level 
interaction has to be there. It's okay to write

IR = M[PC];

instead of

MA = PC;
ReadM ();
IR = MB;

But software often depends on "bugs". The routines that identify the 
models of a PDP8 and a PDP11 are very dependent on 'bugs' (or 
incompatibilities, if you prefer) between models. (And some of those 
incompatibilities are indeed bugs, like the ASH/ASHC problem in the 
J11.) The IBM 709X's double precision floating point divide is clearly 
rather inaccurate, but the simulator has to reproduce the hardware 
algorithm bit for bit, rather than perform a modern divide.

Fixing, of if you prefer, improving, the way the hardware actually 
worked is hazardous. In the original H316/H516 teletype code, I included 
lots of rational checks to prevent switching the half-duplex interface 
between input and output in "wrong" places. The actual logic had none of 
those checks, and the checks broke the Teletype code in the IMP simulator.

/Bob

On 12/6/2016 5:02 PM, Pontus Pihlgren wrote:
> I wonder if I made that sentence more confusing that necessary. I meant
> to write:
>
> Are you suggesting that simulators should fix "bugs"?
>
> For someone using a simulator for comparison when restoring real
> hardware it could be very confusing.
>
> /P
>



More information about the Simh mailing list