OTS$SCOPY       ; Language-independent copy strings              21-AUG-1978 19:10:32   VAX-11 MACRO X0.3-11               Page   0

TABLE OF CONTENTS   



   (2)     100  HISTORY		; Detailed Current Edit History

   (3)     100  DECLARATIONS

   (4)     100  OTS$SGET1_DD - Routines to allocate dynamic str

   (5)     100  OTS$SFREE1_DD - Routines to deallocate string a

   (6)     100  OTS$SFREEN_DD - Routines to deallocate string a

   (8)     100  OTS$SCOPY_DXDX - Copy any class string to any c

   (9)     100  OTS$SCOPY_R_DX - Copy any class string to any c

   (11)    100  OTS$SCOPY_DXDD - Copy any class string to dynam

   (12)    100  OTS$SCOPY_R_DD - Copy any class string to dynam

OTS$SCOPY       ; Language-independent copy strings              21-AUG-1978 19:10:32   VAX-11 MACRO X0.3-11               Page   1

0-16                                                                                                                             (1)



                                     0000   100 	.TITLE	OTS$SCOPY		; Language-independent copy strings 

                                     0000   200 	.IDENT	/0-16/			; File: OTSSCOPY.MAR

                                     0000   300 

                                     0000   400 ;

                                     0000   500 ; Copyright (C) 1977

                                     0000   600 ; Digital Equipment Corporation, Maynard, Massachusetts 01754

                                     0000   700 ;

                                     0000   800 ; This software is furnished under a license for use only on a single

                                     0000   900 ; computer  system  and  may be copied only with the inclusion of the

                                     0000  1000 ; above copyright notice. This software, or any other copies thereof,

                                     0000  1100 ; may not be provided or otherwise made available to any other person

                                     0000  1200 ; except for use on such system and to one who agree to these license 

                                     0000  1300 ; terms.  Title to  and  ownership of the software shall at all times 

                                     0000  1400 ; remain in DEC.

                                     0000  1500 ;

                                     0000  1600 ; The information in the software is subject to change without notice

                                     0000  1700 ; and should  not  be construed  as a commitment by Digital Equipment 

                                     0000  1800 ; Corporation.

                                     0000  1900 ;

                                     0000  2000 ; DEC assumes  no  responsibility  for the use or  reliability of its

                                     0000  2100 ; software on equipment which is not supplied by DEC.

                                     0000  2200 ;

                                     0000  2300 ;

                                     0000  2400 ; FACILITY: LANGUAGE-INDEPENDENT SUPPORT LIBRARY

                                     0000  2500 ;++

                                     0000  2600 ; ABSTRACT:

                                     0000  2700 ;

                                     0000  2800 ;	Procedures to copy strings of different classes.

                                     0000  2900 ;	Provides a way for procedures written in different languages

                                     0000  3000 ;	to return strings to callers of arbitrary language.

                                     0000  3100 ;

                                     0000  3200 ;--

                                     0000  3300 ;

                                     0000  3400 ; VERSION: 0

                                     0000  3500 ;

                                     0000  3600 ; HISTORY:

                                     0000  3700 ;

                                     0000  3800 ; AUTHOR:

                                     0000  3900 ;	Thomas N. Hastings, 8-Oct-77: Version 0

                                     0000  4000 ;

                                     0000  4100 ; MODIFIED BY:

                                     0000  4200 ;

                                     0000  4300 ; 0-11	- Change typo in PIC case instruction.  DGP 29-Jun-78

                                     0000  4400 ;

                                     0000  4500 ;

OTS$SCOPY       ; Language-independent copy strings              21-AUG-1978 19:10:32   VAX-11 MACRO X0.3-11               Page   2

0-16            HISTORY  ; Detailed Current Edit History                                                                         (2)



                                     0000   100 	.SBTTL	HISTORY		; Detailed Current Edit History

                                     0000   200 

                                     0000   300 

                                     0000   400 ; Edit History for Version 0

                                     0000   500 ;

                                     0000   600 ; 0-8	- Don't have FORTRAN error numbers.  TNH 4-Nov-77

                                     0000   700 ; 0-9	- Call LIB$STOP not "OTS$$SIGNAL_STO".  JMT 29-Jan-78

                                     0000   800 ; 0-10	- Change argument order to conform to manual.  JMT 5-Mar-78

                                     0000   900 ; 0-12	- Change JSB entry points to DX6.  TNH 5-July-78

                                     0000  1000 ; 0-13	- Add dynamic descriptors.  TNH 20-July-78

                                     0000  1100 ; 0-16	- Remove OTS$SCOPY_xxDD since not in release 1.0 manual.  TNH 1-Aug-78

OTS$SCOPY       ; Language-independent copy strings              21-AUG-1978 19:10:32   VAX-11 MACRO X0.3-11               Page   3

0-16            DECLARATIONS                                                                                                     (3)



                                     0000   100 	.SBTTL	DECLARATIONS

                                     0000   200 

                                     0000   300 ;

                                     0000   400 ; INCLUDE FILES:

                                     0000   500 ;

                                     0000   600 	$DSCDEF				; Descriptor symbols

                                     0000   700 	$SSDEF				; SS$_... symbols

                                     0000   800 ;

                                     0000   900 ; EXTERNAL SYMBOLS:

                                     0000  1000 ;

                                     0000  1100 	.DSABL	GBL			; Disable automatic global declaration

                                     0000  1200 	.EXTRN	LIB$STOP		; Routine so SIGNAL_STOP 32-bit VAX condition value

                                     0000  1300 	.EXTRN	OTS$_INVSTRDES		; INVALID STRING DESCRIPTOR condition value

                                     0000  1400 	.EXTRN	LIB$SGET1_DD_R6		; Allocate space for 1 dynamic descr.

                                     0000  1500 	.EXTRN	LIB$SFREE1_DD6		; Free 1 dynamic descr.

                                     0000  1600 	.EXTRN	LIB$SFREEN_DD6		; Free n dynamic descr.

                                     0000  1700 	.EXTRN	LIB$$SCOPY_RDD6		; Copy dynamic string

                                     0000  1800 

                                     0000  1900 ;

                                     0000  2000 ; MACROS:

                                     0000  2100 ;

                                     0000  2200 

                                     0000  2300 ;

                                     0000  2400 ; PSECT DECLARATIONS:

                                     0000  2500 ;

                                 00000000  2600 	.PSECT	OTS$CODE PIC,SHR,LONG,EXE,NOWRT

                                     0000  2700 ;

                                     0000  2800 ; EQUATED SYMBOLS:

                                     0000  2900 ;

                                     0000  3000 

                                     0000  3100 ;

                                     0000  3200 ; OWN STORAGE:

                                     0000  3300 ;

OTS$SCOPY       ; Language-independent copy strings              21-AUG-1978 19:10:32   VAX-11 MACRO X0.3-11               Page   4

0-16            OTS$SGET1_DD - Routines to allocate dynamic str                                                                  (4)



                                     0000   100 	.SBTTL	OTS$SGET1_DD - Routines to allocate dynamic string space

                                     0000   200 

                                     0000   300 ;++

                                     0000   400 ; FUNCTIONAL DESCRIPTION:

                                     0000   500 ;

                                     0000   600 ;	Allocate dynamic string space to dynamic descriptor.

                                     0000   700 ;	Deallocate any space it may have had.  This procedure

                                     0000   800 ;	is the same as OTS$SCOPY_DXDX, except that no string is copied.

                                     0000   900 ;

                                     0000  1000 ; CALLING SEQUENCE:

                                     0000  1100 ;

                                     0000  1200 ;	CALL OTS$SGET1_DD (no_bytes.rw.v, str.wt.dd)

                                     0000  1300 ;		JSB OTS$SGET1_DD_R6

                                     0000  1400 ;

                                     0000  1500 ; INPUT PARAMETERS (JSB entry only):

                                     0000  1600 ;

                                     0000  1700 ;	R0<15:0> = No. of bytes to allocate

                                     0000  1800 ;	R1 = Adr. of destination string descriptor (dynamic)

                                     0000  1900 ;

                                     0000  2000 ; IMPLICIT INPUTS:

                                     0000  2100 ;

                                     0000  2200 ;	None

                                     0000  2300 ;

                                     0000  2400 ; OUTPUT PARAMTERS:

                                     0000  2500 ;

                                     0000  2600 ;	R0 = COMPLETION STATUS

                                     0000  2700 ;

                                     0000  2800 ; IMPLICIT OUTPUTS:

                                     0000  2900 ;

                                     0000  3000 ;	None

                                     0000  3100 ;

                                     0000  3200 ; COMPLETION STATUS:

                                     0000  3300 ;

                                     0000  3400 ;	NONE

                                     0000  3500 ;

                                     0000  3600 ; SIDE EFFECTS:

                                     0000  3700 ;

                                     0000  3800 ;	See OTS$SCOPY_DXDX.

                                     0000  3900 ;--

                                     0000  4000 

                               007C' 0000  4100 	.ENTRY OTS$SGET1_DD, ^M<R2, R3, R4, R5, R6>

            50         04 AC     7D  0002  4200 	MOVQ	4(AP), R0		; R0<15:0> = no. of bytes to allocate

                                     0006  4300 					; R1 = adr. of destination descriptor

                          01     10  0006  4400 	BSBB	OTS$SGET1_DD_R6		; allocate space

                                 04  0008  4500 	RET				; return

                                     0009  4600 

                                     0009  4700 OTS$SGET1_DD_R6::			; JSB entry point

                 00000000'EF     16  0009  4800 	JSB	LIB$SGET1_DD_R6		; allocate space for 1 dyn. descr.

            4A            50     E9  000F  4900 	BLBC	R0, ERROR		; branch if error

                                 05  0012  5000 	RSB				; return

OTS$SCOPY       ; Language-independent copy strings              21-AUG-1978 19:10:32   VAX-11 MACRO X0.3-11               Page   5

0-16            OTS$SFREE1_DD - Routines to deallocate string a                                                                  (5)



                                     0013   100 	.SBTTL	OTS$SFREE1_DD - Routines to deallocate string area for 1 dynamic string

                                     0013   200 

                                     0013   300 ;++

                                     0013   400 ; FUNCTIONAL DESCRIPTION:

                                     0013   500 ;

                                     0013   600 ;	Deallocate 1 dynamic string.

                                     0013   700 ;

                                     0013   800 ; CALLING SEQUENCE:

                                     0013   900 ;

                                     0013  1000 ;	CALL OTS$SFREE1_DD (string.wt.dd)

                                     0013  1100 ;	JSB OTS$SFREE1_DD6

                                     0013  1200 ;

                                     0013  1300 ; INPUT PARAMETERS (JSB entry point):

                                     0013  1400 ;

                                     0013  1500 ;	R0 = Adr. of destination string descriptor

                                     0013  1600 ;

                                     0013  1700 ; IMPLICIT INPUTS:

                                     0013  1800 ;

                                     0013  1900 ;	None

                                     0013  2000 ;

                                     0013  2100 ; OUTPUT PARAMTERS:

                                     0013  2200 ;

                                     0013  2300 ;	R0 = COMPLETION STATUS

                                     0013  2400 ;

                                     0013  2500 ; IMPLICIT OUTPUTS:

                                     0013  2600 ;

                                     0013  2700 ;	None

                                     0013  2800 ;

                                     0013  2900 ; COMPLETION STATUS:

                                     0013  3000 ;

                                     0013  3100 ;	NONE

                                     0013  3200 ;

                                     0013  3300 ; SIDE EFFECTS:

                                     0013  3400 ;

                                     0013  3500 ;	See OTS$SCOPY_R_DX.

                                     0013  3600 ;--

                                     0013  3700 

                               007C' 0013  3800 	.ENTRY OTS$SFREE1_DD, ^M<R2, R3, R4, R5, R6>

            50         04 AC     D0  0015  3900 	MOVL	4(AP), R0		; R0 = adr. of descriptor to free

                          01     10  0019  4000 	BSBB	OTS$SFREE1_DD6		; go deallocate space

                                 04  001B  4100 	RET				; return

                                     001C  4200 

                                     001C  4300 OTS$SFREE1_DD6::			; JSB entry point

                 00000000'EF     16  001C  4400 	JSB	LIB$SFREE1_DD6		; free 1 dynamic descriptor

            37            50     E9  0022  4500 	BLBC	R0, ERROR		; branch if error

                                 05  0025  4600 	RSB				; return

OTS$SCOPY       ; Language-independent copy strings              21-AUG-1978 19:10:32   VAX-11 MACRO X0.3-11               Page   6

0-16            OTS$SFREEN_DD - Routines to deallocate string a                                                                  (6)



                                     0026   100 	.SBTTL	OTS$SFREEN_DD - Routines to deallocate string area for N dynamic strings

                                     0026   200 

                                     0026   300 ;++

                                     0026   400 ; FUNCTIONAL DESCRIPTION:

                                     0026   500 ;

                                     0026   600 ;	Deallocated 1 dynamic string.

                                     0026   700 ;

                                     0026   800 ; CALLING SEQUENCE:

                                     0026   900 ;

                                     0026  1000 ;	CALL OTS$SFREEN_DD (no_descr.rl.v, string.wt.dd)

                                     0026  1100 ;	JSB OTS$SFREEN_DD6

                                     0026  1200 ;

                                     0026  1300 ; INPUT PARAMETERS (JSB entry point):

                                     0026  1400 ;

                                     0026  1500 ;	R0 = No. of descriptors to deallocate

                                     0026  1600 ;	R1 = Adr. of destination string descriptor

                                     0026  1700 ;

                                     0026  1800 ; IMPLICIT INPUTS:

                                     0026  1900 ;

                                     0026  2000 ;	None

                                     0026  2100 ;

                                     0026  2200 ; OUTPUT PARAMTERS:

                                     0026  2300 ;

                                     0026  2400 ;	R0 = COMPLETION STATUS

                                     0026  2500 ;

                                     0026  2600 ; IMPLICIT OUTPUTS:

                                     0026  2700 ;

                                     0026  2800 ;	None

                                     0026  2900 ;

                                     0026  3000 ; COMPLETION STATUS:

                                     0026  3100 ;

                                     0026  3200 ;	NONE

                                     0026  3300 ;

                                     0026  3400 ; SIDE EFFECTS:

                                     0026  3500 ;

                                     0026  3600 ;	See OTS$SCOPY_R_DX.

                                     0026  3700 ;--

                                     0026  3800 

OTS$SCOPY       ; Language-independent copy strings              21-AUG-1978 19:10:32   VAX-11 MACRO X0.3-11               Page   7

0-16            OTS$SFREEN_DD - Routines to deallocate string a                                                                  (7)



                               007C' 0026   100 	.ENTRY OTS$SFREEN_DD, ^M<R2, R3, R4, R5, R6>

            50         04 AC     7D  0028   200 	MOVQ	4(AP), R0		; R0 = No. of strings to deallocate

                                     002C   300 					; R1 = adr. of 1st descriptor to free

                          01     10  002C   400 	BSBB	OTS$SFREEN_DD6		; go deallocate space

                                 04  002E   500 	RET				; return

                                     002F   600 

                                     002F   700 OTS$SFREEN_DD6::

            53            50     D0  002F   800 	MOVL	R0, R3			; R3 = # of descriptors to go

                          0E     13  0032   900 	BEQL	10$			; return if none to do

            54            51     D0  0034  1000 	MOVL	R1, R4			; R4 = adr. of next descriptor

                                     0037  1100 

                                     0037  1200 ;+

                                     0037  1300 ; Loop to free up each descriptor

                                     0037  1400 ;-

                                     0037  1500 

            50            54     D0  0037  1600 5$:	MOVL	R4, R0			; R0 = Adr. of descriptor to free

                          E0     10  003A  1700 	BSBB	OTS$SFREE1_DD6		; go free one string

                                     003C  1800 					; Note: SFREE1_DD6 does not use R4, R5

            54            08     C0  003C  1900 	ADDL	#8, R4			; step to next descriptor

            F5            53     F5  003F  2000 	SOBGTR	R3, 5$			; loop till done

                                     0042  2100 

            50            01     D0  0042  2200 10$:	MOVL	#SS$_NORMAL, R0		; R0 = success

                                 05  0045  2300 	RSB				; return

OTS$SCOPY       ; Language-independent copy strings              21-AUG-1978 19:10:32   VAX-11 MACRO X0.3-11               Page   8

0-16            OTS$SCOPY_DXDX - Copy any class string to any c                                                                  (8)



                                     0046   100 	.SBTTL	OTS$SCOPY_DXDX - Copy any class string to any class string

                                     0046   200 

                                     0046   300 ;++

                                     0046   400 ; FUNCTIONAL DESCRIPTION:

                                     0046   500 ; 

                                     0046   600 ;	OTS$SCOPY_DXDX copies a source  string  of  any

                                     0046   700 ;	class  to  a  destination  string of any class.  Depending on the

                                     0046   800 ;	contents of the class  field  (DSC$B_CLASS)  of  the  destination

                                     0046   900 ;	descriptor the following actions take place:

                                     0046  1000 ; 

                                     0046  1100 ;	        DSC$B_CLASS      Action.

                                     0046  1200 ; 

                                     0046  1300 ;	        DSC$K_CLASS_S,Z  Copy source string  and  space  fill  if

                                     0046  1400 ;	                         needed or truncate on right.

                                     0046  1500 ; 

                                     0046  1600 ;	        DSC$K_CLASS_V    Copy source  string  and  source  length

                                     0046  1700 ;	                         field   (DSC$W_LENGTH)   to  destination

                                     0046  1800 ;	                         descriptor.   Do  not   exceed   maximum

                                     0046  1900 ;	                         length  (DSC$W_MAXLEN)  specified in the

                                     0046  2000 ;	                         destination descriptor.

                                     0046  2100 ; 

                                     0046  2200 ;	        DSC$K_CLASS_D    Call OTS$SCOPY_DXDD.

                                     0046  2300 ; 

                                     0046  2400 ;	        This routine or its equivalent is used  by  higher  level

                                     0046  2500 ;	        languages to write formal parameter strings.

                                     0046  2600 ; 

                                     0046  2700 ; CALLING SEQUENCE:

                                     0046  2800 ; 

                                     0046  2900 ;		CALL	OTS$SCOPY_DXDX (src_str.rt.dx, dst_str.wt.dx)

                                     0046  3000 ;		JSB	OTS$SCOPY_DXDX6

                                     0046  3100 ; 

                                     0046  3200 ; INPUT PARAMETERS:

                                     0046  3300 ; 

                           00000004  0046  3400 	SRC_STR = 4			; Adr. of source string

                                     0046  3500 ;	     src_str  is the address  of  the  source  string  descriptor

                                     0046  3600 ;	             describing  the  length and address of the string to

                                     0046  3700 ;	             be copied.  The descriptor class may be  unspecified

                                     0046  3800 ;	             (z),  static  (s),  varying  (v),  or  dynamic  (d),

                                     0046  3900 ;	             although it is not checked.

                                     0046  4000 ; 

                           00000008  0046  4100 	DST_STR = 8			; Adr. of destination string descriptor

                                     0046  4200 ;	     dst_str is the address of the destination string descriptor.

                                     0046  4300 ;	             The  class  field (DSC$B_CLASS) is used to determine

                                     0046  4400 ;	             the appropriate action.

                                     0046  4500 ; 

                                     0046  4600 ; OUTPUT PARAMETERS:

                                     0046  4700 ; 

                                     0046  4800 ;	     dst_str is the address of the destination string descriptor.

                                     0046  4900 ;	             Depending   on   its   class   field,   the   length

                                     0046  5000 ;	             (DSC$W_LENGTH) or both the length  and  the  address

                                     0046  5100 ;	             (DSC$A_POINTER) fields may be modified.

                                     0046  5200 ; 

                                     0046  5300 ; IMPLICIT OUTPUTS:

                                     0046  5400 ; 

                                     0046  5500 ;	R0:R3 set from MOVC3 or MOVC5.  Also condition codes.

                                     0046  5600 ; 

                                     0046  5700 ; COMPLETION STATUS:

OTS$SCOPY       ; Language-independent copy strings              21-AUG-1978 19:10:32   VAX-11 MACRO X0.3-11               Page   9

0-16            OTS$SCOPY_DXDX - Copy any class string to any c                                                                  (8)



                                     0046  5800 ; 

                                     0046  5900 ;	None.

                                     0046  6000 ; 

                                     0046  6100 ; SIDE EFFECTS:

                                     0046  6200 ; 

                                     0046  6300 ;	If the destination string is dynamic (class field = DSC$KKCLASS_D),

                                     0046  6400 ;	it SIGNALs OTS$_INSVIRMEM  ('INSUFFICIENT  VIRTUAL MEMORY') if it cannot get

                                     0046  6500 ;	enough virtual memory  from  the  operating  system;   otherwise,

                                     0046  6600 ;	string space may be allocated if the space already alocated

                                     0046  6700 ;	to the destination string is not sufficient.

                                     0046  6800 ;	If the class field of the distination string is not one

                                     0046  6900 ;	of the standard class types, error condition OTS$_INVSTRDES

                                     0046  7000 ;	('INVALID STRING DESCRIPTOR') is SIGNALed.

                                     0046  7100 ;--

                                     0046  7200 

                                     0046  7300 

                                     0046  7400 

                               407C' 0046  7500 	.ENTRY	OTS$SCOPY_DXDX, ^M<IV,R2,R3,R4,R5,R6>	; entry point and entry mask

                                     0048  7600 					; enable integer overflow

                                     0048  7700 

            50         04 BC     7D  0048  7800 	MOVQ	@SRC_STR(AP), R0	; R0<15:0> = src str length

                                     004C  7900 					; R1 = Adr. of src. str 

            52         08 AC     D0  004C  8000 	MOVL	DST_STR(AP), R2		; R2 = Adr. of dest. string descr.

                          20     10  0050  8100 	BSBB	OTS$SCOPY_R_DX6		; call JSB routine to copy source to dest.

                                 04  0052  8200 	RET				; return to caller

                                     0053  8300 

                                     0053  8400 OTS$SCOPY_DXDX6::			; JSB entry point

            52            51     D0  0053  8500 	MOVL	R1, R2			; R2 = adr. of dest descriptor

            50            60     7D  0056  8600 	MOVQ	(R0), R0		; R0<15:0> = size of src string

                                     0059  8700 					; R1 = adr. of source string

                          0016   31  0059  8800 	BRW	OTS$SCOPY_R_DX6		; copy string

                                     005C  8900 					; and RSB

                                     005C  9000 

                                     005C  9100 ;+

                                     005C  9200 ; Here on any error detected on return from LIB$ routine

                                     005C  9300 ; Signal error returned in R0

                                     005C  9400 ; Put in middle of module, so can reach with byte displacement.

                                     005C  9500 ;-

                                     005C  9600 

                          50     DD  005C  9700 ERROR:	PUSHL	R0			; arg = error condition code

   00000000'EF            01     FB  005E  9800 	CALLS	#1, LIB$STOP		; signal error then stop

                                     0065  9900 					; never return

OTS$SCOPY       ; Language-independent copy strings              21-AUG-1978 19:10:32   VAX-11 MACRO X0.3-11               Page  10

0-16            OTS$SCOPY_R_DX - Copy any class string to any c                                                                  (9)



                                     0065   100 	.SBTTL	OTS$SCOPY_R_DX - Copy any class string to any class string

                                     0065   200 

                                     0065   300 ;++

                                     0065   400 ; FUNCTIONAL DESCRIPTION:

                                     0065   500 ; 

                                     0065   600 ;	OTS$SCOPY_R_DX is similar to OTS$SCOPY_DXDX.

                                     0065   700 ;	The only difference is that they accept the source string as two

                                     0065   800 ;	separate arguments instead of as a descriptor.  They are provided

                                     0065   900 ;	expressly for the purpose of making it easy for a procedure to return

                                     0065  1000 ;	a string to its caller by descriptor, even though the procedure

                                     0065  1100 ;	may not have the source string represented using a descriptor.

                                     0065  1200 ;	Thus the source string is passed by reference with a character

                                     0065  1300 ;	count instead of by-descriptor.

                                     0065  1400 ;	OTS$SCOPY_R_DX copies a source  string  of  any

                                     0065  1500 ;	class  to  a  destination  string of any class.  Depending on the

                                     0065  1600 ;	contents of the class  field  (DSC$B_CLASS)  of  the  destination

                                     0065  1700 ;	descriptor the following actions take place:

                                     0065  1800 ; 

                                     0065  1900 ;	        DSC$B_CLASS      Action.

                                     0065  2000 ; 

                                     0065  2100 ;	        DSC$K_CLASS_S,Z  Copy source string  and  space  fill  if

                                     0065  2200 ;	                         needed or truncate on right.

                                     0065  2300 ; 

                                     0065  2400 ;	        DSC$K_CLASS_V    Copy source  string  and  source  length

                                     0065  2500 ;	                         field   (DSC$W_LENGTH)   to  destination

                                     0065  2600 ;	                         descriptor.   Do  not   exceed   maximum

                                     0065  2700 ;	                         length  (DSC$W_MAXLEN)  specified in the

                                     0065  2800 ;	                         destination descriptor.

                                     0065  2900 ; 

                                     0065  3000 ;	        DSC$K_CLASS_D    Call OTS$SCOPY_R_DD.

                                     0065  3100 ; 

                                     0065  3200 ;	        This routine or its equivalent is used  by  higher  level

                                     0065  3300 ;	        languages to write formal parameter strings.

                                     0065  3400 ; 

                                     0065  3500 ; CALLING SEQUENCE:

                                     0065  3600 ; 

                                     0065  3700 ;		CALL	OTS$SCOPY_R_DX (src_str_len.rw.v, src_str_adr.rt.r,

                                     0065  3800 ;						dst_str.wt.dx)

                                     0065  3900 ;		JSB	OTS$SCOPY_R_DX6

                                     0065  4000 ; 

                                     0065  4100 ; INPUT PARAMETERS:

                                     0065  4200 ; 

                           00000004  0065  4300 	SRC_STR_LEN = 4			; Length of source string (BY-VALUE)

                                     0065  4400 ;	    src_str_len is the length of the source string to be copied,

                                     0065  4500 ;		    which is passed BY-VALUE, instead of BY-REFERENCE.

                           00000008  0065  4600 	SRC_STR_ADR = 8			; Adr. of source string

                                     0065  4700 ;	     src_str_adr  is the address  of  the  source  string  to

                                     0065  4800 ;	             be copied.  

                           0000000C  0065  4900 	DST_STR = 12			; Adr. of destination string descriptor

                                     0065  5000 ;	     dst_str is the address of the destination string descriptor.

                                     0065  5100 ;	             The  class  field (DSC$B_CLASS) is used to determine

                                     0065  5200 ;	             the appropriate action.

                                     0065  5300 ; 

                                     0065  5400 ; OUTPUT PARAMETERS:

                                     0065  5500 ; 

                                     0065  5600 ;	     dst_str is the address of the destination string descriptor.

                                     0065  5700 ;	             Depending   on   its   class   field,   the   length

OTS$SCOPY       ; Language-independent copy strings              21-AUG-1978 19:10:32   VAX-11 MACRO X0.3-11               Page  11

0-16            OTS$SCOPY_R_DX - Copy any class string to any c                                                                  (9)



                                     0065  5800 ;	             (DSC$W_LENGTH) or both the length  and  the  address

                                     0065  5900 ;	             (DSC$A_POINTER) fields may be modified.

                                     0065  6000 ; 

                                     0065  6100 ; IMPLICIT OUTPUTS:

                                     0065  6200 ; 

                                     0065  6300 ;	R0:R3 are registers from MOVC3 or MOVC5.  Also condition codes.

                                     0065  6400 ; 

                                     0065  6500 ; COMPLETION STATUS:

                                     0065  6600 ; 

                                     0065  6700 ;	None.

                                     0065  6800 ; 

                                     0065  6900 ; SIDE EFFECTS:

                                     0065  7000 ; 

                                     0065  7100 ;	If the destination string is dynamic (class field = DSC$KKCLASS_D),

                                     0065  7200 ;	it SIGNALs OTS$_INSVIRMEM  ('INSUFFICIENT  VIRTUAL MEMORY') if it cannot get

                                     0065  7300 ;	enough virtual memory  from  the  operating  system;   otherwise,

                                     0065  7400 ;	string space may be allocated if the space already alocated

                                     0065  7500 ;	to the destination string is not sufficient.

                                     0065  7600 ;	If the class field of the distination string is not one

                                     0065  7700 ;	of the standard class types, error condition OTS$_INVSTRDES

                                     0065  7800 ;	('INVALID STRING DESCRIPTOR') is SIGNALed.

                                     0065  7900 ;--

                                     0065  8000 

                                     0065  8100 

                                     0065  8200 

                               407C' 0065  8300 	.ENTRY	OTS$SCOPY_R_DX, ^M<IV, R2, R3, R4, R5, R6>		; entry point and entry mask

                                     0067  8400 					; enable integer overflow

                                     0067  8500 

            50         04 AC     3C  0067  8600 	MOVZWL	SRC_STR_LEN(AP), R0	; R0 = source str len

            51         08 AC     7D  006B  8700 	MOVQ	SRC_STR_ADR(AP), R1	; R1 = source str adr

                                     006F  8800 					; R2 = Adr. of dest str descr.

                          01     10  006F  8900 	BSBB	OTS$SCOPY_R_DX6		; call JSB routine to copy source to dest.

                                 04  0071  9000 	RET				; return to caller

                                     0072  9100 

OTS$SCOPY       ; Language-independent copy strings              21-AUG-1978 19:10:32   VAX-11 MACRO X0.3-11               Page  12

0-16            OTS$SCOPY_R_DX - Copy any class string to any c                                                                 (10)



                                     0072   100 OTS$SCOPY_R_DX6::			; source string by adr + count

                                     0072   200 

                                     0072   300 

                                     0072   400 ;+

                                     0072   500 ; Dispatch on class code of destination descriptor

                                     0072   600 ;-

                                     0072   700 

            00         03 A2     8F  0072   800 	CASEB	DSC$B_CLASS(R2), #DSC$K_CLASS_Z, #DSC$K_CLASS_V

                          03         0076       

                               0015' 0077   900 10$:	.WORD	Z_TYPE-10$		; unspecified - null fill

                               0015' 0079  1000 	.WORD	S_TYPE-10$		; static class - null fill

                               001D' 007B  1100 	.WORD	OTS$SCOPY_R_DD6-10$		; dynamic - allocate if necessary

                               0008' 007D  1200 	.WORD	V_TYPE-10$		; Varying

                                     007F  1300 					; OUTRANGE here

                                     007F  1400 

                                     007F  1500 V_TYPE:					; varying - not implemented yet

                 00000000'8F     DD  007F  1600 	PUSHL #OTS$_INVSTRDES		; INVALID STRING DESCRIPTOR

   00000000'EF            01     FB  0085  1700 	CALLS	#1, LIB$STOP		; SIGNAL_STOP 32-bit VAX-11 error code

                                     008C  1800 

                                     008C  1900 ;+

                                     008C  2000 ; Unspecified descriptor or static descriptor

                                     008C  2100 ; Copy string and fill with trailing spaces if necessary

                                     008C  2200 ;-

                                     008C  2300 

                                     008C  2400 Z_TYPE:

                                     008C  2500 S_TYPE:

                          50     2C  008C  2600 	MOVC5	R0, -			; source length

            20            61         008E  2700 		(R1), -			; source adr.

         04 B2            62         0090       

                                     0093  2800 		#^A' ', -		; fill is space

                                     0093  2900 		DSC$W_LENGTH(R2), -	; dest. length

                                     0093  3000 		@DSC$A_POINTER(R2)	; dest. adr.

                                 05  0093  3100 	RSB				; return with R0:R5 set from MOVC5

                                     0094  3200 

OTS$SCOPY       ; Language-independent copy strings              21-AUG-1978 19:10:32   VAX-11 MACRO X0.3-11               Page  13

0-16            OTS$SCOPY_DXDD - Copy any class string to dynam                                                                 (11)



                                     0094   100 	.SBTTL	OTS$SCOPY_DXDD - Copy any class string to dynamic class string

                                     0094   200 

                                     0094   300 ;++

                                     0094   400 ; FUNCTIONAL DESCRIPTION:

                                     0094   500 ; 

                                     0094   600 ;	OTS$SCOPY_DXDD copies a source  string  of  any

                                     0094   700 ;	class  to  a  destination  string of dynamic class.

                                     0094   800 ; 

                                     0094   900 ; CALLING SEQUENCE:

                                     0094  1000 ; 

                                     0094  1100 ;		CALL	OTS$SCOPY_DXDD (src_str.rt.dx, dst_str.wt.dd)

                                     0094  1200 ;		JSB	OTS$SCOPY_DXDD6

                                     0094  1300 ; 

                                     0094  1400 ; INPUT PARAMETERS:

                                     0094  1500 ; 

                           00000004  0094  1600 	SRC_STR = 4			; Adr. of source string

                                     0094  1700 ;	     src_str  is the address  of  the  source  string  descriptor

                                     0094  1800 ;	             describing  the  length and address of the string to

                                     0094  1900 ;	             be copied.  The descriptor class may be  unspecified

                                     0094  2000 ;	             (z),  static  (s),  varying  (v),  or  dynamic  (d),

                                     0094  2100 ;	             although it is not checked.

                                     0094  2200 ; 

                           00000008  0094  2300 	DST_STR = 8			; Adr. of destination string descriptor

                                     0094  2400 ;	     dst_str is the address of the destination string descriptor.

                                     0094  2500 ; 

                                     0094  2600 ; OUTPUT PARAMETERS:

                                     0094  2700 ; 

                                     0094  2800 ;	     dst_str is the address of the destination string descriptor.

                                     0094  2900 ;	             The length (DSC$W_LENGTH) or both the length  and  the  address

                                     0094  3000 ;	             (DSC$A_POINTER) fields may be modified.

                                     0094  3100 ; 

                                     0094  3200 ; IMPLICIT OUTPUTS:

                                     0094  3300 ; 

                                     0094  3400 ;	R0:R3 set from MOVC3 or MOVC5.  Also condition codes.

                                     0094  3500 ; 

                                     0094  3600 ; COMPLETION STATUS:

                                     0094  3700 ; 

                                     0094  3800 ;	None.

                                     0094  3900 ; 

                                     0094  4000 ; SIDE EFFECTS:

                                     0094  4100 ; 

                                     0094  4200 ;	It SIGNALs OTS$_INSVIRMEM  ('INSUFFICIENT  VIRTUAL MEMORY') if it cannot get

                                     0094  4300 ;	enough virtual memory  from  the  operating  system;   otherwise,

                                     0094  4400 ;	string space may be allocated if the space already alocated

                                     0094  4500 ;	to the destination string is not sufficient.

                                     0094  4600 ;	If the class field of the distination string is not one

                                     0094  4700 ;	of the standard class types, error condition OTS$_INVSTRDES

                                     0094  4800 ;	('INVALID STRING DESCRIPTOR') is SIGNALed.

                                     0094  4900 ;--

                                     0094  5000 

                                     0094  5100 

                                     0094  5200 

                                     0094  5210 ;+

                                     0094  5220 ;***********************************************************

                                     0094  5230 ; Not in release 1.0 since not in manual.

                                     0094  5240 ;

                                     0094  5300 ;	.ENTRY	OTS$SCOPY_DXDD, ^M<IV, R2, R3, R4, R5, R6>		; entry point and entry mask

OTS$SCOPY       ; Language-independent copy strings              21-AUG-1978 19:10:32   VAX-11 MACRO X0.3-11               Page  14

0-16            OTS$SCOPY_DXDD - Copy any class string to dynam                                                                 (11)



                                     0094  5400 ;					; enable integer overflow

                                     0094  5500 ;

                                     0094  5600 ;	MOVQ	@SRC_STR(AP), R0	; R0<15:0> = src str length

                                     0094  5700 ;					; R1 = Adr. of src. str 

                                     0094  5800 ;	MOVL	DST_STR(AP), R2		; R2 = Adr. of dest. string descr.

                                     0094  5900 ;	BSBB	OTS$SCOPY_R_DX6		; call JSB routine to copy source to dest.

                                     0094  6000 ;	RET				; return to caller

                                     0094  6100 ;

                                     0094  6200 ;OTS$SCOPY_DXDD6::			; JSB entry point

                                     0094  6300 ;	MOVL	R1, R2			; R2 = adr. of dest descriptor

                                     0094  6400 ;	MOVQ	(R0), R0		; R0<15:0> = size of src string

                                     0094  6500 ;					; R1 = adr. of source string

                                     0094  6600 ;	BRW	OTS$SCOPY_R_DD6		; copy string

                                     0094  6700 ;					; and RSB

                                     0094  6710 ;*************************************************************

                                     0094  6720 ;-

OTS$SCOPY       ; Language-independent copy strings              21-AUG-1978 19:10:32   VAX-11 MACRO X0.3-11               Page  15

0-16            OTS$SCOPY_R_DD - Copy any class string to dynam                                                                 (12)



                                     0094   100 	.SBTTL	OTS$SCOPY_R_DD - Copy any class string to dynamic class string

                                     0094   200 

                                     0094   300 ;++

                                     0094   400 ; FUNCTIONAL DESCRIPTION:

                                     0094   500 ; 

                                     0094   600 ;	OTS$SCOPY_R_DD is similar to OTS$SCOPY_DXDX.

                                     0094   700 ;	The only difference is that they accept the source string as two

                                     0094   800 ;	separate arguments instead of as a descriptor.  They are provided

                                     0094   900 ;	expressly for the purpose of making it easy for a procedure to return

                                     0094  1000 ;	a string to its caller by descriptor, even though the procedure

                                     0094  1100 ;	may not have the source string represented using a descriptor.

                                     0094  1200 ;	Thus the source string is passed by reference with a character

                                     0094  1300 ;	count instead of by-descriptor.

                                     0094  1400 ;	OTS$SCOPY_R_DD copies a source  string  of  any

                                     0094  1500 ;	class  to  a  destination  string of any class.

                                     0094  1600 ; 

                                     0094  1700 ; CALLING SEQUENCE:

                                     0094  1800 ; 

                                     0094  1900 ;		CALL	OTS$SCOPY_R_DD (src_str_len.rw.v, src_str_adr.rt.r,

                                     0094  2000 ;						dst_str.wt.dd)

                                     0094  2100 ;		JSB	OTS$SCOPY_R_DD6

                                     0094  2200 ; 

                                     0094  2300 ; INPUT PARAMETERS:

                                     0094  2400 ; 

                           00000004  0094  2500 	SRC_STR_LEN = 4			; Length of source string (BY-VALUE)

                                     0094  2600 ;	    src_str_len is the length of the source string to be copied,

                                     0094  2700 ;		    which is passed BY-VALUE, instead of BY-REFERENCE.

                           00000008  0094  2800 	SRC_STR_ADR = 8			; Adr. of source string

                                     0094  2900 ;	     src_str_adr  is the address  of  the  source  string  to

                                     0094  3000 ;	             be copied.  

                           0000000C  0094  3100 	DST_STR = 12			; Adr. of destination string descriptor

                                     0094  3200 ;	     dst_str is the address of the destination string descriptor.

                                     0094  3300 ;	     The class field is assumed to be dynamic (DSC$K_CLASS_D) and

                                     0094  3400 ;	     is not checked.

                                     0094  3500 ; 

                                     0094  3600 ; OUTPUT PARAMETERS:

                                     0094  3700 ; 

                                     0094  3800 ;	     dst_str is the address of the destination string descriptor.

                                     0094  3900 ;	             The length (DSC$W_LENGTH) or both the length  and  the  address

                                     0094  4000 ;	             (DSC$A_POINTER) fields may be modified.

                                     0094  4100 ; 

                                     0094  4200 ; IMPLICIT OUTPUTS:

                                     0094  4300 ; 

                                     0094  4400 ;	R0:R3 are registers from MOVC3 or MOVC5.  Also condition codes.

                                     0094  4500 ; 

                                     0094  4600 ; COMPLETION STATUS:

                                     0094  4700 ; 

                                     0094  4800 ;	None.

                                     0094  4900 ; 

                                     0094  5000 ; SIDE EFFECTS:

                                     0094  5100 ; 

                                     0094  5200 ;	It SIGNALs OTS$_INSVIRMEM  ('INSUFFICIENT  VIRTUAL MEMORY') if it cannot get

                                     0094  5300 ;	enough virtual memory  from  the  operating  system;   otherwise,

                                     0094  5400 ;	string space may be allocated if the space already alocated

                                     0094  5500 ;	to the destination string is not sufficient.

                                     0094  5600 ;	If the class field of the distination string is not one

                                     0094  5700 ;	of the standard class types, error condition OTS$_INVSTRDES

OTS$SCOPY       ; Language-independent copy strings              21-AUG-1978 19:10:32   VAX-11 MACRO X0.3-11               Page  16

0-16            OTS$SCOPY_R_DD - Copy any class string to dynam                                                                 (12)



                                     0094  5800 ;	('INVALID STRING DESCRIPTOR') is SIGNALed.

                                     0094  5900 ;--

                                     0094  6000 

                                     0094  6100 

                                     0094  6200 

                                     0094  6210 ;+

                                     0094  6220 ;************************************************************

                                     0094  6230 ; Not in release 1.0 since not in manual.

                                     0094  6240 ;

                                     0094  6300 ;	.ENTRY	OTS$SCOPY_R_DD, ^M<IV, R2, R3, R4, R5, R6>		; entry point and entry mask

                                     0094  6400 ;					; enable integer overflow

                                     0094  6500 ;

                                     0094  6600 ;	MOVZWL	SRC_STR_LEN(AP), R0	; R0 = source str len

                                     0094  6700 ;	MOVQ	SRC_STR_ADR(AP), R1	; R1 = source str adr

                                     0094  6800 ;					; R2 = Adr. of dest str descr.

                                     0094  6900 ;	JSB	LIB$$SCOPY_RDD6		; copy string

                                     0094  7000 ;	BLBC	R0, ERROR		; branch if error

                                     0094  7100 ;	RET				; return to caller

                                     0094  7110 ;***********************************************************

                                     0094  7120 ;-

                                     0094  7200 

                                     0094  7300 

                                     0094  7400 OTS$SCOPY_R_DD6:			; JSB entry point - not global in release 1.0

                 00000000'EF     16  0094  7500 	JSB	LIB$$SCOPY_RDD6		; copy one string

            BF            50     E9  009A  7600 	BLBC	R0, ERROR		; branch if error

                                 05  009D  7700 	RSB				; return

                                     009E  7800 

                                     009E  7900 	.END

OTS$SCOPY       ; Language-independent copy strings              21-AUG-1978 19:10:32   VAX-11 MACRO X0.3-11               Page  17

SYMBOL TABLE                                                                                                                    (12)



BIT...         = 00000000            DSC$K_D_BLN      00000008            SS$_BADATTRIB  = 00000034            

DSC$A_A0         00000010            DSC$K_JI_BLN     0000000C            SS$_BADCHKSUM  = 00000808            

DSC$A_FRAME      00000008            DSC$K_J_BLN      00000008            SS$_BADESCAPE  = 0000003C            

DSC$A_POINTER    00000004            DSC$K_PI_BLN     0000000C            SS$_BADFILEHDR = 00000810            

DSC$B_AFLAGS     0000000A            DSC$K_P_BLN      00000008            SS$_BADFILENAME= 00000818            

DSC$B_CLASS      00000003            DSC$K_S_BLN      00000008            SS$_BADFILEVER = 00000820            

DSC$B_DIMCT      0000000B            DSC$K_Z_BLN      00000008            SS$_BADIMGHDR  = 00000044            

DSC$B_DTYPE      00000002            DSC$L_ARSIZE     0000000C            SS$_BADIRECTORY= 00000828            

DSC$C_D_BLN      00000008            DSC$L_M1         00000014            SS$_BADPARAM   = 00000014            

DSC$C_JI_BLN     0000000C            DSC$L_M2         00000018            SS$_BADSTACK   = 000002B4            

DSC$C_J_BLN      00000008            DSC$S_FL_BOUNDS= 00000001            SS$_BEGOFFILE  = 00000938            

DSC$C_PI_BLN     0000000C            DSC$S_FL_COEFF = 00000001            SS$_BLOCKCNTERR= 00000940            

DSC$C_P_BLN      00000008            DSC$S_FL_COLUMN= 00000001            SS$_BREAK      = 00000414            

DSC$C_S_BLN      00000008            DSC$V_FL_BOUNDS= 00000007            SS$_BUFBYTALI  = 0000030C            

DSC$C_Z_BLN      00000008            DSC$V_FL_COEFF = 00000006            SS$_BUFFEROVF  = 00000601            

DSC$K_CLASS_A  = 00000004            DSC$V_FL_COLUMN= 00000005            SS$_BUGCHECK   = 000002A4            

DSC$K_CLASS_D  = 00000002            DSC$W_LENGTH     00000000            SS$_CANCEL     = 00000830            

DSC$K_CLASS_J  = 00000007            DSC$W_MAXLEN     00000008            SS$_CHANINTLK  = 0000004C            

DSC$K_CLASS_JI = 00000008            DST_STR        = 0000000C            SS$_CLIFRCEXT  = 00000980            

DSC$K_CLASS_P  = 00000005            ERROR            0000005C R     03   SS$_CMODSUPR   = 0000041C            

DSC$K_CLASS_PI = 00000006            FOR$K_ERR_PREFX= 00000018            SS$_CMODUSER   = 00000424            

DSC$K_CLASS_S  = 00000001            GBL...         = 00000000            SS$_COMPAT     = 0000042C            

DSC$K_CLASS_V  = 00000003            LIB$$SCOPY_RDD6  ********   X   01   SS$_CONTINUE   = 00000001            

DSC$K_CLASS_Z  = 00000000            LIB$SFREE1_DD6   ********   X   01   SS$_CONTROLC   = 00000651            

DSC$K_DTYPE_B  = 00000006            LIB$SFREEN_DD6   ********   X   01   SS$_CONTROLO   = 00000609            

DSC$K_DTYPE_BU = 00000002            LIB$SGET1_DD_R6  ********   X   01   SS$_CONTROLY   = 00000611            

DSC$K_DTYPE_D  = 0000000B            LIB$STOP         ********   X   01   SS$_CREATED    = 00000619            

DSC$K_DTYPE_DC = 0000000D            MTH$K_ERR_PREFX= 00000016            SS$_CTRLERR    = 00000054            

DSC$K_DTYPE_DPC= 000000B9            MTH__FLOOVEMAT = 00000058            SS$_DATACHECK  = 0000005C            

DSC$K_DTYPE_EOM= 000000BD            MTH__FLOUNDMAT = 00000059            SS$_DATAOVERUN = 00000838            

DSC$K_DTYPE_EOR= 000000BF            MTH__INVARG    = 00000051            SS$_DEBUG      = 0000046C            

DSC$K_DTYPE_F  = 0000000A            MTH__LOGZERNEG = 00000053            SS$_DECOVF     = 000004A4            

DSC$K_DTYPE_FC = 0000000C            MTH__SINSIGLOS = 00000057            SS$_DEVACTIVE  = 000002C4            

DSC$K_DTYPE_FLD= 000000B7            MTH__SQUROONEG = 00000054            SS$_DEVALLOC   = 00000840            

DSC$K_DTYPE_L  = 00000008            MTH__UNDEXP    = 00000052            SS$_DEVALRALLOC= 00000641            

DSC$K_DTYPE_LBL= 000000BA            MTH__WRONUMARG = 00000050            SS$_DEVASSIGN  = 00000848            

DSC$K_DTYPE_LU = 00000004            OTS$SCOPY_DXDX   00000046 RG    03   SS$_DEVFOREIGN = 00000064            

DSC$K_DTYPE_MOD= 000000BC            OTS$SCOPY_DXDX6  00000053 RG    03   SS$_DEVICEFULL = 00000850            

DSC$K_DTYPE_NL = 00000010            OTS$SCOPY_R_DD6  00000094 R     03   SS$_DEVMOUNT   = 0000006C            

DSC$K_DTYPE_NLO= 00000011            OTS$SCOPY_R_DX   00000065 RG    03   SS$_DEVNOTALLOC= 00000858            

DSC$K_DTYPE_NR = 00000012            OTS$SCOPY_R_DX6  00000072 RG    03   SS$_DEVNOTMBX  = 00000074            

DSC$K_DTYPE_NRO= 00000013            OTS$SFREE1_DD    00000013 RG    03   SS$_DEVNOTMOUNT= 0000007C            

DSC$K_DTYPE_NU = 0000000F            OTS$SFREE1_DD6   0000001C RG    03   SS$_DEVOFFLINE = 00000084            

DSC$K_DTYPE_NZ = 00000014            OTS$SFREEN_DD    00000026 RG    03   SS$_DIRFULL    = 00000860            

DSC$K_DTYPE_P  = 00000015            OTS$SFREEN_DD6   0000002F RG    03   SS$_DRVERR     = 0000008C            

DSC$K_DTYPE_PCT= 000000B8            OTS$SGET1_DD     00000000 RG    03   SS$_DUPFILENAME= 00000868            

DSC$K_DTYPE_Q  = 00000009            OTS$SGET1_DD_R6  00000009 RG    03   SS$_DUPLNAM    = 00000094            

DSC$K_DTYPE_QU = 00000005            OTS$_INVSTRDES   ********   X   01   SS$_ENDOFFILE  = 00000870            

DSC$K_DTYPE_RTN= 000000BE            SRC_STR        = 00000004            SS$_ENDOFTAPE  = 00000878            

DSC$K_DTYPE_SLB= 000000BB            SRC_STR_ADR    = 00000008            SS$_ENDOFUSRLBL= 00000970            

DSC$K_DTYPE_T  = 0000000E            SRC_STR_LEN    = 00000004            SS$_EXQUOTA    = 0000001C            

DSC$K_DTYPE_V  = 00000001            SS$_ABORT      = 0000002C            SS$_EXTIDXFILE = 00000880            

DSC$K_DTYPE_W  = 00000007            SS$_ACCONFLICT = 00000800            SS$_FCPREADERR = 00000888            

DSC$K_DTYPE_WU = 00000003            SS$_ACCVIO     = 0000000C            SS$_FCPREPSTN  = 00000988            

DSC$K_DTYPE_Z  = 00000000            SS$_ACPVAFUL   = 000002FC            SS$_FCPREWNDERR= 00000890            

DSC$K_DTYPE_ZEM= 00000017            SS$_ARTRES     = 00000474            SS$_FCPSPACERR = 00000898            

DSC$K_DTYPE_ZI = 00000016            SS$_ASTFLT     = 0000040C            SS$_FCPWRITERR = 000008A0            

OTS$SCOPY       ; Language-independent copy strings              21-AUG-1978 19:10:32   VAX-11 MACRO X0.3-11               Page  18

SYMBOL TABLE                                                                                                                    (12)



SS$_FILACCERR  = 0000009C            SS$_MTLBLLONG  = 00000304            SS$_UNWIND     = 00000920            

SS$_FILALRACC  = 000000A4            SS$_MUSTCLOSEFL= 00000948            SS$_UNWINDING  = 00000928            

SS$_FILELOCKED = 000008A8            SS$_NOAQB      = 00000314            SS$_VASFULL    = 00000244            

SS$_FILENUMCHK = 000008B0            SS$_NODATA     = 000001AC            SS$_VECINUSE   = 0000024C            

SS$_FILESEQCHK = 000008B8            SS$_NOHANDLER  = 000008F8            SS$_VOLINV     = 00000254            

SS$_FILESTRUCT = 000008C0            SS$_NOHOMEBLK  = 000008E0            SS$_WAITUSRLBL = 00000950            

SS$_FILNOTACC  = 000000AC            SS$_NOIOCHAN   = 000001B4            SS$_WASCLR     = 00000001            

SS$_FILNOTCNTG = 000002AC            SS$_NOLINKS    = 0000027C            SS$_WASECC     = 00000639            

SS$_FILNOTEXP  = 000000B4            SS$_NOLOGNAM   = 000001BC            SS$_WASSET     = 00000009            

SS$_FLTDIV     = 00000494            SS$_NOMBX      = 00000274            SS$_WRITLCK    = 0000025C            

SS$_FLTOVF     = 0000048C            SS$_NOMOREFILES= 00000930            SS$_WRONGACP   = 0000031C            

SS$_FLTUND     = 0000049C            SS$_NONEXDRV   = 000001C4            S_TYPE           0000008C R     03   

SS$_FORMAT     = 000000BC            SS$_NONEXPR    = 000008E8            V_TYPE           0000007F R     03   

SS$_GPTFULL    = 000000C4            SS$_NONLOCAL   = 000008F0            Z_TYPE           0000008C R     03   

SS$_GSDFULL    = 000000CC            SS$_NOPRIV     = 00000024            

SS$_HANGUP     = 000002CC            SS$_NORMAL     = 00000001            

SS$_HEADERFULL = 000008C8            SS$_NOSIGNAL   = 00000900            

SS$_IDXFILEFULL= 000008D0            SS$_NOSOLICIT  = 00000284            

SS$_ILLBLKNUM  = 000000DC            SS$_NOSUCHDEV  = 00000908            

SS$_ILLCNTRFUNC= 000000E4            SS$_NOSUCHFILE = 00000910            

SS$_ILLEFC     = 000000EC            SS$_NOSUCHNODE = 0000028C            

SS$_ILLIOFUNC  = 000000F4            SS$_NOSUCHSEC  = 00000978            

SS$_ILLLBLAST  = 00000968            SS$_NOTAPEOP   = 00000264            

SS$_ILLPAGCNT  = 000000FC            SS$_NOTFILEDEV = 000001CC            

SS$_ILLSEQOP   = 000002DC            SS$_NOTINTBLSZ = 000001D4            

SS$_ILLSER     = 00000104            SS$_NOTLABELMT = 000001DC            

SS$_ILLUSRLBLRD= 00000958            SS$_NOTMODIFIED= 00000659            

SS$_ILLUSRLBLWT= 00000960            SS$_NOTNETDEV  = 000002EC            

SS$_INCVOLLABEL= 0000010C            SS$_NOTRAN     = 00000629            

SS$_INSFARG    = 00000114            SS$_NOTSQDEV   = 000001E4            

SS$_INSFMEM    = 00000124            SS$_OPCCUS     = 00000434            

SS$_INSFRAME   = 0000012C            SS$_OPCDEC     = 0000043C            

SS$_INSFWSL    = 0000011C            SS$_OPINCOMPL  = 000002D4            

SS$_INTDIV     = 00000484            SS$_PAGOWNVIO  = 000001EC            

SS$_INTOVF     = 0000047C            SS$_PAGRDERR   = 00000444            

SS$_IVADDR     = 00000134            SS$_PARITY     = 000001F4            

SS$_IVCHAN     = 0000013C            SS$_PARTESCAPE = 000001FC            

SS$_IVCHNLSEC  = 0000026C            SS$_PFMBSY     = 00000204            

SS$_IVDEVNAM   = 00000144            SS$_PLHLDR     = 00000404            

SS$_IVGSDNAM   = 0000014C            SS$_PSTFULL    = 0000020C            

SS$_IVLOGNAM   = 00000154            SS$_RADRMOD    = 0000044C            

SS$_IVLOGTAB   = 0000015C            SS$_REJECT     = 00000294            

SS$_IVPROTECT  = 000002F4            SS$_REMOTE     = 00000649            

SS$_IVQUOTAL   = 00000164            SS$_RESIGNAL   = 00000918            

SS$_IVSECFLG   = 0000016C            SS$_RESULTOVF  = 00000214            

SS$_IVSECIDCTL = 000002E4            SS$_ROPRAND    = 00000454            

SS$_IVSSRQ     = 00000174            SS$_SECTBLFUL  = 0000021C            

SS$_IVSTSFLG   = 0000017C            SS$_SSFAIL     = 0000045C            

SS$_IVTIME     = 00000184            SS$_SUBRNG     = 000004AC            

SS$_LCKPAGFUL  = 000000D4            SS$_SUPERSEDE  = 00000631            

SS$_LENVIO     = 0000018C            SS$_TAPEPOSLOST= 00000224            

SS$_LKWSETFUL  = 00000194            SS$_TBIT       = 00000464            

SS$_MBFULL     = 000008D8            SS$_TIMEOUT    = 0000022C            

SS$_MBTOOSML   = 0000019C            SS$_TOOMANYVER = 00000990            

SS$_MCHECK     = 000002BC            SS$_TOOMUCHDATA= 0000029C            

SS$_MEDOFL     = 000001A4            SS$_UNASEFC    = 00000234            

SS$_MSGNOTFND  = 00000621            SS$_UNSAFE     = 0000023C            

OTS$SCOPY       ; Language-independent copy strings              21-AUG-1978 19:10:32   VAX-11 MACRO X0.3-11               Page  19

PROGRAM SECTION SYNOPSIS                                                                                                        (12)







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$            0000001C      02     NOPIC   USR   CON   ABS   LCL NOSHR   EXE   RD    WRT BYTE  

OTS$CODE         0000009E      03       PIC   USR   CON   REL   LCL   SHR   EXE   RD  NOWRT LONG  





THERE WERE NO ERRORS OR WARNINGS.

16450. BYTES LEFT IN FREE MEMORY POOL.

3294. BYTES OF RECLAIMED MEMORY.

OBJ$:OTSSCOPY,LIS$:OTSSCOPY/-SP=LIB$:S/ML,SRC$:P,OTSSCOPY

7 MLB DIR RDS - 438 GETS TO DEFINE 11 MACROS. 31 INTER. FILE WRITES. 

