

; Bliss-32 7.352	Saturday 22-AUG-1978 03:47:38	DBB3:[COPY.SRC]COPYMSG.B32;3					Page 1

; Digital Equipment Corporation

;



; Bliss-32 7.352	Saturday 22-AUG-1978 03:47:38	DBB3:[COPY.SRC]COPYMSG.B32;3					Page 2

; Digital Equipment Corporation

;

;	0001	MODULE copymsg (    ! Module for generation of message numbers

;	0002	                    LANGUAGE (BLISS32),

;	0003	                    IDENT = 'X00001'

;	0004	                    ) =

;	0005	BEGIN

;	0006	

;	0007	!

;	0008	! Copyright (c) 1978

;	0009	! Digital Equipment Corporation, Maynard, Massachusetts 01754

;	0010	!

;	0011	! This software is furnished  under a license for use only on a single

;	0012	! computer  system and  may be  copied only with  the inclusion of the

;	0013	! above copyright notice.  This software, or any other copies thereof,

;	0014	! may not be provided or  otherwise made available to any other person

;	0015	! except for use on such system and to one who agrees to these license

;	0016	! terms.  Title to and  ownership of the  software  shall at all times

;	0017	! remain in DEC.

;	0018	!

;	0019	! The information in this software is subject to change without notice

;	0020	! and should  not be construed  as a commitment  by Digital  Equipment

;	0021	! Corporation.

;	0022	!

;	0023	! DEC assumes  no  responsibility  for  the use or  reliability of its

;	0024	! software on equipment which is not supplied by DEC.

;	0025	

;	0026	!++

;	0027	! FACILITY:	COPY Command

;	0028	!

;	0029	! ABSTRACT:

;	0030	!

;	0031	!	This module contains a routine that generates message numbers for the COPY utility.

;	0032	!

;	0033	! ENVIRONMENT:

;	0034	!

;	0035	!	VAX/VMS operating system, unprivileged user mode utility,

;	0036	!	operates at non-AST level.

;	0037	!

;	0038	!--

;	0039	!++

;	0040	!

;	0041	! AUTHOR:	Carol Peters,	CREATION DATE:	25 April 1978 13:45

;	0042	!

;	0043	! REVISION HISTORY:

;	0044	!

;	0045	!--



; Bliss-32 7.352	Saturday 22-AUG-1978 03:47:38	DBB3:[COPY.SRC]COPYMSG.B32;3					Page 3

; Digital Equipment Corporation

;

;	0046	!

;	0047	! Table of contents

;	0048	!

;	0049	

;	0050	FORWARD ROUTINE

;	0051	    copy$msg_number;					! COPY/APPEND error message number generator

;	0052	

;	0053	!

;	0054	! Include files

;	0055	!

;	0056	

;	0057	LIBRARY 'SYS$LIBRARY:STARLET.L32';			! System definitions

;	0058	

;	0059	REQUIRE 'SRC$:COPY.REQ';				! Common COPY definitions and macros

;	0274	

;	0275	!

;	0276	! Macros

;	0277	!

;	0278	

;	0279	!

;	0280	! Equated symbols

;	0281	!

;	0282	

;	0283	!

;	0284	! OWN storage

;	0285	!

;	0286	

;	0287	!

;	0288	! External declarations

;	0289	!

;	0290	

;	0291	EXTERNAL

;	0292	    most_severe_err	: BLOCK [, BYTE];		! Holds most severe error message encountered



; Bliss-32 7.352	Saturday 22-AUG-1978 03:47:38	DBB3:[COPY.SRC]COPYMSG.B32;3					Page 4

; Digital Equipment Corporation

;

;	0293	GLOBAL ROUTINE COPY$MSG_NUMBER (			! COPY/APPEND message number generator

;	0294				MSG_ID ) =			! Message number

;	0295	

;	0296	!++

;	0297	! FUNCTIONAL DESCRIPTION:

;	0298	!

;	0299	!	This routine return a COPY-specific or APPEND-specific message id

;	0300	!	by inserting the appropriate facility identifier in the high word

;	0301	!	of the message id which is passed by the caller.  This routine also

;	0302	!	records the highest severity message encountered.

;	0303	!

;	0304	! FORMAL PARAMETERS:

;	0305	!

;	0306	!	MSG_ID.rlu.v - Message id

;	0307	!

;	0308	! IMPLICIT INPUTS:

;	0309	!

;	0310	!	APPEND_COMMAND = APPEND command indicator

;	0311	!	MOST_SEVERE_ERR - Current most severe error id

;	0312	!	OUTFILE_NAM_BLK - Output file name block - wildcard indicator

;	0313	!

;	0314	! IMPLICIT OUTPUTS:

;	0315	!

;	0316	!	MOST_SEVERE_ERR - Most severe error id may be updated

;	0317	!

;	0318	! ROUTINE VALUE:

;	0319	!

;	0320	!	Actual message id

;	0321	!

;	0322	! SIDE EFFECTS:

;	0323	!

;	0324	!	None

;	0325	!

;	0326	!--

;	0327	

;	0328	    BEGIN

;	0329	

;	0330	    MAP							!

;	0331		MSG_ID :  BLOCK[,BYTE];				! Redefine the form of the input argument

;	0332	

;	0333	    LOCAL

;	0334		ACTUAL_MSG_ID :  BLOCK[1];			! Actual message identifier

;	0335	

;	0336	!

;	0337	! Calculate the actual message identifier.

;	0338	!

;	0339	

;	0340	    IF .APPEND_COMMAND					! If this is an APPEND command,

;	0341	    THEN						!

;	0342		ACTUAL_MSG_ID = .MSG_ID + (APPEND_ID * 65536)	! insert the APPEND facility code into the message id.

;	0343	    ELSE						! If this is a COPY command,

;	0344		ACTUAL_MSG_ID = .MSG_ID + (COPY_ID * 65536);	! insert the COPY facility code into the message id.

;	0345	

;	0346	!

;	0347	! Update the "most severe error" if the current error is more severe.



; Bliss-32 7.352	Saturday 22-AUG-1978 03:47:38	DBB3:[COPY.SRC]COPYMSG.B32;3					Page 4-1

; Digital Equipment Corporation

;

;	0348	!

;	0349	

;	0350	    IF NOT .ACTUAL_MSG_ID AND				! If the current message is not a success message and

;	0351		(.MOST_SEVERE_ERR OR				! either this is the first error message

;	0352		.ACTUAL_MSG_ID[STS$V_SEVERITY] GTRU		! or the current message severity

;	0353			.MOST_SEVERE_ERR[STS$V_SEVERITY])	! is greater than the previous severity,

;	0354	    THEN						!

;	0355		MOST_SEVERE_ERR = .ACTUAL_MSG_ID OR		! update the most severe message id

;	0356					STS$M_INHIB_MSG;	! and turn on the "suppress message" indicator.

;	0357	

;	0358	!

;	0359	! Return the actual message id to the caller.

;	0360	!

;	0361	

;	0362	    RETURN .ACTUAL_MSG_ID;				! Return the actual message id to the caller.

;	0363	

;	0364	    END;





							    .TITLE  COPYMSG

							    .IDENT  \X00001\



							    .GLOBL  COPY$CLI_RESULT, COPY$CLI_STATUS, COPY$SEM_STATUS

							    .GLOBL  MOST_SEVERE_ERR



							    .PSECT  $CODE$,NOWRT,2



					 0800 00000 	    .ENTRY  COPY$MSG_NUMBER, Save R11				      ; 0293

		         5B	0000G  CF  9E 00002 	    MOVAB   MOST_SEVERE_ERR, R11				      ;

	   0B	  0000G  CF	       04  E1 00007 	    BBC     #4, COPY$SEM_STATUS+1, 1$				      ; 0340

	   50	    04   AC 00710000   8F  C1 0000D 	    ADDL3   #7405568, MSG_ID, ACTUAL_MSG_ID			      ; 0342

				       09  11 00016 	    BRB     2$							      ; 0340

	   50	    04   AC 00670000   8F  C1 00018 1$:     ADDL3   #6750208, MSG_ID, ACTUAL_MSG_ID			      ; 0344

		         17	       50  E8 00021 2$:     BLBS    ACTUAL_MSG_ID, 4$					      ; 0350

		         0C	       6B  E8 00024 	    BLBS    MOST_SEVERE_ERR, 3$					      ; 0351

	   6B	         03	       00  EF 00027 	    EXTZV   #0, #3, MOST_SEVERE_ERR, R1				      ; 0352

				       51     0002B									      ;

	   50	         03	       00  ED 0002C 	    CMPZV   #0, #3, ACTUAL_MSG_ID, R1				      ;

				       51     00030									      ;

				       08  1B 00031 	    BLEQU   4$							      ;

	   6B	         50 10000000   8F  C9 00033 3$:     BISL3   #268435456, ACTUAL_MSG_ID, MOST_SEVERE_ERR		      ; 0355

					   04 0003B 4$:     RET     							      ; 0293



; Routine Size:  60 bytes







; Bliss-32 7.352	Saturday 22-AUG-1978 03:47:38	DBB3:[COPY.SRC]COPYMSG.B32;3					Page 5

; Digital Equipment Corporation

;

;	0365	END

;	0366	ELUDOM













;				       PSECT SUMMARY

;

;	Name		 Bytes			       Attributes

;

;  $CODE$         	    60  NOWRT,  RD ,  EXE,NOSHR,  LCL,  REL,  CON,NOPIC,ALIGN(2)









;				LIBRARY STATISTICS

;

;					     -------- Symbols --------    Blocks

;	File				     Total    Loaded   Percent      Read

;

;  DBA4:[SYSLIB]STARLET.L32;1		      2688        41         1       122

;  DBB3:[COPY.SRC]VMSMAC.L32;1		         6         3        50         4











; Size:		60 code + 0 data bytes

; Run Time:	00:06.4

; Elapsed Time:	00:19.9

; Memory Used:	146 pages

; Compilation Complete

