[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