[Info-vax] BASIC and AST routines

Arne Vajhøj arne at vajhoej.dk
Wed Nov 24 14:00:45 EST 2021


On 11/24/2021 1:26 PM, Simon Clubley wrote:
> On 2021-11-24, Dave Froble <davef at tsoft-inc.com> wrote:
>> On 11/24/2021 8:31 AM, Simon Clubley wrote:
>>>
>>> Fine. So why are these architecture-specific registers passed to what
>>> is essentially a callback function in a normal application program
>>> and why do those registers need to be visible from that same callback
>>> function ?
>>
>> Steve Hoffman answered that question way back up-thread.  I'll leave it as an
>> exercise for you to go back and take a look.
> 
> Thank you David, I have found that posting.
> 
> So basically, I was right that the VMS abstraction layers are horribly
> broken when it comes to ASTs even though the reason is a bit different
> (and worse) than what I was expecting.
> 
> In other operating systems that have this functionality, this is either
> handled by the compiler generating the appropriate code sequences after
> the function is tagged by the programmer or is handled directly by the
> underlying OS ABI _before_ calling the routine.
> 
> In either case, the saved registers are private to the OS ABI or compiler
> and are _not_ visible to the user code.
> 
> But to directly push values into the call frame for the routine (and hence
> directly visible to the routine) so they can be restored afterwards is just
> horrible, horrible, horrible. I have never seen another OS handle this
> problem in such an ugly way.

Now I followed Robert Gezeltzer's advice and it is worth noting that
this is really a VAX thing. The newer platforms do not use the values -
they are just there for VAX compatibility.

Arne




More information about the Info-vax mailing list