.TITLE VOL .IDENT /22FEB7/ ; ; VOL MOUNTED VOLUMES TASK ; ; AUTHOR: M. KELLOGG ; SYSTEM: RSX-11D ; DATE: 22-FEB-77 ; ; THIS TASK DISPLAYS MOUNTED VOLUMES AT THE USER TERMINAL. ONE LINE IS ; DISPLAYED FOR EACH MOUNTABLE DEVICE, IN THE FOLLOWING FORMAT: ; ; DDU:LABEL ; ; DD DEVICE NAME ; U UNIT NUMBER ; LABEL VOLUME LABEL, OR ONE OF THE FOLLOWING: ; : VOLUME LABEL IS NULL ; BLANK: NO VOLUME MOUNTED ; **FOR**: VOLUME MOUNTED FOREIGN ; **MTA**: LABELED MAGTAPE MOUNTED ; ; IF A DISMOUNT IS PENDING, THIS IS FOLLOWED BY ; '*MARKED FOR DISMOUNT'. ; .MCALL F11DF$,DIR$,QIOW$,EXIT$S,GMCR$C R$$11D=0 F11DF$ ; LINOUT: QIOW$ IO.WVB,1,1,,,, BUFF: .ASCII /DDU:XXXXXXXXXXXX/ .ASCII /*MARKED FOR DISMOUNT/ BUFEXT: FOR: .ASCII /**FOR** / MTA: .ASCII /**MTA** / NULL: .ASCII / / .EVEN VOL: GMCR$C ;SET UP MCR REPROMPT MOV .PUDBA,R1 ;INITIALIZE PUD SEARCH ; ; PROCESS A PUD ENTRY ; DOENT: MOV #BUFF,R5 ;POINT TO START OF BUFFER CMP U.RP(R1),R1 ;IS ENTRY REDIRECTED? BNE EDONE ;YES - SKIP IT BIT #UC.MNT,U.C1(R1) ;IS DEVICE MOUNTABLE? BEQ EDONE ;NO - SKIP IT MOVB U.DN(R1),(R5)+ ;PUT DEV NAME IN BUFFER MOVB U.DN+1(R1),(R5)+ MOVB U.UN(R1),R2 ;GET UNIT NUMBER ADD #60,R2 ;CONVERT TO ASCII MOVB R2,(R5)+ ;PUT IN BUFFER MOVB #':,(R5)+ ;PUT COLON IN BUFFER BIT #CH.OFF,U.CH(R1) ;CHECK FOR MOUNTED BNE 50$ ;NO MOV #FOR,R2 ;ASSUME FOREIGN BIT #CH.FOR,U.CH(R1) ;CHECK FOR FOREIGN BNE 20$ ;YES MOV #MTA,R2 ;ASSUME TAPE BIT #CH.LAB,U.CH(R1) ;CHECK FOR TAPE BNE 20$ ;YES MOV U.VA(R1),R2 ;POINT TO VCB ADD #V.LABL,R2 ;POINT TO VOLUME LABEL TSTB (R2) ;NULL LABEL? BNE 20$ ;NO MOV #NULL,R2 ;POINT TO 'NULL' STRING 20$: MOV #12.,R3 ;DO 12 CHARS 30$: MOVB (R2)+,(R5)+ ;MOVE A LABEL CHAR BNE 40$ ;NOT A NULL MOVB #40,-1(R5) ;NULL TO BLANK 40$: SOB R3,30$ BIT #CH.UNL,U.CH(R1) ;DISMOUNT PENDING? BEQ 50$ ;NO MOV #BUFEXT,R5 ;EXTEND BUFFER TO INCLUDE ;'*MARKED FOR DISMOUNT' 50$: SUB #BUFF,R5 ;GET CHAR COUNT MOV R5,LINOUT+Q.IOPL+2 DIR$ #LINOUT ;OUTPUT LINE EDONE: ADD #U.SZ,R1 ;GO TO NEXT PUD ENTRY CMP R1,.PUDEA ;DONE ALL YET? BLO DOENT ;NO EXIT$S .END VOL