RM1PUTREC       INTERNAL PUT SEQ FOR UNIT RECORD DEVICE          21-AUG-1978 21:45:59   VAX-11 MACRO X0.3-11               Page   0

TABLE OF CONTENTS   



   (1)      41  DECLARATIONS

   (1)      80  RM$MAPFTN  -  ROUTINE TO CONVERT FROM FTN TO PR

   (1)     120  RM$PUT_UNIT_REC

RM1PUTREC       INTERNAL PUT SEQ FOR UNIT RECORD DEVICE          21-AUG-1978 21:45:59   VAX-11 MACRO X0.3-11               Page   1

010                                                                                                                              (1)



                                     0000     1 	$BEGIN	RM1PUTREC,010,$RMS1,<INTERNAL PUT SEQ FOR UNIT RECORD DEVICE>

                                     0000     2 ;

                                     0000     3 ; COPYRIGHT (C) 1977, 1978

                                     0000     4 ; DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASSACHUSETTS 01754

                                     0000     5 ;

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

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

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

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

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

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

                                     0000    12 ; REMAIN IN DEC.

                                     0000    13 ;

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

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

                                     0000    16 ; CORPORATION.

                                     0000    17 ;

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

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

                                     0000    20 ;

                                     0000    21 ;++

                                     0000    22 ; FACILITY: RMS32

                                     0000    23 ;

                                     0000    24 ; ABSTRACT:

                                     0000    25 ;		THIS MODULE PERFORMS A $PUT FOR THE SEQUENTIAL FILE

                                     0000    26 ;		ORGANIZATION ON A UNIT RECORD DEVICE.

                                     0000    27 ;

                                     0000    28 ; ENVIRONMENT:

                                     0000    29 ;		STAR PROCESSOR RUNNING STARLET EXEC.

                                     0000    30 ;

                                     0000    31 ; AUTHOR: L F LAVERDURE,	 CREATION DATE: 17-FEB--77

                                     0000    32 ;

                                     0000    33 ; MODIFIED BY:

                                     0000    34 ;

                                     0000    35 ;	L F LAVERDURE,      21-AUG-78  13:05	; FIX RHB PROBE HOLE

                                     0000    36 ;	L F LAVERDURE,   9-MAY-78  11:10

                                     0000    37 ;	J A KRYCKA,	19-AUG-78  22:35

                                     0000    38 ; 01	- 

                                     0000    39 ;--

RM1PUTREC       INTERNAL PUT SEQ FOR UNIT RECORD DEVICE          21-AUG-1978 21:45:59   VAX-11 MACRO X0.3-11               Page   2

010             DECLARATIONS                                                                                                     (1)



                                     0000    41 	.SBTTL	DECLARATIONS

                                     0000    42 ;

                                     0000    43 ; INCLUDE FILES:

                                     0000    44 ;

                                     0000    45 

                                     0000    46 ;

                                     0000    47 ; MACROS:

                                     0000    48 ;

                                     0000    49 	$IRBDEF

                                     0000    50 	$RABDEF

                                     0000    51 	$IFBDEF

                                     0000    52 	$FABDEF

                                     0000    53 	$BDBDEF

                                     0000    54 	$IMPDEF

                                     0000    55 	$RMSDEF

                                     0000    56 	.LIST MEB

                                     0000    57 

                                     0000    58 ;

                                     0000    59 ; EQUATED SYMBOLS:

                                     0000    60 ;

                           00000020  0000    61 	SPACE=32

                           0000000A  0000    62 	LF=10

                           0000000B  0000    63 	VT=11

                           0000000C  0000    64 	FF=12

                           0000000D  0000    65 	CR=13

                                     0000    66 ;

                                     0000    67 ; OWN STORAGE:

                                     0000    68 ;

                                     0000    69 ;

                                     0000    70 ;  FORTRAN TO 'PRE/POST' STANDARD CARRIAGE CONTROL MAPPING TABLE

                                     0000    71 ;

                                     0000    72 CCTL_TABLE:				; ENTRIES ARE FORTRAN BYTE, PRE, POST

                           8D 01 20  0000    73 	.BYTE	^A/ /,1,128+CR		; " " - SINGLE SPACE

                           8D 02 30  0003    74 	.BYTE	^A/0/,2,128+CR		; "0" - DOUBLE SPACE

                           8D 8C 31  0006    75 	.BYTE	^A/1/,128+FF,128+CR	; "1" - FORM FEED

                           8D 00 2B  0009    76 	.BYTE	^A/+/,0,128+CR		; "+" - OVERPRINT

                           00 01 24  000C    77 	.BYTE	^A/$/,1,0		; "$" - PROMPT

                           00 00 00  000F    78 	.BYTE	0,0,0			; NULL

RM1PUTREC       INTERNAL PUT SEQ FOR UNIT RECORD DEVICE          21-AUG-1978 21:45:59   VAX-11 MACRO X0.3-11               Page   3

010             RM$MAPFTN  -  ROUTINE TO CONVERT FROM FTN TO PR                                                                  (1)



                                     0012    80 	.SBTTL	RM$MAPFTN  -  ROUTINE TO CONVERT FROM FTN TO PRN FORMAT

                                     0012    81 ;++

                                     0012    82 ; FUNCTIONAL DESCRIPTION:

                                     0012    83 ;

                                     0012    84 ;	THIS ROUTINE CONVERTS THE FORTRAN CARRIAGE CONTROL CHARACTER

                                     0012    85 ;	IN R0 INTO THE EQUIVALENT PRE/POST CARRIAGE CONTROL WORD.

                                     0012    86 ;

                                     0012    87 ; CALLING SEQUENCE:

                                     0012    88 ;

                                     0012    89 ;	BSBW	RM$MAPFTN

                                     0012    90 ;

                                     0012    91 ; INPUTS:

                                     0012    92 ;

                                     0012    93 ;	R0	FORTRAN CARRIAGE CONTROL CHARACTER

                                     0012    94 ;

                                     0012    95 ; OUTPUTS:

                                     0012    96 ;

                                     0012    97 ;	R2	PRE/POST CARRIAGE CONTROL WORD

                                     0012    98 ;

                                     0012    99 ; NOTE:  THIS ROUTINE ALWAYS SUCCEEDS. NO OTHER REGISTERS DESTROYED.

                                     0012   100 ;

                                     0012   101 ;--

                                     0012   102 RM$MAPFTN::

            52         EB AF     9E  0012   103 	MOVAB	B^CCTL_TABLE,R2		; ADDR OF MAPPING TABLE

            82            50     91  0016   104 10$:	CMPB	R0,(R2)+		; MATCH ON CHAR?

                          0A     13  0019   105 	BEQL	MAPCTL			; BRANCH IF YES

                          82     B5  001B   106 	TSTW	(R2)+			; BUMP TO NEXT ENTRY

                          F7     12  001D   107 	BNEQ	10$			; CONTINUE IF MORE

                                     001F   108 ;

                                     001F   109 ;  NO MATCH  -  GIVE DEFAULT OF LINE FEED BEFORE, CR AFTER

                                     001F   110 ;

                                     001F   111 	ASSUME	IRB$B_POST_CCTL EQ IRB$B_PRE_CCTL+1

            52       8D01 8F     B0  001F   112 	MOVW	#1+<<128+CR>@8>,R2	; LF-REC-CR

                                 05  0024   113 	RSB

                                     0025   114 ;

                                     0025   115 ;  PICK UP PRE AND POST CCTL FROM TABLE

                                     0025   116 ;

            52            62     B0  0025   117 MAPCTL:	MOVW	(R2),R2			; GET PRE AND POST

                                 05  0028   118 	RSB

RM1PUTREC       INTERNAL PUT SEQ FOR UNIT RECORD DEVICE          21-AUG-1978 21:45:59   VAX-11 MACRO X0.3-11               Page   4

010             RM$PUT_UNIT_REC                                                                                                  (1)



                                     0029   120 	.SBTTL RM$PUT_UNIT_REC

                                     0029   121 ;++

                                     0029   122 ; FUNCTIONAL DESCRIPTION:

                                     0029   123 ;

                                     0029   124 ;	THIS ROUTINE PERFORMS A $PUT TO A UNIT RECORD DEVICE,

                                     0029   125 ;	SETTING CARRIAGE CONTROL AS REQUIRED AND HANDLING

                                     0029   126 ;	CROSSING OF BLOCK BOUNDARIES.

                                     0029   127 ;

                                     0029   128 ; CALLING SEQUENCE:

                                     0029   129 ;

                                     0029   130 ;	BSBW	RM$PUT_UNIT_REC

                                     0029   131 ;

                                     0029   132 ; INPUT PARAMETERS:

                                     0029   133 ;

                                     0029   134 ;	R11	IMPURE AREA POINTER

                                     0029   135 ;	R10	IFAB ADDR

                                     0029   136 ;	R9	IRAB ADDR

                                     0029   137 ;	R8	RAB ADDR

                                     0029   138 ;	R6	USER RECORD SIZE

                                     0029   139 ;	R5	USER RECORD ADDR (FIRST BLOCK PROBED)

                                     0029   140 ;

                                     0029   141 ; IMPLICIT INPUTS:

                                     0029   142 ;

                                     0029   143 ;	THE CONTENTS OF THE RAB AND RELATED IRAB AND IFAB.

                                     0029   144 ;

                                     0029   145 ; OUTPUT PARAMETERS:

                                     0029   146 ;

                                     0029   147 ;	R0	STATUS CODE

                                     0029   148 ;	R1-R7	DESTROYED

                                     0029   149 ;

                                     0029   150 ; IMPLICIT OUTPUTS:

                                     0029   151 ;

                                     0029   152 ;	THE RAB AND THE INTERNAL STRUCTURES ARE UPDATED TO REFLECT

                                     0029   153 ;	THE RESULTS OF THE PUT. (SEE FUNCTIONAL SPEC).

                                     0029   154 ;

                                     0029   155 ; COMPLETION CODES:

                                     0029   156 ;

                                     0029   157 ;	STANDARD RMS.

                                     0029   158 ;

                                     0029   159 ; SIDE EFFECTS:

                                     0029   160 ;

                                     0029   161 ;	NONE

                                     0029   162 ;

                                     0029   163 ;--

RM1PUTREC       INTERNAL PUT SEQ FOR UNIT RECORD DEVICE          21-AUG-1978 21:45:59   VAX-11 MACRO X0.3-11               Page   5

010             RM$PUT_UNIT_REC                                                                                                  (1)



                                     0029   165 RM$PUT_UNIT_REC::

                                     0029   166 	$TSTPT	PUTREC1

                 00000200'9F     D6  0029       		INCL	@#PIO$GL_FMLH+512+TPT$L_PUTREC1

            54         20 A9     D0  002F   167 	MOVL	IRB$L_CURBDB(R9),R4	; GET CURRENT BDB ADDR

                          0C     12  0033   168 	BNEQ	10$

                                     0035   169 ;

                                     0035   170 ; THERE IS NO CURRENT BDB - SO GET A BUFFER.

                                     0035   171 ;

            53            01     D0  0035   172 	MOVL	#1,R3			; SHOW NO READ REQUIRED

                          FFC5'  30  0038   173 	BSBW	RM$GETBLK1		; & GET A BUFFER

            06            50     E8  003B   174 	BLBS	R0,20$			; BRANCH IF O.K.

                          0096   31  003E   175 	BRW	EXIT

                                     0041   176 ;

                                     0041   177 ; MAP EXISTING BDB, SETTING END OF BLOCK POINTER

                                     0041   178 ;

                          FFBC'  30  0041   179 10$:	BSBW	RM$MAPBLK1ALT

                                     0044   180 ;++

                                     0044   181 ;

                                     0044   182 ; DETERMINE REQUIRED CARRIAGE CONTROL

                                     0044   183 ;

                                     0044   184 ; 4 TYPES OF CARRIAGE CONTROL MAY BE SPECIFIED:

                                     0044   185 ;	NONE		= RECORD

                                     0044   186 ;	FAB$V_CR	= LF-RECORD-CR

                                     0044   187 ;	FAB$V_FTN	= 1ST CHAR OF RECORD DETERMINES, AS FOLLOWS:

                                     0044   188 ;			SPACE = LF - RECORD - CR

                                     0044   189 ;			0     = LF,LF - RECORD - CR

                                     0044   190 ;			1     = FF - RECORD - CR

                                     0044   191 ;			$     = LF - RECORD

                                     0044   192 ;			+     = RECORD - CR

                                     0044   193 ;			NULL  = RECORD

                                     0044   194 ;			OTHER = LF - RECORD - CR

                                     0044   195 ;	FAB$V_PRN	= PRINT FILE CARRIAGE CONTROL SPECIFIED IN VFC HEADER

                                     0044   196 ;			  AS A PRE AND POST FIELD INDICATING CARRIAGE CONTROL

                                     0044   197 ;			  TO BE PERFORMED BEFORE AND AFTER PRINTING THE

                                     0044   198 ;			  RECORD.  THE PRE AND POST CARRIAGE CONTROL BYTES

                                     0044   199 ;			  HAVE THE FOLLOWING FORMAT:

                                     0044   200 ;

                                     0044   201 ;			    BIT 7 = 0

                                     0044   202 ;				BITS 6-0 GIVE # OF NEW LINES

                                     0044   203 ;			    BIT 7 = 1

                                     0044   204 ;			      BIT 6 = 0

                                     0044   205 ;				BIT 5 = 0

                                     0044   206 ;				  BITS 4-0 GIVE THE ASCII CONTROL CHARACTER

                                     0044   207 ;				  TO PRINT (C0 SET)

                                     0044   208 ;				BIT 5 = 1

                                     0044   209 ;				  BITS 4-0 GIVE THE ASCII CONTROL CHARACTER

                                     0044   210 ;				  TO PRINT (C1 SET)

                                     0044   211 ;			      BIT 6 = 1

                                     0044   212 ;				BIT 5 = 0

                                     0044   213 ;				  BITS 4-0 HAVE DEVICE-SPECIFIC INTERPRETATION

                                     0044   214 ;				  (RESERVED)

                                     0044   215 ;				BIT 5 = 1

                                     0044   216 ;				  (RESERVED)

                                     0044   217 ;

                                     0044   218 ; THIS IS SOMEWHAT COMPLICATED BY THE FACT THAT A RECORD

                                     0044   219 ; COULD SPAN MULTIPLE BLOCKS, REQUIRING SEVERAL WRITES,

                                     0044   220 ; IN WHICH CASE THE DIRECT INTERPRETATION OF CARRIAGE

RM1PUTREC       INTERNAL PUT SEQ FOR UNIT RECORD DEVICE          21-AUG-1978 21:45:59   VAX-11 MACRO X0.3-11               Page   6

010             RM$PUT_UNIT_REC                                                                                                  (1)



                                     0044   221 ; CONTROL BYTES BY A DRIVER DOES NOT PRODUCE THE DESIRED

                                     0044   222 ; EFFECT, REQUIRING INSTEAD A CARRIAGE  CONTROL CODE FOR

                                     0044   223 ; THE 1ST PART, NONE FOR ANY INTERMEDIATE PARTS, AND

                                     0044   224 ; FINALLY A CR FOR THE FINAL PART IF REQUIRED.

                                     0044   225 ;--

                                     0044   226 	ASSUME	IRB$B_POST_CCTL EQ IRB$B_PRE_CCTL+1

                       44 A9     B4  0044   227 20$:	CLRW	IRB$B_PRE_CCTL(R9)	; INITIALIZE (NULL CARRIAGE CTL)

            52         3D AA     90  0047   228 	MOVB	IFB$B_RAT(R10),R2	; GET RAT FOR FILE

            52            02     E1  004B   229 	BBC	#FAB$V_PRN,R2,NOTPRN	; BRANCH IF NOT A 'PRINT' FILE

                          0D         004E       

                                     004F   230 	ASSUME	IMP$W_RMSSTATUS EQ 0

                                     004F   231 	ASSUME 	IMP$V_IIOS EQ 0

            1E            6B     E8  004F   232 	BLBS	(R11),PRNFMT		; BRANCH IF NOT PPF

                                     0052   233 ;

                                     0052   234 ;  THIS IS A PROCESS-PERMANENT PRINT FILE.

                                     0052   235 ;  EXTRACT RAT VALUE FROM ISI.

                                     0052   236 ;

            08            06     EF  0052   237 	EXTZV	#RAB$V_PPF_RAT,#RAB$S_PPF_RAT,RAB$W_ISI(R8),R2

            52         02 A8         0055       

            52            02     E0  0058   238 	BBS	#FAB$V_PRN,R2,PRNFMT	; BRANCH IF PRINT FORMAT

                          14         005B       

                                     005C   239 ;

                                     005C   240 ;  CHECK FOR CR, FTN, OR NO CARRIAGE CONTROL

                                     005C   241 ;

            52            01     E0  005C   242 NOTPRN:	BBS	#FAB$V_CR,R2,LF_REC_CR	; BRANCH IF 'CR'

                          22         005F       

                                     0060   243 	ASSUME	FAB$V_FTN EQ 0

            28            52     E9  0060   244 	BLBC	R2,MOVDAT		; BRANCH IF NULL CCTL

                                     0063   245 ;

                                     0063   246 ;  FORTRAN CARRIAGE CONTROL.  PICK UP CONTROL BYTE AND INTERPRET.

                                     0063   247 ;

                          56     D5  0063   248 	TSTL	R6			; ZERO LENGTH RECORD?

                          1B     13  0065   249 	BEQL	LF_REC_CR		; BRANCH IF YES (SAME AS BLANK)

                          56     D7  0067   250 	DECL	R6			; DECREMENT SIZE

            50            85     90  0069   251 	MOVB	(R5)+,R0		; GET FORTRAN CCTL BYTE

                          A4     10  006C   252 	BSBB	RM$MAPFTN		; AND MAP TO PRE/POST FORMAT

                          17     11  006E   253 	BRB	MOVPREPOST

                                     0070   254 ;

                                     0070   255 ;  'PRN' CARRIAGE CONTROL.

                                     0070   256 ;  RECORD HEADER BUFFER CONTAINS EXPLICIT 'STANDARD' CARRIAGE CONTROL.

                                     0070   257 ;

            50         2C A8     D0  0070   258 PRNFMT:	MOVL	RAB$L_RHB(R8),R0	; GET RECORD HEADER BUFFER ADDR

                          15     13  0074   259 	BEQL	MOVDAT			; BRANCH IF NONE (=NULL CCTL)

                                     0076   260 	IFNORD	#2,(R0),ERRRHB		; BRANCH IF RHB NOT READABLE BY CALLER

            02            00     0C  0076       		PROBER	#0,#2,(R0)

                          60         0079       

                          61     13  007A       		BEQL	ERRRHB

         44 A9            60     B0  007C   261 	MOVW	(R0),IRB$B_PRE_CCTL(R9)	; SET CARRIAGE CONTROL

                          09     11  0080   262 	BRB	MOVDAT

                                     0082   263 ;

                                     0082   264 ;  LINE FEED BEFORE, CARRIAGE RETURN AFTER RECORD

                                     0082   265 ;

                                     0082   266 LF_REC_CR:

            52       8D01 8F     B0  0082   267 	MOVW	#1+<<128+CR>@8>,R2	; CONVERT TO PRE/POST FORMAT

                                     0087   268 ;

                                     0087   269 MOVPREPOST:

         44 A9            52     B0  0087   270 	MOVW	R2,IRB$B_PRE_CCTL(R9)	; SAVE IN IRAB FOR PRINT

RM1PUTREC       INTERNAL PUT SEQ FOR UNIT RECORD DEVICE          21-AUG-1978 21:45:59   VAX-11 MACRO X0.3-11               Page   7

010             RM$PUT_UNIT_REC                                                                                                  (1)



                                     008B   272 ;

                                     008B   273 ; MOVE DATA RECORD INTO BUFFER

                                     008B   274 ;

                                     008B   275 MOVDAT:

            6A            3E     E0  008B   276 	BBS	#IFB$V_DAP,(R10),NTMOVE	; BRANCH IF NETWORK OPERATION

                          51         008E       

            57            51     C3  008F   277 	SUBL3	R1,R7,R0		; GET # BYTES LEFT IN BUFFER

                          50         0092       

                                     0093   278 					; (END - START)

            56            50     D1  0093   279 	CMPL	R0,R6			; < RECORD SIZE?

                          03     1B  0096   280 	BLEQU	20$			; BRANCH IF SO

            50            56     D0  0098   281 	MOVL	R6,R0			; NO - SO JUST USE BUFFER SIZE

            56            50     C2  009B   282 20$:	SUBL2	R0,R6			; ADJUST REMAINING COUNT

            65            50     28  009E   283 	MOVC3	R0,(R5),(R1)		; MOVE (PARTIAL) RECORD TO DEVICE

                          61         00A1       

                                     00A2   284 					; BUFFER

                          56     D5  00A2   285 	TSTL	R6			; MORE OF RECORD TO GO?

                          2B     13  00A4   286 	BEQL	CHKLST			; BRANCH IF DONE

                          51     DD  00A6   287 	PUSHL	R1			; SAVE SOURCE ADDR

                                     00A8   288 					; !!!!! TAKE ADVANTAGE OF FACT THAT

                                     00A8   289 					; MOVC3 ZEROS R5 !!!!!

                          39     10  00A8   290 	BSBB	OUTPUT			; WRITE OUT SEGMENT

                          20     BA  00AA   291 	POPR	#^M<R5>			; RESTORE RECORD POINTER

            28            50     E9  00AC   292 	BLBC	R0,EXIT			; GET OUT ON ERROR

       0000'8F            50     B1  00AF   293 	CMPW	R0,#SS$_CONTROLC	; WAS OUTPUT ABORTED DUE TO ^C?

                          21     13  00B4   294 	BEQL	EXIT			; BRANCH IF YES

       0000'8F            50     B1  00B6   295 	CMPW	R0,#SS$_CONTROLY	; WAS OUTPUT ABORTED DUE TO ^Y?

                          1A     13  00BB   296 	BEQL	EXIT			; BRANCH IF YES

                       44 A9     94  00BD   297 	CLRB	IRB$B_PRE_CCTL(R9)	; ZERO THE PRE FIELD CARRIAGE CONTROL

                          FF3D'  30  00C0   298 	BSBW	RM$PROBEREAD		; REPROBE USER BUFFER

            11            50     E9  00C3   299 	BLBC	R0,EXIT			; AND EXIT IF PROBLEMS

            53            01     D0  00C6   300 	MOVL	#1,R3			; SHOW NO READ REQUIRED

                          FF34'  30  00C9   301 	BSBW	RM$GETBLK1		; GET A BUFFER

            BC            50     E8  00CC   302 	BLBS	R0,MOVDAT		; & CONTINUE IF OK

                          06     11  00CF   303 	BRB	EXIT			; GET OUT ON ERROR

                                     00D1   304 ;

                                     00D1   305 ; THIS IS THE LAST RECORD SEGMENT -

                                     00D1   306 ; CHECK FOR GETTING A TRAILING CR AND OUTPUT THE BUFFER

                                     00D1   307 ;

            55         45 A9     90  00D1   308 CHKLST:	MOVB	IRB$B_POST_CCTL(R9),R5	; GET POST FIELD CARRIAGE CONTROL

                          0C     10  00D5   309 	BSBB	OUTPUT

                       10 A8     7C  00D7   310 EXIT:	CLRQ	RAB$L_RFA0(R8)		; ZERO RFA

                          FF23'  31  00DA   311 	BRW	RM$EXRMS

                                     00DD   312 

                                     00DD   313 ;++

                                     00DD   314 ;

                                     00DD   315 ;  HANDLE BAD RECORD HEADER BUFFER ERROR

                                     00DD   316 ;

                                     00DD   317 ;--

                                     00DD   318 ERRRHB:	$PSECT_BR	L$RMS0

                          FF20'  31  00DD       		BRW	L$RMS00

                                     00E0       		.SAVE

                                 00000000       		.PSECT	L$RMS0,GBL,NOWRT

                                     0000       L$RMS00:

                                     0000   319 	RMSERR	RHB

            50       866C 8F     3C  0000       		MOVZWL	#<RMS$_RHB&^XFFFF>,R0

                          00CF'  31  0005   320 	BRW	EXIT

RM1PUTREC       INTERNAL PUT SEQ FOR UNIT RECORD DEVICE          21-AUG-1978 21:45:59   VAX-11 MACRO X0.3-11               Page   8

010             RM$PUT_UNIT_REC                                                                                                  (1)



                                     0008   321 	$PSECT_RESTORE

                                 000000E0       		.RESTORE

RM1PUTREC       INTERNAL PUT SEQ FOR UNIT RECORD DEVICE          21-AUG-1978 21:45:59   VAX-11 MACRO X0.3-11               Page   9

010             RM$PUT_UNIT_REC                                                                                                  (1)



                                     00E0   323 ;++

                                     00E0   324 ;

                                     00E0   325 ; NETWORK SPECIFIC CODE TO MOVE RECORD HEADER (IF VFC FORMAT) AND DATA

                                     00E0   326 ; RECORD INTO ONE BDB BUFFER. NOTE: SIZE OF HEADER + RECORD CAN NOT

                                     00E0   327 ; EXCEED DEVICE BUFFER SIZE ( = BDB BUFFER SIZE) FOR THIS RELEASE!!!

                                     00E0   328 ;

                                     00E0   329 ;--

                                     00E0   330 NTMOVE:	$PSECT_BR	NF$NETWORK

                          FF1D'  31  00E0       		BRW	NF$NETWORK1

                                     00E3       		.SAVE

                                 00000000       		.PSECT	NF$NETWORK,GBL,NOWRT

                                     0000       NF$NETWORK1:

                                     0000   331 ;

                                     0000   332 ; COPY RECORD HEADER TO BUFFER

                                     0000   333 ;

            03         3C AA     91  0000   334 	CMPB	IFB$B_RFMORG(R10),#FAB$C_VFC ; VFC FORMAT?

                          26     12  0004   335 	BNEQ	20$			; BRANCH IF NOT

            7E            55     7D  0006   336 	MOVQ	R5,-(SP)		; SAVE RECORD ADDR & SIZE

            56         4B AA     9A  0009   337 	MOVZBL	IFB$B_FSZ(R10),R6	; GET HEADER SIZE

            57            51     C3  000D   338 	SUBL3	R1,R7,R0		; GET # BYTES LEFT IN BUFFER

                          50         0010       

            50            56     D1  0011   339 	CMPL	R6,R0			; CHECK BUFFER SIZE

                          26     1A  0014   340 	BGTRU	30$			; BRANCH IF HEADER IS TOO BIG

            55         2C A8     D0  0016   341 	MOVL	RAB$L_RHB(R8),R5	; GET HEADER ADDRESS

                          36     13  001A   342 	BEQL	50$			; BRANCH IF NO RHB ADDRESS

                          FFE1'  30  001C   343 	BSBW	RM$PROBEREAD		; PROBE USER RHB

            25            50     E9  001F   344 	BLBC	R0,40$			; BRANCH ON ERROR

            65            56     28  0022   345 	MOVC3	R6,(R5),(R1)		; MOVE RECORD INTO BDB BUFFER

                          61         0025       

            51            53     D0  0026   346 10$:	MOVL	R3,R1			; COPY NEXT BYTE POINTER TO R1

            55            8E     7D  0029   347 	MOVQ	(SP)+,R5		; RESTORE REGISTERS

                                     002C   348 ;

                                     002C   349 ; MOVE DATA RECORD TO BUFFER

                                     002C   350 ;

            57            51     C3  002C   351 20$:	SUBL3	R1,R7,R0		; GET # BYTES LEFT IN BUFFER

                          50         002F       

            50            56     D1  0030   352 	CMPL	R6,R0			; CHECK BUFFER SIZE

                          0A     1A  0033   353 	BGTRU	35$			; BRANCH IF HEADER + RECORD IS TOO BIG

            65            56     28  0035   354 	MOVC3	R6,(R5),(R1)		; MOVE RECORD INTO BDB BUFFER

                          61         0038       

                          0095'  31  0039   355 	BRW	CHKLST			; REJOIN MAINLINE

                                     003C   356 ;

                                     003C   357 ; ERROR HANDLING

                                     003C   358 ;

            55            8E     7D  003C   359 30$:	MOVQ	(SP)+,R5		; RESTORE REGISTERS

                                     003F   360 35$:	RMSERR	RSZ			; RECORD TOO BIG

            50       86A4 8F     3C  003F       		MOVZWL	#<RMS$_RSZ&^XFFFF>,R0

                          0090'  31  0044   361 	BRW	EXIT			; EXIT

            55            8E     7D  0047   362 40$:	MOVQ	(SP)+,R5		; RESTORE REGISTERS

                                     004A   363 	RMSERR	RHB			; CAN NOT ACCESS RHB

            50       866C 8F     3C  004A       		MOVZWL	#<RMS$_RHB&^XFFFF>,R0

                          0085'  31  004F   364 	BRW	EXIT			; EXIT

            61            00     2C  0052   365 50$:	MOVC5	#0,(R1),#0,R6,(R1)	; SUPPLY ZERO RECORD HEADER

            56            00         0055       

                          61         0057       

                          CC     11  0058   366 	BRB	10$			;

                                     005A   367 	$PSECT_RESTORE

RM1PUTREC       INTERNAL PUT SEQ FOR UNIT RECORD DEVICE          21-AUG-1978 21:45:59   VAX-11 MACRO X0.3-11               Page  10

010             RM$PUT_UNIT_REC                                                                                                  (1)



                                 000000E3       		.RESTORE

RM1PUTREC       INTERNAL PUT SEQ FOR UNIT RECORD DEVICE          21-AUG-1978 21:45:59   VAX-11 MACRO X0.3-11               Page  11

010             RM$PUT_UNIT_REC                                                                                                  (1)



                                     00E3   369 ;++

                                     00E3   370 ; OUTPUT RECORD SUBROUTINE

                                     00E3   371 ;

                                     00E3   372 ; INPUTS:

                                     00E3   373 ;

                                     00E3   374 ;	R11	IMPURE AREA ADDR

                                     00E3   375 ;	R10	IFAB ADDR

                                     00E3   376 ;	R9	IRAB ADDR

                                     00E3   377 ;	R8	RAB ADDR

                                     00E3   378 ;	R5	POST FIELD CARRIAGE CONTROL BYTE

                                     00E3   379 ;	R3	POINTER TO NEXT AVAILABLE BYTE IN BUFFER

                                     00E3   380 ;	IRB$L_CURBDB	ADDR OF BDB FOR BLOCK

                                     00E3   381 ;	IRB$B_PRE_CCTL	PRE FIELD CARRIAGE CONTROL BYTE

                                     00E3   382 ;

                                     00E3   383 ; OUTPUTS:

                                     00E3   384 ;	R0	STATUS CODE

                                     00E3   385 ;	R1-R5	DESTROYED

                                     00E3   386 ;

                                     00E3   387 ; IMPLICIT OUTPUTS:

                                     00E3   388 ;

                                     00E3   389 ;	RMS MAY HAVE STALLED (UNLESS WBH IN OPERATION).

                                     00E3   390 ;--

            54         20 A9     D0  00E3   391 OUTPUT:	MOVL	IRB$L_CURBDB(R9),R4	; GET BDB ADDR

            53         14 A4     C3  00E7   392 	SUBL3	BDB$L_ADDR(R4),R3,R0	; GET # BYTES IN BUFFER

                          50         00EB       

         10 A4            50     B0  00EC   393 	MOVW	R0,BDB$W_NUMB(R4)	; SET XFER SIZE

         22 A4         44 A9     90  00F0   394 	MOVB	IRB$B_PRE_CCTL(R9),BDB$B_PRE_CCTL(R4)	; & CARRIAGE CONTROL

         23 A4            55     90  00F5   395 	MOVB	R5,BDB$B_POST_CCTL(R4)	; SET POST FIELD CARRIAGE CONTROL

                          FF04'  30  00F9   396 	BSBW	RM$SEQWTUR		; WRITE THE BUFFER

                                 05  00FC   397 	RSB

                                     00FD   398 	.END

RM1PUTREC       INTERNAL PUT SEQ FOR UNIT RECORD DEVICE          21-AUG-1978 21:45:59   VAX-11 MACRO X0.3-11               Page  12

SYMBOL TABLE                                                                                                                     (1)



$$.PSECT_EP    = 00000002            FAB$B_RAT        0000001E            FAB$M_PPF_IND  = 00004000            

$$RMSTEST      = 0000001A            FAB$B_RFM        0000001F            FAB$M_PPF_RAT  = 00003FC0            

$$RMS_PBUGCHK  = 00000010            FAB$B_RTV        0000001C            FAB$M_PRN      = 00000004            

$$RMS_TBUGCHK  = 00000008            FAB$B_SHR        00000017            FAB$M_PUT      = 00000001            

$$RMS_UMODE    = 00000004            FAB$C_BID      = 00000003            FAB$M_RCK      = 00800000            

BDB$B_BID        00000008            FAB$C_BLN        00000050            FAB$M_RWC      = 00000800            

BDB$B_BLN        00000009            FAB$C_FIX      = 00000001            FAB$M_RWO      = 00000080            

BDB$B_FLGS       0000000A            FAB$C_HSH      = 00000030            FAB$M_SCF      = 00004000            

BDB$B_POST_CCTL  00000023            FAB$C_IDX      = 00000020            FAB$M_SHRDEL   = 00000004            

BDB$B_PRE_CCTL   00000022            FAB$C_MAXRFM   = 00000003            FAB$M_SHRGET   = 00000002            

BDB$B_REL_VBN    00000020            FAB$C_REL      = 00000010            FAB$M_SHRPUT   = 00000001            

BDB$B_USECNT     0000000B            FAB$C_RFM_DFLT = 00000002            FAB$M_SHRUPD   = 00000008            

BDB$B_VAL_VBNS   00000021            FAB$C_SEQ      = 00000000            FAB$M_SPL      = 00002000            

BDB$C_BID      = 0000000C            FAB$C_UDF      = 00000000            FAB$M_SQO      = 00000040            

BDB$C_BLN        00000028            FAB$C_VAR      = 00000002            FAB$M_SUP      = 00000004            

BDB$K_BLN        00000028            FAB$C_VFC      = 00000003            FAB$M_TEF      = 10000000            

BDB$L_ADDR       00000014            FAB$K_BLN        00000050            FAB$M_TMD      = 00000010            

BDB$L_BLINK      00000004            FAB$L_ALQ        00000010            FAB$M_TMP      = 00000008            

BDB$L_CURBUFADR  00000024            FAB$L_CTX        00000018            FAB$M_TRN      = 00000010            

BDB$L_FLINK      00000000            FAB$L_DEV        00000040            FAB$M_UFM      = 04000000            

BDB$L_IOSB       00000020            FAB$L_DNA        00000030            FAB$M_UFO      = 00020000            

BDB$L_OWN        0000000C            FAB$L_FNA        0000002C            FAB$M_UPD      = 00000008            

BDB$L_VBN        00000018            FAB$L_FOP        00000004            FAB$M_UPI      = 00000040            

BDB$L_WAIT       0000001C            FAB$L_JNL        00000020            FAB$M_WCK      = 00000200            

BDB$L_WK1        00000020            FAB$L_MRN        00000038            FAB$S_ORG      = 00000004            

BDB$M_AST_DCL  = 00000040            FAB$L_NAM        00000028            FAB$S_PPF_RAT  = 00000008            

BDB$M_DRT      = 00000002            FAB$L_SDC        00000044            FAB$V_BIO      = 00000005            

BDB$M_IOP      = 00000004            FAB$L_STS        00000008            FAB$V_BLK      = 00000003            

BDB$M_LKDINWS  = 00000080            FAB$L_STV        0000000C            FAB$V_BRO      = 00000006            

BDB$M_NOLOCATE = 00000010            FAB$L_XAB        00000024            FAB$V_CBT      = 00000015            

BDB$M_PRM      = 00000008            FAB$M_BIO      = 00000020            FAB$V_CIF      = 00000019            

BDB$M_VAL      = 00000001            FAB$M_BLK      = 00000008            FAB$V_CR       = 00000001            

BDB$M_WFO      = 00000020            FAB$M_BRO      = 00000040            FAB$V_CTG      = 00000014            

BDB$V_AST_DCL  = 00000006            FAB$M_CBT      = 00200000            FAB$V_DEL      = 00000002            

BDB$V_DRT      = 00000001            FAB$M_CIF      = 02000000            FAB$V_DFW      = 00000005            

BDB$V_IOP      = 00000002            FAB$M_CR       = 00000002            FAB$V_DLT      = 0000000F            

BDB$V_LKDINWS  = 00000007            FAB$M_CTG      = 00100000            FAB$V_DMO      = 0000000C            

BDB$V_NOLOCATE = 00000004            FAB$M_DEL      = 00000004            FAB$V_ESC      = 0000001B            

BDB$V_PRM      = 00000003            FAB$M_DFW      = 00000020            FAB$V_EXE      = 00000007            

BDB$V_VAL      = 00000000            FAB$M_DLT      = 00008000            FAB$V_FTN      = 00000000            

BDB$V_WFO      = 00000005            FAB$M_DMO      = 00001000            FAB$V_GET      = 00000001            

BDB$W_NUMB       00000010            FAB$M_ESC      = 08000000            FAB$V_INP      = 00000013            

BDB$W_SIZE       00000012            FAB$M_EXE      = 00000080            FAB$V_JNL      = 00000016            

BIT...         = 0001C134            FAB$M_FTN      = 00000001            FAB$V_KFO      = 0000001E            

CCTL_TABLE       00000000 R     02   FAB$M_GET      = 00000002            FAB$V_MSE      = 00000004            

CHKLST           000000D1 R     02   FAB$M_INP      = 00080000            FAB$V_MXV      = 00000001            

CR             = 0000000D            FAB$M_JNL      = 00400000            FAB$V_NAM      = 00000018            

ERRRHB           000000DD R     02   FAB$M_KFO      = 40000000            FAB$V_NEF      = 0000000A            

EXIT             000000D7 R     02   FAB$M_MSE      = 00000010            FAB$V_NFS      = 00000010            

FAB$B_BID        00000000            FAB$M_MXV      = 00000002            FAB$V_NIL      = 00000005            

FAB$B_BKS        0000003E            FAB$M_NAM      = 01000000            FAB$V_OFP      = 0000001D            

FAB$B_BLN        00000001            FAB$M_NEF      = 00000400            FAB$V_ORG      = 00000004            

FAB$B_DNS        00000035            FAB$M_NFS      = 00010000            FAB$V_POS      = 00000008            

FAB$B_FAC        00000016            FAB$M_NIL      = 00000020            FAB$V_PPF      = 00000012            

FAB$B_FNS        00000034            FAB$M_OFP      = 20000000            FAB$V_PPF_IND  = 0000000E            

FAB$B_FSZ        0000003F            FAB$M_POS      = 00000100            FAB$V_PPF_RAT  = 00000006            

FAB$B_ORG        0000001D            FAB$M_PPF      = 00040000            FAB$V_PRN      = 00000002            

RM1PUTREC       INTERNAL PUT SEQ FOR UNIT RECORD DEVICE          21-AUG-1978 21:45:59   VAX-11 MACRO X0.3-11               Page  13

SYMBOL TABLE                                                                                                                     (1)



FAB$V_PUT      = 00000000            IFB$K_BLN_SEQ    0000005C            IFB$V_ORG      = 00000004            

FAB$V_RCK      = 00000017            IFB$K_FHAEND     00000050            IFB$V_PPF_IMAGE= 00000022            

FAB$V_RWC      = 0000000B            IFB$L_ARGLST     00000018            IFB$V_PPF_INPUT= 0000002E            

FAB$V_RWO      = 00000007            IFB$L_ASBADDR    00000014            IFB$V_PUT      = 00000000            

FAB$V_SCF      = 0000000E            IFB$L_AS_DEV     00000054            IFB$V_RFM      = 00000000            

FAB$V_SHRDEL   = 00000002            IFB$L_BDB_BLNK   00000034            IFB$V_RWC      = 00000027            

FAB$V_SHRGET   = 00000001            IFB$L_BDB_FLNK   00000030            IFB$V_RW_ATTR  = 00000034            

FAB$V_SHRPUT   = 00000000            IFB$L_BKPBITS    00000004            IFB$V_SCF      = 0000002A            

FAB$V_SHRUPD   = 00000003            IFB$L_BWB        0000000C            IFB$V_SPL      = 00000029            

FAB$V_SPL      = 0000000D            IFB$L_DVBN       00000058            IFB$V_SQO      = 0000002D            

FAB$V_SQO      = 00000006            IFB$L_EBK        00000044            IFB$V_TEF      = 00000036            

FAB$V_SUP      = 00000002            IFB$L_FRB_PTR    00000028            IFB$V_TMP      = 00000035            

FAB$V_TEF      = 0000001C            IFB$L_FWA_BDB    00000050            IFB$V_TRN      = 00000004            

FAB$V_TMD      = 00000004            IFB$L_HBK        00000040            IFB$V_UPD      = 00000003            

FAB$V_TMP      = 00000003            IFB$L_IDX_PTR    00000054            IFB$V_WRTACC   = 00000030            

FAB$V_TRN      = 00000004            IFB$L_IOS        0000000C            IFB$W_ASDEVBSIZ  0000005A            

FAB$V_UFM      = 0000001A            IFB$L_IOS4       00000010            IFB$W_BKS_BYTES  0000005C            

FAB$V_UFO      = 00000011            IFB$L_IRAB_LNK   0000001C            IFB$W_BKS_RECS   0000005E            

FAB$V_UPD      = 00000003            IFB$L_LAST_FAB   00000024            IFB$W_CHNL       00000020            

FAB$V_UPI      = 00000006            IFB$L_LOCK_BDB   00000050            IFB$W_DEQ        0000004E            

FAB$V_WCK      = 00000009            IFB$L_MRN        00000054            IFB$W_DEVBUFSIZ  00000038            

FAB$W_BLS        0000003C            IFB$L_NRP_LNK    00000050            IFB$W_EBK0       00000044            

FAB$W_DEQ        00000014            IFB$L_NWA_PTR    00000028            IFB$W_EBK2       00000046            

FAB$W_IFI        00000002            IFB$L_PRIM_DEV   00000000            IFB$W_FFB        00000048            

FAB$W_MRS        00000036            IFB$L_RLB_LNK    0000002C            IFB$W_IOS2       0000000E            

FF             = 0000000C            IFB$L_RNS_LEN    00000050            IFB$W_LRL        0000003E            

GBL...         = 00000000            IFB$M_BIO      = 00000020            IFB$W_MRS        0000004C            

IFB$B_AMAX       00000059            IFB$M_BRO      = 00000040            IFB$W_RTDEQ      0000003A            

IFB$B_AVBN       00000058            IFB$M_DEL      = 00000004            IMP$B_PROT       00000002            

IFB$B_BID        00000008            IFB$M_EXE      = 00000080            IMP$C_ASYEFN   = 0000001E            

IFB$B_BKS        0000004A            IFB$M_GET      = 00000002            IMP$C_ASYQIOEFN= 0000001F            

IFB$B_BLN        00000009            IFB$M_PUT      = 00000001            IMP$C_ENTPERSEG= 0000000F            

IFB$B_EFN        0000000B            IFB$M_TRN      = 00000010            IMP$C_IOREFN   = 0000001E            

IFB$B_EXTRABUF   0000005D            IFB$M_UPD      = 00000008            IMP$C_MBXEFN   = 0000001A            

IFB$B_FAC        00000022            IFB$S_ORG      = 00000004            IMP$C_NPIOFILES= 0000000C            

IFB$B_FSZ        0000004B            IFB$S_RFM      = 00000004            IMP$C_SYNCEFN  = 0000001B            

IFB$B_KBUFSZ     0000005C            IFB$V_ACCESSED = 00000025            IMP$L_FREEPGLH   0000000C            

IFB$B_MODE       0000000A            IFB$V_ANSI_D   = 00000026            IMP$L_IFABTBL    00000018            

IFB$B_NUM_KEYS   0000005A            IFB$V_ASYNC    = 00000023            IMP$L_IFBTBLINK  00000024            

IFB$B_ORGCASE    00000023            IFB$V_ASYNCWAIT= 00000024            IMP$L_IOSEGADDR  00000004            

IFB$B_RAT        0000003D            IFB$V_BIO      = 00000005            IMP$L_IOSEGLEN   00000008            

IFB$B_RFMORG     0000003C            IFB$V_BRO      = 00000006            IMP$L_IRABTBL    0000001C            

IFB$B_UBUFSZ     0000005B            IFB$V_BUSY     = 00000020            IMP$L_IRBTBLINK  00000064            

IFB$C_BID      = 0000000B            IFB$V_CREATE   = 00000032            IMP$L_SAVED_SP   00000014            

IFB$C_BLN        00000060            IFB$V_DAP      = 0000003E            IMP$V_AST      = 00000001            

IFB$C_BLN_IDX    00000060            IFB$V_DAP_OPEN = 0000003D            IMP$V_IIOS     = 00000000            

IFB$C_BLN_REL    00000060            IFB$V_DEL      = 00000002            IMP$V_IORUNDOWN= 00000004            

IFB$C_BLN_SEQ    0000005C            IFB$V_DFW      = 0000002C            IMP$V_NOP0BUFS = 00000005            

IFB$C_DIR      = 00000003            IFB$V_DLT      = 0000002B            IMP$V_TEMP1    = 00000002            

IFB$C_FHAEND     00000050            IFB$V_DMO      = 00000028            IMP$V_TEMP2    = 00000003            

IFB$C_IDX      = 00000002            IFB$V_EOF      = 00000021            IMP$W_ENTPERSEG  00000020            

IFB$C_MAXORG   = 00000002            IFB$V_EXE      = 00000007            IMP$W_NUM_IFABS  00000022            

IFB$C_REL      = 00000001            IFB$V_GET      = 00000001            IMP$W_RMSSTATUS  00000000            

IFB$C_SEQ      = 00000000            IFB$V_MSE      = 00000031            IRB$B_BCNT       00000040            

IFB$K_BLN        00000060            IFB$V_NORECLK  = 00000033            IRB$B_BID        00000008            

IFB$K_BLN_IDX    00000060            IFB$V_NSP      = 0000003F            IRB$B_BLN        00000009            

IFB$K_BLN_REL    00000060            IFB$V_NWA      = 0000003C            IRB$B_EFN        0000000B            

RM1PUTREC       INTERNAL PUT SEQ FOR UNIT RECORD DEVICE          21-AUG-1978 21:45:59   VAX-11 MACRO X0.3-11               Page  14

SYMBOL TABLE                                                                                                                     (1)



IRB$B_KEYSZ      00000051            IRB$V_FIND     = 00000029            RAB$L_CTX        00000018            

IRB$B_MBC        00000041            IRB$V_FIND_LAST= 00000025            RAB$L_DCT        00000038            

IRB$B_MODE       0000000A            IRB$V_IDX_ERR  = 00000031            RAB$L_FAB        0000003C            

IRB$B_NRP_ID     00000030            IRB$V_LOCKABOVE= 00000002            RAB$L_KBF        00000030            

IRB$B_NRP_KREF   00000031            IRB$V_NEW_IDX  = 00000003            RAB$L_PBF        00000030            

IRB$B_NVBNS      00000048            IRB$V_POSINSERT= 00000000            RAB$L_RBF        00000028            

IRB$B_POST_CCTL  00000045            IRB$V_PPF_EOF  = 0000002E            RAB$L_RFA0       00000010            

IRB$B_PPF_ISI    0000003E            IRB$V_PPF_FNDSV= 00000030            RAB$L_RHB        0000002C            

IRB$B_PRE_CCTL   00000044            IRB$V_PPF_IMAGE= 00000022            RAB$L_ROP        00000004            

IRB$B_RFA_ID     00000058            IRB$V_PPF_SKIP = 0000002F            RAB$L_STS        00000008            

IRB$B_RP_ID      00000038            IRB$V_PUTS_LAST= 00000026            RAB$L_STV        0000000C            

IRB$B_RP_KREF    00000039            IRB$V_RAHWBH   = 0000002A            RAB$L_UBF        00000024            

IRB$B_RRV_ID     00000050            IRB$V_SKIP_NEXT= 0000002B            RAB$M_ASY      = 00000001            

IRB$B_SRCHFLAGS  00000043            IRB$V_SRCHGT   = 00000001            RAB$M_BIO      = 00000800            

IRB$B_STOPLEVEL  00000042            IRB$V_UNLOCK_RP= 0000002D            RAB$M_CCO      = 80000000            

IRB$C_BID      = 0000000A            IRB$V_WRITE    = 00000029            RAB$M_CVT      = 04000000            

IRB$C_BLN_IDX    0000006C            IRB$W_CSIZ       00000042            RAB$M_EOF      = 00000100            

IRB$C_BLN_REL    00000048            IRB$W_DUP_POS    00000032            RAB$M_FDL      = 00000040            

IRB$C_BLN_SEQ    0000004C            IRB$W_IOS2       0000000E            RAB$M_HSH      = 00000080            

IRB$K_BLN_IDX    0000006C            IRB$W_NRP_OFF    00000030            RAB$M_KGE      = 00200000            

IRB$K_BLN_REL    00000048            IRB$W_OWN_ID     0000003C            RAB$M_KGT      = 00400000            

IRB$K_BLN_SEQ    0000004C            IRB$W_OWN_ISI    0000003E            RAB$M_LIM      = 00004000            

IRB$L_ARGLST     00000018            IRB$W_ROVHDSZ    00000044            RAB$M_LOA      = 00002000            

IRB$L_ASBADDR    00000014            IRB$W_RP_OFF     00000038            RAB$M_LOC      = 00010000            

IRB$L_BKPBITS    00000004            IRB$W_RTOTLSZ    00000046            RAB$M_MAS      = 00000020            

IRB$L_BWB        0000000C            IRB$W_SAVE_POS   00000052            RAB$M_NLK      = 00100000            

IRB$L_CURBDB     00000020            L$RMS00          00000000 R     04   RAB$M_NXR      = 00800000            

IRB$L_CURVBN     00000030            LF             = 0000000A            RAB$M_PMT      = 40000000            

IRB$L_IFAB_LNK   00000000            LF_REC_CR        00000082 R     02   RAB$M_PPF_IND  = 00004000            

IRB$L_IOS        0000000C            MAPCTL           00000025 R     02   RAB$M_PPF_RAT  = 00003FC0            

IRB$L_IOS4       00000010            MOVDAT           0000008B R     02   RAB$M_PTA      = 20000000            

IRB$L_IRAB_LNK   0000001C            MOVPREPOST       00000087 R     02   RAB$M_RAH      = 00000200            

IRB$L_KEYBUF     00000048            NF$NETWORK1      00000000 R     05   RAB$M_RLK      = 00080000            

IRB$L_LAST_RAB   00000024            NOTPRN           0000005C R     02   RAB$M_RNE      = 01000000            

IRB$L_LOCK_BDB   0000005C            NTMOVE           000000E0 R     02   RAB$M_RNF      = 08000000            

IRB$L_NRP        0000002C            OUTPUT           000000E3 R     02   RAB$M_TMO      = 02000000            

IRB$L_NRP_OFF    00000030            PIO$GL_FMLH      ********   X   02   RAB$M_TPT      = 00000002            

IRB$L_NRP_VBN    0000002C            PRNFMT           00000070 R     02   RAB$M_UIF      = 00000010            

IRB$L_NXTBDB     00000028            RAB$B_BID        00000000            RAB$M_ULK      = 00040000            

IRB$L_OWNER_ID   0000003C            RAB$B_BLN        00000001            RAB$M_WAT      = 00020000            

IRB$L_RFA_VBN    00000054            RAB$B_KRF        00000035            RAB$M_WBH      = 00000400            

IRB$L_RLB_ADDR   00000044            RAB$B_KSZ        00000034            RAB$S_PPF_RAT  = 00000008            

IRB$L_RP         00000034            RAB$B_MBC        00000037            RAB$V_ASY      = 00000000            

IRB$L_RP_OFF     00000038            RAB$B_MBF        00000036            RAB$V_BIO      = 0000000B            

IRB$L_RP_VBN     00000034            RAB$B_PSZ        00000034            RAB$V_CCO      = 0000001F            

IRB$L_RRV_VBN    0000004C            RAB$B_RAC        0000001E            RAB$V_CVT      = 0000001A            

IRB$L_TEMP0      00000044            RAB$B_ROP1       00000005            RAB$V_EOF      = 00000008            

IRB$L_TEMP1      00000048            RAB$B_ROP2       00000006            RAB$V_FDL      = 00000006            

IRB$V_ASYNC    = 00000023            RAB$B_ROP3       00000007            RAB$V_HSH      = 00000007            

IRB$V_ASYNCWAIT= 00000024            RAB$B_TMO        0000001F            RAB$V_KGE      = 00000015            

IRB$V_BIO_LAST = 00000027            RAB$C_BID      = 00000001            RAB$V_KGT      = 00000016            

IRB$V_BRO_SW   = 00000028            RAB$C_BLN        00000044            RAB$V_LIM      = 0000000E            

IRB$V_BUSY     = 00000020            RAB$C_KEY      = 00000001            RAB$V_LOA      = 0000000D            

IRB$V_DAP_CONN = 0000003E            RAB$C_RFA      = 00000002            RAB$V_LOC      = 00000010            

IRB$V_DAP_FMODE= 0000003F            RAB$C_SEQ      = 00000000            RAB$V_MAS      = 00000005            

IRB$V_DUP      = 0000002C            RAB$K_BLN        00000044            RAB$V_NLK      = 00000014            

IRB$V_EOF      = 00000021            RAB$L_BKT        00000038            RAB$V_NXR      = 00000017            

RM1PUTREC       INTERNAL PUT SEQ FOR UNIT RECORD DEVICE          21-AUG-1978 21:45:59   VAX-11 MACRO X0.3-11               Page  15

SYMBOL TABLE                                                                                                                     (1)



RAB$V_PMT      = 0000001E            RMS$_CHK       = 000184A4            RMS$_LAN       = 000185AC            

RAB$V_PPF_IND  = 0000000E            RMS$_CHN       = 0001C0EC            RMS$_LBL       = 000185B4            

RAB$V_PPF_RAT  = 00000006            RMS$_COD       = 000184AC            RMS$_LNE       = 000185BC            

RAB$V_PTA      = 0000001D            RMS$_CONTROLC  = 00010651            RMS$_LOC       = 000185C4            

RAB$V_RAH      = 00000009            RMS$_CONTROLO  = 00010609            RMS$_MBC       = 00018734            

RAB$V_RLK      = 00000013            RMS$_CONTROLY  = 00010611            RMS$_MKD       = 0001C032            

RAB$V_RNE      = 00000018            RMS$_CRE       = 0001C00A            RMS$_MRN       = 000185CC            

RAB$V_RNF      = 0000001B            RMS$_CREATED   = 00010619            RMS$_MRS       = 000185D4            

RAB$V_TMO      = 00000019            RMS$_CUR       = 000184B4            RMS$_NAM       = 000185DC            

RAB$V_TPT      = 00000001            RMS$_DAC       = 0001C012            RMS$_NEF       = 000185E4            

RAB$V_UIF      = 00000004            RMS$_DAN       = 000184BC            RMS$_NET       = 0001874C            

RAB$V_ULK      = 00000012            RMS$_DEL       = 00018262            RMS$_NID       = 000185EC            

RAB$V_WAT      = 00000011            RMS$_DEV       = 000184C4            RMS$_NMF       = 000182CA            

RAB$V_WBH      = 0000000A            RMS$_DIR       = 000184CC            RMS$_NOD       = 000185F4            

RAB$W_ISI        00000002            RMS$_DME       = 000184D4            RMS$_NORMAL    = 00010001            

RAB$W_RFA        00000010            RMS$_DNA       = 000184DC            RMS$_NPK       = 000185FC            

RAB$W_RFA4       00000014            RMS$_DNF       = 0001C04A            RMS$_OK_ALK    = 00018039            

RAB$W_RSZ        00000022            RMS$_DNR       = 00018272            RMS$_OK_DEL    = 00018041            

RAB$W_USZ        00000020            RMS$_DPE       = 0001C03A            RMS$_OK_DUP    = 00018011            

RM$EXRMS         ********   X   02   RMS$_DTP       = 000184E4            RMS$_OK_IDX    = 00018019            

RM$GETBLK1       ********   X   02   RMS$_DUP       = 000184EC            RMS$_OK_LIM    = 00018051            

RM$MAPBLK1ALT    ********   X   02   RMS$_DVI       = 000184F4            RMS$_OK_RLK    = 00018021            

RM$MAPFTN        00000012 RG    02   RMS$_ENT       = 0001C01A            RMS$_OK_RNF    = 00018049            

RM$PROBEREAD     ********   X   02   RMS$_ENV       = 00018724            RMS$_OK_RRV    = 00018029            

RM$PUT_UNIT_REC  00000029 RG    02   RMS$_EOF       = 0001827A            RMS$_ORD       = 00018604            

RM$SEQWTUR       ********   X   02   RMS$_ESA       = 000184FC            RMS$_ORG       = 0001860C            

RMS$V_STVSTATUS= 0000000E            RMS$_ESL       = 00018714            RMS$_PBF       = 00018614            

RMS$_ABO       = 000183EC            RMS$_ESS       = 00018504            RMS$_PENDING   = 00018009            

RMS$_ACC       = 0001C002            RMS$_EXP       = 000182C2            RMS$_PLG       = 0001861C            

RMS$_ACT       = 0001825A            RMS$_EXT       = 0001C022            RMS$_PLV       = 0001872C            

RMS$_AID       = 000183F4            RMS$_FAB       = 0001850C            RMS$_POS       = 00018624            

RMS$_ALN       = 000183FC            RMS$_FAC       = 00018514            RMS$_PRM       = 0001862C            

RMS$_ALQ       = 00018404            RMS$_FEX       = 00018282            RMS$_PRV       = 0001829A            

RMS$_ANI       = 0001840C            RMS$_FLG       = 0001851C            RMS$_QUO       = 00018634            

RMS$_AOP       = 00018414            RMS$_FLK       = 0001828A            RMS$_RAB       = 0001863C            

RMS$_ATR       = 0001C0CC            RMS$_FNA       = 00018524            RMS$_RAC       = 00018644            

RMS$_ATW       = 0001C0D4            RMS$_FND       = 0001C02A            RMS$_RAT       = 0001864C            

RMS$_BKS       = 0001841C            RMS$_FNF       = 00018292            RMS$_RBF       = 00018654            

RMS$_BKZ       = 00018424            RMS$_FNM       = 0001852C            RMS$_RER       = 0001C0F4            

RMS$_BLN       = 0001842C            RMS$_FOP       = 0001853C            RMS$_REX       = 000182A2            

RMS$_BOF       = 00018198            RMS$_FSZ       = 00018534            RMS$_RFA       = 0001865C            

RMS$_BUG       = 00018434            RMS$_FUL       = 00018544            RMS$_RFM       = 00018664            

RMS$_BUG_DAP   = 00018444            RMS$_IAL       = 0001854C            RMS$_RHB       = 0001866C            

RMS$_BUG_DDI   = 0001843C            RMS$_IAN       = 00018554            RMS$_RLF       = 00018674            

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            

RM1PUTREC       INTERNAL PUT SEQ FOR UNIT RECORD DEVICE          21-AUG-1978 21:45:59   VAX-11 MACRO X0.3-11               Page  16

SYMBOL TABLE                                                                                                                     (1)



RMS$_SEQ       = 000186AC            

RMS$_SHR       = 000186B4            

RMS$_SIZ       = 000186BC            

RMS$_SPL       = 0001C042            

RMS$_SQO       = 000186C4            

RMS$_STALL     = 00018001            

RMS$_STK       = 000186CC            

RMS$_SUC       = 00010001            

RMS$_SUP       = 000182D2            

RMS$_SUPERSEDE = 00010631            

RMS$_SYN       = 000186D4            

RMS$_SYS       = 0001C10C            

RMS$_TEMP1     = 0001826A            

RMS$_TEMP2     = 0001868C            

RMS$_TMO       = 000181B0            

RMS$_TRE       = 000186DC            

RMS$_TYP       = 000186E4            

RMS$_UBF       = 000186EC            

RMS$_USZ       = 000186F4            

RMS$_VER       = 000186FC            

RMS$_VOL       = 00018704            

RMS$_WBE       = 0001C12C            

RMS$_WER       = 0001C114            

RMS$_WLD       = 00018744            

RMS$_WLK       = 000182BA            

RMS$_WPL       = 0001C11C            

RMS$_WSF       = 0001871C            

RMS$_XAB       = 0001870C            

SPACE          = 00000020            

SS$_CONTROLC     ********   X   02   

SS$_CONTROLY     ********   X   02   

TPT$L_PUTREC1    ********   X   02   

VT             = 0000000B            





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            000000FD      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$RMS0           00000008      04     NOPIC   USR   CON   REL   GBL NOSHR   EXE   RD  NOWRT BYTE  

NF$NETWORK       0000005A      05     NOPIC   USR   CON   REL   GBL NOSHR   EXE   RD  NOWRT BYTE  





THERE WERE NO ERRORS OR WARNINGS.

7860. BYTES LEFT IN FREE MEMORY POOL.

2506. BYTES OF RECLAIMED MEMORY.

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

29 MLB DIR RDS - 1152 GETS TO DEFINE 25 MACROS. 85 INTER. FILE WRITES. 

