[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Bob Supnik's simulator alive and well



Hi folks,

I thought you might find the attached e-mail interesting (or amusing). I
have since removed the offending paragraph as the more recent versions of 
Supnik's simulator include the fix. 

Anyway, in researching the problem, I stumbled across Supnik's new web site
and was delighted to discover that work on the simulator continues. There is
even a DEC-10 emulation and a copy of TOPS-10 that you can download and run.
If you're interested, check it out at this URL...

http://simh.trailing-edge.com/

Hope you all have a nice holiday...

-Bob

----- Forwarded message from worley@theworld.com -----
    Date: Tue, 17 Dec 2002 23:48:41 -0500
    From: worley@theworld.com
 Subject: An error in the web page "Download RSTS/E"
      To: n3lym@amsat.org

I was looking at
http://www.eecis.udel.edu/~mader/delta/downloadrsts.html, which is
titled "Download RSTS/E".  On it is the following paragraph:

    It turns out there is an obscure error on X86 and Pentium that
    causes 1u<<32 to return 1. This breaks the FPP emulation. Here's
    the fix from Bob Supnik. Use this if you are going to try the
    simulator on Linux or FreeBSD.

It turns out that this passage is incorrect because ANSI C leaves
1u<<32 *undefined* (if int has 32 bits).  The relevant passage of the
ANSI C standard is:

    3.3.7  Bitwise shift operators

    [...]  If the value of the right operand is negative or is greater
    than or equal to the width in bits of the [...] left operand, the
    behavior is undefined.  [...]

If the FPU simulator depends on the result of 1u<<32, then it is in
error.

(Presumably this rule is to make it easier to support C if the shift
instruction of the processor reduces the shift count modulo the word
size before applying it.  And apparently the x86 architecture does
so.)

I don't want to be a curmudgeon, but would you be kind enough to
revise the page?

Thanks,

Dale

----- End forwarded message -----