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

Bob Supnik bob at supnik.org
Tue Dec 6 13:14:47 EST 2016


I'm not sure there are any "non-quirky" standard operating conditions, 
unless they were unpredictable from system to system. For example, the 
implementation of interrupts on the RH series Massbus adapters is truly 
broken, but it has to be simulated accurately, or the workaround in the 
Unix driver fails. (I wrote a short paper on this.) The "unimplemented" 
opcodes in the H316/H516 need to be simulated correctly because some of 
them got used after programmers discovered what they did. For that 
matter, my former colleagues at Unisys got burned when it turned out 
than an "unpredictable" operation had had predictable results for 
several generations of systems, and customer code depended on that.

But perhaps erroneous error responses don't need to be accurately 
simulated. Rigel (the VAX chip used in the VAX6000-400) had a microcode 
bug that failed to fault on a specific reserved operand in INSV. Because 
every other VAX would simply crash the user's program in this case, the 
bug was waived and never fixed. It's hard to see how Paul's example 
could be exploited either.

It is not at all farfetched to use a simulator as part of a historical 
restoration. When my friend in Australia was restoring a classic 8, he 
used the PDP8 simulator to construct and prove out small diagnostics for 
tracing specific logic paths. The 1401 restoration team at the Computer 
History Museum used the simulator as an aid in their work, although any 
discrepancy in behavior must be accounted for (and fixed in the 
simulator, if verified from the schematics).

On 12/6/2016 12:00 PM, simh-request at trailing-edge.com wrote:
> Message: 1
> Date: Mon, 5 Dec 2016 12:05:39 -0500
> From: Paul Koning <paulkoning at comcast.net>
<snip>
> This makes me wonder about the fuzzy line between quirky features and sort-of-bugs.  The code snippet you mentioned sounds like it falls on the side of the "quirky", and it sounds right for the simulator to implement that.  On the other hand, there's one I recently read about a machine in which a subroutine call instruction would fail with the stack pointer equal to -0, but when the stack pointer was +0 it would produce an address error only for some of the addressing modes.  "The schematics ... confirm this; the reason is unknown" says the article.  Implementing that sort of corner case is obviously doable, but not necessarily all that useful.
>
> 	paul
>
>
>
> ------------------------------
>
> Message: 2
> Date: Tue, 6 Dec 2016 17:12:00 +0100
> From: Pontus Pihlgren <pontus at Update.UU.SE>
<snip>
> Are you suggesting that simulators should fix "bugs" for someone using a
> simulator for comparison when restoring real hardware it could be very
> confusing.
>
> (not that such comparisons should be truated anyway)
>
> /P
>


More information about the Simh mailing list