RCS_ROUTINE_VECTORS                                                       2-DEC-1992 14:00:50  VAX MACRO V5.4-3            Page   0
Table of contents

    (2)       27        Macro Definitions - Define_RCS_Routines.
    (3)       50        Macro Definitions - Define_Spares.
    (4)       75        Transfer Vector and RCS Routine Definitions.
    (5)      121        RCS Invalid Routine.
RCS_ROUTINE_VECTORS                                                       2-DEC-1992 14:00:50  VAX MACRO V5.4-3            Page   1
1-001                                                                     2-DEC-1992 11:28:49  RCS_ROUTINE_VECTORS.MAR;3         (1)

                                     0000     1 	.title	RCS_Routine_Vectors
                                     0000     2 	.ident	'1-001'
                                     0000     3 ;++
                                     0000     4 ; Title:	RCS Routine Vectors.
                                     0000     5 ;
                                     0000     6 ; Version:	1-001
                                     0000     7 ;
                                     0000     8 ; Facility:	RCS general purpose routines.
                                     0000     9 ;
                                     0000    10 ; Abstract:	This module contains transfer vectors to all of the public-
                                     0000    11 ;		domain routines in Sys$Library:RCS_Routines.Pas.
                                     0000    12 ;
                                     0000    13 ; Environment:	MicroVAX 3800.
                                     0000    14 ;		VAX/VMS v5.0 or later.
                                     0000    15 ;		VAX Macro.
                                     0000    16 ;		User mode.
                                     0000    17 ;
                                     0000    18 ; Author:	Jeffrey Payne, 27-Feb-1990.
                                     0000    19 ;
                                     0000    20 ; Modifications:
                                     0000    21 ;
                                     0000    22 ;   1-001	Jeffrey Payne, 27-Feb-1990.
                                     0000    23 ;		Creation.
                                     0000    24 ;--
                                     0000    25 
RCS_ROUTINE_VECTORS                                                       2-DEC-1992 14:00:50  VAX MACRO V5.4-3            Page   2
1-001                           Macro Definitions - Define_RCS_Routines.  2-DEC-1992 11:28:49  RCS_ROUTINE_VECTORS.MAR;3         (2)

                                     0000    27 	.subtitle	Macro Definitions - Define_RCS_Routines.
                                     0000    28 ;
                                     0000    29 ;	Define_RCS_Routine - 
                                     0000    30 ;		A macro to make the appropriate entries in several
                                     0000    31 ;		different PSECTs required to define a RCS routine.
                                     0000    32 ;		These include the transfer vector.
                                     0000    33 ;
                                     0000    34 ;	Define_RCS_Routine Name
                                     0000    35 ;
                                     0000    36 	.macro	Define_RCS_Routine Name
                                     0000    37 
                                     0000    38 	.psect	__rcs_transfer_vector,page,nowrt,exe,pic
                                     0000    39 
                                     0000    40 	.align	quad			; Align entry points for speed and style
                                     0000    41 	.transfer	Name		; Define name as universal symbol for entry
                                     0000    42 	.mask	name			; Use entry mask defined in main routine
                                     0000    43 	jmp	L^'name'+2	
                                     0000    44 
                                     0000    45 	Number_Of_Vectors_Used = Number_Of_Vectors_Used + 1
                                     0000    46 
                                     0000    47 	.endm	Define_RCS_Routine
                                     0000    48 
RCS_ROUTINE_VECTORS                                                       2-DEC-1992 14:00:50  VAX MACRO V5.4-3            Page   3
1-001                           Macro Definitions - Define_Spares.        2-DEC-1992 11:28:49  RCS_ROUTINE_VECTORS.MAR;3         (3)

                                     0000    50 	.sbttl	Macro Definitions - Define_Spares.
                                     0000    51 ;
                                     0000    52 ; The macro defined below will create space for empty vectors which may be
                                     0000    53 ; filled later using the Define_RCS_Routines macro.
                                     0000    54 ;
                                     0000    55 	.macro	Define_Spares		; Define spares for transfer vector.
                                     0000    56 	.psect	__rcs_transfer_vector, page, nowrt, exe, pic
                                     0000    57 
                                     0000    58 Number_Of_Spares = Total_Entries_In_Vector - Number_Of_Vectors_Used
                                     0000    59 
                                     0000    60 	.if greater_equal Number_Of_Spares
                                     0000    61 	  .align	quad
                                     0000    62 	  .repeat	Number_Of_Spares
                                     0000    63 	    .mask	RCS_Invalid_Routine
                                     0000    64 	    jmp		RCS_Invalid_Routine + 2  ; Returns SS$_ABORT
                                     0000    65 	    .align	quad
                                     0000    66 	  .endr
                                     0000    67 
                                     0000    68 	.if_false
                                     0000    69 	  .error Number_Of_Vectors_Used ; Too many vectors defined, eh.
                                     0000    70 	.endc
                                     0000    71 
                                     0000    72 	.endm Define_Spares
                                     0000    73 
RCS_ROUTINE_VECTORS                                                       2-DEC-1992 14:00:50  VAX MACRO V5.4-3            Page   4
1-001                           Transfer Vector and RCS Routine Definiti  2-DEC-1992 11:28:49  RCS_ROUTINE_VECTORS.MAR;3         (4)

                                     0000    75 	.SBTTL	Transfer Vector and RCS Routine Definitions.
                                     0000    76 ;++
                                     0000    77 ; The use of transfer vectors to effect entry to the RCS routines
                                     0000    78 ; enables some updating of the shareable image containing them without necessitating
                                     0000    79 ; a re-link of all programs that call them.  The PSECT containinng the transfer
                                     0000    80 ; vector will be positioned at the lowest virtual address in the shareable image
                                     0000    81 ; and so long as the transfer vector is not re-ordered, programs linked with
                                     0000    82 ; one version of the shareable image will continue to work with the next.
                                     0000    83 ;
                                     0000    84 ; Thus as additional routines are added to a privileged shareable image, their
                                     0000    85 ; definitions should be added to the end of the following list to ensure that
                                     0000    86 ; programs using previous versions of it will not need to be re-linked.
                                     0000    87 ; To completely avoid relinking existing programs the size of the privileged
                                     0000    88 ; shareable image must not change so some padding will be required to provide
                                     0000    89 ; the opportunity for future growth.
                                     0000    90 ;--
                           00000100  0000    91 Total_Entries_In_Vector = 256
                           00000000  0000    92 Number_Of_Vectors_Used = 0
                                     0000    93 
                                     0000    94 	Define_RCS_Routine	Name = RCS_ASCII_To_Id
                                     0008    95 	Define_RCS_Routine	Name = RCS_Display_Image_List
                                     0010    96 	Define_RCS_Routine	Name = RCS_Equal
                                     0018    97 	Define_RCS_Routine	Name = RCS_Get_ASCIC
                                     0020    98 	Define_RCS_Routine	Name = RCS_Get_Diskquota
                                     0028    99 	Define_RCS_Routine	Name = RCS_Get_File_Dates
                                     0030   100 	Define_RCS_Routine	Name = RCS_Get_Ident
                                     0038   101 	Define_RCS_Routine	Name = RCS_Get_Node_Name
                                     0040   102 	Define_RCS_Routine	Name = RCS_Get_System_Version
                                     0048   103 	Define_RCS_Routine	Name = RCS_Get_Terminal
                                     0050   104 	Define_RCS_Routine	Name = RCS_Get_Username
                                     0058   105 	Define_RCS_Routine	Name = RCS_GetJPI_Numeric
                                     0060   106 	Define_RCS_Routine	Name = RCS_Id_To_ASCII
                                     0068   107 	Define_RCS_Routine	Name = RCS_Parse_Date
                                     0070   108 	Define_RCS_Routine	Name = RCS_Put_ASCIC
                                     0078   109 	Define_RCS_Routine	Name = RCS_String_To_Integer
                                     0080   110 	Define_RCS_Routine	Name = RCS_Translate
                                     0088   111 	Define_RCS_Routine	Name = RCS_Trim
                                     0090   112 	Define_RCS_Routine	Name = RCS_Trim_Leading
                                     0098   113 	Define_RCS_Routine	Name = RCS_Upcase
                                     00A0   114 
                                     00A0   115 	Define_RCS_Routine	Name = RCS_Free_VM_With_Descriptor
                                     00A8   116 	Define_RCS_Routine	Name = RCS_Get_VM_With_Descriptor
                                     00B0   117 
                                     00B0   118 	Define_Spares
                                     0800   119 
RCS_ROUTINE_VECTORS                                                       2-DEC-1992 14:00:50  VAX MACRO V5.4-3            Page   5
1-001                           RCS Invalid Routine.                      2-DEC-1992 11:28:49  RCS_ROUTINE_VECTORS.MAR;3         (5)

                                     0800   121 	.subtitle	RCS Invalid Routine.
                                     0800   122 ;++
                                     0800   123 ; The following routine is used in the case of an invalid transfer vector.
                                     0800   124 ;__
                                 00000000   125 	.psect	_rcs_invalid_routine_code, rd, nowrt, exe, shr, pic, gbl
                               0000  0000   126 	.entry	RCS_Invalid_Routine, ^M<>
                                     0002   127 
              50   00000000'8F   D0  0002   128 	movl	#SS$_ABORT, r0
                                 04  0009   129 	ret
                                     000A   130 
                                     000A   131 	.end	; Module RCS_Routine_Vectors.
RCS_ROUTINE_VECTORS                                                       2-DEC-1992 14:00:50  VAX MACRO V5.4-3            Page   6
Symbol table                                                              2-DEC-1992 11:28:49  RCS_ROUTINE_VECTORS.MAR;3         (5)

NUMBER_OF_SPARES               = 000000EA                 
NUMBER_OF_VECTORS_USED         = 00000016                 
RCS_ASCII_TO_ID                  ********  GX   01        
RCS_DISPLAY_IMAGE_LIST           ********  GX   01        
RCS_EQUAL                        ********  GX   01        
RCS_FREE_VM_WITH_DESCRIPTOR      ********  GX   01        
RCS_GETJPI_NUMERIC               ********  GX   01        
RCS_GET_ASCIC                    ********  GX   01        
RCS_GET_DISKQUOTA                ********  GX   01        
RCS_GET_FILE_DATES               ********  GX   01        
RCS_GET_IDENT                    ********  GX   01        
RCS_GET_NODE_NAME                ********  GX   01        
RCS_GET_SYSTEM_VERSION           ********  GX   01        
RCS_GET_TERMINAL                 ********  GX   01        
RCS_GET_USERNAME                 ********  GX   01        
RCS_GET_VM_WITH_DESCRIPTOR       ********  GX   01        
RCS_ID_TO_ASCII                  ********  GX   01        
RCS_INVALID_ROUTINE              00000000 RG    02        
RCS_PARSE_DATE                   ********  GX   01        
RCS_PUT_ASCIC                    ********  GX   01        
RCS_STRING_TO_INTEGER            ********  GX   01        
RCS_TRANSLATE                    ********  GX   01        
RCS_TRIM                         ********  GX   01        
RCS_TRIM_LEADING                 ********  GX   01        
RCS_UPCASE                       ********  GX   01        
SS$_ABORT                        ********   X   02        
TOTAL_ENTRIES_IN_VECTOR        = 00000100                 

                                                +----------------+
                                                ! Psect synopsis !
                                                +----------------+

PSECT name                      Allocation          PSECT No.  Attributes     
----------                      ----------          ---------  ----------     
.  ABS  .                       00000000  (    0.)  00 (  0.)  NOPIC   USR   CON   ABS   LCL NOSHR NOEXE NORD  NOWRT NOVEC BYTE  
__RCS_TRANSFER_VECTOR           00000800  ( 2048.)  01 (  1.)    PIC   USR   CON   REL   LCL NOSHR   EXE   RD  NOWRT NOVEC PAGE  
_RCS_INVALID_ROUTINE_CODE       0000000A  (   10.)  02 (  2.)    PIC   USR   CON   REL   GBL   SHR   EXE   RD  NOWRT NOVEC BYTE  

                                             +------------------------+
                                             ! Performance indicators !
                                             +------------------------+

Phase                    Page faults    CPU Time       Elapsed Time   
-----                    -----------    --------       ------------   
Initialization                   28     00:00:00.04    00:00:00.31
Command processing              882     00:00:00.23    00:00:00.47
Pass 1                          223     00:00:00.60    00:00:00.74
Symbol table sort                 0     00:00:00.00    00:00:00.00
Pass 2                           16     00:00:00.16    00:00:00.26
Symbol table output               0     00:00:00.01    00:00:00.01
Psect synopsis output             2     00:00:00.00    00:00:00.01
Cross-reference output            0     00:00:00.00    00:00:00.00
Assembler run totals           1168     00:00:01.04    00:00:01.88

The working set limit was 1412 pages.
18596 bytes (37 pages) of virtual memory were used to buffer the intermediate code.
There were 10 pages of symbol table space allocated to hold 27 non-local and 0 local symbols.
RCS_ROUTINE_VECTORS                                                       2-DEC-1992 14:00:50  VAX MACRO V5.4-3            Page   7
VAX-11 Macro Run Statistics                                               2-DEC-1992 11:28:49  RCS_ROUTINE_VECTORS.MAR;3         (5)

131 source lines were read in Pass 1, producing 37 object records in Pass 2.
2 pages of virtual memory were used to define 2 macros.

                                            +--------------------------+
                                            ! Macro library statistics !
                                            +--------------------------+

Macro library name                           Macros defined      
------------------                           --------------      
SYS$COMMON:[SYSLIB]STARLET.MLB;2                        0        

0 GETS were required to define 0 macros.

There were no errors, warnings or information messages.

MACRO/LIST RCS_ROUTINE_VECTORS
