[Info-vax] BASIC and AST routines

VAXman- at SendSpamHere.ORG VAXman- at SendSpamHere.ORG
Tue Nov 23 20:32:04 EST 2021


In article <619d417a$0$699$14726298 at news.sunsite.dk>, =?UTF-8?Q?Arne_Vajh=c3=b8j?= <arne at vajhoej.dk> writes:
>On 11/23/2021 2:06 PM, Simon Clubley wrote:
>> On 2021-11-23, Arne Vajhøj <arne at vajhoej.dk> wrote:
>>> On 11/23/2021 1:37 PM, Simon Clubley wrote:
>>>> On 2021-11-22, VAXman-  @SendSpamHere.ORG <VAXman- at SendSpamHere.ORG> wrote:
>>>>> In article <sngp1p$aud$2 at dont-email.me>, Simon Clubley <clubley at remove_me.eisner.decus.org-Earth.UFP> writes:
>>>>>> On 2021-11-19, Dave Froble <davef at tsoft-inc.com> wrote:
>>>>>>> I'm going to confess to curiosity.  Why are R0, R1, SP, and PC passed to an AST
>>>>>>> routine?
>>>>>>
>>>>>> Because it's another example of VMS functionality being implemented
>>>>>> at way too low an abstraction level because of the need to support
>>>>>> Macro-32 as an application programming language.
>>>>>
>>>>> BULLSHIT!  If you believe that's true, please provide an illustrating example.
>>>>> I'll be waiting...
>>>>
>>>> That VMS API passes in a stack pointer, a PC and what were originally
>>>> two architecture-specific registers.
>>>>
>>>> That kind of information simply would not be exposed at application
>>>> code level in a modern version of that API as it would (rightly) be
>>>> treated as an implementation specific detail that would be handled
>>>> by the compiler.
>>>>
>>>> That information is only needed because the lowest supported application
>>>> language on VMS is Macro-32 and not C (or another comparable low-level
>>>> language).
>>>
>>> What does the Macro-32 application developers need those
>>> arguments for that the C application developers does not need
>>> them for?
>> 
>> You miss the point Arne.
>> 
>> If C was the lowest level supported language then the compiler would
>> simply have a pragma or function attribute that marked it as an AST
>> routine so that the compiler would generate the required code (or not
>> generate troublesome code sequences) as required.
>> 
>> This happens all the time with C language interrupt handlers in some
>> embedded environments for example.
>> 
>> The SP/PC/R0/R1 parameters are implementation details that the person
>> writing the AST routine should never see or have to deal with.
>
>????
>
>There are two questions here.
>
>1) How to deal with side effects from those arguments.
>
>Basic apparently has a problem. It could be fixed like you describe
>for C. John Reagan already confirmed that.

I don't see why BASIC should have any issue either.  



>Neither C nor Macro-32 has the need for such a fix. They just
>don't access the argument and they are good.

Correct.  Use them on a need to know basis.


>2) Why are those arguments there?
>
>It is not obvious to me why Macro-32 code would want to use them
>any more than C or Basic code.

Precisely!  However, according to our manure slinger in chief, ASTs are 
delivered with those extra parameters' values because Macro-32 would be
spanking the monkey in some dark corner without them.

-- 
VAXman- A Bored Certified VMS Kernel Mode Hacker    VAXman(at)TMESIS(dot)ORG

I speak to machines with the voice of humanity.



More information about the Info-vax mailing list