Hello everyone, We've got a problem with the VAX simulators which has come up several times in the past and is threatening to completely break them in the future.
The original implementation of the VAX simulator code was done with int32 variables throughout and assumed VAX like consistent behavior on integer overflow operations. As it turns out, the C language explicitly states that behavior of signed integers when overflow occurs is undefined. "undefined" allows the compiler to behave in arbitrary ways when this happens. Currently, the default compiler on OS X (clang or LLVM) produces unexpected results when any optimization level is specified. In the future it may also produce unexpected results for unoptimized code as well since technically any behavior under those circumstances could happen. I've got a reworked version of the VAX cpu simulator code which uses uint32 throughout and as such does not encounter any potential for undefined results. The scope of these changes affect many different places in the simulator so some rigorous testing will be required before I'm comfortable merging these changes into the master branch. Merely booting VMS successfully is not a sufficient test. DEC had a tool called AXE which was used to verify that new VAX models were consistent with the range of expected behaviors for the whole complex instruction set. It would be fantastic if we could get access to, or if someone with access could work with me to validate the changed simulator. Meanwhile, the existing VAX core instruction diagnostic EVKAA has been helpful identifying some detailed problems with the changed simulator. There is diagnostic documentation for several VAX processors which describes how to start and run EVKAA which varies by model due to different console media. The diagnostic instructions specifically describe how to handle diagnostic failures and these instructions direct the user to consult the EVKAA Listing for details about the specific test that may be failing. That suggests that the Listing would be readily available somewhere, maybe even packaged with the diagnostics on systems with sufficiently large diagnostic media, or maybe on micro fiche??? Does anyone have access to said listing? Additionally, I've seen EVKAA version 7.2 and 8.0. Bob suggested that the last version was 10.3. If someone has later versions of EVKAA.exe they would be appreciated (along with a Listing if it is available). Thanks. - Mark _______________________________________________ Simh mailing list Simh@trailing-edge.com http://mailman.trailing-edge.com/mailman/listinfo/simh