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


_______________________________________________
Simh mailing list
[email protected]
http://mailman.trailing-edge.com/mailman/listinfo/simh

Reply via email to