.TITLE $USRSB .IDENT /X01.00/ ;**- ; Module name: $USRSB ; ; Version X01.00 Last edit: 17-NOV-80 14:34 ; Status: Development/Debugging ; ; Revision history: ; ; Version X01.00 18-NOV-80 13:53 - 17-NOV-80 14:34 ; Created by: R.W. Tucker, Jr. ; ;**- ; ; OAK RIDGE NATIONAL LAB, I&C DIVISION ; ; USER SUBROUTINE FOR MCR "BYE" COMMAND TO SUPPORT VIRTUAL ; DISKS. THIS ROUTINE SETS THE TERMINAL PRIVILEGED AND SPAWNS THE ; COMMAND "DVD /ALL/NM" TO RELEASE ALL VIRTUAL DISKS ON LOGOUT. ; THE TERMINAL IS THEN SET NON-PRIVILEGED. ; ; INPUTS: NONE ; ; OUTPUTS: R0 AND R3 ARE OBLITERATED. ; .LIST MEB .GLOBL $USRSB .MCALL SPWN$,STSE$,DIR$ EFN1 = 1 ;EVENT FLAG FOR SPAWN DIRECTIVE ; ; SET UP DPB'S FOR SPAWN AND WAIT DIRECTIVES ; SPWDPB: SPWN$ MCR...,,,,,EFN1,,,DVDCMD,DVDLEN,, STSDPB: STSE$ EFN1 DVDCMD: .ASCIZ %DVD /ALL/NM%<33> ;DVD COMMAND LINE DVDLEN = . - DVDCMD -1 ;DVD COMMAND LENGTH .EVEN SPWERR: .ASCIZ /BYE -- SPAWN FAILURE ON DVD/<15> .EVEN DVDTSK: .RAD50 /...DVD/ $USRSB: MOV #DVDTSK,R3 ;PUT ADDR OF DVD TASK NAME IN R3 CALL $SRSTD ;SEARCH SYSTEM TASK DIRECTORY BCS 40$ ;IF NOT INSTALLED, FORGET IT MOV $TKTCB,R0 ;GET TASK TCB ADDR MOV T.UCB(R0),R0 ;GET TI UCB ADDR 5$: MOV U.RED(R0),R0 ;GET REDIRECT POINTER CMP R0,U.RED(R0) ;END OF REDIRECTS? BNE 5$ ;NO, CONTINUE LINKING BIS #U2.PRV,U.CW2(R0) ;SET TERMINAL PRIVILEGED DIR$ #SPWDPB ;ISSUE DVD COMMAND BCS 20$ ;IF CS, DIRECTIVE ERROR DIR$ #STSDPB ;WAIT FOR DVD TO FINISH BR 40$ ;THIS WAY OUT, PLEASE 20$: CMP #IE.INS,$DSW ;IS ERROR BECAUSE DVD ISN'T INSTALLED? BEQ 40$ ;IF SO, DON'T WORRY ABOUT IT MOV #SPWERR,R0 ;SET ERROR MESSAGE ADDR IN R0 CALL BYEERR ;OUTPUT ERROR MESSAGE 40$: RETURN ;NOTHING MORE TO DO .END