RM1INPSCN       SYS$INPUT $, $EOD, & $DECK ROUTINES              21-AUG-1978 21:41:50   VAX-11 MACRO X0.3-11               Page   0

TABLE OF CONTENTS   



   (1)      43  DECLARATIONS

   (1)      84  RM$INPUT_SCAN  -  CHECK SYS$INPUT FOR $, $EOD, 

   (4)     456  DCL_SCAN SUBROUTINE

RM1INPSCN       SYS$INPUT $, $EOD, & $DECK ROUTINES              21-AUG-1978 21:41:50   VAX-11 MACRO X0.3-11               Page   1

004                                                                                                                              (1)



                                     0000     1 	$BEGIN	RM1INPSCN,004,$RMS1,<SYS$INPUT $, $EOD, & $DECK ROUTINES>

                                     0000     2 

                                     0000     3 

                                     0000     4 ;

                                     0000     5 ; COPYRIGHT (C) 1977

                                     0000     6 ; DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASSACHUSETTS 01754

                                     0000     7 ;

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

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

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

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

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

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

                                     0000    14 ; REMAIN IN DEC.

                                     0000    15 ;

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

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

                                     0000    18 ; CORPORATION.

                                     0000    19 ;

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

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

                                     0000    22 ;

                                     0000    23 ;++

                                     0000    24 ; FACILITY: RMS32

                                     0000    25 ;

                                     0000    26 ; ABSTRACT:

                                     0000    27 ;		THIS MODULE PERFORMS END OF FILE CHECKING, AS WELL AS

                                     0000    28 ;		$DECK PROCESSING FOR $GET /$FIND ON SYS$INPUT

                                     0000    29 ;		PROCESSING FOR THE SEQUENTIAL FILE ORGANIZATION.

                                     0000    30 ;

                                     0000    31 ;

                                     0000    32 ; ENVIRONMENT:

                                     0000    33 ;		STAR PROCESSOR RUNNING STARLET EXEC.

                                     0000    34 ;

                                     0000    35 ; AUTHOR: L F LAVERDURE,	 CREATION DATE: 29-JAN-78

                                     0000    36 ;

                                     0000    37 ; MODIFIED BY:

                                     0000    38 ;

                                     0000    39 ;	L F LAVERDURE,   17-JUN-78  20:57

                                     0000    40 ; 01	- 

                                     0000    41 ;--

RM1INPSCN       SYS$INPUT $, $EOD, & $DECK ROUTINES              21-AUG-1978 21:41:50   VAX-11 MACRO X0.3-11               Page   2

004             DECLARATIONS                                                                                                     (1)



                                     0000    43 	.SBTTL	DECLARATIONS

                                     0000    44 ;

                                     0000    45 ; INCLUDE FILES:

                                     0000    46 ;

                                     0000    47 

                                     0000    48 ;

                                     0000    49 ; MACROS:

                                     0000    50 ;

                                     0000    51 	$IRBDEF

                                     0000    52 	$IFBDEF

                                     0000    53 	$DEVDEF

                                     0000    54 	$BDBDEF

                                     0000    55 	$PIODEF

                                     0000    56 	$RMSDEF

                                     0000    57 	.LIST MEB

                                     0000    58 

                                     0000    59 ;

                                     0000    60 ;  MACRO TO CALL DCL_SCAN SUBROUTINE, SETTING UP IN-LINE ARGUMENT LIST

                                     0000    61 ;  OF MATCH STRING AND EQUALITY BRANCH OFFSET

                                     0000    62 ;

                                     0000    63 	.MACRO	DCL_SCAN	STR=,EQUAL=,DISP=B,?L

                                     0000    64 		BSB'DISP	DCL_SCAN

                                     0000    65 		.ASCIC	%STR%

                                     0000    66 L:		.BYTE	EQUAL-L		; OFFSET TO "EQUALS" ROUTINE

                                     0000    67 	.ENDM	DCL_SCAN

                                     0000    68 

                                     0000    69 ;

                                     0000    70 ; EQUATED SYMBOLS:

                                     0000    71 ;

                           00000009  0000    72 	TAB		=	9	; HORIZONTAL TAB

                           00000061  0000    73 	LOWERCASE_A	=	97	; LOWER CASE A

                           0000007A  0000    74 	LOWERCASE_Z	=	122	; LOWER CASE Z

                                     0000    75 

                           0000000F  0000    76 	EODSTR_MAXLEN	=	15	; MAX. LEN. OF END-OF-DATA SCAN STRING

                                     0000    77 

                                     0000    78 ;

                                     0000    79 ;

                                     0000    80 ; OWN STORAGE:

                                     0000    81 ;

                                     0000    82 

RM1INPSCN       SYS$INPUT $, $EOD, & $DECK ROUTINES              21-AUG-1978 21:41:50   VAX-11 MACRO X0.3-11               Page   3

004             RM$INPUT_SCAN  -  CHECK SYS$INPUT FOR $, $EOD,                                                                   (1)



                                     0000    84 	.SBTTL	RM$INPUT_SCAN  -  CHECK SYS$INPUT FOR $, $EOD, OR $DECK RECORD

                                     0000    85 ;++

                                     0000    86 ; FUNCTIONAL DESCRIPTION

                                     0000    87 ;

                                     0000    88 ;  RM$INPUT_SCAN ROUTINE TO CHECK THE CURRENT (NON-TERMINAL) RECORD FOR

                                     0000    89 ;  MATCHING THE CURRENT SYS$INPUT END-OF-DATA SCAN STRING.  THIS WILL BE

                                     0000    90 ;  EITHER A SINGLE '$' OR SOME USER-DEFINED STRING.  IF THE RECORD MATCHES

                                     0000    91 ;  A USER-DEFINED STRING, CAUSE THIS RECORD TO BE SKIPPED AND RETURN A

                                     0000    92 ;  SINGLE RMS$_EOF ERROR (I.E., DO NOT LATCH), ALLOWING FURTHER READS TO

                                     0000    93 ;  ACCESS SUBSEQUENT RECORDS.

                                     0000    94 ;

                                     0000    95 ;  IF MATCHING A SINGLE '$', CHECK IF THE PIO$V_EOD FLAG IS ON, SPECIFYING

                                     0000    96 ;  THAT ONLY A MATCH OF '$EOD' IS TO BE SCANNED FOR.  IF SO, THEN PROCEED AS

                                     0000    97 ;  FOR A MATCH OF A USER-DEFINED STRING ABOVE IF THE RECORD CONTAINS $EOD.

                                     0000    98 ;

                                     0000    99 ;  IF NOT MATCHING $EOD, TRY FOR A MATCH ON $DECK, AND IF SO PERFORM APPROPRIATE

                                     0000   100 ;  PROCESSING.  IF THE RECORD IS NOT $DECK, (I.E., IT IS SOME OTHER RECORD

                                     0000   101 ;  BEGINNING WITH A '$'), RETURN RMS$_EOF  ERROR AND DO NOT SKIP THIS RECORD

                                     0000   102 ;  SO THAT SUBSEQUENT $GETS OR $FINDS BY THE USER WILL ALSO ENCOUNTER THIS

                                     0000   103 ;  EOF RECORD.

                                     0000   104 ;

                                     0000   105 ;  IF THE RECORD MATCHES NONE OF THE ABOVE CASES, SIMPLY RETURN.  THE RECORD

                                     0000   106 ;  WILL BE PROCESSED NORMALLY, THAT IS, IT WILL BE GOTTEN OR FOUND FOR THE USER.

                                     0000   107 ;

                                     0000   108 ; INPUT PARAMETERS:

                                     0000   109 ;

                                     0000   110 ;	R11	IMPURE AREA ADDR

                                     0000   111 ;	R10	IFAB ADDR

                                     0000   112 ;	R9	IRAB ADDR

                                     0000   113 ;	R8	RAB ADDR

                                     0000   114 ;	R7	ADDR OF END OF BUFFER+1

                                     0000   115 ;	R6	SIZE OF RECORD IN BYTES

                                     0000   116 ;	R1	ADDR OF RECORD IN THE BUFFER

                                     0000   117 ;

                                     0000   118 ; IMPLICIT INPUTS:

                                     0000   119 ;

                                     0000   120 ;	THE CONTENTS OF THE VARIOUS STRUCTURES.

                                     0000   121 ;	PIO$GT_ENDSTR	THE CURRENT END-OF-DATA SCAN STRING

                                     0000   122 ;	PIO$V_EOD	$EOD FLAG

                                     0000   123 ;	NOTE: IF SYS$INPUT IS FROM A DISK FILE AND RECORDS ARE ALLOWED TO

                                     0000   124 ;	      CROSS BLOCK BOUNDARIES, IRB$B_MBC MUST BE GREATER THAN 0,

                                     0000   125 ;	      OTHERWISE THE PROCESSING OF A RECORD CROSSING A BLOCK BOUNDARY

                                     0000   126 ;	      WILL CAUSE RMS TO LOOP.  IT IS ASSUMED THAT RM$CONNECT1 HAS

                                     0000   127 ;	      FORCED MBC > 0.

                                     0000   128 ;

                                     0000   129 ;  (NOTE: IT HAS ALREADY BEEN DETERMINED EXTERNALLY TO THIS ROUTINE THAT

                                     0000   130 ;   THIS IS THE SYS$INPUT STREAM, INDIRECTLY ACCESSED, ON A NON-TERMINAL DEVICE.

                                     0000   131 ;

                                     0000   132 ; OUTPUTS:

                                     0000   133 ;

                                     0000   134 ;	R2-R5,AP	DESTROYED

                                     0000   135 ;	R0		STATUS CODE

                                     0000   136 ;

                                     0000   137 ; IMPLICIT OUTPUTS:

                                     0000   138 ;

                                     0000   139 ;	IRB$L_CURBDB	MAY BE CLEARED

                                     0000   140 ;	IRB$V_FIND	SET IF RECORD IS TO BE SKIPPED ($EOD, USER-DEFINED

RM1INPSCN       SYS$INPUT $, $EOD, & $DECK ROUTINES              21-AUG-1978 21:41:50   VAX-11 MACRO X0.3-11               Page   4

004             RM$INPUT_SCAN  -  CHECK SYS$INPUT FOR $, $EOD,                                                                   (1)



                                     0000   141 ;			EOD, OR $DECK)

                                     0000   142 ;	IRB$V_PPF_EOF	SET IF $EOD OR USER-DEFINED EOD.  AFTER RECORD IS

                                     0000   143 ;			SKIPPED, FLAGS RETURN OF RMS$_EOF STATUS.  IN THIS

                                     0000   144 ;			CASE RETURN STATUS FROM RM$INPUT_SCAN IS RMS$_SUC.

                                     0000   145 ;	IRB$V_PPF_SKIP	SET IF RECORD IS $DECK.  CAUSES NEXT RECORD TO BE

                                     0000   146 ;			PROCESSED AFTER $DECK RECORD IS SKIPPED.

                                     0000   147 ;	IRB$V_PPF_FNDSV	SAVES ORIGINAL STATE OF IRB$V_FIND WHEN IRB$V_PPF_SKIP

                                     0000   148 ;			IS SET

                                     0000   149 ;

                                     0000   150 ; COMPLETION CODE:

                                     0000   151 ;

                                     0000   152 ;	STANDARD RMS (SUC OR EOF), EXCEPT THAT A SPECIAL CODE OF HEX 10000 WILL BE

                                     0000   153 ;	 RETURNED IN R0 TO INDICATE THAT RECORD TO BE MATCHED WAS NOT ENTIRELY

                                     0000   154 ;	 CONTAINED WITHIN THE BUFFER.  IN THIS CASE THE CURRENT BDB HAS BEEN

                                     0000   155 ;	 RELEASED AND THE BUFFER NEED MERELY BE REFILLED.

                                     0000   156 ;

                                     0000   157 ; SIDE EFFECTS:

                                     0000   158 ;

                                     0000   159 ;	MATCHING THE EOD STRING RESETS THE EOD STRING TO A SINGLE '$'.

                                     0000   160 ;	$DECK MAY SET THIS TO SOMETHING ELSE.

                                     0000   161 ;	INVALID SYNTAX ON '$' RECORDS WILL CAUSE A HARD EOF, WHICH WILL CAUSE

                                     0000   162 ;	THE CLI TO PROCESS THE OFFENDING RECORD.

                                     0000   163 ;

                                     0000   164 ;--

RM1INPSCN       SYS$INPUT $, $EOD, & $DECK ROUTINES              21-AUG-1978 21:41:50   VAX-11 MACRO X0.3-11               Page   5

004             RM$INPUT_SCAN  -  CHECK SYS$INPUT FOR $, $EOD,                                                                   (1)



                                     0000   166 RM$INPUT_SCAN::

            57            51     D1  0000   167 	CMPL	R1,R7				; IS THIS THE END OF THE BUFFER?

                          06     12  0003   168 	BNEQ	20$				; BRANCH IF NOT

                          FFF8'  30  0005   169 	BSBW	RM$NEXT_BLK			; YES - GO READ ANOTHER BLOCK

            42            50     E9  0008   170 	BLBC	R0,SCNRSB			; GET OUT ON ERROR

                                     000B   171 20$:

                                     000B   172 ;++

                                     000B   173 ;

                                     000B   174 ;  MUST CHECK IF ENTIRE RECORD IS CONTAINED IN THE BUFFER.

                                     000B   175 ;

                                     000B   176 ;  THIS CHECK ASSUMES THAT MBC IS NON-ZERO FOR DISK FILES WHERE RECORDS CROSS

                                     000B   177 ;  BLOCK BOUNDARIES.  IN THIS CASE, BDB$B_VAL_VBNS GIVES THE NUMBER OF VALID

                                     000B   178 ;  BLOCKS IN THE BUFFER, AND BDB$B_REL_VBN SPECIFIES WHICH BLOCK WITHIN THE

                                     000B   179 ;  BUFFER IS CURRENTLY BEING PROCESSED, IN THE RANGE OF 0 TO IRB$B_MBC.

                                     000B   180 ;

                                     000B   181 ;  CALCULATE IN R5 THE TOTAL # OF BYTES REMAINING IN THIS AND ANY SUBSEQUENT

                                     000B   182 ;  BLOCKS IN THE BUFFER.

                                     000B   183 ;

                                     000B   184 ;--

                          51     DD  000B   185 	PUSHL	R1				; SAVE THE CURRENT RECORD OFFSET

            57            51     C3  000D   186 	SUBL3	R1,R7,R5			; COMPUTE # BYTES LEFT THIS BLOCK

                          55         0010       

            54         20 A9     D0  0011   187 	MOVL	IRB$L_CURBDB(R9),R4		; GET CURRENT BDB ADDRESS

            50         21 A4     9A  0015   188 	MOVZBL	BDB$B_VAL_VBNS(R4),R0		; TOTAL # VALID VBNS IN BUFFER

            50         20 A4     82  0019   189 	SUBB2	BDB$B_REL_VBN(R4),R0		; # BLOCKS TO END OF BUFFER

                          50     D7  001D   190 	DECL	R0				; ADJUST FOR CURRENT BLOCK

            50         38 AA     A4  001F   191 	MULW2	IFB$W_DEVBUFSIZ(R10),R0		; # BYTES AFTER CURRENT BLOCK

            55            50     A0  0023   192 	ADDW2	R0,R5				; TOTAL # VALID BYTES LEFT

                                     0026   193 ;++

                                     0026   194 ;

                                     0026   195 ;  NOW TRY TO MATCH AGAINST END OF DATA STRING

                                     0026   196 ;

                                     0026   197 ;--

            53   00000000'9F     9E  0026   198 	MOVAB	@#PIO$GT_ENDSTR,R3		; GET ADDR OF END OF DATA STRING

            52            83     9A  002D   199 	MOVZBL	(R3)+,R2			; GET STRING LENGTH

            52            56     B1  0030   200 	CMPW	R6,R2				; IS RECORD AT LEAST THIS LONG?

                          13     1F  0033   201 	BLSSU	SUCXIT				; NO = NO MATCH

            55            52     B1  0035   202 	CMPW	R2,R5				; YES  -  IS THE EOD MATCH STRING

                                     0038   203 						; COMPLETELY WITHIN BUFFER?

                          08     1B  0038   204 	BLEQU	40$				; BRANCH IF YES

            61            55     29  003A   205 	CMPC3	R5,(R1),(R3)			; MATCH FIRST PART?

                          63         003D       

                          08     12  003E   206 	BNEQ	SUCXIT				; BRANCH IF NOT

                          43     11  0040   207 	BRB	RE_READ				; MUST READ IN 2ND PART FOR COMPARE

            61            52     29  0042   208 40$:	CMPC3	R2,(R1),(R3)			; EOD STRING MATCH?

                          63         0045       

                          06     13  0046   209 	BEQL	EOD_MATCH			; BRANCH IF YES

                                     0048   210 						; NO - SIMPLY RETURN

                                     0048   211 SUCXIT:	RMSSUC	

            50            01     D0  0048       		MOVL	#1,R0

                          02     BA  004B   212 SCNXIT:	POPR	#^M<R1>				; RESTORE RECORD ADDRESS

                                 05  004D   213 SCNRSB:	RSB

RM1INPSCN       SYS$INPUT $, $EOD, & $DECK ROUTINES              21-AUG-1978 21:41:50   VAX-11 MACRO X0.3-11               Page   6

004             RM$INPUT_SCAN  -  CHECK SYS$INPUT FOR $, $EOD,                                                                   (3)



                                     004E   215 

                                     004E   216 ;++

                                     004E   217 ;

                                     004E   218 ;  HAVE MATCHED THE CURRENT END-OF-DATA STRING

                                     004E   219 ;

                                     004E   220 ;  IF MATCHING A SINGLE '$', MUST CHECK FOR $EOD AND $DECK, ELSE HAVE

                                     004E   221 ;  MATCHED A USER-DEFINED (VIA $DECK) STRING AND MUST SKIP IT, GIVING

                                     004E   222 ;  A SINGLE EOF ERROR.

                                     004E   223 ;

                                     004E   224 ;--

                                     004E   225 EOD_MATCH:

            55            56     B1  004E   226 	CMPW	R6,R5				; IS ENTIRE RECORD WITHIN BUFF?

                          32     1A  0051   227 	BGTRU	RE_READ				; BRANCH IF NOT

       2401 8F   00000000'9F     B1  0053   228 	CMPW	@#PIO$GT_ENDSTR,#1+<^A/$/@8>	; ARE WE MATCHING SINGLE '$'?

                          2A     12  005C   229 	BNEQ	END_OF_DATA			; BRANCH IF NOT

            56            01     C3  005E   230 	SUBL3	#1,R6,R0			; SET REMAINING BYTE COUNT

                          50         0061       

                                     0062   231 	DCL_SCAN <EOD>,EQUAL=END_OF_DATA1	; SCAN FOR 'EOD'

                          6B     10  0062       		BSBB	DCL_SCAN

                        44 4F 45 00' 0064       		.ASCIC	%EOD%

                                 03  0064       

                                 2B' 0068       30000$:		.BYTE	END_OF_DATA1-30000$		; OFFSET TO "EQUALS" ROUTINE

                                     0069   232 						; RECORD NOT $EOD

   00000000'9F            01     E0  0069   233 	BBS	#PIO$V_EOD,@#PIO$GW_STATUS,SUCXIT ; BRANCH IF ONLY MATCHING '$EOD'

                          D7         0070       

                                     0071   234 	DCL_SCAN <DECK>,EQUAL=GOT_DECK		; SCAN FOR 'DECK'

                          5C     10  0071       		BSBB	DCL_SCAN

                     4B 43 45 44 00' 0073       		.ASCIC	%DECK%

                                 04  0073       

                                 30' 0078       30001$:		.BYTE	GOT_DECK-30001$		; OFFSET TO "EQUALS" ROUTINE

                                     0079   235 ;++

                                     0079   236 ;

                                     0079   237 ;  HAVE FOUND A '$' RECORD THAT IS NEITHER $EOD NOR $DECK.

                                     0079   238 ;

                                     0079   239 ;  RETURN RMS$_EOF AND RESET THE NRP TO FIND THIS RECORD AGAIN.

                                     0079   240 ;

                                     0079   241 ;--

                                     0079   242 SETEOF:	RMSERR	EOF

            50       827A 8F     3C  0079       		MOVZWL	#<RMS$_EOF&^XFFFF>,R0

         2C A9         34 A9     7D  007E   243 	MOVQ	IRB$L_RP_VBN(R9),IRB$L_NRP_VBN(R9)

                          C6     11  0083   244 	BRB	SCNXIT

RM1INPSCN       SYS$INPUT $, $EOD, & $DECK ROUTINES              21-AUG-1978 21:41:50   VAX-11 MACRO X0.3-11               Page   7

004             RM$INPUT_SCAN  -  CHECK SYS$INPUT FOR $, $EOD,                                                                   (3)



                                     0085   246 ;++

                                     0085   247 ;

                                     0085   248 ;  THE CURRENT RECORD IS NOT ENTIRELY CONTAINED WITHIN THE BUFFER.

                                     0085   249 ;  NOTE THAT THIS CAN ONLY HAPPEN WITH DISK FILES.

                                     0085   250 ;

                                     0085   251 ;  CAUSE THE BUFFER TO BE READ AGAIN, BUT WITH THE CURRENT BLOCK AS THE

                                     0085   252 ;  FIRST BLOCK IN THE BUFFER.  SINCE THE BUFFER IS A MULTIPLE BLOCK BUFFER,

                                     0085   253 ;  THE NEW READ WILL CAUSE THE NEXT PART OF THE CURRENT RECORD TO BE

                                     0085   254 ;  RESIDENT ALSO.  THEN MERELY SET FLAG SAYING RE-GET THE CURRENT RECORD.

                                     0085   255 ;  THE NEXT TIME RM$INPUT_SCAN IS CALLED IT WILL SUCCEED.

                                     0085   256 ;

                                     0085   257 ;  NOTE:  WORST CASE IS A VFC RECORD WITH A 255 BYTE FIXED PART, WITH THE

                                     0085   258 ;	  BYTE COUNT COMING AS THE LAST WORD OF A BLOCK.  IN THIS CASE

                                     0085   259 ;	  AND WITH A 2-BLOCK BUFFER, MIN. RECORD SIZE THAT CAN BE PROCESSED

                                     0085   260 ;	  IS 257 BYTES.

                                     0085   261 ;--

                                     0085   262 RE_READ:

                                     0085   263 	$PSECT_BR	L$RMS1GETPPF

                          FF78'  31  0085       		BRW	L$RMS1GETPPF0

                                     0088       		.SAVE

                                 00000000       		.PSECT	L$RMS1GETPPF,GBL,NOWRT

                                     0000       L$RMS1GETPPF0:

                          FFFD'  30  0000   264 	BSBW	RM$RELBLK1			; RELEASE BUFFER

            13            50     E9  0003   265 	BLBC	R0,20$				; GET OUT ON ERROR

         2C A9         34 A9     7D  0006   266 	MOVQ	IRB$L_RP_VBN(R9),IRB$L_NRP_VBN(R9)	; RE-READ THIS RECORD

       0101 8F            56     B1  000B   267 	CMPW	R6,#257				; ANY WORST CASE PROBLEMS?

                          0A     1A  0010   268 	BGTRU	30$				; BRANCH IF YES

            01            10     78  0012   269 	ASHL	#16,#1,R0			; SET STATUS TO INDICATE RE-READ

                          50         0015       

                                     0016   270 						; REQURIED

                       20 A9     D4  0016   271 	CLRL	IRB$L_CURBDB(R9)		; MAKE SURE THIS BDB NOT REUSED

                          002F'  31  0019   272 20$:	BRW	SCNXIT				; AND RETURN TO CALLER

                                     001C   273 30$:	RMSERR	IRC				; ILLEGAL RECORD ENCOUNTERED

            50       857C 8F     3C  001C       		MOVZWL	#<RMS$_IRC&^XFFFF>,R0

                          F6     11  0021   274 	BRB	20$

                                     0023   275 	$PSECT_RESTORE

                                 00000088       		.RESTORE

RM1INPSCN       SYS$INPUT $, $EOD, & $DECK ROUTINES              21-AUG-1978 21:41:50   VAX-11 MACRO X0.3-11               Page   8

004             RM$INPUT_SCAN  -  CHECK SYS$INPUT FOR $, $EOD,                                                                   (3)



                                     0088   277 ;++

                                     0088   278 ;

                                     0088   279 ;  HAVE ENCOUNTER USER-DEFINED END-OF-DATA STRING

                                     0088   280 ;

                                     0088   281 ;  RESET END-OF-DATA SCAN STRING TO MATCH A SINGLE '$'

                                     0088   282 ;

                                     0088   283 ;--

                                     0088   284 END_OF_DATA:

   00000000'9F       2401 8F     B0  0088   285 	MOVW	#1+<^A/$/@8>,@#PIO$GT_ENDSTR

                          0B     11  0091   286 	BRB	EOD1

                                     0093   287 

                                     0093   288 ;++

                                     0093   289 ;

                                     0093   290 ;  HAVE ENCOUNTER $EOD

                                     0093   291 ;

                                     0093   292 ;  CLEAR IRB$V_PPF_EOD SO THAT ANY '$' RECORD WILL GIVE EOF ERROR, AND

                                     0093   293 ;  SET IRB$V_PPF_EOF TO CAUSE EOF TO BE RETURNED AFTER RECORD HAS BEEN SKIPPED.

                                     0093   294 ;

                                     0093   295 ;--

                                     0093   296 END_OF_DATA1:

   00000000'9F            02     8A  0093   297 	BICB2	#1@PIO$V_EOD,@#PIO$GW_STATUS	; CLEAR EOD FLAG

                          50     D5  009A   298 	TSTL	R0				; ANY OTHER TOKENS SEEN?

                          DB     12  009C   299 	BNEQ	SETEOF				; BRANCH IF YES (ERROR)

                                     009E   300 EOD1:	SSB	#IRB$V_PPF_EOF,(R9)		; CAUSE EOF TO BE RETURNED

            69            2E     E2  009E       		BBSS	#IRB$V_PPF_EOF,(R9),30002$

                          00         00A1       

                                     00A2       30002$:

                                     00A2   301 SET_FIND:

                                     00A2   302 	SSB	#IRB$V_FIND,(R9)		; SET FIND BIT TO SKIP RECORD

            69            29     E2  00A2       		BBSS	#IRB$V_FIND,(R9),30003$

                          00         00A5       

                                     00A6       30003$:

                          A0     11  00A6   303 SUC_BR:	BRB	SUCXIT

RM1INPSCN       SYS$INPUT $, $EOD, & $DECK ROUTINES              21-AUG-1978 21:41:50   VAX-11 MACRO X0.3-11               Page   9

004             RM$INPUT_SCAN  -  CHECK SYS$INPUT FOR $, $EOD,                                                                   (3)



                                     00A8   305 ;++

                                     00A8   306 ;

                                     00A8   307 ;  HAVE FOUND $DECK

                                     00A8   308 ;

                                     00A8   309 ;  SCAN FOR /DOLLARS QUALIFIER

                                     00A8   310 ;

                                     00A8   311 ;--

                                     00A8   312 GOT_DECK:

                                     00A8   313 	DCL_SCAN </DOLL>,EQUAL=GOT_DOLLARS	; SCAN FOR '/DOLL'

                          25     10  00A8       		BSBB	DCL_SCAN

                  4C 4C 4F 44 2F 00' 00AA       		.ASCIC	%/DOLL%

                                 05  00AA       

                                 16' 00B0       30004$:		.BYTE	GOT_DOLLARS-30004$		; OFFSET TO "EQUALS" ROUTINE

                          C6     12  00B1   314 	BNEQ	SETEOF				; BRANCH IF SOMETHING OTHER THAN

                                     00B3   315 						; '/DOLL' SEEN (ERROR)

                                     00B3   316 ;++

                                     00B3   317 ;

                                     00B3   318 ;  SAW $DECK, EITHER WITH NO QUALIFIER OR WITH /DOLLARS AND EITHER A NULL OR

                                     00B3   319 ;  NO ARGUMENT.

                                     00B3   320 ;

                                     00B3   321 ;  IN ANY CASE, SET PIO$V_EOD TO INDICATE '$EOD' IS THE LOCICAL END-OF-DATA STRING

                                     00B3   322 ;

                                     00B3   323 ;--

   00000000'9F            02     88  00B3   324 SETEOD:	BISB2	#1@PIO$V_EOD,@#PIO$GW_STATUS

                                     00BA   325 SET_SKIP:

                                     00BA   326 	SSB	#IRB$V_PPF_SKIP,(R9)		; SET FLAG TO SKIP $DECK RECORD

            69            2F     E2  00BA       		BBSS	#IRB$V_PPF_SKIP,(R9),30005$

                          00         00BD       

                                     00BE       30005$:

                                     00BE   327 						; AND READ THE NEXT

            69            29     E1  00BE   328 	BBC	#IRB$V_FIND,(R9),SET_FIND	; BRANCH IF DOING $GET

                          E0         00C1       

            69            30     E3  00C2   329 	BBCS	#IRB$V_PPF_FNDSV,(R9),SUC_BR	; SAVE FIND BIT AND BRANCH

                          E0         00C5       

RM1INPSCN       SYS$INPUT $, $EOD, & $DECK ROUTINES              21-AUG-1978 21:41:50   VAX-11 MACRO X0.3-11               Page  10

004             RM$INPUT_SCAN  -  CHECK SYS$INPUT FOR $, $EOD,                                                                   (3)



                                     00C6   331 ;++

                                     00C6   332 ;

                                     00C6   333 ;  HAVE FOUND $DECK /DOLLARS

                                     00C6   334 ;

                                     00C6   335 ;  SCAN FOR END-OF-DATA STRING VALUE INDICATOR ('=' OR ':')

                                     00C6   336 ;

                                     00C6   337 ;--

                                     00C6   338 GOT_DOLLARS:

                                     00C6   339 	$PSECT_BR	L$RMS1GETPPF

                          FF5A'  31  00C6       		BRW	L$RMS1GETPPF1

                                     00C9       		.SAVE

                                 00000023       		.PSECT	L$RMS1GETPPF,GBL,NOWRT

                                     0023       L$RMS1GETPPF1:

                                     0023   340 	DCL_SCAN <:>,EQUAL=GOT_ARG,DISP=W	; SCAN FOR ':'

                          00A9'  30  0023       		BSBW	DCL_SCAN

                              3A 00' 0026       		.ASCIC	%:%

                                 01  0026       

                                 0F' 0028       30006$:		.BYTE	GOT_ARG-30006$		; OFFSET TO "EQUALS" ROUTINE

                          09     13  0029   341 	BEQL	SETEOD_BR			; BRANCH IF NOTHING ELSE IN RECORD

                                     002B   342 	DCL_SCAN <=>,EQUAL=GOT_ARG,DISP=W	; SCAN FOR '='

                          00A1'  30  002B       		BSBW	DCL_SCAN

                              3D 00' 002E       		.ASCIC	%=%

                                 01  002E       

                                 07' 0030       30007$:		.BYTE	GOT_ARG-30007$		; OFFSET TO "EQUALS" ROUTINE

                                     0031   343 SETEOF_BR:

                          0045'  31  0031   344 	BRW	SETEOF				; BAD SYNTAX - GIVE EOF ERROR

                                     0034   345 SETEOD_BR:

                          007C'  31  0034   346 	BRW	SETEOD				; EXTENDED BRANCH

                                     0037   347 

                                     0037   348 ;++

                                     0037   349 ;

                                     0037   350 ;  HAVE FOUND $DECK /DOLLARS :

                                     0037   351 ;

                                     0037   352 ;  SCAN FOR END-OF-DATA STRING VALUE

                                     0037   353 ;

                                     0037   354 ;--

                                     0037   355 GOT_ARG:

                                     0037   356 	DCL_SCAN <">,EQUAL=GOT_QUOTE,DISP=W	; SCAN FOR QUOTED STRING

                          0095'  30  0037       		BSBW	DCL_SCAN

                              22 00' 003A       		.ASCIC	%"%

                                 01  003A       

                                 08' 003C       30008$:		.BYTE	GOT_QUOTE-30008$		; OFFSET TO "EQUALS" ROUTINE

                          F5     13  003D   357 	BEQL	SETEOD_BR			; BRANCH IF NOTHING ELSE

                                     003F   358 ;++

                                     003F   359 ;

                                     003F   360 ;  HAVE AN UNQUOTED, NON-NULL END-OF-DATA STRING VALUE DESCRIBED BY R0,R1

                                     003F   361 ;

                                     003F   362 ;  COPY CHARACTERS TO END OF DATA STRING UP TO FIRST BLANK, TAB OR "!",

                                     003F   363 ;  CONVERTING THEM TO UPPER CASE.

                                     003F   364 ;

                                     003F   365 ;--

            52            01     D0  003F   366 	MOVL	#1,R2				; FLAG UNQUOTED STRING VALUE

                          02     11  0042   367 	BRB	UNQUOTED

                                     0044   368 ;++

                                     0044   369 ;

                                     0044   370 ;  HAVE FOUND $DECK /DOLLARS : "

                                     0044   371 ;

RM1INPSCN       SYS$INPUT $, $EOD, & $DECK ROUTINES              21-AUG-1978 21:41:50   VAX-11 MACRO X0.3-11               Page  11

004             RM$INPUT_SCAN  -  CHECK SYS$INPUT FOR $, $EOD,                                                                   (3)



                                     0044   372 ;  SCAN FOR CLOSING QUOTE, MOVING CHARACTERS TO END OF DATA STRING.

                                     0044   373 ;  PROCESS SUCH THAT SUCCESSIVE DOUBLE QUOTES CAUSE A SINGLE DOUBLE QUOTE

                                     0044   374 ;  TO BE ENTERED INTO THE END OF DATA STRING.

                                     0044   375 ;

                                     0044   376 ;--

                                     0044   377 GOT_QUOTE:

                          52     D4  0044   378 	CLRL	R2				; FLAG QUOTED STRING

                                     0046   379 UNQUOTED:

                          55     D4  0046   380 	CLRL	R5				; BUILD STRING COUNT HERE

            54   00000000'9F     9E  0048   381 	MOVAB	@#PIO$GT_ENDSTR,R4		; ADDR OF EOD STRING LENGTH

            53         01 A4     9E  004F   382 	MOVAB	1(R4),R3			; ADDR OF EOD STRING TEXT

                          03     11  0053   383 	BRB	20$				; GO PROCESS CHARACTERS

            83            81     90  0055   384 10$:	MOVB	(R1)+,(R3)+			; COPY CHAR TO EOD STRING

                          50     D7  0058   385 20$:	DECL	R0				; ANY MORE CHARACTERS?

                          4B     19  005A   386 	BLSS	60$				; BRANCH IF NOT

            0F            52     E8  005C   387 	BLBS	R2,45$				; BRANCH IF UNQUOTED STRING

            22            61     91  005F   388 	CMPB	(R1),#^A/"/			; MATCHING QUOTE?

                          31     13  0062   389 	BEQL	50$				; BRANCH IF YES

            55            0F     F3  0064   390 30$:	AOBLEQ	#EODSTR_MAXLEN,R5,10$		; COUNT CHAR. AND BRANCH IF OK

                          ED         0067       

                                     0068   391 ;++

                                     0068   392 ;

                                     0068   393 ;  EXCEEDED MAX CHARACTER COUNT.  RESET EOD MATCH STRING TO SINGLE '$'.

                                     0068   394 ;

                                     0068   395 ;--

         01 A4            24     90  0068   396 40$:	MOVB	#^A/$/,1(R4)			; RESTORE MATCH STRING

                          C3     11  006C   397 	BRB	SETEOF_BR			; GO GIVE ERROR

                                     006E   398 ;++

                                     006E   399 ;

                                     006E   400 ;  UNQUOTED STRING

                                     006E   401 ;

                                     006E   402 ;  MOVE CHARACTER TO E-O-D STRING UNLESS IT'S BLANK, TAB, OR "!"

                                     006E   403 ;  AND CONVERT TO UPPER CASE.

                                     006E   404 ;

                                     006E   405 ;--

            20            61     91  006E   406 45$:	CMPB	(R1),#^A/ /			; SPACE?

                          2D     13  0071   407 	BEQL	55$				; BRANCH IF YES

            09            61     91  0073   408 	CMPB	(R1),#TAB			; TAB?

                          28     13  0076   409 	BEQL	55$				; BRANCH IF YES

            21            61     91  0078   410 	CMPB	(R1),#^A/!/			; "!"?

                          23     13  007B   411 	BEQL	55$				; BRANCH IF YES

         61 8F            61     91  007D   412 	CMPB	(R1),#LOWERCASE_A		; LOWER CASE CHAR?

                          E1     1F  0081   413 	BLSSU	30$				; BRANCH IF NOT

         7A 8F            61     91  0083   414 	CMPB	(R1),#LOWERCASE_Z		; WELL, IS IT?

                          DB     1A  0087   415 	BGTRU	30$				; BRANCH IF NOT

            55            0F     F3  0089   416 	AOBLEQ	#EODSTR_MAXLEN,R5,48$		; COUNT CHAR. & BRANCH IF OK

                          02         008C       

                          D9     11  008D   417 	BRB	40$				; GO PROCESS EOD LENGTH ERROR

            81            20     83  008F   418 48$:	SUBB3	#LOWERCASE_A-^A/A/,(R1)+,(R3)+	; CONVERT TO UPPER CASE

                          83         0092       

                          C3     11  0093   419 	BRB	20$				; GO GET NEXT CHAR.

RM1INPSCN       SYS$INPUT $, $EOD, & $DECK ROUTINES              21-AUG-1978 21:41:50   VAX-11 MACRO X0.3-11               Page  12

004             RM$INPUT_SCAN  -  CHECK SYS$INPUT FOR $, $EOD,                                                                   (3)



                                     0095   421 ;++

                                     0095   422 ;

                                     0095   423 ;  FOUND A DOUBLE QUOTE CHARACTER WHILE PROCESSING QUOTED STRING

                                     0095   424 ;

                                     0095   425 ;  CHECK NEXT CHAR. FOR DOUBLE QUOTE AND INCLUDE ONLY ONE IF FOUND

                                     0095   426 ;

                                     0095   427 ;--

                          50     D7  0095   428 50$:	DECL	R0				; ANY MORE CHARACTERS?

                          0E     19  0097   429 	BLSS	60$				; BRANCH IF NOT

                          51     D6  0099   430 	INCL	R1				; POINT TO NEXT CHAR

            22            61     91  009B   431 	CMPB	(R1),#^A/"/			; IS IT ANOTHER " ?

                          C4     13  009E   432 	BEQL	30$				; BRANCH IF YES

                                     00A0   433 ;++

                                     00A0   434 ;

                                     00A0   435 ;  HAVE COMPLETED STRING VALUE, BUT REMAINING STRING IS NON-NULL.

                                     00A0   436 ;

                                     00A0   437 ;  GIVE AN ERROR IF ANYTHING OTHER THAN BLANKS, TABS, OR COMMENT.

                                     00A0   438 ;

                                     00A0   439 ;--

                          50     D6  00A0   440 55$:	INCL	R0				; RESTORE CHARACTER COUNT

                          008C'  30  00A2   441 	BSBW	BLNK_SKIP			; SKIP BLANKS AND TABS

                          C1     12  00A5   442 	BNEQ	40$				; BRANCH IF OTHER THAN COMMENT

                                     00A7   443 ;++

                                     00A7   444 ;

                                     00A7   445 ;  END OF DATA STRING SET UP O.K.

                                     00A7   446 ;

                                     00A7   447 ;  STORE LENGTH AND GO SKIP RECORD.

                                     00A7   448 ;

                                     00A7   449 ;--

                          55     95  00A7   450 60$:	TSTB	R5				; ANY CHARS PROCESSED?

                          89     13  00A9   451 	BEQL	SETEOD_BR			; BRANCH IF NONE

            64            55     90  00AB   452 	MOVB	R5,(R4)				; STORE COUNT

                          0009'  31  00AE   453 	BRW	SET_SKIP			; GO SKIP RECORD

                                     00B1   454 	$PSECT_RESTORE

                                 000000C9       		.RESTORE

RM1INPSCN       SYS$INPUT $, $EOD, & $DECK ROUTINES              21-AUG-1978 21:41:50   VAX-11 MACRO X0.3-11               Page  13

004             DCL_SCAN SUBROUTINE                                                                                              (4)



                                     00C9   456 	.SBTTL	DCL_SCAN SUBROUTINE

                                     00C9   457 ;++

                                     00C9   458 ;

                                     00C9   459 ;  DCL_SCAN SUBROUTINE TO SCAN FOR NEXT TOKEN AND COMPARE IT TO ONE

                                     00C9   460 ;  BEING SEARCHED FOR.  CASE IS NOT SIGNIFICANT FOR THE COMPARE.

                                     00C9   461 ;  ANY INITIAL BLANKS OR TABS ARE SKIPPED OVER.

                                     00C9   462 ;

                                     00C9   463 ;  IF THE STRINGS MATCH, THE RETURN IS MADE TO THE ADDRESS SPECIFIED IN THE

                                     00C9   464 ;  "EQUAL" INPUT ARGUMENT, OTHERWISE RETURN IS MADE IN LINE.

                                     00C9   465 ;  NOTE THAT THE DCL_SCAN MACRO IS USED TO SET UP THE IN-LINE ARGUMENT LIST

                                     00C9   466 ;

                                     00C9   467 ;  IN THE CASE OF STRINGS OTHER THAN LENGTH 1, ANY CHARACTERS FOLLOWING

                                     00C9   468 ;  THE MATCHED CHARACTERS AND BEFORE THE NEXT TERMINATOR ARE CONSIDERED

                                     00C9   469 ;  TO BE PART OF THE TOKEN AND ARE ALSO SKIPPED IN SETTING THE REMAINING

                                     00C9   470 ;  STRING DESCRIPTOR, AS ARE ANY TRAILING BLANKS OR TABS.

                                     00C9   471 ;

                                     00C9   472 ;  INPUTS:

                                     00C9   473 ;

                                     00C9   474 ;	R0		REMAINING STRING LENGTH

                                     00C9   475 ;	R1		REMAINING STRING START ADDRESS

                                     00C9   476 ;	(SP)		COUNTED, UPPER-CASE STRING TO MATCH

                                     00C9   477 ;	(SP)+COUNT	BRANCH BYTE OFFSET FOR EQUAL COMPARE

                                     00C9   478 ;

                                     00C9   479 ;  OUTPUTS:

                                     00C9   480 ;

                                     00C9   481 ;	R0		LENGTH OF REMAINING STRING (PAST TOKEN AND POSSIBLE

                                     00C9   482 ;			TRAILING BLANKS IF MATCHED)

                                     00C9   483 ;	R1		ADDRESS OF REMAINING STRING

                                     00C9   484 ;	R2-R5,AP	DESTROYED

                                     00C9   485 ;

                                     00C9   486 ;  NOTES:

                                     00C9   487 ;

                                     00C9   488 ;	1. IF NO MATCH, R0 & R1 WILL BE UPDATED TO POINT PAST ANY INITIAL

                                     00C9   489 ;	   SPACES AND OR TABS

                                     00C9   490 ;	2. R0 WILL BE SET TO 0 ON RETURN IF NO STRING OR ONLY A COMMENT REMAINS

                                     00C9   491 ;	3. Z-BIT WILL BE SET BASED ON R0

                                     00C9   492 ;

                                     00C9   493 ;--

                  09 2F 3A 3D 21 20  00C9   494 TRMLST:	.ASCII	\ !=:/\<TAB>

                           00000006  00CF   495 TLSTSZ=.-TRMLST

RM1INPSCN       SYS$INPUT $, $EOD, & $DECK ROUTINES              21-AUG-1978 21:41:50   VAX-11 MACRO X0.3-11               Page  14

004             DCL_SCAN SUBROUTINE                                                                                              (4)



                                     00CF   497 DCL_SCAN:

            55            6E     D0  00CF   498 	MOVL	(SP),R5				; GET ADDR OF COUNTED ASCII

                                     00D2   499 						;  MATCH STRING

            54            85     9A  00D2   500 	MOVZBL	(R5)+,R4			; GET LENGTH OF STRING

                                     00D5   501 						;  (R5 NOW POINTS TO STRING)

            6E            54     C0  00D5   502 	ADDL2	R4,(SP)				; BUMP RETURN ADDRESS ...

                          6E     D6  00D8   503 	INCL	(SP)				; ... TO POINT PAST ASCII STRING

                                     00DA   504 ;++

                                     00DA   505 ;

                                     00DA   506 ;  SKIP INITIAL SPACES AND TABS

                                     00DA   507 ;

                                     00DA   508 ;--

                          55     10  00DA   509 	BSBB	BLNK_SKIP			; SKIP TABS AND BLANKS

                          4E     13  00DC   510 	BEQL	NULL_STRING			; BRANCH IF NOTHING LEFT

                                     00DE   511 ;++

                                     00DE   512 ;

                                     00DE   513 ;  THE STRING DESRIBED BY R0, R1 IS OF NON-ZERO LENGTH AND DOES NOT BEGIN

                                     00DE   514 ;  WITH TAB, SPACE, OR "!"

                                     00DE   515 ;

                                     00DE   516 ;  SEE IF IT MATCHES THE SCAN STRING (DESCRIBED BY R4 & R5)

                                     00DE   517 ;

                                     00DE   518 ;--

            52            50     7D  00DE   519 	MOVQ	R0,R2				; SAVE REMAINING LEN AND ADDR

            50            54     C2  00E1   520 	SUBL2	R4,R0				; AT LEAST MATCH COUNT LONG?

                          43     19  00E4   521 	BLSS	NOMATCH				; BRANCH IF NOT

                          54     DD  00E6   522 	PUSHL	R4				; SAVE MATCH STRING COUNT

            5C            81     90  00E8   523 10$:	MOVB	(R1)+,AP			; GET NEXT BYTE

         61 8F            5C     91  00EB   524 	CMPB	AP,#LOWERCASE_A			; LOWER CASE?

                          09     1F  00EF   525 	BLSSU	20$				; BRANCH IF NOT

         7A 8F            5C     91  00F1   526 	CMPB	AP,#LOWERCASE_Z			; WELL, IS IT?

                          03     1A  00F5   527 	BGTRU	20$				; BRANCH IF NOT

            5C            20     82  00F7   528 	SUBB2	#LOWERCASE_A - <^A/A/>,AP	; CONVERT TO UPPER CASE

            85            5C     91  00FA   529 20$:	CMPB	AP,(R5)+			; MATCH?

                          28     12  00FD   530 	BNEQ	UNEQUAL				; BRANCH IF NOT

            E6            54     F5  00FF   531 	SOBGTR	R4,10$				; LOOP

RM1INPSCN       SYS$INPUT $, $EOD, & $DECK ROUTINES              21-AUG-1978 21:41:50   VAX-11 MACRO X0.3-11               Page  15

004             DCL_SCAN SUBROUTINE                                                                                              (4)



                                     0102   533 ;++

                                     0102   534 ;

                                     0102   535 ;  STRINGS ARE EQUAL

                                     0102   536 ;

                                     0102   537 ;  IF MATCH COUNT IS NOT = 1, SCAN TO END OF TOKEN AND THEN TO START OF NEXT TOKEN

                                     0102   538 ;  (END OF TOKEN IS INDICATED BY SPACE, TAB, !, /, =, OR :)

                                     0102   539 ;

                                     0102   540 ;  IN ANY CASE, TAKE THE "EQUAL=" EXIT

                                     0102   541 ;

                                     0102   542 ;++

                          8E     D7  0102   543 	DECL	(SP)+				; WAS MATCH COUNT = 1?

                          18     13  0104   544 	BEQL	60$				; BRANCH IF YES

            52            50     7D  0106   545 	MOVQ	R0,R2				; SAVE REMAINING DESCRIPTOR

                          07     11  0109   546 	BRB	40$

            06            83     3A  010B   547 30$:	LOCC	(R3)+,#TLSTSZ,TRMLST		; IS CHARACTER A DELIMITER?

                       B9 AF         010E       

                          03     12  0110   548 	BNEQ	50$				; BRANCH IF YES

            F6            52     F4  0112   549 40$:	SOBGEQ	R2,30$				; LOOP IF MORE CHARACTERS

                          52     D6  0115   550 50$:	INCL	R2				; DON'T COUNT TERMINATOR

                          53     D7  0117   551 	DECL	R3				; OR POINT PAST IT

            50            52     7D  0119   552 	MOVQ	R2,R0				; DESCRIPTOR TO RIGHT REGS

                          13     10  011C   553 	BSBB	BLNK_SKIP			; GO SKIP TABS AND BLANKS

            52         00 BE     98  011E   554 60$:	CVTBL	@(SP),R2			; PICK UP "EQUAL" BRANCH OFFSET

            6E            52     C0  0122   555 	ADDL2	R2,(SP)				; ADD IN OFFSET TO RETURN PC

                          07     11  0125   556 	BRB	SCAN_XIT

                                     0127   557 ;++

                                     0127   558 ;

                                     0127   559 ;  THE INPUT STRING DIDN'T CONTAIN THE MATCH STRING

                                     0127   560 ;

                                     0127   561 ;  LEAVE R0,R1 DESCRIBING ANY REMAINING STRING AND TAKE IN-LINE (NON-EQUAL) RETURN

                                     0127   562 ;

                                     0127   563 ;--

                                     0127   564 UNEQUAL:

                          8E     D5  0127   565 	TSTL	(SP)+				; POP SAVED MATCH COUNT

                                     0129   566 NOMATCH:

            50            52     7D  0129   567 	MOVQ	R2,R0				; RESTORE SAVE DESCRIPTOR

                                     012C   568 NULL_STRING:

                          6E     D6  012C   569 	INCL	(SP)				; SKIP PAST "EQUAL" RETURN OFFSET

                                     012E   570 SCAN_XIT:

                          50     D5  012E   571 	TSTL	R0				; SET Z BIT ACCORDING TO R0

                                 05  0130   572 	RSB

RM1INPSCN       SYS$INPUT $, $EOD, & $DECK ROUTINES              21-AUG-1978 21:41:50   VAX-11 MACRO X0.3-11               Page  16

004             DCL_SCAN SUBROUTINE                                                                                              (4)



                                     0131   574 ;++

                                     0131   575 ;

                                     0131   576 ;  BLNK_SKIP SUBROUTINE TO SKIP PAST BLANKS AND TABS, UP TO POSSIBLE COMMENT

                                     0131   577 ;  OR END OF INPUT STRING

                                     0131   578 ;

                                     0131   579 ;  INPUTS:

                                     0131   580 ;

                                     0131   581 ;	R0	INPUT STRING LENGTH

                                     0131   582 ;	R1	INPUT STRING ADDRESS

                                     0131   583 ;

                                     0131   584 ;  OUTPUTS:

                                     0131   585 ;

                                     0131   586 ;	R0	REMAINING STRING LENGTH AFTER BLANKS AND TABS SKIPPED

                                     0131   587 ;		(IF ONLY A COMMENT LEFT, R0 WILL BE SET TO ZERO)

                                     0131   588 ;	R1	REMAINING STRING ADDRESS

                                     0131   589 ;	Z-BIT	SET IF NO MORE INPUT (OTHER THAN COMMENT), ELSE CLEAR

                                     0131   590 ;

                                     0131   591 ;--

                                     0131   592 BLNK_SKIP:

            50            20     3B  0131   593 10$:	SKPC	#^A/ /,R0,(R1)			; SKIP SPACES

                          61         0134       

                          12     13  0135   594 	BEQL	30$				; BRANCH IF NOTHING BUT SPACES

            61            09     91  0137   595 	CMPB	#TAB,(R1)			; IS CHAR TAB?

                          06     12  013A   596 	BNEQ	20$				; BRANCH IF NOT (DONE)

                          50     D7  013C   597 	DECL	R0				; YES - DECREMENT COUNT

                          51     D6  013E   598 	INCL	R1				; SKIP TAB

                          EF     11  0140   599 	BRB	10$				; AND CONTINUE SKIPPING

            61            21     91  0142   600 20$:	CMPB	#^A/!/,(R1)			; DO WE HAVE A COMMENT?

                          02     12  0145   601 	BNEQ	30$				; BRANCH IF NOT

                          50     D4  0147   602 	CLRL	R0				; YES - SAY END OF INPUT

                                 05  0149   603 30$:	RSB					; RETURN WITH Z-BIT SET IF NO

                                     014A   604 						; MORE INPUT

                                     014A   605 

                                     014A   606 

                                     014A   607 	.END

RM1INPSCN       SYS$INPUT $, $EOD, & $DECK ROUTINES              21-AUG-1978 21:41:50   VAX-11 MACRO X0.3-11               Page  17

SYMBOL TABLE                                                                                                                     (4)



$$.PSECT_EP    = 00000002            DEV$M_MNT      = 00080000            IFB$B_FSZ        0000004B            

$$RMSTEST      = 0000001A            DEV$M_NET      = 00002000            IFB$B_KBUFSZ     0000005C            

$$RMS_PBUGCHK  = 00000010            DEV$M_ODV      = 08000000            IFB$B_MODE       0000000A            

$$RMS_TBUGCHK  = 00000008            DEV$M_RCK      = 40000000            IFB$B_NUM_KEYS   0000005A            

$$RMS_UMODE    = 00000004            DEV$M_REC      = 00000001            IFB$B_ORGCASE    00000023            

BDB$B_BID        00000008            DEV$M_RND      = 10000000            IFB$B_RAT        0000003D            

BDB$B_BLN        00000009            DEV$M_RTM      = 20000000            IFB$B_RFMORG     0000003C            

BDB$B_FLGS       0000000A            DEV$M_SDI      = 00000010            IFB$B_UBUFSZ     0000005B            

BDB$B_POST_CCTL  00000023            DEV$M_SHR      = 00010000            IFB$C_BID      = 0000000B            

BDB$B_PRE_CCTL   00000022            DEV$M_SPL      = 00000040            IFB$C_BLN        00000060            

BDB$B_REL_VBN    00000020            DEV$M_SQD      = 00000020            IFB$C_BLN_IDX    00000060            

BDB$B_USECNT     0000000B            DEV$M_SWL      = 02000000            IFB$C_BLN_REL    00000060            

BDB$B_VAL_VBNS   00000021            DEV$M_TRM      = 00000004            IFB$C_BLN_SEQ    0000005C            

BDB$C_BID      = 0000000C            DEV$M_WCK      = 80000000            IFB$C_DIR      = 00000003            

BDB$C_BLN        00000028            DEV$V_ALL      = 00000017            IFB$C_FHAEND     00000050            

BDB$K_BLN        00000028            DEV$V_AVL      = 00000012            IFB$C_IDX      = 00000002            

BDB$L_ADDR       00000014            DEV$V_CCL      = 00000001            IFB$C_MAXORG   = 00000002            

BDB$L_BLINK      00000004            DEV$V_DIR      = 00000003            IFB$C_REL      = 00000001            

BDB$L_CURBUFADR  00000024            DEV$V_DMT      = 00000015            IFB$C_SEQ      = 00000000            

BDB$L_FLINK      00000000            DEV$V_ELG      = 00000016            IFB$K_BLN        00000060            

BDB$L_IOSB       00000020            DEV$V_FOD      = 0000000E            IFB$K_BLN_IDX    00000060            

BDB$L_OWN        0000000C            DEV$V_FOR      = 00000018            IFB$K_BLN_REL    00000060            

BDB$L_VBN        00000018            DEV$V_GEN      = 00000011            IFB$K_BLN_SEQ    0000005C            

BDB$L_WAIT       0000001C            DEV$V_IDV      = 0000001A            IFB$K_FHAEND     00000050            

BDB$L_WK1        00000020            DEV$V_MBX      = 00000014            IFB$L_ARGLST     00000018            

BDB$M_AST_DCL  = 00000040            DEV$V_MNT      = 00000013            IFB$L_ASBADDR    00000014            

BDB$M_DRT      = 00000002            DEV$V_NET      = 0000000D            IFB$L_AS_DEV     00000054            

BDB$M_IOP      = 00000004            DEV$V_ODV      = 0000001B            IFB$L_BDB_BLNK   00000034            

BDB$M_LKDINWS  = 00000080            DEV$V_RCK      = 0000001E            IFB$L_BDB_FLNK   00000030            

BDB$M_NOLOCATE = 00000010            DEV$V_REC      = 00000000            IFB$L_BKPBITS    00000004            

BDB$M_PRM      = 00000008            DEV$V_RND      = 0000001C            IFB$L_BWB        0000000C            

BDB$M_VAL      = 00000001            DEV$V_RTM      = 0000001D            IFB$L_DVBN       00000058            

BDB$M_WFO      = 00000020            DEV$V_SDI      = 00000004            IFB$L_EBK        00000044            

BDB$V_AST_DCL  = 00000006            DEV$V_SHR      = 00000010            IFB$L_FRB_PTR    00000028            

BDB$V_DRT      = 00000001            DEV$V_SPL      = 00000006            IFB$L_FWA_BDB    00000050            

BDB$V_IOP      = 00000002            DEV$V_SQD      = 00000005            IFB$L_HBK        00000040            

BDB$V_LKDINWS  = 00000007            DEV$V_SWL      = 00000019            IFB$L_IDX_PTR    00000054            

BDB$V_NOLOCATE = 00000004            DEV$V_TRM      = 00000002            IFB$L_IOS        0000000C            

BDB$V_PRM      = 00000003            DEV$V_WCK      = 0000001F            IFB$L_IOS4       00000010            

BDB$V_VAL      = 00000000            END_OF_DATA      00000088 R     02   IFB$L_IRAB_LNK   0000001C            

BDB$V_WFO      = 00000005            END_OF_DATA1     00000093 R     02   IFB$L_LAST_FAB   00000024            

BDB$W_NUMB       00000010            EOD1             0000009E R     02   IFB$L_LOCK_BDB   00000050            

BDB$W_SIZE       00000012            EODSTR_MAXLEN  = 0000000F            IFB$L_MRN        00000054            

BIT...         = 0001C134            EOD_MATCH        0000004E R     02   IFB$L_NRP_LNK    00000050            

BLNK_SKIP        00000131 R     02   GBL...         = 00000000            IFB$L_NWA_PTR    00000028            

DCL_SCAN         000000CF R     02   GOT_ARG          00000037 R     04   IFB$L_PRIM_DEV   00000000            

DEV$M_ALL      = 00800000            GOT_DECK         000000A8 R     02   IFB$L_RLB_LNK    0000002C            

DEV$M_AVL      = 00040000            GOT_DOLLARS      000000C6 R     02   IFB$L_RNS_LEN    00000050            

DEV$M_CCL      = 00000002            GOT_QUOTE        00000044 R     04   IFB$M_BIO      = 00000020            

DEV$M_DIR      = 00000008            IFB$B_AMAX       00000059            IFB$M_BRO      = 00000040            

DEV$M_DMT      = 00200000            IFB$B_AVBN       00000058            IFB$M_DEL      = 00000004            

DEV$M_ELG      = 00400000            IFB$B_BID        00000008            IFB$M_EXE      = 00000080            

DEV$M_FOD      = 00004000            IFB$B_BKS        0000004A            IFB$M_GET      = 00000002            

DEV$M_FOR      = 01000000            IFB$B_BLN        00000009            IFB$M_PUT      = 00000001            

DEV$M_GEN      = 00020000            IFB$B_EFN        0000000B            IFB$M_TRN      = 00000010            

DEV$M_IDV      = 04000000            IFB$B_EXTRABUF   0000005D            IFB$M_UPD      = 00000008            

DEV$M_MBX      = 00100000            IFB$B_FAC        00000022            IFB$S_ORG      = 00000004            

RM1INPSCN       SYS$INPUT $, $EOD, & $DECK ROUTINES              21-AUG-1978 21:41:50   VAX-11 MACRO X0.3-11               Page  18

SYMBOL TABLE                                                                                                                     (4)



IFB$S_RFM      = 00000004            IRB$B_NRP_ID     00000030            IRB$V_LOCKABOVE= 00000002            

IFB$V_ACCESSED = 00000025            IRB$B_NRP_KREF   00000031            IRB$V_NEW_IDX  = 00000003            

IFB$V_ANSI_D   = 00000026            IRB$B_NVBNS      00000048            IRB$V_POSINSERT= 00000000            

IFB$V_ASYNC    = 00000023            IRB$B_POST_CCTL  00000045            IRB$V_PPF_EOF  = 0000002E            

IFB$V_ASYNCWAIT= 00000024            IRB$B_PPF_ISI    0000003E            IRB$V_PPF_FNDSV= 00000030            

IFB$V_BIO      = 00000005            IRB$B_PRE_CCTL   00000044            IRB$V_PPF_IMAGE= 00000022            

IFB$V_BRO      = 00000006            IRB$B_RFA_ID     00000058            IRB$V_PPF_SKIP = 0000002F            

IFB$V_BUSY     = 00000020            IRB$B_RP_ID      00000038            IRB$V_PUTS_LAST= 00000026            

IFB$V_CREATE   = 00000032            IRB$B_RP_KREF    00000039            IRB$V_RAHWBH   = 0000002A            

IFB$V_DAP      = 0000003E            IRB$B_RRV_ID     00000050            IRB$V_SKIP_NEXT= 0000002B            

IFB$V_DAP_OPEN = 0000003D            IRB$B_SRCHFLAGS  00000043            IRB$V_SRCHGT   = 00000001            

IFB$V_DEL      = 00000002            IRB$B_STOPLEVEL  00000042            IRB$V_UNLOCK_RP= 0000002D            

IFB$V_DFW      = 0000002C            IRB$C_BID      = 0000000A            IRB$V_WRITE    = 00000029            

IFB$V_DLT      = 0000002B            IRB$C_BLN_IDX    0000006C            IRB$W_CSIZ       00000042            

IFB$V_DMO      = 00000028            IRB$C_BLN_REL    00000048            IRB$W_DUP_POS    00000032            

IFB$V_EOF      = 00000021            IRB$C_BLN_SEQ    0000004C            IRB$W_IOS2       0000000E            

IFB$V_EXE      = 00000007            IRB$K_BLN_IDX    0000006C            IRB$W_NRP_OFF    00000030            

IFB$V_GET      = 00000001            IRB$K_BLN_REL    00000048            IRB$W_OWN_ID     0000003C            

IFB$V_MSE      = 00000031            IRB$K_BLN_SEQ    0000004C            IRB$W_OWN_ISI    0000003E            

IFB$V_NORECLK  = 00000033            IRB$L_ARGLST     00000018            IRB$W_ROVHDSZ    00000044            

IFB$V_NSP      = 0000003F            IRB$L_ASBADDR    00000014            IRB$W_RP_OFF     00000038            

IFB$V_NWA      = 0000003C            IRB$L_BKPBITS    00000004            IRB$W_RTOTLSZ    00000046            

IFB$V_ORG      = 00000004            IRB$L_BWB        0000000C            IRB$W_SAVE_POS   00000052            

IFB$V_PPF_IMAGE= 00000022            IRB$L_CURBDB     00000020            L$RMS1GETPPF0    00000000 R     04   

IFB$V_PPF_INPUT= 0000002E            IRB$L_CURVBN     00000030            L$RMS1GETPPF1    00000023 R     04   

IFB$V_PUT      = 00000000            IRB$L_IFAB_LNK   00000000            LOWERCASE_A    = 00000061            

IFB$V_RFM      = 00000000            IRB$L_IOS        0000000C            LOWERCASE_Z    = 0000007A            

IFB$V_RWC      = 00000027            IRB$L_IOS4       00000010            NOMATCH          00000129 R     02   

IFB$V_RW_ATTR  = 00000034            IRB$L_IRAB_LNK   0000001C            NULL_STRING      0000012C R     02   

IFB$V_SCF      = 0000002A            IRB$L_KEYBUF     00000048            PIO$GT_ENDSTR    ********   X   02   

IFB$V_SPL      = 00000029            IRB$L_LAST_RAB   00000024            PIO$GW_STATUS    ********   X   02   

IFB$V_SQO      = 0000002D            IRB$L_LOCK_BDB   0000005C            PIO$V_EOD      = 00000001            

IFB$V_TEF      = 00000036            IRB$L_NRP        0000002C            PIO$V_INHAST   = 00000000            

IFB$V_TMP      = 00000035            IRB$L_NRP_OFF    00000030            PIO$V_SYNC1    = 00000002            

IFB$V_TRN      = 00000004            IRB$L_NRP_VBN    0000002C            PIO$V_SYNC2    = 00000003            

IFB$V_UPD      = 00000003            IRB$L_NXTBDB     00000028            RE_READ          00000085 R     02   

IFB$V_WRTACC   = 00000030            IRB$L_OWNER_ID   0000003C            RM$INPUT_SCAN    00000000 RG    02   

IFB$W_ASDEVBSIZ  0000005A            IRB$L_RFA_VBN    00000054            RM$NEXT_BLK      ********   X   02   

IFB$W_BKS_BYTES  0000005C            IRB$L_RLB_ADDR   00000044            RM$RELBLK1       ********   X   04   

IFB$W_BKS_RECS   0000005E            IRB$L_RP         00000034            RMS$V_STVSTATUS= 0000000E            

IFB$W_CHNL       00000020            IRB$L_RP_OFF     00000038            RMS$_ABO       = 000183EC            

IFB$W_DEQ        0000004E            IRB$L_RP_VBN     00000034            RMS$_ACC       = 0001C002            

IFB$W_DEVBUFSIZ  00000038            IRB$L_RRV_VBN    0000004C            RMS$_ACT       = 0001825A            

IFB$W_EBK0       00000044            IRB$L_TEMP0      00000044            RMS$_AID       = 000183F4            

IFB$W_EBK2       00000046            IRB$L_TEMP1      00000048            RMS$_ALN       = 000183FC            

IFB$W_FFB        00000048            IRB$V_ASYNC    = 00000023            RMS$_ALQ       = 00018404            

IFB$W_IOS2       0000000E            IRB$V_ASYNCWAIT= 00000024            RMS$_ANI       = 0001840C            

IFB$W_LRL        0000003E            IRB$V_BIO_LAST = 00000027            RMS$_AOP       = 00018414            

IFB$W_MRS        0000004C            IRB$V_BRO_SW   = 00000028            RMS$_ATR       = 0001C0CC            

IFB$W_RTDEQ      0000003A            IRB$V_BUSY     = 00000020            RMS$_ATW       = 0001C0D4            

IRB$B_BCNT       00000040            IRB$V_DAP_CONN = 0000003E            RMS$_BKS       = 0001841C            

IRB$B_BID        00000008            IRB$V_DAP_FMODE= 0000003F            RMS$_BKZ       = 00018424            

IRB$B_BLN        00000009            IRB$V_DUP      = 0000002C            RMS$_BLN       = 0001842C            

IRB$B_EFN        0000000B            IRB$V_EOF      = 00000021            RMS$_BOF       = 00018198            

IRB$B_KEYSZ      00000051            IRB$V_FIND     = 00000029            RMS$_BUG       = 00018434            

IRB$B_MBC        00000041            IRB$V_FIND_LAST= 00000025            RMS$_BUG_DAP   = 00018444            

IRB$B_MODE       0000000A            IRB$V_IDX_ERR  = 00000031            RMS$_BUG_DDI   = 0001843C            

RM1INPSCN       SYS$INPUT $, $EOD, & $DECK ROUTINES              21-AUG-1978 21:41:50   VAX-11 MACRO X0.3-11               Page  19

SYMBOL TABLE                                                                                                                     (4)



RMS$_BUG_XX2   = 0001844C            RMS$_IBF       = 00018754            RMS$_RLK       = 000182AA            

RMS$_BUG_XX3   = 00018454            RMS$_IDX       = 0001855C            RMS$_RMV       = 0001C0FC            

RMS$_BUG_XX4   = 0001845C            RMS$_IFA       = 0001C124            RMS$_RNF       = 000182B2            

RMS$_BUG_XX5   = 00018464            RMS$_IFI       = 00018564            RMS$_RNL       = 000181A0            

RMS$_BUG_XX6   = 0001846C            RMS$_IMX       = 0001856C            RMS$_ROP       = 0001867C            

RMS$_BUG_XX7   = 00018474            RMS$_IOP       = 00018574            RMS$_RPL       = 0001C104            

RMS$_BUG_XX8   = 0001847C            RMS$_IRC       = 0001857C            RMS$_RRV       = 00018684            

RMS$_BUG_XX9   = 00018484            RMS$_ISI       = 00018584            RMS$_RSA       = 000182DA            

RMS$_CAA       = 0001848C            RMS$_KBF       = 0001858C            RMS$_RSL       = 0001873C            

RMS$_CCF       = 0001C0DC            RMS$_KEY       = 00018594            RMS$_RSS       = 00018694            

RMS$_CCR       = 00018494            RMS$_KFF       = 00018031            RMS$_RST       = 0001869C            

RMS$_CDA       = 0001C0E4            RMS$_KRF       = 0001859C            RMS$_RSZ       = 000186A4            

RMS$_CHG       = 0001849C            RMS$_KSZ       = 000185A4            RMS$_RTB       = 000181A8            

RMS$_CHK       = 000184A4            RMS$_LAN       = 000185AC            RMS$_SEQ       = 000186AC            

RMS$_CHN       = 0001C0EC            RMS$_LBL       = 000185B4            RMS$_SHR       = 000186B4            

RMS$_COD       = 000184AC            RMS$_LNE       = 000185BC            RMS$_SIZ       = 000186BC            

RMS$_CONTROLC  = 00010651            RMS$_LOC       = 000185C4            RMS$_SPL       = 0001C042            

RMS$_CONTROLO  = 00010609            RMS$_MBC       = 00018734            RMS$_SQO       = 000186C4            

RMS$_CONTROLY  = 00010611            RMS$_MKD       = 0001C032            RMS$_STALL     = 00018001            

RMS$_CRE       = 0001C00A            RMS$_MRN       = 000185CC            RMS$_STK       = 000186CC            

RMS$_CREATED   = 00010619            RMS$_MRS       = 000185D4            RMS$_SUC       = 00010001            

RMS$_CUR       = 000184B4            RMS$_NAM       = 000185DC            RMS$_SUP       = 000182D2            

RMS$_DAC       = 0001C012            RMS$_NEF       = 000185E4            RMS$_SUPERSEDE = 00010631            

RMS$_DAN       = 000184BC            RMS$_NET       = 0001874C            RMS$_SYN       = 000186D4            

RMS$_DEL       = 00018262            RMS$_NID       = 000185EC            RMS$_SYS       = 0001C10C            

RMS$_DEV       = 000184C4            RMS$_NMF       = 000182CA            RMS$_TEMP1     = 0001826A            

RMS$_DIR       = 000184CC            RMS$_NOD       = 000185F4            RMS$_TEMP2     = 0001868C            

RMS$_DME       = 000184D4            RMS$_NORMAL    = 00010001            RMS$_TMO       = 000181B0            

RMS$_DNA       = 000184DC            RMS$_NPK       = 000185FC            RMS$_TRE       = 000186DC            

RMS$_DNF       = 0001C04A            RMS$_OK_ALK    = 00018039            RMS$_TYP       = 000186E4            

RMS$_DNR       = 00018272            RMS$_OK_DEL    = 00018041            RMS$_UBF       = 000186EC            

RMS$_DPE       = 0001C03A            RMS$_OK_DUP    = 00018011            RMS$_USZ       = 000186F4            

RMS$_DTP       = 000184E4            RMS$_OK_IDX    = 00018019            RMS$_VER       = 000186FC            

RMS$_DUP       = 000184EC            RMS$_OK_LIM    = 00018051            RMS$_VOL       = 00018704            

RMS$_DVI       = 000184F4            RMS$_OK_RLK    = 00018021            RMS$_WBE       = 0001C12C            

RMS$_ENT       = 0001C01A            RMS$_OK_RNF    = 00018049            RMS$_WER       = 0001C114            

RMS$_ENV       = 00018724            RMS$_OK_RRV    = 00018029            RMS$_WLD       = 00018744            

RMS$_EOF       = 0001827A            RMS$_ORD       = 00018604            RMS$_WLK       = 000182BA            

RMS$_ESA       = 000184FC            RMS$_ORG       = 0001860C            RMS$_WPL       = 0001C11C            

RMS$_ESL       = 00018714            RMS$_PBF       = 00018614            RMS$_WSF       = 0001871C            

RMS$_ESS       = 00018504            RMS$_PENDING   = 00018009            RMS$_XAB       = 0001870C            

RMS$_EXP       = 000182C2            RMS$_PLG       = 0001861C            SCAN_XIT         0000012E R     02   

RMS$_EXT       = 0001C022            RMS$_PLV       = 0001872C            SCNRSB           0000004D R     02   

RMS$_FAB       = 0001850C            RMS$_POS       = 00018624            SCNXIT           0000004B R     02   

RMS$_FAC       = 00018514            RMS$_PRM       = 0001862C            SETEOD           000000B3 R     02   

RMS$_FEX       = 00018282            RMS$_PRV       = 0001829A            SETEOD_BR        00000034 R     04   

RMS$_FLG       = 0001851C            RMS$_QUO       = 00018634            SETEOF           00000079 R     02   

RMS$_FLK       = 0001828A            RMS$_RAB       = 0001863C            SETEOF_BR        00000031 R     04   

RMS$_FNA       = 00018524            RMS$_RAC       = 00018644            SET_FIND         000000A2 R     02   

RMS$_FND       = 0001C02A            RMS$_RAT       = 0001864C            SET_SKIP         000000BA R     02   

RMS$_FNF       = 00018292            RMS$_RBF       = 00018654            SUCXIT           00000048 R     02   

RMS$_FNM       = 0001852C            RMS$_RER       = 0001C0F4            SUC_BR           000000A6 R     02   

RMS$_FOP       = 0001853C            RMS$_REX       = 000182A2            TAB            = 00000009            

RMS$_FSZ       = 00018534            RMS$_RFA       = 0001865C            TLSTSZ         = 00000006            

RMS$_FUL       = 00018544            RMS$_RFM       = 00018664            TRMLST           000000C9 R     02   

RMS$_IAL       = 0001854C            RMS$_RHB       = 0001866C            UNEQUAL          00000127 R     02   

RMS$_IAN       = 00018554            RMS$_RLF       = 00018674            UNQUOTED         00000046 R     04   

RM1INPSCN       SYS$INPUT $, $EOD, & $DECK ROUTINES              21-AUG-1978 21:41:50   VAX-11 MACRO X0.3-11               Page  20

PROGRAM SECTION SYNOPSIS                                                                                                         (4)







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  

$RMS1            0000014A      02     NOPIC   USR   CON   REL   GBL NOSHR   EXE   RD  NOWRT BYTE  

$ABS$            0000006C      03     NOPIC   USR   CON   ABS   LCL NOSHR   EXE   RD    WRT BYTE  

L$RMS1GETPPF     000000B1      04     NOPIC   USR   CON   REL   GBL NOSHR   EXE   RD  NOWRT BYTE  





THERE WERE NO ERRORS OR WARNINGS.

12324. BYTES LEFT IN FREE MEMORY POOL.

2030. BYTES OF RECLAIMED MEMORY.

OBJ$:RM1INPSCN,LIS$:RM1INPSCN/-SP=EXECML$/ML,LIB$:R/ML,SRC$:RM1INPSCN

23 MLB DIR RDS - 872 GETS TO DEFINE 23 MACROS. 64 INTER. FILE WRITES. 

