[Info-vax] RECALL command

Brian Schenkenberger mail at SendSpamHere.ORG
Wed Jul 12 12:06:21 EDT 2023


On 2023-07-05 19:11:48 +0000, Arne Vajhj said:

> On 7/4/2023 11:14 AM, Brian Schenkenberger wrote:
>> On 2023-06-22 17:35:28 +0000, Chris Townley said:
>>> Just being playing with a routine to squirrel away the command buffer 
>>> on logout, which be quite useful after a system maintenance session.
>>> 
>>> However when run in a command procedure, it just doesn't produce anything.
> 
>> Set the procedure level to 0 in your command procedure before executing 
>> the RECALL commands.
>> 
>> File PROCLVL0.MAR is:
>> 
>>     .TITLE    PROCLVL0
>>     .IDENT    "V01.0 %2023.185"
>> 
>>     $SSDEF
>> 
>>     .ENTRY    GO,0
>>     $CMEXEC_S    routin    = PROCLVL0
>>     RET
>> 
>>     .ENTRY    PROCLVL0,0
>> 
>>     MOVAB    @#CTL$AG_CLIDATA,R0        ; get the base of CLI data region
>>     MOVL    PPD$L_PRC(R0),R0        ; add address of CLI own storage
>>     CLRW    PRC_W_PROCLEVEL(R0)    ; zap current DCL procedure level
>>     MOVL    #SS$_NORMAL,R0
>>     RET
>> 
>>     .END    GO
> 
> Brilliant.
> 
> But note that privs are required.
> 
> Arne

True!  Most of DCL storage is URSW.  Hopping to EXEC mode allows one to 
change things that DCL would rather not have changed; at least, by the 
user. ;)

This little snippet of code is rather inocuous; it can be installed 
with EXEC privilege. Run from the command line, it doesn't do anything 
because PROCLEVEL _is_ zero. However, when run in a command procedure, 
exiting to the command line will logout the process. Thus, my 
LOGOUT/FULL was really not necessary unless one wishes to see the 
accounting report that it issues.





More information about the Info-vax mailing list