SHOW$DEVI_UTL   - SHOW DEVICES: UTILITY FUNCTIONS                21-AUG-1978 19:18:59   VAX-11 MACRO X0.3-11               Page   0

TABLE OF CONTENTS   



   (2)      48  DECLARATIONS

   (3)     380  SHOW$DEVI_UTL	- SHOW DEVICES: MAIN ROUTINE BODY

   (4)     498  DEVI_COPY_NEXT	- COPY DEVICE DATA BASE

   (5)     840  DEVI_FORMAT	- FORMAT AND PRINT DEVICE DATA

SHOW$DEVI_UTL   - SHOW DEVICES: UTILITY FUNCTIONS                21-AUG-1978 19:18:59   VAX-11 MACRO X0.3-11               Page   1

X001                                                                                                                             (1)



                                     0000     1 	.TITLE	SHOW$DEVI_UTL	- SHOW DEVICES: UTILITY FUNCTIONS

                                     0000     2 	.IDENT	/X001/

                                     0000     3 ;

                                     0000     4 ; COPYRIGHT (C) 1977

                                     0000     5 ; DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASSACHUSETTS 01754

                                     0000     6 ;

                                     0000     7 ; THIS SOFTWARE IS FURNISHED  UNDER A LICENSE FOR USE ONLY ON A SINGLE

                                     0000     8 ; COMPUTER  SYSTEM AND  MAY BE  COPIED ONLY WITH  THE INCLUSION OF THE

                                     0000     9 ; ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE, OR ANY OTHER COPIES THEREOF,

                                     0000    10 ; MAY NOT BE PROVIDED OR  OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON

                                     0000    11 ; EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO THESE LICENSE

                                     0000    12 ; TERMS.  TITLE TO AND  OWNERSHIP OF THE  SOFTWARE  SHALL AT ALL TIMES

                                     0000    13 ; REMAIN IN DEC.

                                     0000    14 ;

                                     0000    15 ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE

                                     0000    16 ; AND SHOULD  NOT BE CONSTRUED  AS A COMMITMENT  BY DIGITAL  EQUIPMENT

                                     0000    17 ; CORPORATION.

                                     0000    18 ;

                                     0000    19 ; DEC ASSUMES  NO  RESPONSIBILITY  FOR  THE USE OR  RELIABILITY OF ITS

                                     0000    20 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.

                                     0000    21 ;

                                     0000    22 ;

                                     0000    23 

                                     0000    24 ;++

                                     0000    25 ;  FACILITY :	DCL SHOW COMMAND

                                     0000    26 ;

                                     0000    27 ; ABSTRACT:	SHOW DEVICES  COMMAND OPTION.

                                     0000    28 ;		This module implements the DCL SHOW DEVICES command.

                                     0000    29 ;		Information retrieved from the system's device data base

                                     0000    30 ;		is printed on SYS$OUTPUT:, selected according to qualifiers

                                     0000    31 ;		specified in the command line.

                                     0000    32 ;

                                     0000    33 ;

                                     0000    34 ; ENVIRONMENT:

                                     0000    35 ;

                                     0000    36 ;	RUNS IN USER MODE BUT REQUIRES PRIVILEGE TO CHANGE MODE TO KERNEL

                                     0000    37 ;

                                     0000    38 ;

                                     0000    39 ; AUTHOR: 	B. U. WALTHER,	CREATION DATE: 17-OCT-1977

                                     0000    40 ;

                                     0000    41 ; MODIFIED BY:

                                     0000    42 ;

                                     0000    43 ;		: VERSION

                                     0000    44 ;

                                     0000    45 ;--

                                     0000    46 

SHOW$DEVI_UTL   - SHOW DEVICES: UTILITY FUNCTIONS                21-AUG-1978 19:18:59   VAX-11 MACRO X0.3-11               Page   2

X001            DECLARATIONS                                                                                                     (2)



                                     0000    48 	.SBTTL	DECLARATIONS

                                     0000    49 

                                     0000    50 ;

                                     0000    51 ; INCLUDE FILES:

                                     0000    52 ;

                                     0000    53 

                                     0000    54 	$DDBDEF				; DEVICE DATA BLOCK DEFINITIONS

                                     0000    55 	$UCBDEF				; UNIT CONTROL BLOCK DEFINITIONS

                                     0000    56 	$DEVDEF				; DEVICE CHARACTERISTICS BITS

                                     0000    57 	$VCBDEF				; VOLUME CONTROL BLOCK DEFINITIONS

                                     0000    58 	$AQBDEF				; ACP QUEUE HEADER

                                     0000    59 	$PCBDEF				; PROCESS CONTROL BLOCK

                                     0000    60 	$PRDEF				;

                                     0000    61 	$SHRDEF				; define shared messages

                                     0000    62 	$STSDEF				; define status codes

                                     0000    63 	$MVLDEF				; mounted volume list

                                     0000    64 	$RVTDEF				; relative volume list

                                     0000    65 	$MTDEF				; magtape characteristics

                                     0000    66 

                                     0000    67 ;

                                     0000    68 ; MACROS:

                                     0000    69 ;

                                     0000    70 ;+

                                     0000    71 ; The $SHR_MESSAGES macro defines facility-specific message codes

                                     0000    72 ;	which are based on the system-wide shared message codes.

                                     0000    73 ;

                                     0000    74 ;	$SHR_MESSAGES	name, code, <<msg,severity>, ... >

                                     0000    75 ;

                                     0000    76 ;	where:

                                     0000    77 ;	    "name" is the name of the facility (e.g., COPY)

                                     0000    78 ;	    "code" is the corresponding facility code (e.g., 103)

                                     0000    79 ;	    "msg" is the name of the shared message (e.g., BEGIN)

                                     0000    80 ;	    "severity" is the desired message severity (e.g., 1, 0, 2, 4)

                                     0000    81 ;

                                     0000    82 ;-

                                     0000    83 	.MACRO	$SHR_MESSAGES	NAME,CODE,MSGCODES

                                     0000    84 ;

                                     0000    85 	.IF	NDF,SHR$K_SHRDEF  ; issue $SHRDEF if not done yet

                                     0000    86 		SHR$K_SHRDEF = 1 ; define symbol to indic $SHRDEF done

                                     0000    87 		$SHRDEF		 ; define shared message codes

                                     0000    88 	.ENDC

                                     0000    89 	.IRP	MSGPAIR, <'MSGCODES>

                                     0000    90 		$SHRMSG_COD 'NAME', 'CODE', MSGPAIR

                                     0000    91 	.ENDR

                                     0000    92 	.ENDM

                                     0000    93 	.MACRO	$SHRMSG_COD NAME, CODE, MSG, SEVERITY

                                     0000    94 ;

                                     0000    95 	.IF	IDN,SEVERITY,WARNING    ; if WARNING, set 0 sev

                                     0000    96 	  'NAME'$_'MSG' = 0	        ; set 0 sev (WARNING)

                                     0000    97 	.IFF

                                     0000    98 	  .IF	IDN,SEVERITY,SUCCESS    ; if SUCCESS, set 1 sev

                                     0000    99 	    'NAME'$_'MSG' = 1	        ; set 1 sev (SUCCESS)

                                     0000   100 	  .IFF

                                     0000   101 	    .IF	IDN,SEVERITY,ERROR      ; if ERROR, set 2 sev

                                     0000   102 	      'NAME'$_'MSG' = 2	        ; set 2 sev (ERROR)

                                     0000   103 	    .IFF

                                     0000   104 	      .IF IDN,SEVERITY,INFO     ; if INFO, set 3 sev

SHOW$DEVI_UTL   - SHOW DEVICES: UTILITY FUNCTIONS                21-AUG-1978 19:18:59   VAX-11 MACRO X0.3-11               Page   3

X001            DECLARATIONS                                                                                                     (2)



                                     0000   105 	        'NAME'$_'MSG' = 3       ; set 3 sev (INFO)

                                     0000   106 	      .IFF

                                     0000   107 	        .IF IDN,SEVERITY,SEVERE ; if SEVERE, set 4 sev

                                     0000   108 	          'NAME'$_'MSG' = 4     ; set 4 sev (SEVERE)

                                     0000   109 	        .IFF

                                     0000   110 	          'NAME'$_'MSG' = 'SEVERITY ; set specified sev

                                     0000   111 	        .ENDC

                                     0000   112 	      .ENDC

                                     0000   113 	    .ENDC

                                     0000   114 	  .ENDC

                                     0000   115 	.ENDC

                                     0000   116 	 'NAME'$_'MSG' = 'NAME'$_'MSG'+SHR$_'MSG'+<'CODE'@16>

                                     0000   117 	.ENDM

                                     0000   118 

                                     0000   119 

                                     0000   120 ;

                                     0000   121 ; EXPBITS : 	EXPAND BITS

                                     0000   122 ;	This macro produces in_line code to fill a table of longwords

                                     0000   123 ;	according to a bit list.

                                     0000   124 ;	An entry is copied from a text table for each bit set in the bit list.

                                     0000   125 ;	Before testing, a mask containing the relevant bits is applied to the

                                     0000   126 ;	bit list.

                                     0000   127 ;

                                     0000   128 ; COMPLETION CODES :

                                     0000   129 ;

                                     0000   130 ;	R0:	1	SUCCESS

                                     0000   131 ;		0	OUTPUT BUFFER OVERFLOW

                                     0000   132 ;	R1:	LENGTH IN longwords OF RESULTANT STRING

                                     0000   133 ;

                                     0000   134 ; REGISTER DESTROYED:

                                     0000   135 ;

                                     0000   136 ;	R0,R1,R2,R3,R4

                                     0000   137 ;

                                     0000   138 	.MACRO	EXPBITS		BITLIS,-	; ADDRESS  OF BITLIST LONGWORD

                                     0000   139 				MASK,-		; MASK CONTAINING THE RELEVANT BITS (LITERAL)

                                     0000   140 				TEXT,-		; ADDRESS OF TEXT TABLE

                                     0000   141 				BUFF_ADDR,-	; ADDRESS OF RESULTANT BUFFER

                                     0000   142 				MAX_BITS,-	; MAXIMUM NUMBER OF BITS TO TEST

                                     0000   143 				?L1,?L2		; CREATED LABELS

                                     0000   144 	MOVL	#1,R0			; ASSUME SUCCESS

                                     0000   145 	MOVL	BITLIS,R2		; TEMPORARY STORAGE

                                     0000   146 	BICL	#^C<MASK>,R2		; 'AND' BITLIST WITH MASK

                                     0000   147 	CLRL	R3			; CURRENT BIT POSITION

                                     0000   148 	CLRL	R1			; INDEX INTO OUTPUT_BUFFER

                                     0000   149 L1:

                                     0000   150 	SUBL3	R3,#31,R4		; COMPUTE LENGTH OF FIELD TO TEST

                                     0000   151 	FFS	R3,R4,R2,R3		; FIND NEXT BIT SET IN FIELD

                                     0000   152 	BEQLU	L2			; NO MORE BITS SET

                                     0000   153 	MOVL	TEXT[R3],BUFF_ADDR[R1]	; TRANSFER TEXT

                                     0000   154 	INCL	R3			; STARTING POSITION FOR NEXT TEST

                                     0000   155 	AOBLEQ	#MAX_BITS,R1,L1		; CONTINUE IF BUFFER DOES NOT OVERFLOW

                                     0000   156 	CLRL	R0			; SIGNAL BUFFER OVERFLOW

                                     0000   157 L2:

                                     0000   158 	.ENDM	EXPBITS

                                     0000   159 

                                     0000   160 ;

                                     0000   161 ; EQUATED SYMBOLS:

SHOW$DEVI_UTL   - SHOW DEVICES: UTILITY FUNCTIONS                21-AUG-1978 19:18:59   VAX-11 MACRO X0.3-11               Page   4

X001            DECLARATIONS                                                                                                     (2)



                                     0000   162 ;

                                     0000   163 

                                     0000   164 	_VIELD	DEVI,0,<-			; DEFINE LOCAL FLAGS

                                     0000   165 			<FIRSTL,,M>,-		; FLAG FOR FIRST LINE PRINTED

                                     0000   166 			>

                                     0000   167 

                                     0000   168 	$SHR_MESSAGES	SHOW,120,<-	; define shared messages

                                     0000   169 		<BADLOGIC,ERROR>,-	;

                                     0000   170 			>

                                     0000   171 

                           00000003  0000   172 USER_MODE	= 3		; DEFINE USER ACCESS MODE

                           00000000  0000   173 PROGRAM_REGION	= 0		; DEFINE PROGRAM REGION

                           00000020  0000   174 SCRATCH_PAGES	= 32		; NUMBER OF PAGES NEEDED TO EXPAND VIRTUAL SPACE

                           00000040  0000   175 MAX_DDBS_DONE	= 64		; DEFINE SIZE OF 'DDBS_DONE' TABLE

                           0000000C  0000   176 VOLNAME_LENGTH = 12		; LENGTH OF A FILES-11 VOLUME LABEL

                           0000000A  0000   177 FULL_MAX_DEVCH = 10		; maximum number of simulataneously

                                     0000   178 				; displayed device characteristics

                                     0000   179 				; WARNING : format in SHOW$MSG_TXT has to correspond

                           00000004  0000   180 BRIE_MAX_DEVCH = 4		; for the /FULL and /BRIEF options respectively

                                     0000   181 FULL_MSK_DEVCH = -		; list of device characteristics displayed in /FULL

                           03EA0040  0000   182 <DEV$M_SPL!DEV$M_DMT!DEV$M_GEN!DEV$M_MNT!DEV$M_ALL!DEV$M_FOR!DEV$M_SWL!DEV$M_ELG>

                                     0000   183 BRIE_MSK_DEVCH = -		; list of device characteristics displayed in /BRIEF

                           01A80040  0000   184 	<DEV$M_SPL!DEV$M_ALL!DEV$M_MNT!DEV$M_FOR!DEV$M_DMT>

                           00000010  0000   185 PCB$S_LNAME	= 16		; ******* TEMPORARY

                           00000006  0000   186 MVL$S_VOLLBL	=6		; ******* TEMPORARY

                                     0000   187 

                                     0000   188 ;

                                     0000   189 ; Define structure on scratch area.

                                     0000   190 ;

                                     0000   191 ;	This structure defines storage needed to copy information relative

                                     0000   192 ;	to one physical device from the system's I/O data base.

                                     0000   193 ;	The same structure is used as an FAO parameter list when processing

                                     0000   194 ;	both the /BRIEF or /FULL printing options.

                                     0000   195 ;

                                     0000   196 

                                     0000   197 	$DEFINI	FORM

                                     0000   198 $DEF	FORM_A_DEVINFO		; START OF LIST FOR PHYSICAL DEVICE INFORMATION

                                     0000   199 $DEF	FORM_A_DEVNAM

                           00000004  0000   200 	.BLKL	1		; POINTER TO DEVICE NAME	(B/F)

                                     0004   201 				; (filled in at formatting time)

                                     0004   202 

                                     0004   203 ;

                                     0004   204 ; device unit information (UCB)

                                     0004   205 ;

                                     0004   206 

                                     0004   207 $DEF	FORM_W_UNIT

                           00000008  0004   208 	.BLKL	1		; PHYSICAL UNIT	(B/F)

                                     0008   209 $DEF	FORM_A_BLANKS

                           0000000C  0008   210 	.BLKL	1		; POINTER TO BLANK STRING FOR FORMATTING

                                     000C   211 $DEF	FORM_A_DATE

                           00000010  000C   212 	.BLKL	1		; SYSTEM DATE AND TIME	(F/B)

                                     0010   213 $DEF	FORM_W_STS

                           00000014  0010   214 	.BLKL	1		; DEVICE STATUS		(B/F)

                                     0014   215 				; (LATER POINTER TO TEXT STRING)

                                     0014   216 $DEF	FORM_A_DEVCHLIS

                           00000018  0014   217 	.BLKL	1		; POINTER TO DEVICE CHARACTERISTICS TEXT	(B/F)

                                     0018   218 				; (OR FAO COUNT FOR /F)

SHOW$DEVI_UTL   - SHOW DEVICES: UTILITY FUNCTIONS                21-AUG-1978 19:18:59   VAX-11 MACRO X0.3-11               Page   5

X001            DECLARATIONS                                                                                                     (2)



                           00000040  0018   219 	.BLKL	FULL_MAX_DEVCH	; SPACE TO POINT TO TEXT STRINGS

                           00000044  0040   220 	.BLKL	1		; SPACE FOR FAO COUNT TO SKIP

                                     0044   221 $DEF	FORM_W_ERRCNT

                           00000048  0044   222 	.BLKL	1		; ERROR COUNT	(B/F)

                                     0048   223 $DEF	FORM_L_PID

                           0000004C  0048   224 	.BLKL	1		; OWNER PROCESS ID	(F)

                                     004C   225 $DEF	FORM_L_OPCNT

                           00000050  004C   226 	.BLKL	1		; COUNT OF OPERATIONS COMPLETED	(F)

                                     0050   227 $DEF	FORM_L_LNAME

                           00000054  0050   228 	.BLKL	1		; pointer to owner process name

                                     0054   229 $DEF	FORM_W_REFC

                           00000058  0054   230 	.BLKL	1		; REFERENCE COUNT OF PROCESSES (F)

                                     0058   231 $DEF	FORM_W_DEVBUFSZ

                           0000005C  0058   232 	.BLKL	1		; DEFAULT DEVICE BUFFER SIZE (F)

                                     005C   233 

                                     005C   234 ;

                                     005C   235 ; device dependant information

                                     005C   236 ;

                                     005C   237 

                                     005C   238 $DEF	FORM_L_DEVDEPEN		; device dependant characteristics (F)

                           00000060  005C   239 	.BLKL	1		; (density for magtapes)

                                     0060   240 

                                     0060   241 ;

                                     0060   242 ; volume information	(VCB)

                                     0060   243 ;

                                     0060   244 

                                     0060   245 $DEF	FORM_A_VOLINF1		; START OF VOLUME INFORMATION (PART 1)

                                     0060   246 $DEF	FORM_Q_VOLNAME

                           00000068  0060   247 	.BLKQ	1		; ( DESCRIPTOR OF VOLUME LABEL)

                                     0068   248 $DEF	FORM_L_FREE

                           0000006C  0068   249 	.BLKL	1		; FREE BLOCKS 	(F/B)

                                     006C   250 $DEF	FORM_W_RECORDSZ	

                           00000070  006C   251 	.BLKL	1		; record size for magtape

                                     0070   252 $DEF	FORM_W_GRP

                           00000074  0070   253 	.BLKL	1		; GROUP NUMBER OF OWNER UIC	(F)

                                     0074   254 $DEF	FORM_W_MEM

                           00000078  0074   255 	.BLKL	1		; MEMBER NUMBER OF OWNER UIC 	(F)

                                     0078   256 $DEF	FORM_W_TRANS

                           0000007C  0078   257 	.BLKL	1		; TRANSACTION COUNT (F/B)

                                     007C   258 $DEF	FORM_W_VPROT

                           00000080  007C   259 	.BLKL	1		; VOLUME PROTECTION (F)

                                     0080   260 $DEF	FORM_W_MCOUNT

                           00000084  0080   261 	.BLKL	1		; MOUNT COUNT (F/B)

                                     0084   262 $DEF	FORM_A_VOLINF2		; START OF VOLUME INFO (PART 2)

                                     0084   263 $DEF	FORM_B_STATUS

                           00000088  0084   264 	.BLKL	1		; VOLUME STATUS 	(F)

                                     0088   265 				; (LATER POINTER TO STRING /GROUP, /SYSTEM)

                                     0088   266 $DEF	FORM_W_RVN

                           0000008C  0088   267 	.BLKL	1		; RELATIVE VOLUME NUMBER (F)

                                     008C   268 $DEF	FORM_L_ACPNAME

                           00000090  008C   269 	.BLKL	1		; poiner to ACP process name	(F)

                                     0090   270 $DEF	FORM_W_CLUSTER

                           00000094  0090   271 	.BLKL	1		; VOLUME CLUSTER SIZE	(F)

                                     0094   272 $DEF	FORM_L_MAXFILES

                           00000098  0094   273 	.BLKL	1		; MAX NUMBER OF FILES ALLOWED ON VOLUME (F)

                                     0098   274 

                                     0098   275 ;

SHOW$DEVI_UTL   - SHOW DEVICES: UTILITY FUNCTIONS                21-AUG-1978 19:18:59   VAX-11 MACRO X0.3-11               Page   6

X001            DECLARATIONS                                                                                                     (2)



                                     0098   276 ; string storage for device and volume information

                                     0098   277 ;

                                     0098   278 

                                     0098   279 $DEF	FORM_L_DEVCHAR

                           0000009C  0098   280 	.BLKL	1		; device characteristics longword

                                     009C   281 $DEF	FORM_T_VOLNAME

                           000000A8  009C   282 	.BLKB	VOLNAME_LENGTH	; VOLUME LABEL

                                     00A8   283 $DEF	FORM_T_ACPNAME

                           000000B8  00A8   284 	.BLKB	PCB$S_LNAME	; VOLUME ACP PROCESS NAME

                                     00B8   285 $DEF	FORM_T_LNAME

                           000000C8  00B8   286 	.BLKB	PCB$S_LNAME	; space for owner process name

                                     00C8   287 $DEF	FORM_K_LENGTH		; DEFINE LENGTH OF STRUCTURE

                                     00C8   288 

                                     00C8   289 	$DEFEND	FORM

                                     0000   290 ;

                                     0000   291 ; OWN STORAGE

                                     0000   292 ;

                                     0000   293 

                                 00000000   294 	.PSECT	SHOW$RWDATA	LONG,RD,WRT,NOEXE

                                     0000   295 

                                     0000   296 DEVI_T_DEVNAM:

                           00000010  0000   297 	.BLKB	16		; SPACE FOR DEVICE NAME

                                     0010   298 DEVI_T_BLANKS:

   20 20 20 20 20 20 20 20 20 20 00' 0010   299 	.ASCIC	/          /	; blank string (10chr) for formatting

                                 0A  0010       

                                     001B   300 DEVI_T_DEVCHAR:

                           0000002B  001B   301 	.BLKL	BRIE_MAX_DEVCH	; TEXT BUFFER FOR BRIEF DEVICE CHARACTERISTICS

                                     002B   302 DEVI_Q_SCRATCH:

                           00000033  002B   303 	.BLKQ	1		; scratch area descriptor

                                     0033   304 DEVI_L_SCRLIM:

                           00000037  0033   305 	.BLKL	1		; scratch area limit

                                     0037   306 DEVI_L_FLAGS:

                           00000000  0037   307 	.LONG	0		; LOCAL FLAGS

                                     003B   308 DEVI_DDBS_DONE:

                                     003B   309 	.REPT	MAX_DDBS_DONE	; LIST OF DDB ADDRESSES ALREADY PROCESSED

                                     003B   310 	.LONG	0

                                     003B   311 	.ENDR

                                     013B   312 

                                     013B   313 ;

                                     013B   314 ; TEXT

                                     013B   315 ;

                                     013B   316 

                                 00000000   317 	.PSECT	SHOW$MSG_TEXT	BYTE,RD,NOWRT,NOEXE

                                     0000   318 

                                     0000   319 BRIE_DEVCH_TXT:

                           00000080  0000   320 	.BLKL	32		; ABBREVIATED DEVICE CHARACTERISTICS

                                     0080   321 				; ( 3 LETTER CODE + blank)

                                     0080   322 FULL_DEVCH_TXT:

                           00000100  0080   323 	.BLKL	32		; FULL DEVICE CHARACTERISTICS 

                                     0100   324 				; ( POINTER TO COUNTED ASCII STRING)

                           00000100  0100   325 $$$=.

                                     0100   326 	.IRP	XXX,<-

                                     0100   327 		spl,-		; DEVICE BEEING SPOOLED

                                     0100   328 		mbx,-		; DEVICE IS A MAILBOX

                                     0100   329 		shr,-		; DEVICE SHAREABLE

                                     0100   330 		gen,-		; DEVICE IS A GENERIC DEVICE

                                     0100   331 		avl,-		; DEVICE IS AVAILABLE

SHOW$DEVI_UTL   - SHOW DEVICES: UTILITY FUNCTIONS                21-AUG-1978 19:18:59   VAX-11 MACRO X0.3-11               Page   7

X001            DECLARATIONS                                                                                                     (2)



                                     0100   332 		mnt,-		; DEVICE IS MOUNTED

                                     0100   333 		dmt,-		; DEVICE IS MARKED FOR DISMOUNT

                                     0100   334 		all,-		; DEVICE IS ALLOCATED

                                     0100   335 		for,-		; DEVICE IS MOUNTED FOREIGN

                                     0100   336 		swl,-		; DEVICE IS SOFTWARE WRITE LOCKED

                                     0100   337 		elg,-		; DEVICE HAS ERROR LOGGING ENABLED

                                     0100   338 		>

                                     0100   339 .=BRIE_DEVCH_TXT+<4*DEV$V_'XXX>

                                     0100   340 	.ASCII	/XXX /		; ABBREVIATED 4 CHARACTER CODE

                                     0100   341 .=FULL_DEVCH_TXT+<4*DEV$V_'XXX>

                                     0100   342 	.LONG	DEVCH_T_'XXX	; POINTER TO COUNTED ASCII STRING

                                     0100   343 	.ENDR

                           00000100  00DC   344 .=$$$				; RESTORE LOCATION COUNTER

                                     0100   345 DEVCH_T_SPL:

   0A 0D 64 65 6C 6F 6F 70 53 09 00' 0100   346 	.ASCIC	/	Spooled/<13><10>

                                 0A  0100       

                                     010B   347 DEVCH_T_MBX:

   0A 0D 78 6F 62 6C 69 61 4D 09 00' 010B   348 	.ASCIC	/	Mailbox/<13><10>

                                 0A  010B       

                                     0116   349 DEVCH_T_SHR:

0D 65 6C 62 61 65 72 61 68 53 09 00' 0116   350 	.ASCIC	/	Shareable/<13><10>

                                 0A  0122       

                                 0C  0116       

                                     0123   351 DEVCH_T_GEN:

   0A 0D 63 69 72 65 6E 65 47 09 00' 0123   352 	.ASCIC	/	Generic/<13><10>

                                 0A  0123       

                                     012E   353 DEVCH_T_AVL:

0D 65 6C 62 61 6C 69 61 76 41 09 00' 012E   354 	.ASCIC	/	Available/<13><10>

                                 0A  013A       

                                 0C  012E       

                                     013B   355 DEVCH_T_MNT:

   0A 0D 64 65 74 6E 75 6F 4D 09 00' 013B   356 	.ASCIC	/	Mounted/<13><10>

                                 0A  013B       

                                     0146   357 DEVCH_T_DMT:

72 6F 66 20 64 65 6B 72 61 4D 09 00' 0146   358 	.ASCIC	/	Marked for Dismount/<13><10>

   0A 0D 74 6E 75 6F 6D 73 69 44 20  0152       

                                 16  0146       

                                     015D   359 DEVCH_T_ALL:

0D 64 65 74 61 63 6F 6C 6C 41 09 00' 015D   360 	.ASCIC	/	Allocated/<13><10>

                                 0A  0169       

                                 0C  015D       

                                     016A   361 DEVCH_T_FOR:

   0A 0D 6E 67 69 65 72 6F 46 09 00' 016A   362 	.ASCIC	/	Foreign/<13><10>

                                 0A  016A       

                                     0175   363 DEVCH_T_SWL:

57 20 65 72 61 77 74 66 6F 53 09 00' 0175   364 	.ASCIC	/	Software Write Locked/<13><10>

0D 64 65 6B 63 6F 4C 20 65 74 69 72  0181       

                                 0A  018D       

                                 18  0175       

                                     018E   365 DEVCH_T_ELG:

67 67 6F 4C 20 72 6F 72 72 45 09 00' 018E   366 	.ASCIC	/	Error Logging Enabled/<13><10>

0D 64 65 6C 62 61 6E 45 20 67 6E 69  019A       

                                 0A  01A6       

                                 18  018E       

                                     01A7   367 DEVI_T_ONLINE:

         20 65 6E 69 6C 20 6E 6F 00' 01A7   368 	.ASCIC	/on line /		; TEXT FOR ON LINE

                                 08  01A7       

SHOW$DEVI_UTL   - SHOW DEVICES: UTILITY FUNCTIONS                21-AUG-1978 19:18:59   VAX-11 MACRO X0.3-11               Page   8

X001            DECLARATIONS                                                                                                     (2)



                                     01B0   369 DEVI_T_OFFLINE:

         65 6E 69 6C 20 66 66 6F 00' 01B0   370 	.ASCIC	/off line/		; TEXT FOR OFF LINE

                                 08  01B0       

                                     01B9   371 DEVI_T_SYSTEM:

            6D 65 74 73 79 53 2F 00' 01B9   372 	.ASCIC	&/System&	; TEXT FOR VOLUME STATUS

                                 07  01B9       

                                     01C1   373 DEVI_T_GROUP:

               70 75 6F 72 47 2F 00' 01C1   374 	.ASCIC	&/Group&	;

                                 06  01C1       

                                     01C8   375 DEVI_T_NULL_STR:

                           00000000  01C8   376 	.LONG	0			; NULL STRING

                                     01CC   377 DEVI_T_CRLF:

20 20 20 20 20 20 20 20 20 0A 0D 00' 01CC   378 	.ASCIC	<13><10>/           /		; CARRIAGE RETURN STRING

                              20 20  01D8       

                                 0D  01CC       

SHOW$DEVI_UTL   - SHOW DEVICES: UTILITY FUNCTIONS                21-AUG-1978 19:18:59   VAX-11 MACRO X0.3-11               Page   9

X001            SHOW$DEVI_UTL - SHOW DEVICES: MAIN ROUTINE BODY                                                                  (3)



                                     01DA   380 	.SBTTL	SHOW$DEVI_UTL	- SHOW DEVICES: MAIN ROUTINE BODY

                                     01DA   381 

                                     01DA   382 ;++

                                     01DA   383 ; FUNCTIONAL DESCRIPTION:

                                     01DA   384 ;

                                     01DA   385 ;	This routine represents the main control flow of the

                                     01DA   386 ;	the SHOW DEVICES command after all calls to the CLI have been

                                     01DA   387 ;	processed.

                                     01DA   388 ;

                                     01DA   389 ;	Successively calls:

                                     01DA   390 ;		DEVI_COPY_NEXT  to copy next relevant DDB into scratch area

                                     01DA   391 ;		DEVI_FORMAT	to format and print above information

                                     01DA   392 ;

                                     01DA   393 ;	If an explicit device name was given, data from the first applicable 

                                     01DA   394 ;	DDB only is printed. This algorithm was adopted to comply with the

                                     01DA   395 ;	algorithm used by IOC$SEARCHDEV. It assumes implicit ordering in the

                                     01DA   396 ;	DDB chain. (i.e most used DDB's come first in the chain)

                                     01DA   397 

                                     01DA   398 ;

                                     01DA   399 ;

                                     01DA   400 ; CALLING SEQUENCE:

                                     01DA   401 ;

                                     01DA   402 ;	CALLS	or 	CALLG

                                     01DA   403 ;

                                     01DA   404 ; INPUT PARAMETERS:

                                     01DA   405 ;

                                     01DA   406 ;	4(AP) = address of descriptor to the input parameter (if any)

                                     01DA   407 ;		given in the command line

                                     01DA   408 ;

                                     01DA   409 ; IMPLICIT INPUTS:

                                     01DA   410 ;

                                     01DA   411 ;	Results from qualifier parsing and input parameter parsing

                                     01DA   412 ;	are passed to this routine in the following global locations:

                                     01DA   413 ;		DEVI$L_BITLIS	= bit list resulting from CLI parsing

                                     01DA   414 ;		DEVI$L_CH_MSK	= masks governing search of I /O data base

                                     01DA   415 ;		DEVI$L_CH_CRIT	   according to device characteristics

                                     01DA   416 ;				  ( set up by qualifier true action routines)

                                     01DA   417 ;		DEVI$Q_DEVNAM	= descriptor to generic device name and

                                     01DA   418 ;		DEVI$W_UNIT	  physical unit number.  ( set up by

                                     01DA   419 ;				  action routine for input parameter present)

                                     01DA   420 ;

                                     01DA   421 ; OUTPUT PARAMETERS:

                                     01DA   422 ;

                                     01DA   423 ;	NONE

                                     01DA   424 ;

                                     01DA   425 ; IMPLICIT OUTPUTS:

                                     01DA   426 ;

                                     01DA   427 ;	NONE

                                     01DA   428 ;

                                     01DA   429 ; COMPLETION CODES:

                                     01DA   430 ;

                                     01DA   431 ;	R0 =	SS$_NORMAL  : success

                                     01DA   432 ;		SS$_NOSUCHDEV	: no such device(s) were found

                                     01DA   433 ;		anything else  : error code as returned by system service

                                     01DA   434 ;

                                     01DA   435 ; SIDE EFFECTS:

                                     01DA   436 ;

SHOW$DEVI_UTL   - SHOW DEVICES: UTILITY FUNCTIONS                21-AUG-1978 19:18:59   VAX-11 MACRO X0.3-11               Page  10

X001            SHOW$DEVI_UTL - SHOW DEVICES: MAIN ROUTINE BODY                                                                  (3)



                                     01DA   437 ;	NONE

                                     01DA   438 ;

                                     01DA   439 ;--

                                     01DA   440 

                                 00000000   441 	.PSECT	SHOW$CODE	BYTE,RD,NOWRT,EXE

                                     0000   442 

                               0FFC' 0000   443 	.ENTRY	SHOW$DEVI_UTL,^M<R2,R3,R4,R5,R6,R7,R8,R9,R10,R11>

                                     0002   444 

                                     0002   445 ;

                                     0002   446 ; initialize

                                     0002   447 ;

                                     0002   448 

       0037'CF            01     C8  0002   449 	BISL	#DEVI_M_FIRSTL,W^DEVI_L_FLAGS	

                                     0007   450 					; SET FLAG FOR NOTHING PRINTED YET

                                     0007   451 

                                     0007   452 ;

                                     0007   453 ; allocate scratch space to copy I /O data base

                                     0007   454 ;

                                     0007   455 

                                     0007   456 	$EXPREG_S	-		; ALLOCATE SPACE TO COPY I /O DATA BASE

                                     0007   457 		PAGCNT=#SCRATCH_PAGES, -	; HOW MANY PAGES

                                     0007   458 		RETADR=W^DEVI_Q_SCRATCH, -	; QUADWORD TO RETURN LIMIT OF NEW VIRTUAL SPACE

                                     0007   459 		ACMODE=#USER_MODE, -		; ACCESS MODE

                                     0007   460 		REGION=#PROGRAM_REGION		; EXPAND PROGRAM REGION

            44            50     E9  0018   461 	BLBC	R0,90$			; branch on error

                                     001B   462 

                                     001B   463 ;

                                     001B   464 ; scan device data base for all devices

                                     001B   465 ;

                                     001B   466 

                                     001B   467 10$:

                                     001B   468 			; ***** ( THIS WILL HAVE TO BE A CHMK)

                                     001B   469 	$CMKRNL_S	W^DEVI_COPY_NEXT	; copy next DDB interlocked

            07            50     E9  0028   470 	BLBC	R0,20$			; NO MORE

       0283'CF            00     FB  002B   471 	CALLS	#0,W^DEVI_FORMAT		; FORMAT AND PRINT INFORMATION

                          E9     11  0030   472 	BRB	10$

                                     0032   473 

                                     0032   474 ;

                                     0032   475 ; no more data. test if anything printed

                                     0032   476 ;

                                     0032   477 

                                     0032   478 20$:

   00000000'8F            50     D1  0032   479 	CMPL	R0,#SS$_NOSUCHDEV	; is it a known return code ?

                          24     12  0039   480 	BNEQU	90$			; branch if unkwown

       0037'CF            00     E0  003B   481 	BBS	#DEVI_V_FIRSTL,W^DEVI_L_FLAGS,70$

                          09         0040       

                                     0041   482 					; if nothing printed, go issue message

            50   00000000'8F     D0  0041   483 	MOVL	#SS$_NORMAL,R0		; signal success

                          15     11  0048   484 	BRB	90$			; and return

                                     004A   485 70$:

                 00000000'8F     DD  004A   486 	PUSHL	#SHOW$_NOSUCHDEV	; MESSAGE CODE FOR 'NO SUCH DEVICE'

                       04 AC     DD  0050   487 	PUSHL	4(AP)			; DEVICE NAME IF ANY

       0000'CF            02     FB  0053   488 	CALLS 	#2,W^SHOW$PRINT_MSG	; ISSUE MESSAGE

            50   10000000 8F     C8  0058   489 	BISL	#STS$M_INHIB_MSG,R0	; inhibit furhter message output

                                     005F   490 

                                     005F   491 ;

                                     005F   492 ; exit

SHOW$DEVI_UTL   - SHOW DEVICES: UTILITY FUNCTIONS                21-AUG-1978 19:18:59   VAX-11 MACRO X0.3-11               Page  11

X001            SHOW$DEVI_UTL - SHOW DEVICES: MAIN ROUTINE BODY                                                                  (3)



                                     005F   493 ;

                                     005F   494 

                                     005F   495 90$:

                                 04  005F   496 	RET				; AND RETURN

SHOW$DEVI_UTL   - SHOW DEVICES: UTILITY FUNCTIONS                21-AUG-1978 19:18:59   VAX-11 MACRO X0.3-11               Page  12

X001            DEVI_COPY_NEXT - COPY DEVICE DATA BASE                                                                           (4)



                                     0060   498 	.SBTTL	DEVI_COPY_NEXT	- COPY DEVICE DATA BASE

                                     0060   499 

                                     0060   500 ;++

                                     0060   501 ; FUNCTIONAL DESCRIPTION:

                                     0060   502 ;

                                     0060   503 ;	This routine is called via the 'Change mode to Kernel' system service.

                                     0060   504 ;

                                     0060   505 ;	After requesting a read lock on the I/o data base, it copies

                                     0060   506 ;	a subset of the latter to a previously allocated scratch area,

                                     0060   507 ;	(using a predefined structure), then releases the lock before returning.

                                     0060   508 ;

                                     0060   509 ;	Each successfully comleted call will result in a copy of relevant

                                     0060   510 ;	information from one  DDB and associated tables (UCB's, VCB's, etc...)

                                     0060   511 ;

                                     0060   512 ;	Scanning algorithm:

                                     0060   513 ;

                                     0060   514 ;	A table of addresses of DDB's already processed is maintained.

                                     0060   515 ;	(DEVI_DDBS_DONE).

                                     0060   516 ;	At each call the chain of DDB's is scanned until a DDB is found

                                     0060   517 ;	that has not been processed, and that satisfies to the following criteria:

                                     0060   518 ;

                                     0060   519 ;	If the whole data base is beeing scanned ( no device name specified)

                                     0060   520 ;	apply a rough screening on device characteristics (e.g. mailboxes).

                                     0060   521 ;

                                     0060   522 ;	If a device name was specified as an input parameter,

                                     0060   523 ;	match the device name in the DDB against the one supplied in the

                                     0060   524 ;	command line, comparing strings up to the length of the given device

                                     0060   525 ;	name.

                                     0060   526 ;

                                     0060   527 ; CALLING SEQUENCE:

                                     0060   528 ;

                                     0060   529 ;		CALLS	#0,DEVI_COPY_NEXT

                                     0060   530 ;	This routine is called via the 'Change mode to Kernel' System service

                                     0060   531 ;

                                     0060   532 ; INPUT PARAMETERS:

                                     0060   533 ;

                                     0060   534 ;	DEVI_Q_SCRATCH =  pointers to start and end of scratch area

                                     0060   535 ;	DEVI$Q_DEVNAM  =  device name descriptor,if any

                                     0060   536 ;	DEVI$L_UNIT    =  device unit, if any. (-1 means no unit specified)

                                     0060   537 ;

                                     0060   538 ; IMPLICIT INPUTS:

                                     0060   539 ;

                                     0060   540 ;	NONE

                                     0060   541 ;

                                     0060   542 ; OUTPUT PARAMETERS:

                                     0060   543 ;

                                     0060   544 ;	DEVI_L_SCRLIM = pointer to end of copied area

                                     0060   545 ;		( beginning is pointed to by contents of DEVI_Q_SCRATCH)

                                     0060   546 ;

                                     0060   547 ; IMPLICIT OUTPUTS:

                                     0060   548 ;

                                     0060   549 ;	NONE

                                     0060   550 ;

                                     0060   551 ; COMPLETION CODES:

                                     0060   552 ;

                                     0060   553 ;	R0:	SS$_NORMAL	= success, some data was copied

                                     0060   554 ;		SS$_NOSUCHDEV	= no data was copied

SHOW$DEVI_UTL   - SHOW DEVICES: UTILITY FUNCTIONS                21-AUG-1978 19:18:59   VAX-11 MACRO X0.3-11               Page  13

X001            DEVI_COPY_NEXT - COPY DEVICE DATA BASE                                                                           (4)



                                     0060   555 ;		SHOW$_BADLOGIC = scratch area overflow

                                     0060   556 ;

                                     0060   557 ;

                                     0060   558 ; SIDE EFFECTS:

                                     0060   559 ;

                                     0060   560 ;	NONE

                                     0060   561 ;

                                     0060   562 ; REGISTER USAGE:

                                     0060   563 ;

                                     0060   564 ;	R0 - R3	= SCRATCH

                                     0060   565 ;	R4	= DESCRIPTOR TO GIVEN DEVICE NAME

                                     0060   566 ;		= ALSO : ADDRESS OF CURRENT PCB

                                     0060   567 ;	R6	= CURRENT POINTER TO SCRATCH AREA

                                     0060   568 ;	R7 	= UPDATED POINTER TO SCRATCH AREA

                                     0060   569 ;	R8	= LIMIT OF SCRATCH AREA

                                     0060   570 ;	R9	= POINTER TO CURRENT VCB

                                     0060   571 ;	R10	= POINTER TO CURRENT UCB

                                     0060   572 ;	R11	= POINTER TO CURRENT DDB

                                     0060   573 ;

                                     0060   574 ;--

                                     0060   575 

                                 00000060   576 	.PSECT	SHOW$CODE	BYTE,RD,NOWRT,EXE

                                     0060   577 

                                     0060   578 DEVI_COPY_NEXT:

                               0FFC  0060   579 	.WORD	^M<R2,R3,R4,R5,R6,R7,R8,R9,R10,R11>

                                     0062   580 

                                     0062   581 ;

                                     0062   582 ; lock I/O data base for read

                                     0062   583 ;

                                     0062   584 

            54   00000000'EF     D0  0062   585 	MOVL	L^SCH$GL_CURPCB,R4	; ADDRESS OF CURRENT PROCESS CONTROL BLOCK

                                     0069   586 ;%%%

                 00000000'EF     16  0069   587 	JSB	L^SCH$IOLOCKR		; Lock i/o data base for read

                                     006F   588 

                                     006F   589 ;

                                     006F   590 ; initialize 

                                     006F   591 ;

                                     006F   592 

            54       0000'CF     3C  006F   593 	MOVZWL	W^DEVI$Q_DEVNAM,R4	; descriptor to input parameter

            55       0004'CF     D0  0074   594 	MOVL	W^DEVI$Q_DEVNAM+4,R5	; ( in case needed)

            5B   00000000'EF     DE  0079   595 	MOVAL	L^IOC$GL_DEVLIST-DDB$L_LINK,R11

                                     0080   596 					; ADDRESS OF ADDRESS OF FIRST DDB

                                     0080   597 

                                     0080   598 ;

                                     0080   599 ; process one DDB

                                     0080   600 ;

                                     0080   601 

                                     0080   602 10$:

            5B            6B     D0  0080   603 	MOVL	DDB$L_LINK(R11),R11	; GET NEXT DDB

                          03     12  0083   604 	BNEQU	12$			;

                          008A   31  0085   605 	BRW	80$			; branch if no more

                                     0088   606 12$:

                          00AA   30  0088   607 	BSBW	CHECK_DDB_DONE		; CHECK WHETHER THIS DDB ALREADY PROCESSED

            F2            50     E9  008B   608 	BLBC	R0,10$			; BRANCH IF PROCESSED

   00000000'EF   00000000'8F     E0  008E   609 	BBS	#DEVI$V_DEVN,DEVI$L_BITLIS,30$

                          0B         0099       

                                     009A   610 					; BRANCH IF INPUT PARAMETER PRESENT

SHOW$DEVI_UTL   - SHOW DEVICES: UTILITY FUNCTIONS                21-AUG-1978 19:18:59   VAX-11 MACRO X0.3-11               Page  14

X001            DEVI_COPY_NEXT - COPY DEVICE DATA BASE                                                                           (4)



                                     009A   611 

                                     009A   612 ;

                                     009A   613 ; if no input specified, examine device characteristics

                                     009A   614 ;

                                     009A   615 

                                     009A   616 20$:

            5A         04 AB     D0  009A   617 	MOVL	DDB$L_UCB(R11),R10	; GET FIRST UCB ADDRESS

         34 AA            14     E0  009E   618 	BBS	#DEV$V_MBX,UCB$L_DEVCHAR(R10),10$

                          DD         00A2       

                                     00A3   619 					; skip entire DDB if mailbox

                          0F     11  00A3   620 	BRB	40$			; GO COPY INFORMATION

                                     00A5   621 

                                     00A5   622 ;

                                     00A5   623 ; if device name specified, test for match

                                     00A5   624 ;

                                     00A5   625 

                                     00A5   626 30$:

            50         14 AB     DE  00A5   627 	MOVAL	DDB$T_NAME(R11),R0	; address of device name

            54            80     91  00A9   628 	CMPB	(R0)+,R4		; LENGTH LONGER THAN SPECIFIED ?

                          D2     1F  00AC   629 	BLSSU	10$			; BRANCH IF TOO SHORT

            60            54     29  00AE   630 	CMPC3	R4,(R0),(R5)		; COMPARE DEVICE NAMES

                          65         00B1       

                          CC     12  00B2   631 	BNEQU	10$			; BRANCH IF NO MATCH

                                     00B4   632 

                                     00B4   633 ;

                                     00B4   634 ; copy information

                                     00B4   635 ;

                                     00B4   636 

                                     00B4   637 40$:

            50         14 AB     90  00B4   638 	MOVB	DDB$T_NAME(R11),R0	; length of device name

                          50     D6  00B8   639 	INCL	R0			; ADD ONE FOR COUNTED STRING

         14 AB            50     28  00BA   640 	MOVC3	R0,DDB$T_NAME(R11),W^DEVI_T_DEVNAM

                     0000'CF         00BE       

                                     00C1   641 					; COPY device name

            57       002B'CF     D0  00C1   642 	MOVL	W^DEVI_Q_SCRATCH,R7	; POINTER TO SCRATCH AREA

            58       002F'CF     D0  00C6   643 	MOVL	W^DEVI_Q_SCRATCH+4,R8	; LIMIT OF SCRATCH AREA

            5A         D8 AB     DE  00CB   644 	MOVAL	DDB$L_UCB-UCB$L_LINK(R11),R10

                                     00CF   645 					; GET ADDRESS OF ADDRESS OF FIRST UCB

                                     00CF   646 50$:

            5A         2C AA     D0  00CF   647 	MOVL	UCB$L_LINK(R10),R10	; GET NEXT UCB

                          28     13  00D3   648 	BEQLU	60$			; BRANCH IF NO MORE

            56            57     D0  00D5   649 	MOVL	R7,R6			; SAVE POINTER TO COPIED AREA

            56   000000C8 8F     C1  00D8   650 	ADDL3	#FORM_K_LENGTH,R6,R7	; UPDATE POINTER TO COPIED AREA

                          57         00DF       

            58            57     D1  00E0   651 	CMPL	R7,R8			; CHECK FOR OVERFLOW OF SCRATCH AREA

                          21     1A  00E3   652 	BGTRU	70$			; BRANCH IF OVERFLOW

                          0072   30  00E5   653 	BSBW	COPY_UCB		; GO COPY UCB

            59         30 AA     D0  00E8   654 	MOVL	UCB$L_VCB(R10),R9	; GET ASSOCIATED VCB ADDRESS

                          E1     13  00EC   655 	BEQLU	50$			; BRANCH IF NONE

         34 AA            06     E0  00EE   656 	BBS	#DEV$V_SPL,UCB$L_DEVCHAR(R10),50$ ; SKIP IF SPOOLED

                          DC         00F2       

         34 AA            14     E0  00F3   657 	BBS	#DEV$V_MBX,UCB$L_DEVCHAR(R10),50$ ; SKIP IF MAILBOX

                          D7         00F7       

                          00C8   30  00F8   658 	BSBW	COPY_VCB		; COPY VCB INFORMATION

                          D2     11  00FB   659 	BRB	50$			; GO FOR NEXT UCB

                                     00FD   660 

                                     00FD   661 ;

SHOW$DEVI_UTL   - SHOW DEVICES: UTILITY FUNCTIONS                21-AUG-1978 19:18:59   VAX-11 MACRO X0.3-11               Page  15

X001            DEVI_COPY_NEXT - COPY DEVICE DATA BASE                                                                           (4)



                                     00FD   662 ; exits

                                     00FD   663 ;

                                     00FD   664 

                                     00FD   665 60$:

            50   00000000'8F     D0  00FD   666 	MOVL	#SS$_NORMAL,R0		; INDICATE SUCCESS 

                          13     11  0104   667 	BRB	90$			; GO UNLOCK

                                     0106   668 70$:

            57            58     D0  0106   669 	MOVL	R8,R7			; SIGNAL OVERFLOW

            50   00781122 8F     D0  0109   670 	MOVL	#SHOW$_BADLOGIC,R0	; return code

                          07     11  0110   671 	BRB	90$			; AND GO UNLOCK

                                     0112   672 80$:

            50   00000000'8F     D0  0112   673 	MOVL	#SS$_NOSUCHDEV,R0	; indicate no data copied

                                     0119   674 					; (nothing copied)

                                     0119   675 

                                     0119   676 

                                     0119   677 ;

                                     0119   678 ; unlock i/o data base

                                     0119   679 ;

                                     0119   680 

                                     0119   681 90$:

   00000033'EF            57     D0  0119   682 	MOVL	R7,DEVI_L_SCRLIM	; save limit of copied area

                          01     BB  0120   683 	PUSHR	#^M<R0>			; save return code

            54   00000000'EF     D0  0122   684 	MOVL	L^SCH$GL_CURPCB,R4	; ADDRESS OF CURRENT PCB

                                     0129   685 ;%%%

                 00000000'EF     16  0129   686 	JSB	L^SCH$IOUNLOCK		; unlock i/o data base

                                     012F   687 ;%%%

                                     012F   688 	SETIPL	#0			; drop IPL 

                          01     BA  0132   689 	POPR	#^M<R0>			; restore status code

                                 04  0134   690 	RET				; and return

                                     0135   691 

                                     0135   692 ;

                                     0135   693 ; subroutine to check the 'DDB's done' table

                                     0135   694 ;

                                     0135   695 ;	return codes 	R0=0 : DDB already processed

                                     0135   696 ;			R0=1 : DDB ready to process

                                     0135   697 ;

                                     0135   698 

                                     0135   699 CHECK_DDB_DONE:

            52         40 8F     9A  0135   700 	MOVZBL	#MAX_DDBS_DONE,R2	; LENGTH OF DDB'S DONE TABLE

                          51     D4  0139   701 	CLRL	R1			; POINTER TO DDB'S DONE TABLE

                          50     D4  013B   702 	CLRL	R0			; assume failure

                     003B'CF41   D5  013D   703 10$:	TSTL	W^DEVI_DDBS_DONE[R1]	; LAST ENTRY SCANNED ?

                          0D     13  0142   704 	BEQLU	20$			; branch if yes

       003B'CF41          5B     D1  0144   705 	CMPL	R11,W^DEVI_DDBS_DONE[R1]; DOES THIS ENTRY MATCH ?

                          0D     13  014A   706 	BEQLU	30$			; if YES, RETURN

            51            52     F3  014C   707 	AOBLEQ	R2,R1,10$		; SEARCH NEXT TABLE ENTRY

                          ED         014F       

                                 05  0150   708 	RSB				; overflow = failure

                                     0151   709 20$:

       003B'CF41          5B     D0  0151   710 	MOVL	R11,W^DEVI_DDBS_DONE[R1]; RECORD DDB ADDRESS

                          50     D6  0157   711 	INCL	R0			; success

                                     0159   712 30$:

                                 05  0159   713 	RSB				; AND RETURN 

                                     015A   714 

                                     015A   715 ;

                                     015A   716 ; subroutine to copy UCB information

                                     015A   717 ;

SHOW$DEVI_UTL   - SHOW DEVICES: UTILITY FUNCTIONS                21-AUG-1978 19:18:59   VAX-11 MACRO X0.3-11               Page  16

X001            DEVI_COPY_NEXT - COPY DEVICE DATA BASE                                                                           (4)



                                     015A   718 

                                     015A   719 COPY_UCB:

                          30     BB  015A   720 	PUSHR	#^M<R4,R5>		; SAVE REGISTERS

         7C A6         1A AA     B0  015C   721 	MOVW	UCB$W_VPROT(R10),FORM_W_VPROT(R6)

                                     0161   722 					; VOLUME PROTECTIOM

         74 A6         1C AA     B0  0161   723 	MOVW	UCB$L_OWNUIC(R10),FORM_W_MEM(R6)

         70 A6         1E AA     B0  0166   724 	MOVW	UCB$L_OWNUIC+2(R10),FORM_W_GRP(R6)

                                     016B   725 					; OWNER UIC

                     00B8 C6     94  016B   726 	CLRB	FORM_T_LNAME(R6)	; assume no owner process

         48 A6         28 AA     D0  016F   727 	MOVL	UCB$L_PID(R10),FORM_L_PID(R6)

                                     0174   728 					; OWNER PROCESS ID

                          21     13  0174   729 	BEQLU	10$			; branch if no owner process

            50         48 A6     3C  0176   730 	MOVZWL	FORM_L_PID(R6),R0

                                     017A   731 					; get lower part of pid

            51   00000000'FF40   D0  017A   732 	MOVL	@SCH$GL_PCBVEC[R0],R1		; get address of PCB

                          03     BB  0182   733 	PUSHR	#^M<R0,R1>		; save pid for later check

         6C A1            10     28  0184   734 	MOVC3	#PCB$S_LNAME,PCB$T_LNAME(R1),FORM_T_LNAME(R6)

                     00B8 C6         0188       

                                     018B   735 					; copy process name

                          03     BA  018B   736 	POPR	#^M<R0,R1>		; restore registers

         60 A1            50     B1  018D   737 	CMPW	R0,PCB$L_PID(R1)	; still the same pid ?

                          04     13  0191   738 	BEQLU	10$			; branch if valid pid

                     00B8 C6     94  0193   739 	CLRB	FORM_T_LNAME(R6)	; clear process name

                                     0197   740 10$:

       0098 C6         34 AA     D0  0197   741 	MOVL	UCB$L_DEVCHAR(R10),FORM_L_DEVCHAR(R6)

                                     019D   742 					; DEVICE CHARACTERISTICS

         04 A6         48 AA     B0  019D   743 	MOVW	UCB$W_UNIT(R10),FORM_W_UNIT(R6)

                                     01A2   744 					; PHYSICAL UNIT NUMBER

         58 A6         3A AA     B0  01A2   745 	MOVW	UCB$W_DEVBUFSIZ(R10),FORM_W_DEVBUFSZ(R6)

                                     01A7   746 					; DEFAULT BUFFER SIZE

         54 A6         50 AA     B0  01A7   747 	MOVW	UCB$W_REFC(R10),FORM_W_REFC(R6)

                                     01AC   748 					; REFERENCE COUNT OF PROCESSES

         10 A6         58 AA     B0  01AC   749 	MOVW	UCB$W_STS(R10),FORM_W_STS(R6)

                                     01B1   750 					; DEVICE STATUS

         4C A6         60 AA     D0  01B1   751 	MOVL	UCB$L_OPCNT(R10),FORM_L_OPCNT(R6)

                                     01B6   752 					; COUNT OF OPERATIONS COMPLETED

         44 A6         72 AA     B0  01B6   753 	MOVW	UCB$W_ERRCNT(R10),FORM_W_ERRCNT(R6)

                                     01BB   754 					; ERROR COUNT

         5C A6         3C AA     D0  01BB   755 	MOVL	UCB$L_DEVDEPEND(R10),FORM_L_DEVDEPEN(R6)

                                     01C0   756 					; DEVICE DEPENDANT CHARACTERISTICS

                                     01C0   757 					; (CONTAINS DENSITY FOR MAGTAPE)

                          30     BA  01C0   758 	POPR	#^M<R4,R5>		; RESTORE REGISTERS

                                 05  01C2   759 	RSB				; all done

                                     01C3   760 

                                     01C3   761 ;

                                     01C3   762 ; subroutine to copy VCB information

                                     01C3   763 ;

                                     01C3   764 

                                     01C3   765 COPY_VCB:

       0084 C6         0B A9     90  01C3   766 	MOVB	VCB$B_STATUS(R9),FORM_B_STATUS(R6)

                                     01C9   767 					; VOLUME STATUS

         78 A6         0C A9     B0  01C9   768 	MOVW	VCB$W_TRANS(R9),FORM_W_TRANS(R6)

                                     01CE   769 					; VOLUME TRANSACTION COUNT

       0088 C6         0E A9     B0  01CE   770 	MOVW	VCB$W_RVN(R9),FORM_W_RVN(R6)

                                     01D4   771 					; RELATIVE VOLUME NUMBER

         14 A9            0C     28  01D4   772 	MOVC3	#VOLNAME_LENGTH,VCB$T_VOLNAME(R9),FORM_T_VOLNAME(R6)

                     009C C6         01D8       

SHOW$DEVI_UTL   - SHOW DEVICES: UTILITY FUNCTIONS                21-AUG-1978 19:18:59   VAX-11 MACRO X0.3-11               Page  17

X001            DEVI_COPY_NEXT - COPY DEVICE DATA BASE                                                                           (4)



                                     01DB   773 					; VOLUME LABEL

                       6C A6     D4  01DB   774 	CLRL	FORM_W_RECORDSZ(R6)	; ASSUME NOT MAGTAPE

                                     01DE   775 

                                     01DE   776 ;

                                     01DE   777 ; Retrieve device dependant information for magtape

                                     01DE   778 ;

                                     01DE   779 

         34 AA            05     E1  01DE   780 	BBC	#DEV$V_SQD,UCB$L_DEVCHAR(R10),8$

                          5B         01E2       

                                     01E3   781 					; skip if not magtape

                     0088 C6     B4  01E3   782 	CLRW	FORM_W_RVN(R6)

         6C A6         50 A9     B0  01E7   783 	MOVW	VCB$W_RECORDSZ(R9),FORM_W_RECORDSZ(R6)

         34 AA            18     E0  01EC   784 	BBS	#DEV$V_FOR,UCB$L_DEVCHAR(R10),8$

                          4D         01F0       

                                     01F1   785 					; skip if foreign

                                     01F1   786 					; record size

            50         20 A9     D0  01F1   787 	MOVL	VCB$L_RVT(R9),R0	; get RVT address

                          51     D4  01F5   788 	CLRL	R1			; clear index

            5A         0C A041   D1  01F7   789 2$:	CMPL	RVT$L_UCBLST(R0)[R1],R10 ; compare UCBs

                          0A     13  01FC   790 	BEQLU	3$			; branch if match found

                          51     D6  01FE   791 	INCL	R1			; increment index

            51         0B A0     91  0200   792 	CMPB	RVT$B_NVOLS(R0),R1	; check end of list

                          F1     12  0204   793 	BNEQU	2$			; branch if not end

                          36     11  0206   794 	BRB	8$			; branch if end

            53         34 A9     D0  0208   795 3$:	MOVL	VCB$L_MVL(R9),R3	; address of MVL

            53            0C     C1  020C   796 	ADDL3	#MVL$K_FIXLEN,R3,R0	; set pointer to label entries

                          50         020F       

                          52     D4  0210   797 	CLRL	R2			; clear index

            51         06 A0     91  0212   798 4$:	CMPB	MVL$B_RVN(R0),R1	; is it same RVN ?

                          13     12  0216   799 	BNEQU	5$			; branch if not the same

            0F         07 A0     E9  0218   800 	BLBC	MVL$B_STATUS(R0),5$	; has this volume been mounted and verified ?

                          52     D6  021C   801 	INCL	R2			; relative numbers start at 1

       0088 C6            52     B0  021E   802 	MOVW	R2,FORM_W_RVN(R6)

            60            06     28  0223   803 	MOVC3	#MVL$S_VOLLBL,MVL$T_VOLLBL(R0),FORM_T_VOLNAME(R6)

                     009C C6         0226       

                                     0229   804 					; move label to list

                          13     11  0229   805 	BRB	8$

                          52     D6  022B   806 5$:	INCL	R2			; increment index

            50            08     C0  022D   807 	ADDL2	#MVL$K_LENGTH,R0

         0B A3            52     91  0230   808 	CMPB	R2,MVL$B_NVOLS(R3)	; end ?

                          DC     12  0234   809 	BNEQU	4$			; branch if not ???

            6E            00     2C  0236   810 	MOVC5	#0,(SP),#32,#6,FORM_T_VOLNAME(R6)

            06            20         0239       

                     009C C6         023B       

                                     023E   811 					; blank out label field 

                                     023E   812 8$:

                                     023E   813 

                                     023E   814 ; end of magtape device dependant code

                                     023E   815 

       0090 C6         3C A9     B0  023E   816 	MOVW	VCB$W_CLUSTER(R9),FORM_W_CLUSTER(R6)

                                     0244   817 					; CLUSTER FACTOR

         68 A6         40 A9     D0  0244   818 	MOVL	VCB$L_FREE(R9),FORM_L_FREE(R6)

                                     0249   819 					; FREE BLOCKS

       0094 C6         44 A9     D0  0249   820 	MOVL	VCB$L_MAXFILES(R9),FORM_L_MAXFILES(R6)

                                     024F   821 					; MAX. NUMBER OF FILES ALLOWED

       0080 C6         4C A9     B0  024F   822 	MOVW	VCB$W_MCOUNT(R9),FORM_W_MCOUNT(R6)

                                     0255   823 					; MOUNT COUNT

SHOW$DEVI_UTL   - SHOW DEVICES: UTILITY FUNCTIONS                21-AUG-1978 19:18:59   VAX-11 MACRO X0.3-11               Page  18

X001            DEVI_COPY_NEXT - COPY DEVICE DATA BASE                                                                           (4)



            50         10 A9     D0  0255   824 	MOVL	VCB$L_AQB(R9),R0	; GET AQB ADDRESS

                          27     13  0259   825 	BEQLU	10$			; branch if no AQB (foreign)

                     00A8 C6     94  025B   826 	CLRB	FORM_T_ACPNAME(R6)	; assume no ACP

            50         0C A0     3C  025F   827 	MOVZWL	AQB$L_ACPPID(R0),R0	; GET LOWER HALF OF ACP PROCESS ID

                          1D     13  0263   828 	BEQLU	10$			; one never knows !

            51   00000000'FF40   D0  0265   829 	MOVL	@SCH$GL_PCBVEC[R0],R1		; get pointer to PCB

                          03     BB  026D   830 	PUSHR	#^M<R0,R1>		; save for later check

         6C A1            10     28  026F   831 	MOVC3	#PCB$S_LNAME,PCB$T_LNAME(R1),FORM_T_ACPNAME(R6)

                     00A8 C6         0273       

                                     0276   832 					; COPY ACP PROCESS NAME

                          03     BA  0276   833 	POPR	#^M<R0,R1>		; restore registers

         60 A1            50     B1  0278   834 	CMPW	R0,PCB$L_PID(R1)	; still the same pid ?

                          04     13  027C   835 	BEQLU	10$			; branch if valid pid

                     00A8 C6     94  027E   836 	CLRB	FORM_T_ACPNAME(R6)	; clear process name

                                     0282   837 10$:

                                 05  0282   838 	RSB				; done

SHOW$DEVI_UTL   - SHOW DEVICES: UTILITY FUNCTIONS                21-AUG-1978 19:18:59   VAX-11 MACRO X0.3-11               Page  19

X001            DEVI_FORMAT - FORMAT AND PRINT DEVICE DATA                                                                       (5)



                                     0283   840 	.SBTTL	DEVI_FORMAT	- FORMAT AND PRINT DEVICE DATA

                                     0283   841 

                                     0283   842 ;++

                                     0283   843 ; FUNCTIONAL DESCRIPTION:

                                     0283   844 ;

                                     0283   845 ; 	Controls formatting and printing of device information previously

                                     0283   846 ;	copied into a scratch area, selecting information according to

                                     0283   847 ;	the /BRIEF or /FULL command qualifier specified.

                                     0283   848 ;

                                     0283   849 ;	As only minimal filtering has been done during the copy of information

                                     0283   850 ;	this routine has to perform any additional checks desired, such as

                                     0283   851 ;	device characteristics and, if a device name has been specified by the

                                     0283   852 ;	user, the physical unit number also needs to be verified here.

                                     0283   853 ;

                                     0283   854 ; CALLING SEQUENCE:

                                     0283   855 ;

                                     0283   856 ;		CALLS	#0,DEVI_FORMAT

                                     0283   857 ;

                                     0283   858 ; INPUT PARAMETERS:

                                     0283   859 ;

                                     0283   860 ;	DEVI_Q_SCRATCH	= pointer to start of copied area

                                     0283   861 ;	DEVI_L_SCRLIM	= limit of copied area

                                     0283   862 ;

                                     0283   863 ; IMPLICIT INPUTS:

                                     0283   864 ;

                                     0283   865 ;	NONE

                                     0283   866 ;

                                     0283   867 ; OUTPUT PARAMETERS:

                                     0283   868 ;

                                     0283   869 ;	NONE

                                     0283   870 ;

                                     0283   871 ; IMPLICIT OUTPUTS:

                                     0283   872 ;

                                     0283   873 ;	NONE

                                     0283   874 ;

                                     0283   875 ; COMPLETION CODES:

                                     0283   876 ;

                                     0283   877 ;	If anything is printed, flag DEVI_V_FIRSTL is cleared.

                                     0283   878 ;

                                     0283   879 ;	This flag is checked at the completion of the utility, in order

                                     0283   880 ;	to issue an error message when appropriate.

                                     0283   881 ;

                                     0283   882 ; SIDE EFFECTS:

                                     0283   883 ;

                                     0283   884 ;	NONE

                                     0283   885 ; REGISTER USAGE:

                                     0283   886 ;

                                     0283   887 ;	R0-R5	= scratch

                                     0283   888 ; 	R7	= limit of scratch area

                                     0283   889 ;	R6	= updated pointer to scratch area

                                     0283   890 ;	R11	= current pointer to scratch area

                                     0283   891 ;

                                     0283   892 ;

                                     0283   893 ;--

                                     0283   894 

                                 00000283   895 	.PSECT	SHOW$CODE	BYTE,RD,NOWRT,EXE

                                     0283   896 

SHOW$DEVI_UTL   - SHOW DEVICES: UTILITY FUNCTIONS                21-AUG-1978 19:18:59   VAX-11 MACRO X0.3-11               Page  20

X001            DEVI_FORMAT - FORMAT AND PRINT DEVICE DATA                                                                       (5)



                                     0283   897 DEVI_FORMAT:

                               0FC0  0283   898 	.WORD	^M<R6,R7,R8,R9,R10,R11>

                                     0285   899 

                                     0285   900 ;

                                     0285   901 ; initialize

                                     0285   902 ;

                                     0285   903 

            56       002B'CF     D0  0285   904 	MOVL	W^DEVI_Q_SCRATCH,R6	; pointer to scratch area

            57       0033'CF     D0  028A   905 	MOVL	W^DEVI_L_SCRLIM,R7	; limit of copied information

            50   00000000'8F     D0  028F   906 	MOVL	#SS$_NORMAL,R0		; assume success

                                     0296   907 

                                     0296   908 ;

                                     0296   909 ; process one UCB

                                     0296   910 ;

                                     0296   911 

                                     0296   912 10$:

            5B            56     D0  0296   913 	MOVL	R6,R11			; save pointer to scratch area

            56   000000C8 8F     C0  0299   914 	ADDL2	#FORM_K_LENGTH,R6	; check for overflow

            57            56     D1  02A0   915 	CMPL	R6,R7			; complete block left ?

                          03     1B  02A3   916 	BLEQU	12$			; BRANCH IF MORE

                          01FB   31  02A5   917 	BRW	90$			; GO EXIT

                                     02A8   918 12$:

                                     02A8   919 

                                     02A8   920 ;

                                     02A8   921 ; do we want to print this device ?

                                     02A8   922 ;

                                     02A8   923 

       0000'CF   00000000'8F     E1  02A8   924 	BBC	#DEVI$V_DEVN,W^DEVI$L_BITLIS,15$

                          0E         02B1       

                                     02B2   925 					; BRANCH IF NO SINGLE DEVICE

                     0000'CF     B5  02B2   926 	TSTW	W^DEVI$W_UNIT		; UNIT NUMBER SPECIFIED ?

                          08     19  02B6   927 	BLSS	15$			; BRANCH IF NO UNIT SPECIFIED

       0000'CF         04 AB     B1  02B8   928 	CMPW	FORM_W_UNIT(R11),W^DEVI$W_UNIT

                                     02BE   929 					; UNIT NUMBERS MATCH ?

                          D6     12  02BE   930 	BNEQU	10$			; IF NO, GET NEXT DEVICE INFO

                                     02C0   931 15$:

       0098 CB       0000'CF     CB  02C0   932 	BICL3	W^DEVI$L_CH_MSK,FORM_L_DEVCHAR(R11),R5

                          55         02C7       

                                     02C8   933 					; MASK OFF RELEVANT DEVICE CHARACTERISTICS

       0000'CF            55     D1  02C8   934 	CMPL	R5,W^DEVI$L_CH_CRIT	; DO CHARACTERISTICS MATCH ?

                          C7     12  02CD   935 	BNEQU	10$			; IF NO, GET NEXT DEVICE

                                     02CF   936 

                                     02CF   937 ;

                                     02CF   938 ; insert constants common to /BRIEF and /FULL  options

                                     02CF   939 ;

                                     02CF   940 

                                     02CF   941 

                                     02CF   942 ;

                                     02CF   943 ; get device name and blanks to skip

                                     02CF   944 ;

                                     02CF   945 

            6B       0000'CF     DE  02CF   946 	MOVAL	W^DEVI_T_DEVNAM,FORM_A_DEVNAM(R11)

                                     02D4   947 					; POINTER TO DEVICE NAME

            50       0000'CF     9A  02D4   948 	MOVZBL	W^DEVI_T_DEVNAM,R0	; GET LENGTH OF DEVICE NAME

            51         04 AB     3C  02D9   949 	MOVZWL	FORM_W_UNIT(R11),R1	; GET UNIT NUMBER

                                     02DD   950 151$:

                          50     D6  02DD   951 	INCL	R0			; COUNT NUMBER OF DIGITS

SHOW$DEVI_UTL   - SHOW DEVICES: UTILITY FUNCTIONS                21-AUG-1978 19:18:59   VAX-11 MACRO X0.3-11               Page  21

X001            DEVI_FORMAT - FORMAT AND PRINT DEVICE DATA                                                                       (5)



            51            0A     C6  02DF   952 	DIVL	#10,R1			; IN UNIT NUMBER

                          F9     12  02E2   953 	BNEQU	151$			;

         08 AB       01CC'CF     DE  02E4   954 	MOVAL	W^DEVI_T_CRLF,FORM_A_BLANKS(R11)

                                     02EA   955 					; ASSUME DEV NAME TOO LONG

            08            50     C3  02EA   956 	SUBL3	R0,#8,R0		; CALCULATE NUMBER OF BLANKS TO SKIP

                          50         02ED       

                          0B     1B  02EE   957 	BLEQU	16$			; SKIP IF NAME TOO LONG

       0010'CF            50     90  02F0   958 	MOVB	R0,W^DEVI_T_BLANKS	; INSERT NUMBER OF BLANKS TO SKIP

         08 AB       0010'CF     DE  02F5   959 	MOVAL	W^DEVI_T_BLANKS,FORM_A_BLANKS(R11)

                                     02FB   960 					; POINTER TO BLANK STRING

                                     02FB   961 16$:

                                     02FB   962 

                                     02FB   963 ;

                                     02FB   964 ;

                       0C AB     D4  02FB   965 	CLRL	FORM_A_DATE(R11)	; USE SYSTEM DATE AND TIME

            0C            00     3A  02FE   966 	LOCC	#0,#VOLNAME_LENGTH,FORM_T_VOLNAME(R11)

                     009C CB         0301       

                                     0304   967 					; find start of fill

            0C            50     C3  0304   968 	SUBL3	R0,#VOLNAME_LENGTH,FORM_Q_VOLNAME(R11)

                       60 AB         0307       

                                     0309   969 					; store length of volume name

         64 AB       009C CB     DE  0309   970 	MOVAL	FORM_T_VOLNAME(R11),FORM_Q_VOLNAME+4(R11)

                                     030F   971 					; BUILD DESCRIPTOR TO VOLUME LABEL

            50         10 AB     D0  030F   972 	MOVL	FORM_W_STS(R11),R0	; DEVICE STATUS

         10 AB       01A7'CF     DE  0313   973 	MOVAL	W^DEVI_T_ONLINE,FORM_W_STS(R11)

                                     0319   974 					; POINT TO 'ON LINE' TEXT

            50            04     E0  0319   975 	BBS	#UCB$V_ONLINE,R0,17$	; TEST ON LINE BIT

                          06         031C       

         10 AB       01B0'CF     DE  031D   976 	MOVAL	W^DEVI_T_OFFLINE,FORM_W_STS(R11)

                                     0323   977 					; DEVICE IS NOT ON LINE

                                     0323   978 17$:

       0000'CF   00000000'8F     E1  0323   979 	BBC	#DEVI$V_FULL,W^DEVI$L_BITLIS,18$

                          03         032C       

                          007F   31  032D   980 	BRW	50$		; BRANCH IF FULL LISTING REQUESTED

                                     0330   981 18$:

                                     0330   982 

                                     0330   983 ;

                                     0330   984 ; process /BRIEF listing option

                                     0330   985 ;

                                     0330   986 

       0037'CF            00     E1  0330   987 	BBC	#DEVI_V_FIRSTL,W^DEVI_L_FLAGS,20$

                          13         0335       

                                     0336   988 					; ANYTHING PRINTED YET ?

       0037'CF            01     CA  0336   989 	BICL	#DEVI_M_FIRSTL,W^DEVI_L_FLAGS

                                     033B   990 					; CLEAR FLAG FOR NOTHING PRINTED

                 00000000'8F     DD  033B   991 	PUSHL	#SHOW$_DEVBRITTL	; MESSAGE ID FOR TITLE

                       0C AB     DF  0341   992 	PUSHAL	FORM_A_DATE(R11)		; PARAMETER LIST

       0000'CF            02     FB  0344   993 	CALLS	#2,W^SHOW$PRINT_MSG	; PRINT TITLE

                                     0349   994 20$:

                                     0349   995 	EXPBITS	-			; BUILD DEVICE CHARACTERISTICS TEXT

                                     0349   996 		FORM_L_DEVCHAR(R11),-	; SOURCE BIT LIST

                                     0349   997 		BRIE_MSK_DEVCH,-	; MASK OFF RELEVANT BITS

                                     0349   998 		W^BRIE_DEVCH_TXT,-	; START OF TEXT TABLE

                                     0349   999 		W^DEVI_T_DEVCHAR,-	; TARGET TEXT BUFFER

                                     0349  1000 		BRIE_MAX_DEVCH		; MAX. NUMBER OF DEVICE CHARACTERISTICS

            51            02     78  0378  1001 	ASHL	#2,R1,FORM_A_DEVCHLIS(R11)

                       14 AB         037B       

SHOW$DEVI_UTL   - SHOW DEVICES: UTILITY FUNCTIONS                21-AUG-1978 19:18:59   VAX-11 MACRO X0.3-11               Page  22

X001            DEVI_FORMAT - FORMAT AND PRINT DEVICE DATA                                                                       (5)



         18 AB       001B'CF     DE  037D  1002 	MOVAL	W^DEVI_T_DEVCHAR,FORM_A_DEVCHLIS+4(R11)

                                     0383  1003 					; BUILD DESCRIPTOR TO RESULTANT TEXT BUFFER

       0098 CB            13     E1  0383  1004 	BBC	#DEV$V_MNT,FORM_L_DEVCHAR(R11),30$

                          16         0388       

                                     0389  1005 					; IF MNT CLEAR, NO VOLUME INFORMATION

       0098 CB            05     E1  0389  1006 	BBC	#DEV$V_SQD,FORM_L_DEVCHAR(R11),25$

                          08         038E       

                                     038F  1007 					; BRANCH IF NOT MAGTAPE

                 00000000'8F     DD  038F  1008 	PUSHL	#SHOW$_DEVBRITAP	; MESSAGE ID FOR MAGTAPE VOLUME INFO

                          0E     11  0395  1009 	BRB	40$			;

                                     0397  1010 25$:

                 00000000'8F     DD  0397  1011 	PUSHL	#SHOW$_DEVBRIVOL	; MESSAGE IDENTIFIER FOR VOLUME INFO

                          06     11  039D  1012 	BRB	40$			; GO PRINT

                                     039F  1013 30$:

                 00000000'8F     DD  039F  1014 	PUSHL	#SHOW$_DEVBRINOV	; MESSAGE ID WITHOUT VOLUME INFO

                                     03A5  1015 40$:

                          6B     DF  03A5  1016 	PUSHAL	FORM_A_DEVINFO(R11)	; POINTER TO PARAMETER LIST

       0000'CF            02     FB  03A7  1017 	CALLS 	#2,W^SHOW$PRINT_MSG	; PRINT LINE

                          FEE7   31  03AC  1018 	BRW	10$			; AND GO GET NEXT DEVICE

                                     03AF  1019 

                                     03AF  1020 ;

                                     03AF  1021 ; process /FULL listing option

                                     03AF  1022 ;

                                     03AF  1023 

                                     03AF  1024 50$:

       0037'CF            01     CA  03AF  1025 	BICL	#DEVI_M_FIRSTL,W^DEVI_L_FLAGS

                                     03B4  1026 					; CLEAR FLAG FOR NOTHING PRINTED

                                     03B4  1027 	EXPBITS	-			; BUILD LIST OF POINTERS TO DEVICE CHAR. TEXT

                                     03B4  1028 		FORM_L_DEVCHAR(R11),-	; SOURCE BIT LIST

                                     03B4  1029 		FULL_MSK_DEVCH,-	; mask off relevant bits

                                     03B4  1030 		W^FULL_DEVCH_TXT,-	; ADDRESS OF TEXT POINTER ARRAY

                                     03B4  1031 		FORM_A_DEVCHLIS+4(R11),-; TARGET ARRAY

                                     03B4  1032 		FULL_MAX_DEVCH		; MAXIMUM NUMBER OF DEVICE CHAR. TO LIST

         14 AB            51     D0  03E2  1033 	MOVL	R1,FORM_A_DEVCHLIS(R11)	; STORE NUMBER OF FAO PARAMETERS TO PRINT

            0A            51     C3  03E6  1034 	SUBL3	R1,#FULL_MAX_DEVCH,FORM_A_DEVCHLIS+4(R11)[R1]

                       18 AB41       03E9       

                                     03EC  1035 					; STORE NUMBER OF FAO PARAMETERS TO SKIP

         50 AB       00B8 CB     DE  03EC  1036 	MOVAL	FORM_T_LNAME(R11),FORM_L_LNAME(R11)

                                     03F2  1037 					; insert pointer to process name

                 00000000'8F     DD  03F2  1038 	PUSHL	#SHOW$_DEVFULNOV	; MESSAGE ID FOR DEVICE INFO

                          6B     DF  03F8  1039 	PUSHAL	FORM_A_DEVINFO(R11)	; PARAMETER LIST FOR DEVICE INFORMATION

       0000'CF            02     FB  03FA  1040 	CALLS 	#2,W^SHOW$PRINT_MSG	; GO PRINT INFO

                                     03FF  1041 

                                     03FF  1042 ;

                                     03FF  1043 ; SPECIAL CASE : MAGTAPE

                                     03FF  1044 ;

                                     03FF  1045 

       0098 CB            05     E1  03FF  1046 	BBC	#DEV$V_SQD,FORM_L_DEVCHAR(R11),51$

                          33         0404       

                                     0405  1047 					; branch if not  magtape

            05            08     EF  0405  1048 	EXTZV	#MT$V_DENSITY,#MT$S_DENSITY,FORM_L_DEVDEPEN(R11),R0

            50         5C AB         0408       

                                     040B  1049 					; extract density field from device dependant word

                       5C AB     D4  040B  1050 	CLRL	FORM_L_DEVDEPEN(R11)	; clear density

            03            50     D1  040E  1051 	CMPL	R0,#MT$K_NRZI_800	; is it 800 bpi ?

                          0A     12  0411  1052 	BNEQU 	501$			; no

         5C AB   00000320 8F     D0  0413  1053 	MOVL	#800,FORM_L_DEVDEPEN(R11) ; insert 800

SHOW$DEVI_UTL   - SHOW DEVICES: UTILITY FUNCTIONS                21-AUG-1978 19:18:59   VAX-11 MACRO X0.3-11               Page  23

X001            DEVI_FORMAT - FORMAT AND PRINT DEVICE DATA                                                                       (5)



                          0D     11  041B  1054 	BRB	505$			; and go print device dependant info

                                     041D  1055 501$:

            04            50     D1  041D  1056 	CMPL	R0,#MT$K_PE_1600	; is it 1600 bpi

                          16     12  0420  1057 	BNEQU	51$			; no relevand device dependant info

         5C AB   00000640 8F     D0  0422  1058 	MOVL	#1600,FORM_L_DEVDEPEN(R11) ; insert 1600

                                     042A  1059 505$:

                 00000000'8F     DD  042A  1060 	PUSHL	#SHOW$_DEVDEPTAP	; code for device dependant info

                       5C AB     DF  0430  1061 	PUSHAL	FORM_L_DEVDEPEN(R11)	; point to density

       0000'CF            02     FB  0433  1062 	CALLS	#2,W^SHOW$PRINT_MSG	; and print information

                                     0438  1063 

                                     0438  1064 ;

                                     0438  1065 ; PROCESS VOLUME INFORMATION, IF ANY

                                     0438  1066 ;

                                     0438  1067 

                                     0438  1068 51$:

       0098 CB            13     E0  0438  1069 	BBS	#DEV$V_MNT,FORM_L_DEVCHAR(R11),52$

                          03         043D       

                                     043E  1070 					; BRANCH IF VOLUME INFORMATION PRESENT

                          FE55   31  043E  1071 	BRW	10$			; go process next device

                                     0441  1072 52$:

       008C CB       00A8 CB     DE  0441  1073 	MOVAL	FORM_T_ACPNAME(R11),FORM_L_ACPNAME(R11)

                                     0448  1074 					; insert pointer to ACP process name

            50       0084 CB     90  0448  1075 	MOVB	FORM_B_STATUS(R11),R0	; SAVE VOLUME STATUS

       0084 CB       01C8'CF     DE  044D  1076 	MOVAL	W^DEVI_T_NULL_STR,FORM_B_STATUS(R11)

                                     0454  1077 					; assume no bits set

            50            07     E1  0454  1078 	BBC	#VCB$V_SYSTEM,R0,55$	; TEST FOR MOUNTED/SYSTEM

                          09         0457       

       0084 CB       01B9'CF     DE  0458  1079 	MOVAL	W^DEVI_T_SYSTEM,FORM_B_STATUS(R11)

                                     045F  1080 					; device is mounted /SYSTEM

                          0B     11  045F  1081 	BRB	60$

                                     0461  1082 55$:

            50            06     E1  0461  1083 	BBC	#VCB$V_GROUP,R0,60$	; TEST FOR MOUNTED/GROUP

                          07         0464       

       0084 CB       01C1'CF     DE  0465  1084 	MOVAL	W^DEVI_T_GROUP,FORM_B_STATUS(R11)

                                     046C  1085 					; device is mounted /GROUP

                                     046C  1086 60$:

       0098 CB            05     E0  046C  1087 	BBS	#DEV$V_SQD,FORM_L_DEVCHAR(R11),70$

                          20         0471       

                                     0472  1088 						; BRANCH IF MAGTAPE

                 00000000'8F     DD  0472  1089 	PUSHL	#SHOW$_DEVFULVO1	; MESSAGE ID FOR VOLUME INFORMATION

                       60 AB     DF  0478  1090 	PUSHAL	FORM_A_VOLINF1(R11)	; PARAMETER LIST FOR VOLUME INFORMATION

       0000'CF            02     FB  047B  1091 	CALLS	#2,W^SHOW$PRINT_MSG	; AND PRINT IT

                 00000000'8F     DD  0480  1092 	PUSHL	#SHOW$_DEVFULVO2	; IN 2 PARTS BECAUSE OF MARS LIMITATIONS

                     0084 CB     DF  0486  1093 	PUSHAL	FORM_A_VOLINF2(R11)	;

       0000'CF            02     FB  048A  1094 	CALLS 	#2,W^SHOW$PRINT_MSG	;

                          FE04   31  048F  1095 	BRW	10$			; GOT FOR NEXT DEVICE

                                     0492  1096 70$:

                 00000000'8F     DD  0492  1097 	PUSHL	#SHOW$_DEVFULTAP	; FULL VOLUME INFO FOR MAGTAPE

                       60 AB     DF  0498  1098 	PUSHAL	FORM_A_VOLINF1(R11)	; PARAMETER LIST FOR VOLUME INFO

       0000'CF            02     FB  049B  1099 	CALLS	#2,W^SHOW$PRINT_MSG	; AND GO PRINT MESSAGE

                          FDF3   31  04A0  1100 	BRW	10$			; TRY NEXT DEVICE

                                     04A3  1101 

                                     04A3  1102 ;

                                     04A3  1103 ; exit

                                     04A3  1104 ;

                                     04A3  1105 

                                     04A3  1106 90$:

SHOW$DEVI_UTL   - SHOW DEVICES: UTILITY FUNCTIONS                21-AUG-1978 19:18:59   VAX-11 MACRO X0.3-11               Page  24

X001            DEVI_FORMAT - FORMAT AND PRINT DEVICE DATA                                                                       (5)



            50   00000000'8F     D0  04A3  1107 	MOVL	#SS$_NORMAL,R0		; indicate success

                                 04  04AA  1108 	RET

                                     04AB  1109 	.END

SHOW$DEVI_UTL   - SHOW DEVICES: UTILITY FUNCTIONS                21-AUG-1978 19:18:59   VAX-11 MACRO X0.3-11               Page  25

SYMBOL TABLE                                                                                                                     (5)



$$$            = 00000100 R     04   DEV$M_ODV      = 08000000            DEVI_FORMAT      00000283 R     05   

AQB$B_ACPTYPE    00000015            DEV$M_RCK      = 40000000            DEVI_L_FLAGS     00000037 R     03   

AQB$B_CLASS      00000016            DEV$M_REC      = 00000001            DEVI_L_SCRLIM    00000033 R     03   

AQB$B_MNTCNT     0000000B            DEV$M_RND      = 10000000            DEVI_M_FIRSTL  = 00000001            

AQB$B_STATUS     00000014            DEV$M_RTM      = 20000000            DEVI_Q_SCRATCH   0000002B R     03   

AQB$B_TYPE       0000000A            DEV$M_SDI      = 00000010            DEVI_T_BLANKS    00000010 R     03   

AQB$C_LENGTH     00000018            DEV$M_SHR      = 00010000            DEVI_T_CRLF      000001CC R     04   

AQB$K_F11V1    = 00000001            DEV$M_SPL      = 00000040            DEVI_T_DEVCHAR   0000001B R     03   

AQB$K_F11V2    = 00000002            DEV$M_SQD      = 00000020            DEVI_T_DEVNAM    00000000 R     03   

AQB$K_LENGTH     00000018            DEV$M_SWL      = 02000000            DEVI_T_GROUP     000001C1 R     04   

AQB$K_MTA      = 00000003            DEV$M_TRM      = 00000004            DEVI_T_NULL_STR  000001C8 R     04   

AQB$K_NET      = 00000004            DEV$M_WCK      = 80000000            DEVI_T_OFFLINE   000001B0 R     04   

AQB$K_UNDEFINED= 00000000            DEV$V_ALL      = 00000017            DEVI_T_ONLINE    000001A7 R     04   

AQB$L_ACPPID     0000000C            DEV$V_AVL      = 00000012            DEVI_T_SYSTEM    000001B9 R     04   

AQB$L_ACPQBL     00000004            DEV$V_CCL      = 00000001            DEVI_V_FIRSTL  = 00000000            

AQB$L_ACPQFL     00000000            DEV$V_DIR      = 00000003            FORM_A_BLANKS    00000008            

AQB$L_LINK       00000010            DEV$V_DMT      = 00000015            FORM_A_DATE      0000000C            

AQB$M_CREATING = 00000008            DEV$V_ELG      = 00000016            FORM_A_DEVCHLIS  00000014            

AQB$M_DEFCLASS = 00000002            DEV$V_FOD      = 0000000E            FORM_A_DEVINFO   00000000            

AQB$M_DEFSYS   = 00000004            DEV$V_FOR      = 00000018            FORM_A_DEVNAM    00000000            

AQB$M_UNIQUE   = 00000001            DEV$V_GEN      = 00000011            FORM_A_VOLINF1   00000060            

AQB$V_CREATING = 00000003            DEV$V_IDV      = 0000001A            FORM_A_VOLINF2   00000084            

AQB$V_DEFCLASS = 00000001            DEV$V_MBX      = 00000014            FORM_B_STATUS    00000084            

AQB$V_DEFSYS   = 00000002            DEV$V_MNT      = 00000013            FORM_K_LENGTH    000000C8            

AQB$V_UNIQUE   = 00000000            DEV$V_NET      = 0000000D            FORM_L_ACPNAME   0000008C            

AQB$W_SIZE       00000008            DEV$V_ODV      = 0000001B            FORM_L_DEVCHAR   00000098            

BIT...         = 00000001            DEV$V_RCK      = 0000001E            FORM_L_DEVDEPEN  0000005C            

BRIE_DEVCH_TXT   00000000 R     04   DEV$V_REC      = 00000000            FORM_L_FREE      00000068            

BRIE_MAX_DEVCH = 00000004            DEV$V_RND      = 0000001C            FORM_L_LNAME     00000050            

BRIE_MSK_DEVCH = 01A80040            DEV$V_RTM      = 0000001D            FORM_L_MAXFILES  00000094            

CHECK_DDB_DONE   00000135 R     05   DEV$V_SDI      = 00000004            FORM_L_OPCNT     0000004C            

COPY_UCB         0000015A R     05   DEV$V_SHR      = 00000010            FORM_L_PID       00000048            

COPY_VCB         000001C3 R     05   DEV$V_SPL      = 00000006            FORM_Q_VOLNAME   00000060            

DDB$B_ACPCLASS   00000013            DEV$V_SQD      = 00000005            FORM_T_ACPNAME   000000A8            

DDB$B_TYPE       0000000A            DEV$V_SWL      = 00000019            FORM_T_LNAME     000000B8            

DDB$C_LENGTH     00000034            DEV$V_TRM      = 00000002            FORM_T_VOLNAME   0000009C            

DDB$K_LENGTH     00000034            DEV$V_WCK      = 0000001F            FORM_W_CLUSTER   00000090            

DDB$L_ACPD       00000010            DEVCH_T_ALL      0000015D R     04   FORM_W_DEVBUFSZ  00000058            

DDB$L_DDT        0000000C            DEVCH_T_AVL      0000012E R     04   FORM_W_ERRCNT    00000044            

DDB$L_LINK       00000000            DEVCH_T_DMT      00000146 R     04   FORM_W_GRP       00000070            

DDB$L_UCB        00000004            DEVCH_T_ELG      0000018E R     04   FORM_W_MCOUNT    00000080            

DDB$T_DRVNAME    00000024            DEVCH_T_FOR      0000016A R     04   FORM_W_MEM       00000074            

DDB$T_NAME       00000014            DEVCH_T_GEN      00000123 R     04   FORM_W_RECORDSZ  0000006C            

DDB$W_SIZE       00000008            DEVCH_T_MBX      0000010B R     04   FORM_W_REFC      00000054            

DEV$M_ALL      = 00800000            DEVCH_T_MNT      0000013B R     04   FORM_W_RVN       00000088            

DEV$M_AVL      = 00040000            DEVCH_T_SHR      00000116 R     04   FORM_W_STS       00000010            

DEV$M_CCL      = 00000002            DEVCH_T_SPL      00000100 R     04   FORM_W_TRANS     00000078            

DEV$M_DIR      = 00000008            DEVCH_T_SWL      00000175 R     04   FORM_W_UNIT      00000004            

DEV$M_DMT      = 00200000            DEVI$L_BITLIS    ********   X   05   FORM_W_VPROT     0000007C            

DEV$M_ELG      = 00400000            DEVI$L_CH_CRIT   ********   X   05   FULL_DEVCH_TXT   00000080 R     04   

DEV$M_FOD      = 00004000            DEVI$L_CH_MSK    ********   X   05   FULL_MAX_DEVCH = 0000000A            

DEV$M_FOR      = 01000000            DEVI$Q_DEVNAM    ********   X   05   FULL_MSK_DEVCH = 03EA0040            

DEV$M_GEN      = 00020000            DEVI$V_DEVN      ********   X   05   GBL...         = 00000000            

DEV$M_IDV      = 04000000            DEVI$V_FULL      ********   X   05   IOC$GL_DEVLIST   ********   X   05   

DEV$M_MBX      = 00100000            DEVI$W_UNIT      ********   X   05   MAX_DDBS_DONE  = 00000040            

DEV$M_MNT      = 00080000            DEVI_COPY_NEXT   00000060 R     05   MT$K_CORDMP11  = 0000000D            

DEV$M_NET      = 00002000            DEVI_DDBS_DONE   0000003B R     03   MT$K_DEFAULT   = 00000000            

SHOW$DEVI_UTL   - SHOW DEVICES: UTILITY FUNCTIONS                21-AUG-1978 19:18:59   VAX-11 MACRO X0.3-11               Page  26

SYMBOL TABLE                                                                                                                     (5)



MT$K_NORMAL11  = 0000000C            PCB$L_STS        00000028            PR$_KSP        = 00000000            

MT$K_NORMAL15  = 0000000E            PCB$L_UIC        00000020            PR$_MAPEN      = 00000038            

MT$K_NRZI_800  = 00000003            PCB$L_WSSWP      00000024            PR$_NICR       = 00000019            

MT$K_PE_1600   = 00000004            PCB$L_WTIME      0000002C            PR$_P0BR       = 00000008            

MT$M_BOT       = 00010000            PCB$S_LNAME    = 00000010            PR$_P0LR       = 00000009            

MT$M_DENSITY   = 00001F00            PCB$T_LNAME      0000006C            PR$_P1BR       = 0000000A            

MT$M_EOF       = 00020000            PCB$V_ASTPEN   = 00000011            PR$_P1LR       = 0000000B            

MT$M_EOT       = 00040000            PCB$V_BATCH    = 0000000E            PR$_PCBB       = 00000010            

MT$M_FORMAT    = 000000F0            PCB$V_DELPEN   = 00000001            PR$_PME        = 0000003D            

MT$M_HWL       = 00080000            PCB$V_FORCPEN  = 00000002            PR$_RXCS       = 00000020            

MT$M_LOST      = 00100000            PCB$V_HIBER    = 00000013            PR$_RXDB       = 00000021            

MT$M_PARITY    = 00000008            PCB$V_INQUAN   = 00000003            PR$_SBIER      = 00000034            

MT$S_DENSITY   = 00000005            PCB$V_LOGIN    = 00000014            PR$_SBIFS      = 00000030            

MT$S_FORMAT    = 00000004            PCB$V_NETWRK   = 00000015            PR$_SBIMT      = 00000033            

MT$V_BOT       = 00000010            PCB$V_NOACNT   = 0000000F            PR$_SBIQC      = 00000036            

MT$V_DENSITY   = 00000008            PCB$V_NODELET  = 00000017            PR$_SBIS       = 00000031            

MT$V_EOF       = 00000011            PCB$V_PHDRES   = 00000012            PR$_SBISC      = 00000032            

MT$V_EOT       = 00000012            PCB$V_PSWAPM   = 00000004            PR$_SBITA      = 00000035            

MT$V_FORMAT    = 00000004            PCB$V_PWRAST   = 00000016            PR$_SBR        = 0000000C            

MT$V_HWL       = 00000013            PCB$V_RES      = 00000000            PR$_SCBB       = 00000011            

MT$V_LOST      = 00000014            PCB$V_RESPEN   = 00000005            PR$_SID        = 0000003E            

MT$V_PARITY    = 00000003            PCB$V_SSFEXC   = 00000006            PR$_SIRR       = 00000014            

MVL$B_NVOLS      0000000B            PCB$V_SSFEXCE  = 00000007            PR$_SISR       = 00000015            

MVL$B_RVN        00000006            PCB$V_SSFEXCS  = 00000008            PR$_SLR        = 0000000D            

MVL$B_STATUS     00000007            PCB$V_SSFEXCU  = 00000009            PR$_SSP        = 00000002            

MVL$B_TYPE       0000000A            PCB$V_SSRWAIT  = 0000000A            PR$_TBIA       = 00000039            

MVL$C_FIXLEN     0000000C            PCB$V_SUSPEN   = 0000000B            PR$_TBIS       = 0000003A            

MVL$C_LENGTH     00000008            PCB$V_SWPVBN   = 00000010            PR$_TODR       = 0000001B            

MVL$K_FIXLEN     0000000C            PCB$V_WAKEPEN  = 0000000C            PR$_TXCS       = 00000022            

MVL$K_LENGTH     00000008            PCB$V_WALL     = 0000000D            PR$_TXDB       = 00000023            

MVL$L_VCB        00000000            PCB$W_APTCNT     00000034            PR$_USP        = 00000003            

MVL$S_VOLLBL   = 00000006            PCB$W_ASTCNT     0000003C            PR$_WCSA       = 0000002C            

MVL$T_VOLLBL     00000000            PCB$W_BIOCNT     0000003E            PR$_WCSD       = 0000002D            

MVL$V_MOUNTED  = 00000000            PCB$W_BIOLM      00000040            PROGRAM_REGION = 00000000            

MVL$W_SIZE       00000008            PCB$W_BYTCNT     00000042            RVT$B_NVOLS      0000000B            

PCB$B_ASTACT     0000000C            PCB$W_BYTLM      00000068            RVT$B_TYPE       0000000A            

PCB$B_ASTEN      0000000D            PCB$W_DIOCNT     00000044            RVT$C_LENGTH     00000010            

PCB$B_PRI        0000000B            PCB$W_DIOLM      00000046            RVT$K_LENGTH     00000010            

PCB$B_PRIB       00000033            PCB$W_FILCNT     00000048            RVT$L_UCBLST     0000000C            

PCB$B_TYPE       0000000A            PCB$W_GPGCNT     00000038            RVT$W_SIZE       00000008            

PCB$B_WEFC       00000032            PCB$W_GRP        00000022            SCH$GL_CURPCB    ********   X   05   

PCB$C_LENGTH     0000007C            PCB$W_MEM        00000020            SCH$GL_PCBVEC    ********   X   05   

PCB$K_LENGTH     0000007C            PCB$W_MTXCNT     0000000E            SCH$IOLOCKR      ********   X   05   

PCB$L_ASTQBL     00000014            PCB$W_PPGCNT     0000003A            SCH$IOUNLOCK     ********   X   05   

PCB$L_ASTQFL     00000010            PCB$W_PRCCNT     0000006A            SCRATCH_PAGES  = 00000020            

PCB$L_EFC2P      00000058            PCB$W_SIZE       00000008            SHOW$DEVI_UTL    00000000 RG    05   

PCB$L_EFC3P      0000005C            PCB$W_STATE      00000030            SHOW$PRINT_MSG   ********   X   05   

PCB$L_EFCS       00000050            PCB$W_TMBU       00000036            SHOW$_BADLOGIC = 00781122            

PCB$L_EFCU       00000054            PCB$W_TQCNT      0000004A            SHOW$_DEVBRINOV  ********   X   05   

PCB$L_EFWM       0000004C            PR$_ACCR       = 00000029            SHOW$_DEVBRITAP  ********   X   05   

PCB$L_OWNER      0000001C            PR$_ACCS       = 00000028            SHOW$_DEVBRITTL  ********   X   05   

PCB$L_PHD        00000064            PR$_ASTLVL     = 00000013            SHOW$_DEVBRIVOL  ********   X   05   

PCB$L_PHYPCB     00000018            PR$_ESP        = 00000001            SHOW$_DEVDEPTAP  ********   X   05   

PCB$L_PID        00000060            PR$_ICCS       = 00000018            SHOW$_DEVFULNOV  ********   X   05   

PCB$L_PQB        0000004C            PR$_ICR        = 0000001A            SHOW$_DEVFULTAP  ********   X   05   

PCB$L_SQBL       00000004            PR$_IPL        = 00000012            SHOW$_DEVFULVO1  ********   X   05   

PCB$L_SQFL       00000000            PR$_ISP        = 00000004            SHOW$_DEVFULVO2  ********   X   05   

SHOW$DEVI_UTL   - SHOW DEVICES: UTILITY FUNCTIONS                21-AUG-1978 19:18:59   VAX-11 MACRO X0.3-11               Page  27

SYMBOL TABLE                                                                                                                     (5)



SHOW$_NOSUCHDEV  ********   X   05   SHR$_NOWILD    = 00001128            SYS$CMKRNL       ********   X   05   

SHR$K_SHRDEF   = 00000001            SHR$_OPENIN    = 00001098            SYS$EXPREG       ********   X   05   

SHR$_ABEND     = 000010D8            SHR$_OPENOUT   = 000010A0            UCB$B_AMOD       00000053            

SHR$_ABENDD    = 000010E0            SHR$_OVERLAY   = 000010A8            UCB$B_CEX        00000077            

SHR$_ABENDT    = 000010E8            SHR$_PARSEFAIL = 00001248            UCB$B_CM1        0000004A            

SHR$_APPENDEDB = 00001000            SHR$_PURGEVER  = 00001210            UCB$B_CM2        0000004B            

SHR$_APPENDEDR = 00001008            SHR$_READERR   = 000010B0            UCB$B_DEVCLASS   00000038            

SHR$_ATPC      = 00001158            SHR$_RELCONCAT = 00001140            UCB$B_DEVTYPE    00000039            

SHR$_BADBYTE   = 00001010            SHR$_REPLACED  = 000010B8            UCB$B_DIPL       00000052            

SHR$_BADCOPIES = 00001160            SHR$_RMSERROR  = 000011C8            UCB$B_DX_SCTCNT  000000A6            

SHR$_BADDELIM  = 00001118            SHR$_SEARCHFAIL= 00001238            UCB$B_ERTCNT     00000070            

SHR$_BADFIELD  = 00001018            SHR$_SYNTAX    = 000010F8            UCB$B_ERTMAX     00000071            

SHR$_BADFORM   = 00001168            SHR$_SYSERROR  = 000011B0            UCB$B_ESCAPE     0000004B            

SHR$_BADJOBID  = 00001170            SHR$_SYSERRORPC= 000010F0            UCB$B_FEX        00000076            

SHR$_BADJOBNAME= 00001178            SHR$_TEXT      = 00001130            UCB$B_FIPL       0000000B            

SHR$_BADKEY    = 00001108            SHR$_UNXPCTSTS = 000011D0            UCB$B_LOCSRV     0000003C            

SHR$_BADLOGIC  = 00001120            SHR$_VALERR    = 000011E8            UCB$B_OFFNDX     00000094            

SHR$_BADLOGICPC= 00001150            SHR$_WILDCONCAT= 000010C0            UCB$B_OFFRTC     00000095            

SHR$_BADLONG   = 00001020            SHR$_WILDOUTVER= 000010C8            UCB$B_REMSRV     0000003D            

SHR$_BADPRTY   = 00001180            SHR$_WRITEERR  = 000010D0            UCB$B_SECTORS    0000003C            

SHR$_BADQNAME  = 00001188            SS$_NORMAL       ********   X   05   UCB$B_SLAVE      00000074            

SHR$_BADTIME   = 00001190            SS$_NOSUCHDEV    ********   X   05   UCB$B_SPR        00000075            

SHR$_BADVALUE  = 00001110            STS$K_ERROR    = 00000002            UCB$B_STATE      00000052            

SHR$_BADWORD   = 00001028            STS$K_INFO     = 00000003            UCB$B_TRACKS     0000003D            

SHR$_BEGIN     = 00001030            STS$K_SEVERE   = 00000004            UCB$B_TYPE       0000000A            

SHR$_BEGIND    = 00001038            STS$K_SUCCESS  = 00000001            UCB$B_VERTSZ     0000003F            

SHR$_BEGINT    = 00001040            STS$K_WARNING  = 00000000            UCB$C_LENGTH     00000074            

SHR$_CLICB     = 00001048            STS$M_CODE     = 00007FF8            UCB$C_LOGLNK   = 00000001            

SHR$_CLOSEDEL  = 00001218            STS$M_COND_ID  = 0FFFFFF8            UCB$K_LENGTH     00000074            

SHR$_CLOSEIN   = 00001050            STS$M_CONTROL  = F0000000            UCB$L_AMB        00000054            

SHR$_CLOSEOUT  = 00001058            STS$M_CUST_DEF = 08000000            UCB$L_ASTQBL     00000010            

SHR$_CONFDEL   = 000011F8            STS$M_FAC_NO   = 0FFF0000            UCB$L_ASTQFL     0000000C            

SHR$_COPIEDB   = 00001060            STS$M_FAC_SP   = 00008000            UCB$L_CPID       0000005C            

SHR$_COPIEDR   = 00001068            STS$M_INHIB_MSG= 10000000            UCB$L_CRB        00000020            

SHR$_CREATED   = 00001070            STS$M_MSG_NO   = 0000FFF8            UCB$L_DDB        00000024            

SHR$_DELETED   = 00001200            STS$M_SEVERITY = 00000007            UCB$L_DEVCHAR    00000034            

SHR$_DELINTERR = 00001240            STS$M_SUCCESS  = 00000001            UCB$L_DEVDEPEND  0000003C            

SHR$_DELVER    = 00001208            STS$S_CODE     = 0000000C            UCB$L_DPC        00000080            

SHR$_DIRTOOBUS = 00001220            STS$S_COND_ID  = 00000019            UCB$L_DUETIM     0000005C            

SHR$_ENDED     = 00001078            STS$S_CONTROL  = 00000004            UCB$L_DX_BFPNT   0000009C            

SHR$_ENDEDD    = 00001080            STS$S_CUST_DEF = 00000001            UCB$L_DX_BUF     00000098            

SHR$_ENDEDT    = 00001088            STS$S_FAC_NO   = 0000000C            UCB$L_DX_RXDB    000000A0            

SHR$_FILNOTDEL = 000011F0            STS$S_FAC_SP   = 00000001            UCB$L_EMB        00000078            

SHR$_FILNOTPUR = 00001230            STS$S_INHIB_MSG= 00000001            UCB$L_FIRST      00000014            

SHR$_FILPURGED = 00001250            STS$S_MSG_NO   = 0000000D            UCB$L_FPC        0000000C            

SHR$_HASHCONCAT= 000011D8            STS$S_SEVERITY = 00000003            UCB$L_FQBL       00000004            

SHR$_HIGHVER   = 00001148            STS$S_SUCCESS  = 00000001            UCB$L_FQFL       00000000            

SHR$_IDXCONCAT = 00001138            STS$V_CODE     = 00000003            UCB$L_FR3        00000010            

SHR$_INCOMPAT  = 000011E0            STS$V_COND_ID  = 00000003            UCB$L_FR4        00000014            

SHR$_NEWFILES  = 00001090            STS$V_CONTROL  = 0000001C            UCB$L_IOQBL      00000044            

SHR$_NOFILPURG = 00001228            STS$V_CUST_DEF = 0000001B            UCB$L_IOQFL      00000040            

SHR$_NOJOBID   = 000011A0            STS$V_FAC_NO   = 00000010            UCB$L_IRP        0000004C            

SHR$_NOJOBNAME = 000011A8            STS$V_FAC_SP   = 0000000F            UCB$L_LINK       0000002C            

SHR$_NOQUEUE   = 00001198            STS$V_INHIB_MSG= 0000001C            UCB$L_LOGADR     00000064            

SHR$_NOTCMPLT  = 000011C0            STS$V_MSG_NO   = 00000003            UCB$L_MAXBLOCK   00000084            

SHR$_NOTCOPIED = 000011B8            STS$V_SEVERITY = 00000000            UCB$L_MEDIA      0000008C            

SHR$_NOVALUE   = 00001100            STS$V_SUCCESS  = 00000000            UCB$L_NT_DATSSB  00000074            

SHOW$DEVI_UTL   - SHOW DEVICES: UTILITY FUNCTIONS                21-AUG-1978 19:18:59   VAX-11 MACRO X0.3-11               Page  28

SYMBOL TABLE                                                                                                                     (5)



UCB$L_NT_INTSSB  00000078            UCB$V_NT_BFROVF= 00000002            VCB$C_LENGTH     00000054            

UCB$L_OPCNT      00000060            UCB$V_NT_BREAK = 00000005            VCB$C_MRKLEN     0000000B            

UCB$L_OWNUIC     0000001C            UCB$V_NT_NAME  = 00000004            VCB$K_COMLEN     00000024            

UCB$L_PID        00000028            UCB$V_ONLINE   = 00000004            VCB$K_LENGTH     00000054            

UCB$L_RQBL       00000004            UCB$V_POWER    = 00000005            VCB$K_MRKLEN     0000000B            

UCB$L_RQFL       00000000            UCB$V_PRMMBX   = 00000000            VCB$L_AQB        00000010            

UCB$L_SVAPTE     00000068            UCB$V_SEGFLO   = 00000002            VCB$L_BLOCKBL    00000004            

UCB$L_SVPN       00000064            UCB$V_TIM      = 00000000            VCB$L_BLOCKFL    00000000            

UCB$L_TTCHAR     0000003C            UCB$V_TIMOUT   = 00000006            VCB$L_CUR_FID    00000024            

UCB$L_VCB        00000030            UCB$V_TT_NOTIF = 00000002            VCB$L_FCBBL      00000004            

UCB$M_BACKP    = 00000020            UCB$V_TT_TIMO  = 00000001            VCB$L_FCBFL      00000000            

UCB$M_BSY      = 00000100            UCB$V_UNLOAD   = 0000000C            VCB$L_FREE       00000040            

UCB$M_CANCEL   = 00000008            UCB$V_VALID    = 0000000B            VCB$L_HOME2LBN   00000028            

UCB$M_DEADMO   = 00000400            UCB$W_BCNT       0000006E            VCB$L_HOMELBN    00000024            

UCB$M_DELMBX   = 00000002            UCB$W_BCR        00000096            VCB$L_IBMAPLBN   00000030            

UCB$M_DIAGBUF  = 00000002            UCB$W_BOFF       0000006C            VCB$L_IXHDR2LBN  0000002C            

UCB$M_DX_WRITE = 00000008            UCB$W_BUFQUO     00000018            VCB$L_MAXFILES   00000044            

UCB$M_ECC      = 00000001            UCB$W_BYTESTOGO  0000003E            VCB$L_MVL        00000034            

UCB$M_ERLOGIP  = 00000004            UCB$W_CHARGE     0000004A            VCB$L_RVT        00000020            

UCB$M_INT      = 00000002            UCB$W_CYLINDERS  0000003E            VCB$L_SBMAPLBN   00000034            

UCB$M_INTTYPE  = 00000080            UCB$W_DA         0000008C            VCB$L_START_FID  00000028            

UCB$M_JOB      = 00000001            UCB$W_DC         0000008E            VCB$L_ST_RECORD  00000030            

UCB$M_MOUNTING = 00000200            UCB$W_DEVBUFSIZ  0000003A            VCB$L_USRLBLAST  00000044            

UCB$M_NOCNVRT  = 00000004            UCB$W_DEVSTS     0000005A            VCB$L_VPBL       00000040            

UCB$M_NT_BFROVF= 00000004            UCB$W_DIRSEQ     00000088            VCB$L_VPFL       0000003C            

UCB$M_NT_BREAK = 00000020            UCB$W_DSTADDR    00000018            VCB$L_WCB        00000038            

UCB$M_NT_NAME  = 00000010            UCB$W_DX_BCR     000000A4            VCB$M_CANCELIO = 00000020            

UCB$M_ONLINE   = 00000010            UCB$W_EC1        00000090            VCB$M_MUSTCLOSE= 00000040            

UCB$M_POWER    = 00000020            UCB$W_EC2        00000092            VCB$M_NOWRITE  = 00000080            

UCB$M_PRMMBX   = 00000001            UCB$W_ERRCNT     00000072            VCB$M_WAIMOUVOL= 00000004            

UCB$M_TIM      = 00000001            UCB$W_FUNC       0000007E            VCB$M_WAIREWIND= 00000008            

UCB$M_TIMOUT   = 00000040            UCB$W_MB_SEED    FFFFFFFC            VCB$M_WAIUSRLBL= 00000010            

UCB$M_TT_NOTIF = 00000004            UCB$W_MSGCNT     00000016            VCB$T_QNAME      0000000C            

UCB$M_TT_TIMO  = 00000002            UCB$W_MSGMAX     00000014            VCB$T_VOLNAME    00000014            

UCB$M_UNLOAD   = 00001000            UCB$W_NT_CHAN    0000007C            VCB$V_CANCELIO = 00000005            

UCB$M_VALID    = 00000800            UCB$W_OFFSET     0000008A            VCB$V_EBCDIC   = 00000005            

UCB$S_LNKPRI   = 00000002            UCB$W_REFC       00000050            VCB$V_EXTFID   = 00000005            

UCB$S_LTYPE    = 00000002            UCB$W_SIZE       00000008            VCB$V_GROUP    = 00000006            

UCB$T_PARTNER    0000000C            UCB$W_SRCADDR    0000001A            VCB$V_HOMBLKBAD= 00000002            

UCB$V_BACKP    = 00000005            UCB$W_STS        00000058            VCB$V_IDXHDRBAD= 00000003            

UCB$V_BSY      = 00000008            UCB$W_UNIT       00000048            VCB$V_INTCHG   = 00000004            

UCB$V_CANCEL   = 00000003            UCB$W_VPROT      0000001A            VCB$V_LOGICEOVS= 00000001            

UCB$V_DEADMO   = 0000000A            USER_MODE      = 00000003            VCB$V_MUSTCLOSE= 00000006            

UCB$V_DELMBX   = 00000001            VCB$B_CUR_RVN    0000002F            VCB$V_NOALLOC  = 00000004            

UCB$V_DIAGBUF  = 00000001            VCB$B_EOFDELTA   0000004E            VCB$V_NOWRITE  = 00000007            

UCB$V_DX_WRITE = 00000003            VCB$B_IBMAPSIZE  00000038            VCB$V_OVRACC   = 00000001            

UCB$V_ECC      = 00000000            VCB$B_IBMAPVBN   0000003A            VCB$V_OVREXP   = 00000000            

UCB$V_ERLOGIP  = 00000002            VCB$B_LRU_LIM    00000049            VCB$V_OVRLBL   = 00000002            

UCB$V_INT      = 00000001            VCB$B_QNAMECNT   0000000B            VCB$V_OVRSETID = 00000003            

UCB$V_INTTYPE  = 00000007            VCB$B_RESFILES   0000004F            VCB$V_PARTFILE = 00000000            

UCB$V_JOB      = 00000000            VCB$B_SBMAPSIZE  00000039            VCB$V_STARFILE = 00000008            

UCB$V_LNKPRI   = 00000006            VCB$B_SBMAPVBN   0000003B            VCB$V_SYSTEM   = 00000007            

UCB$V_LTYPE    = 00000000            VCB$B_STATUS     0000000B            VCB$V_WAIMOUVOL= 00000002            

UCB$V_MOUNTING = 00000009            VCB$B_TM         0000002E            VCB$V_WAIREWIND= 00000003            

UCB$V_MSGACK   = 00000004            VCB$B_TYPE       0000000A            VCB$V_WAIUSRLBL= 00000004            

UCB$V_MSGFLO   = 00000003            VCB$B_WINDOW     00000048            VCB$V_WRITE_IF = 00000000            

UCB$V_NOCNVRT  = 00000002            VCB$C_COMLEN     00000024            VCB$V_WRITE_SM = 00000001            

SHOW$DEVI_UTL   - SHOW DEVICES: UTILITY FUNCTIONS                21-AUG-1978 19:18:59   VAX-11 MACRO X0.3-11               Page  29

SYMBOL TABLE                                                                                                                     (5)



VCB$W_CLUSTER    0000003C            

VCB$W_CUR_NUM    00000024            

VCB$W_CUR_SEQ    00000026            

VCB$W_EXTEND     0000003E            

VCB$W_FILEPROT   0000004A            

VCB$W_MCOUNT     0000004C            

VCB$W_MODE       0000002C            

VCB$W_RECORDSZ   00000050            

VCB$W_RVN        0000000E            

VCB$W_SIZE       00000008            

VCB$W_START_NUM  00000028            

VCB$W_START_SEQ  0000002A            

VCB$W_TRANS      0000000C            

VOLNAME_LENGTH = 0000000C            





PROGRAM SECTION SYNOPSIS



.  ABS  .        00000000      00     NOPIC   USR   CON   ABS   LCL NOSHR NOEXE NORD  NOWRT BYTE  

. BLANK .        00000000      01     NOPIC   USR   CON   REL   LCL NOSHR   EXE   RD    WRT BYTE  

$ABS$            FFFFFFFE      02     NOPIC   USR   CON   ABS   LCL NOSHR   EXE   RD    WRT BYTE  

SHOW$RWDATA      0000013B      03     NOPIC   USR   CON   REL   LCL NOSHR NOEXE   RD    WRT LONG  

SHOW$MSG_TEXT    000001DA      04     NOPIC   USR   CON   REL   LCL NOSHR NOEXE   RD  NOWRT BYTE  

SHOW$CODE        000004AB      05     NOPIC   USR   CON   REL   LCL NOSHR   EXE   RD  NOWRT BYTE  





THERE WERE NO ERRORS OR WARNINGS.

6950. BYTES LEFT IN FREE MEMORY POOL.

906. BYTES OF RECLAIMED MEMORY.

OBJ$:SHODEVUTL,LIS$:SHODEVUTL/-SP=EXECML$/ML,LIB$:CLIUTL/ML,SRC$:SHODEVUTL

61 MLB DIR RDS - 961 GETS TO DEFINE 26 MACROS. 84 INTER. FILE WRITES. 

