[Info-vax] VAX VMS going forward

Arne Vajhøj arne at vajhoej.dk
Tue Jul 28 13:19:53 EDT 2020


On 7/28/2020 11:42 AM, John Reagan wrote:
> On Monday, July 27, 2020 at 5:55:52 PM UTC-4, Stephen Hoffman wrote:
>> Getting a flat address space and getting rid of the mumble() and
>> mumble64() and 64-bit objects is no small development project, and
>> that's past the remediations for the forever-32-bit-app dependencies
>> that lurk.
> 
> The address space is flat.  The CPU ensures that.  There are no segment
> registers on Alpha, Itanium, and x86 (in its 64-bit hardware mode).
> 
> It is the APIs that drag you down.  Descriptors and itemlists for the most
> part.  RMS data structures have some limits as well.
> 
> And it really all goes back to the Macro-32 code with a PUSHL or PUSHAB.
> They are 32-bit operations.   And while you might think you can slip in
> a 64-bit SP value, you hit the wall the moment you see code that attempts
> to build a descriptor with a PUSHAB -4(FP) PUSHAB n(SP).

I guess there are 3 ways to go from 32 to 64 bit:

1) Let the CPU have a 32 and 64 bit mode and have 32 and 64 bit
    programs co-exist.

2) Only 64 bit mode and change all API's to use 64 bit
    addresses/pointers.

3) Only 64 bit mode and keep existing API's with 32 bit
    "compressed" addresses/pointers and add new API's with 64 bit
    addresses/pointers.

AMD chose to support 32 and 64 bit mode, so Windows,
Linux etc. use #1 on x86-64.

DEC chose not to support VAX ISA on Alpha, so #1 was not
an option.

That left #2 and #3.

DEC picked #3. It is rather unique, but given the business
situation back in the early 1990's then it probably made sense.

But the result is not pretty.

Arne





More information about the Info-vax mailing list