NT0DECODE       DECODE DAP MESSAGE                               21-AUG-1978 22:20:24   VAX-11 MACRO X0.3-11               Page   0

TABLE OF CONTENTS   



   (2)      39  DECLARATIONS

   (3)      97  NT$DECODE_MSG - DECODE DAP MESSAGE

   (4)     249  CNF_MSG - DECODE CONFIGURATION MESSAGE

   (5)     307  ATT_MSG - DECODE ATTRIBUTES MESSAGE

   (6)     462  ACC_MSG - DECODE ACCESS MESSAGE

   (9)     534  CTL_MSG - DECODE CONTROL MESSAGE

   (10)    647  CON_MSG - DECODE CONTINUE TRANSFER MESSAGE

   (11)    673  ACK_MSG - DECODE ACKNOWLEDGE MESSAGE

   (12)    682  CMP_MSG - DECODE ACCESS COMPLETE MESSAGE

   (13)    725  DAT_MSG - DECODE DATA MESSAGE

   (14)    750  STS_MSG - DECODE STATUS MESSAGE

   (15)    784  STORE_FIELD - STORE NEXT FIELD ROUTINES

   (16)    882  STORE_EXT - STORE EXTENSIBLE FIELD

   (17)    911  STORE_FIX - STORE FIXED LENGTH FIELD

   (18)    931  STORE_IMG - STORE IMAGE FIELD

   (19)    947  STORE_ROM - STORE REST OF MESSAGE

   (20)    984  ERROR PROCESSSING AND EXIT ROUTINES

NT0DECODE       DECODE DAP MESSAGE                               21-AUG-1978 22:20:24   VAX-11 MACRO X0.3-11               Page   1

016                                                                                                                              (1)



                                     0000     1 	$BEGIN	NT0DECODE,016,NF$NETWORK,<DECODE DAP MESSAGE>

                                     0000     2 

                                     0000     3 

                                     0000     4 ;

                                     0000     5 ;			  COPYRIGHT (c) 1977, 1978 BY

                                     0000     6 ;	      DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.

                                     0000     7 ;

                                     0000     8 ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND  COPIED

                                     0000     9 ; ONLY  IN  ACCORDANCE  WITH  THE  TERMS  OF  SUCH  LICENSE AND WITH THE

                                     0000    10 ; INCLUSION OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR  ANY  OTHER

                                     0000    11 ; COPIES  THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY

                                     0000    12 ; OTHER PERSON.  NO TITLE TO AND OWNERSHIP OF  THE  SOFTWARE  IS  HEREBY

                                     0000    13 ; TRANSFERRED.

                                     0000    14 ;

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

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

                                     0000    17 ; CORPORATION.

                                     0000    18 ;

                                     0000    19 ; DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR  RELIABILITY  OF  ITS

                                     0000    20 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL.

                                     0000    21 ;

                                     0000    22 

                                     0000    23 ;++

                                     0000    24 ; FACILITY: RMS32

                                     0000    25 ;

                                     0000    26 ; ABSTRACT:

                                     0000    27 ;

                                     0000    28 ;	THIS MODULE DECODES DAP MESSAGES INTO THE FORMAT OF THE DAP

                                     0000    29 ;	CONTROL BLOCK ($DAPDEF).

                                     0000    30 ;

                                     0000    31 ; ENVIRONMENT: VAX/VMS

                                     0000    32 ;

                                     0000    33 ; AUTHOR: JAMES A. KRYCKA,	CREATION DATE: 16-JUN-77

                                     0000    34 ;

                                     0000    35 ; MODIFICATIONS:

                                     0000    36 ;

                                     0000    37 ;--

NT0DECODE       DECODE DAP MESSAGE                               21-AUG-1978 22:20:24   VAX-11 MACRO X0.3-11               Page   2

016             DECLARATIONS                                                                                                     (2)



                                     0000    39 	.SBTTL	DECLARATIONS

                                     0000    40 

                                     0000    41 ;

                                     0000    42 ; INCLUDE FILES:

                                     0000    43 ;

                                     0000    44 	$DAPDEF				; DEFINE DAP CONTROL BLOCK SYMBOLS

                                     0000    45 	$DAPFLDDEF			; DEFINE DAP FIELD ID SYMBOLS

                                     0000    46 ;	.LIST	MEB

                                     0000    47 ;

                                     0000    48 ; MACROS:

                                     0000    49 ;

                                     0000    50 ;++

                                     0000    51 ; STORE_FIELD OBTAINS THE NEXT FIELD (IF ANY) FROM THE DAP MESSAGE BEING

                                     0000    52 ; PARSED, CONVERTS IT TO AN APPROPRIATE FORMAT, AND STORES THE RESULT IN THE

                                     0000    53 ; DESIGNATED FIELD OF THE DAP CONTROL BLOCK. THE ARGUMENTS (CODED IN-LINE) ARE:

                                     0000    54 ;	FORMAT	= FORMAT OR STRUCTURE OF THE INPUT FIELD. CHOICES ARE:

                                     0000    55 ;		  K_EXT	= EXTENSIBLE FIELD (BIT7 OF EACH BYTE USED TO

                                     0000    56 ;			  SIGNIFY TERMINATION/CONTINUATION (0/1) OF FIELD)

                                     0000    57 ;		  K_FIX	= FIXED LENGTH FIELD

                                     0000    58 ;		  K_IMG	= IMAGE FIELD (COUNTED STRING)

                                     0000    59 ;		  K_ROM	= REST-OF-MESSAGE IS TAKEN AS THE NEXT FIELD

                                     0000    60 ;	SIZE	= SIZE IN BYTES OF DESTINATION FIELD IN DAP CONTROL BLOCK

                                     0000    61 ;	NAME	= SYMBOLIC NAME OF DAP FIELD USED TO CREATE SYMBOLIC

                                     0000    62 ;		  DAP OFFSET AND FIELD ID VALUES

                                     0000    63 ;	MASK	= BYTE FLAG MASK TO CONTROL FIELD PROCESSING

                                     0000    64 ;--

                                     0000    65 

                                     0000    66 	.MACRO	STORE_FIELD FORMAT,SIZE,NAME,MASK=0

                                     0000    67 	BSBW	STORE_FIELD

                                     0000    68 	.BYTE	SIZE

                                     0000    69 TMP1..=.

                                     0000    70 	.IIF EQ	<SIZE-1>,	.BYTE	DAP$B_'NAME

                                     0000    71 	.IIF EQ	<SIZE-2>,	.BYTE	DAP$W_'NAME

                                     0000    72 	.IIF EQ	<SIZE-4>,	.BYTE	DAP$L_'NAME

                                     0000    73 	.IIF EQ	<SIZE-8>,	.BYTE	DAP$Q_'NAME

                                     0000    74 TMP2..=.

                                     0000    75 	.IIF EQ	<TMP2..-TMP1..>,.BYTE	DAP$T_'NAME

                                     0000    76 	.BYTE	DAP$_'NAME

                                     0000    77 	.BYTE	FORMAT!MASK

                                     0000    78 	.ENDM	STORE_FIELD

                                     0000    79 

                                     0000    80 ;

                                     0000    81 ; EQUATED SYMBOLS:

                                     0000    82 ;

                           00000000  0000    83 K_EXT=0			; EXTENSIBLE FIELD FORMAT

                           00000001  0000    84 K_FIX=1			; FIXED LENGTH FIELD FORMAT

                           00000002  0000    85 K_IMG=2			; IMAGE FIELD FORMAT

                           00000003  0000    86 K_ROM=3			; REST-OF-MESSAGE FIELD FORMAT

                           00000004  0000    87 V_DESC=4		; STORE ONLY QUADWORD DESCRIPTOR OF SRC FIELD

                           00000005  0000    88 V_TRUNC=5		; IF SRC FIELD SIZE GTR DST FIELD SIZE, TRUNCATE

                                     0000    89 			;  EXTRA BYTES (INSTEAD OF DECLARING AN ERROR)

                           00000010  0000    90 M_DESC=<1@V_DESC>	; MASK FOR V_DESC

                           00000020  0000    91 M_TRUNC=<1@V_TRUNC>	; MASK FOR V_TRUNC

                                     0000    92 ;

                                     0000    93 ; OWN STORAGE:

                                     0000    94 ;

                                     0000    95 ;	NONE

NT0DECODE       DECODE DAP MESSAGE                               21-AUG-1978 22:20:24   VAX-11 MACRO X0.3-11               Page   3

016             NT$DECODE_MSG - DECODE DAP MESSAGE                                                                               (3)



                                     0000    97 	.SBTTL	NT$DECODE_MSG - DECODE DAP MESSAGE

                                     0000    98 

                                     0000    99 ;++

                                     0000   100 ; FUNCTIONAL DESCRIPTION:

                                     0000   101 ;

                                     0000   102 ;	NT$DECODE IS RESPONSIBLE FOR CONVERTING A DAP MESSAGE INTO

                                     0000   103 ;	THE FORMAT OF THE DAP CONTROL BLOCK.

                                     0000   104 ;

                                     0000   105 ; CALLING SEQUENCE:

                                     0000   106 ;

                                     0000   107 ;	CALLS	#1,NT$DECODE_MSG

                                     0000   108 ;

                                     0000   109 ; INPUT PARAMETERS:

                                     0000   110 ;

                                     0000   111 ;	4(AP)	ADDRESS OF DAP CONTROL BLOCK

                                     0000   112 ;

                                     0000   113 ; IMPLICIT INPUTS:

                                     0000   114 ;

                                     0000   115 ;	NONE

                                     0000   116 ;

                                     0000   117 ; OUTPUT PARAMETERS:

                                     0000   118 ;

                                     0000   119 ;	R0	COMPLETION CODE

                                     0000   120 ;	R1	DESTROYED

                                     0000   121 ;

                                     0000   122 ; IMPLICIT OUTPUTS:

                                     0000   123 ;

                                     0000   124 ;	VARIOUS FIELDS OF THE DAP CONTROL BLOCK ARE UPDATED.

                                     0000   125 ;

                                     0000   126 ; COMPLETION CODES:

                                     0000   127 ;

                                     0000   128 ;	R0	1 = SUCCESS; 0 = FAILURE

                                     0000   129 ;

                                     0000   130 ; SIDE EFFECTS:

                                     0000   131 ;

                                     0000   132 ;	NONE

                                     0000   133 ;

                                     0000   134 ;--

                                     0000   135 

                               0FFC' 0000   136 	.ENTRY	NT$DECODE_MSG,^M<R2,R3,R4,R5,R6,R7,R8,R9,R10,R11>

                                     0002   137 					; ENTRY POINT

                                     0002   138 

                                     0002   139 ;

                                     0002   140 ; PERFORM INITIALIZATION.

                                     0002   141 ;

                                     0002   142 

            59         04 AC     D0  0002   143 	MOVL	4(AP),R9		; GET ADDRESS OF DAP CONTROL BLOCK

         08 A9            01     D0  0006   144 	MOVL	#1,DAP$L_DCODE_STS(R9)	; ASSUME SUCCESS

            5A         10 A9     7D  000A   145 	MOVQ	DAP$Q_MSG_BUF1(R9),R10	; R10 = SIZE OF MESSAGE

                                     000E   146 					; R11 = ADDRESS OF START-OF-MESSAGE

                                     000E   147 					;	(I.E., NEXT BYTE)

         18 A9            5A     7D  000E   148 	MOVQ	R10,DAP$Q_MSG_BUF2(R9)	; STORE IN RESULT DESCRIPTOR

            5A            5B     C0  0012   149 	ADDL2	R11,R10			; R10 = ADDRESS OF END-OF-MESSAGE + 1

                                     0015   150 					;	(I.E., LAST BYTE + 1)

                                     0015   151 					; R11 = ADDRESS OF START-OF-MESSAGE

                                     0015   152 					;	(I.E., NEXT BYTE)

                                     0015   153 

NT0DECODE       DECODE DAP MESSAGE                               21-AUG-1978 22:20:24   VAX-11 MACRO X0.3-11               Page   4

016             NT$DECODE_MSG - DECODE DAP MESSAGE                                                                               (3)



                                     0015   154 ;

                                     0015   155 ; DECODE THE DAP MESSAGE HEADER (OPERATOR PORTION OF THE MESSAGE).

                                     0015   156 ;

                                     0015   157 

                       20 A9     D4  0015   158 	CLRL	DAP$L_OPERATOR(R9)	; ZERO DAP HEADER FIELDS

                                     0018   159 

                                     0018   160 ;

                                     0018   161 ; PROCESS DAP MESSAGE TYPE FIELD (REQUIRED).

                                     0018   162 ;

                                     0018   163 

                                     0018   164 		ASSUME DAP$K_CNF_MSG EQ 1

                                     0018   165 		ASSUME DAP$K_ATT_MSG EQ 2

                                     0018   166 		ASSUME DAP$K_ACC_MSG EQ 3

                                     0018   167 		ASSUME DAP$K_CTL_MSG EQ 4

                                     0018   168 		ASSUME DAP$K_CON_MSG EQ 5

                                     0018   169 		ASSUME DAP$K_ACK_MSG EQ 6

                                     0018   170 		ASSUME DAP$K_CMP_MSG EQ 7

                                     0018   171 		ASSUME DAP$K_DAT_MSG EQ 8

                                     0018   172 		ASSUME DAP$K_STS_MSG EQ 9

                                     0018   173 

            58       048A'CF     9E  0018   174 	MOVAB	W^ERROR_FORMAT,R8	; SPECIFY ROUTINE TO EXECUTE ON EOM

                                     001D   175 	STORE_FIELD	K_FIX,1,TYPE	; SAVE TYPE FIELD

                          66     95  0024   176 	TSTB	(R6)			; CHECK FOR VALUE TOO LOW

                          5F     13  0026   177 	BEQL	HDR_INVALID		; BRANCH ON ERROR

            09            66     91  0028   178 	CMPB	(R6),#DAP$K_STS_MSG	; CHECK FOR VALUE TOO HIGH

                          5A     1A  002B   179 	BGTRU	HDR_INVALID		; BRANCH ON ERROR

         0A A9            66     90  002D   180 	MOVB	(R6),DAP$B_MSG_TYPE(R9)	; SAVE MESSAGE TYPE IN DAP$L_DCODE_STS

                                     0031   181 

                                     0031   182 ;

                                     0031   183 ; PROCESS THE DAP MESSAGE FLAGS FIELD (USUALLY REQUIRED).

                                     0031   184 ; THIS IS A MENU FIELD WHEREBY EACH BIT SET DENOTES THAT ITS ASSOCIATED

                                     0031   185 ; FIELD IS INCLUDED IN THE MESSAGE.

                                     0031   186 ;

                                     0031   187 

            58         8D'AF     9E  0031   188 	MOVAB	B^HDR_FORMAT,R8		; SPECIFY ROUTINE TO EXECUTE ON EOM

                                     0035   189 	STORE_FIELD	K_EXT,1,FLAGS	; SAVE FLAGS FIELD

            04            66     93  003C   190 	BITB	(R6),#DAP$K_FLAGS_I	; CHECK FOR INVALID BITS

                          46     12  003F   191 	BNEQ	HDR_INVALID		; BRANCH ON ERROR

                                     0041   192 

                                     0041   193 ;

                                     0041   194 ; PROCESS THE STREAMID AND LENGTH FIELDS (OPTIONAL).

                                     0041   195 ;

                                     0041   196 

            58       048A'CF     9E  0041   197 	MOVAB	W^ERROR_FORMAT,R8	; SPECIFY ROUTINE TO EXECUTE ON EOM

            66            00     E1  0046   198 	BBC	#DAP$V_STREAMID,(R6),10$ ; BRANCH IF NOT SPECIFIED

                          0B         0049       

                                     004A   199 	STORE_FIELD	K_FIX,1,STREAMID ; SAVE STREAMID VALUE

                          66     95  0051   200 	TSTB	(R6)			; CURRENTLY, MULTI-STREAMS ARE

                                     0053   201 					; NOT SUPPORTED, SO CHECK VALUE

                          35     12  0053   202 	BNEQ	HDR_UNSUPPORT		; BRANCH ON ERROR

         21 A9            01     E1  0055   203 10$:	BBC	#DAP$V_LENGTH,DAP$B_FLAGS(R9),20$ ; BRANCH IF NOT SPECIFIED

                          16         0059       

                                     005A   204 	STORE_FIELD	K_FIX,1,LENGTH	; SAVE LENGTH FIELD

            50            66     9A  0061   205 	MOVZBL	(R6),R0			; GET OPERAND LENGTH VALUE

            5B            50     C1  0064   206 	ADDL3	R0,R11,R1		; COMPUTE NEW END-OF-MESSAGE + 1 ADDRESS

                          51         0067       

            5A            51     D1  0068   207 	CMPL	R1,R10			; ERROR IF NOT ENOUGH BYTES IN BUFFER

NT0DECODE       DECODE DAP MESSAGE                               21-AUG-1978 22:20:24   VAX-11 MACRO X0.3-11               Page   5

016             NT$DECODE_MSG - DECODE DAP MESSAGE                                                                               (3)



                          1A     1A  006B   208 	BGTRU	HDR_INVALID		;  TO CONTAIN MESSAGE

            5A            51     D0  006D   209 	MOVL	R1,R10			; UPDATE END-OF-MESSAGE ADDRESS

                                     0070   210 

                                     0070   211 ;

                                     0070   212 ; DISPATCH TO APPROPRIATE ROUTINE TO PROCESS THE MESSAGE BODY (OPERAND

                                     0070   213 ; PORTION OF THE MESSAGE). NOTE, THE TYPE FIELD VALUE HAS BEEN FOUND TO BE

                                     0070   214 ; WITHIN THE CASE RANGE.

                                     0070   215 ;

                                     0070   216 

                                     0070   217 20$:	$CASEB	SELECTOR=DAP$B_MSG_TYPE(R9),BASE=#DAP$K_CNF_MSG, DISPL=<-

                                     0070   218 		CNF_MSG-		; CONFIGURATION MESSAGE

                                     0070   219 		ATT_MSG-		; ATTRIBUTES MESSAGE

                                     0070   220 		ACC_MSG-		; ACCESS MESSAGE

                                     0070   221 		CTL_MSG-		; CONTROL MESSAGE

                                     0070   222 		CON_MSG-		; CONTINUE TRANSFER MESSAGE

                                     0070   223 		ACK_MSG-		; ACKNOWLEDGE MESSAGE

                                     0070   224 		CMP_MSG-		; ACCESS COMPLETE MESSAGE

                                     0070   225 		DAT_MSG-		; DATA MESSAGE

                                     0070   226 		STS_MSG-		; STATUS MESSAGE

                                     0070   227 	>				;

                                     0087   228 

                                     0087   229 ;

                                     0087   230 ; BRANCH HERE ON EXCEPTION CONDITION.

                                     0087   231 ;

                                     0087   232 

                                     0087   233 HDR_INVALID:				;

                          0406   31  0087   234 	BRW	ERROR_INVALID		; BRANCH AID

                                     008A   235 HDR_UNSUPPORT:				;

                          040F   31  008A   236 	BRW	ERROR_UNSUPPORT		; BRANCH AID

                                     008D   237 HDR_FORMAT:				; EOM ON FLAGS FIELD ENCOUNTERED

                                     008D   238 					;  VALID ONLY IF OPERAND PART OF

                                     008D   239 					;  MESSAGE MAY BE ZERO LENGTH

                                 91  008D   240 	CMPB	DAP$B_MSG_TYPE(R9),-	; OK IF ACKNOWLEDGE MESSAGE

            06         0A A9         008E   241 		#DAP$K_ACK_MSG		; "

                          09     13  0091   242 	BEQL	10$			; "

                                 91  0093   243 	CMPB	DAP$B_MSG_TYPE(R9),-	; OK IF ATTRIBUTES MESSAGE

            02         0A A9         0094   244 		#DAP$K_ATT_MSG		; "

                          03     13  0097   245 	BEQL	10$			; "

                          03EE   31  0099   246 	BRW	ERROR_FORMAT		; BRANCH AID

                          040A   31  009C   247 10$:	BRW	EXIT_SUCCESS		; BRANCH AID

NT0DECODE       DECODE DAP MESSAGE                               21-AUG-1978 22:20:24   VAX-11 MACRO X0.3-11               Page   6

016             CNF_MSG - DECODE CONFIGURATION MESSAGE                                                                           (4)



                                     009F   249 	.SBTTL	CNF_MSG - DECODE CONFIGURATION MESSAGE

                                     009F   250 

                                     009F   251 ;++

                                     009F   252 ; DECODE THE OPERAND FIELDS OF THE CONFIGURATION MESSAGE.

                                     009F   253 ;--

                                     009F   254 

                                     009F   255 CNF_MSG:				; CONTROL POINT

            58       048A'CF     9E  009F   256 	MOVAB	W^ERROR_FORMAT,R8	; SPECIFY ROUTINE TO EXECUTE ON EOM

                                     00A4   257 

                                     00A4   258 ;

                                     00A4   259 ; PROCESS THE BUFFER SIZE FIELD (REQUIRED).

                                     00A4   260 ;

                                     00A4   261 

                                     00A4   262 	STORE_FIELD	K_FIX,2,BUFSIZ	; SAVE BUFFER SIZE FIELD

                                     00AB   263 

                                     00AB   264 ;

                                     00AB   265 ; PROCESS SYSTEM SOFTWARE AND DAP PROTOCOL VERSION NUMBER FIELDS (REQUIRED).

                                     00AB   266 ; THESE FIELDS ARE FOR INFORMATION PURPOSES ONLY; HENCE NO BOUNDS

                                     00AB   267 ; CHECKING ON THEIR VALUES IS PERFORMED.

                                     00AB   268 ;

                                     00AB   269 

                                     00AB   270 	STORE_FIELD	K_FIX,1,OSTYPE	; SAVE OPERATING SYSTEM TYPE FIELD

                                     00B2   271 	STORE_FIELD	K_FIX,1,FILESYS	; SAVE FILE SYSTEM TYPE FIELD

                                     00B9   272 	STORE_FIELD	K_FIX,1,VERNUM	; SAVE DAP VERSION # FIELD

                                     00C0   273 	STORE_FIELD	K_FIX,1,ECONUM	; SAVE ECO VERSION # FIELD

                                     00C7   274 	STORE_FIELD	K_FIX,1,USRNUM	; SAVE USER PROTOCOL VERSION # FIELD

                                     00CE   275 	STORE_FIELD	K_FIX,1,SOFTVER	; SAVE DEC SOFTWARE RELEASE # FIELD

                                     00D5   276 	STORE_FIELD	K_FIX,1,USRSOFT	; SAVE USER SOFTWARE RELEASE # FIELD

                                     00DC   277 

                                     00DC   278 ;

                                     00DC   279 ; PROCESS THE SYSTEM CAPABILITIES FIELD (REQUIRED).

                                     00DC   280 ; BITS SET THAT ARE NOT DEFINED IN DAP V4.1 ARE IGNORED (NOT FLAGGED AS

                                     00DC   281 ; AN ERROR) TO FACILITATE COMPATIBILITY WITH LATER IMPLEMENTATIONS OF DAP

                                     00DC   282 ; ON OTHER SYSTEMS.

                                     00DC   283 ;

                                     00DC   284 

                                     00DC   285 	STORE_FIELD	K_EXT,8,SYSCAP,<M_TRUNC> ; SAVE SYSTEM CAPABILITIES FIELD

                                     00E3   286 

                                     00E3   287 ;

                                     00E3   288 ; SET FLAG IF PARTNER IMPLEMENTED TO DAP SPEC AFTER V4.1.

                                     00E3   289 ;

                                     00E3   290 

            50         28 A9     9A  00E3   291 	MOVZBL	DAP$B_VERNUM(R9),R0	; COMBINE VERSION NUMBER AND ECO

            50            08     78  00E7   292 	ASHL	#8,R0,R0		;  NUMBER FIELDS INTO ONE VALUE

                          50         00EA       

            50         29 A9     80  00EB   293 	ADDB2	DAP$B_ECONUM(R9),R0	;  "

       0401 8F            50     B1  00EF   294 	CMPW	R0,#^X0401		; DID PARTNER IMPLEMENT AFTER DAP V4.1?

                          04     1B  00F4   295 	BLEQU	10$			; BRANCH IF NO

                                     00F6   296 	SSB	#DAP$V_AFTER_V41,DAP$Q_DCODE_FLG(R9) ; SET FLAG

                                     00FA   297 

                                     00FA   298 ;

                                     00FA   299 ; SET FLAG IF PARTNER IS VAX/VMS.

                                     00FA   300 ;

                                     00FA   301 

            07         26 A9     91  00FA   302 10$:	CMPB	DAP$B_OSTYPE(R9),#DAP$K_VAXVMS

                          04     12  00FE   303 	BNEQ	20$			; BRANCH IF PARTNER IS NOT VAX/VMS

                                     0100   304 	SSB	#DAP$V_VAXVMS,DAP$Q_DCODE_FLG(R9) ; SET FLAG

NT0DECODE       DECODE DAP MESSAGE                               21-AUG-1978 22:20:24   VAX-11 MACRO X0.3-11               Page   7

016             CNF_MSG - DECODE CONFIGURATION MESSAGE                                                                           (4)



                          03A2   31  0104   305 20$:	BRW	EXIT_SUCCESS		; MESSAGE PARSED SUCCESSFULLY!

NT0DECODE       DECODE DAP MESSAGE                               21-AUG-1978 22:20:24   VAX-11 MACRO X0.3-11               Page   8

016             ATT_MSG - DECODE ATTRIBUTES MESSAGE                                                                              (5)



                                     0107   307 	.SBTTL	ATT_MSG - DECODE ATTRIBUTES MESSAGE

                                     0107   308 

                                     0107   309 ;++

                                     0107   310 ; DECODE THE OPERAND FIELDS OF THE ATTRIBUTES MESSAGE.

                                     0107   311 ;--

                                     0107   312 

                                     0107   313 ATT_MSG:				; CONTROL POINT

                                     0107   314 

                                     0107   315 ;

                                     0107   316 ; APPLY DEFAULT VALUES TO OPTIONAL FIELDS AS DEFINED IN THE CORPORATE

                                     0107   317 ; DAP SPECIFICATION.

                                     0107   318 ;

                                     0107   319 

         3C A9            02     90  0107   320 	MOVB	#DAP$M_IMAGE,DAP$B_DATATYPE(R9)

         3D A9            00     90  010B   321 	MOVB	#DAP$K_SEQ,DAP$B_ORG(R9)

         3E A9            01     90  010F   322 	MOVB	#DAP$K_FIX,DAP$B_RFM(R9)

         40 A9       0200 8F     B0  0113   323 	MOVW	#DAP$K_BLS_D,DAP$W_BLS(R9)

                       38 A9     D4  0119   324 	CLRL	DAP$L_ATTMENU(R9)

                       3F A9     94  011C   325 	CLRB	DAP$B_RAT(R9)

                       42 A9     B4  011F   326 	CLRW	DAP$W_MRS(R9)

                       44 A9     D4  0122   327 	CLRL	DAP$L_ALQ(R9)

                       48 A9     94  0125   328 	CLRB	DAP$B_BKS(R9)

                       49 A9     94  0128   329 	CLRB	DAP$B_FSZ(R9)

                       4C A9     D4  012B   330 	CLRL	DAP$L_MRN(R9)

                       50 A9     7C  012E   331 	CLRQ	DAP$Q_RUNSYS(R9)

                       4A A9     B4  0131   332 	CLRW	DAP$W_DEQ(R9)

                       58 A9     D4  0134   333 	CLRL	DAP$L_FOP(R9)

                       5C A9     D4  0137   334 	CLRL	DAP$L_DEV(R9)

                                     013A   335 

                                     013A   336 ;

                                     013A   337 ; PROCESS THE ATTRIBUTES MENU FIELD (OPTIONAL).

                                     013A   338 ; EACH BIT SET DENOTES THAT ITS ASSOCIATED FIELD FOLLOWS IN THE MESSAGE.

                                     013A   339 ;

                                     013A   340 

                                     013A   341 		ASSUME DAP$V_DATATYPE+1 EQ DAP$V_ORG

                                     013A   342 		ASSUME DAP$V_ORG+1 EQ DAP$V_RFM

                                     013A   343 		ASSUME DAP$V_RFM+1 EQ DAP$V_RAT

                                     013A   344 		ASSUME DAP$V_RAT+1 EQ DAP$V_BLS

                                     013A   345 		ASSUME DAP$V_BLS+1 EQ DAP$V_MRS

                                     013A   346 		ASSUME DAP$V_MRS+1 EQ DAP$V_ALQ

                                     013A   347 		ASSUME DAP$V_ALQ+1 EQ DAP$V_BKS

                                     013A   348 		ASSUME DAP$V_BKS+1 EQ DAP$V_FSZ

                                     013A   349 		ASSUME DAP$V_FSZ+1 EQ DAP$V_MRN

                                     013A   350 		ASSUME DAP$V_MRN+1 EQ DAP$V_RUNSYS

                                     013A   351 		ASSUME DAP$V_RUNSYS+1 EQ DAP$V_DEQ

                                     013A   352 		ASSUME DAP$V_DEQ+1 EQ DAP$V_FOP

                                     013A   353 		ASSUME DAP$V_FOP+2 EQ DAP$V_DEV

                                     013A   354 

            58       04A9'CF     9E  013A   355 	MOVAB	W^EXIT_SUCCESS,R8	; ALL DONE IF EOM

                                     013F   356 	STORE_FIELD	K_EXT,4,ATTMENU	; SAVE ATTRIBUTES MENU FIELD

            58       048A'CF     9E  0146   357 	MOVAB	W^ERROR_FORMAT,R8	; SPECIFY ROUTINE TO EXECUTE ON EOM

            5C            66     D0  014B   358 	MOVL	(R6),AP			; COPY MENU TO SCRATCH REGISTER

   0001A000 8F            5C     D3  014E   359 	BITL	AP,#DAP$K_ATTMENU_I	; SCREEN OUT INVALID BITS

                          03     13  0155   360 	BEQL	ATT_LOOP		; BRANCH IF ALL BITS VALID

                          0336   31  0157   361 	BRW	ERROR_INVALID		; BRANCH ON ERROR

                                     015A   362 ATT_LOOP:				;

            0F            00     EA  015A   363 	FFS	#0,#DAP$V_DEV+1,AP,R0	; GET POSITION OF NEXT BIT SET

NT0DECODE       DECODE DAP MESSAGE                               21-AUG-1978 22:20:24   VAX-11 MACRO X0.3-11               Page   9

016             ATT_MSG - DECODE ATTRIBUTES MESSAGE                                                                              (5)



            50            5C         015D       

                                     015F   364 	CSB	R0,AP			; CLEAR MENU BIT JUST FOUND

                       F4 AF     9F  0163   365 	PUSHAB	B^ATT_LOOP		; PUSH RETURN ADDRESS ON STACK

                                     0166   366 	$CASEB	SELECTOR=R0,DISPL=<-	; NEXT FIELD:

                                     0166   367 		10$-			; DATATYPE

                                     0166   368 		20$-			; ORG

                                     0166   369 		30$-			; RFM

                                     0166   370 		40$-			; RAT

                                     0166   371 		50$-			; BLS

                                     0166   372 		60$-			; MRS

                                     0166   373 		70$-			; ALQ

                                     0166   374 		80$-			; BKS

                                     0166   375 		90$-			; FSZ

                                     0166   376 		100$-			; MRN

                                     0166   377 		110$-			; RUNSYS

                                     0166   378 		120$-			; DEQ

                                     0166   379 		130$-			; FOP

                                     0166   380 		ATT_LOOP-		; BSZ--CANNOT REACH HERE

                                     0166   381 		150$-			; DEV

                                     0166   382 	>				;

                          031E   31  0188   383 	BRW	EXIT_SUCCESS		; MESSAGE PARSED SUCCESSFULLY!

                                     018B   384 

                                     018B   385 ;

                                     018B   386 ; PROCESS THE FIELDS SPECIFIED IN THE MENU (OPTIONAL).

                                     018B   387 ;

                                     018B   388 

                                     018B   389 50$:	STORE_FIELD	K_FIX,2,BLS	; SAVE BLOCK SIZE FIELD

                                 05  0192   390 	RSB				;

                                     0193   391 60$:	STORE_FIELD	K_FIX,2,MRS	; SAVE MAXIMUM RECORD SIZE FIELD

                                 05  019A   392 	RSB				;

                                     019B   393 70$:	STORE_FIELD	K_IMG,4,ALQ	; SAVE ALLOCATION QUANTITY FIELD

                                 05  01A2   394 	RSB				;

                                     01A3   395 80$:	STORE_FIELD	K_FIX,1,BKS	; SAVE BUCKET SIZE FIELD

                                 05  01AA   396 	RSB				;

                                     01AB   397 90$:	STORE_FIELD	K_FIX,1,FSZ	; SAVE FIXED CONTROL AREA SIZE FIELD

                                 05  01B2   398 	RSB				;

                                     01B3   399 100$:	STORE_FIELD	K_IMG,4,MRN	; SAVE MAXIMUM RECORD NUMBER FIELD

                                 05  01BA   400 	RSB				;

                                     01BB   401 110$:	STORE_FIELD	K_IMG,8,RUNSYS,<M_DESC> ; SAVE DESCRIPTOR OF

                                     01C2   402 					      ;  RUN-TIME SYSTEM FIELD

                                 05  01C2   403 	RSB				;

                                     01C3   404 120$:	STORE_FIELD	K_FIX,2,DEQ	; SAVE DEFAULT EXTENSION QUANTITY FIELD

                                 05  01CA   405 	RSB				;

                                     01CB   406 10$:	STORE_FIELD	K_EXT,1,DATATYPE ; SAVE DATA TYPE FIELD

         84 8F            66     93  01D2   407 	BITB	(R6),#DAP$K_DATATYP_I	; CHECK FOR INVALID BITS

                          63     12  01D6   408 	BNEQ	ATT_INVALID		; BRANCH ON ERROR

                                 05  01D8   409 	RSB				;

                                     01D9   410 20$:	STORE_FIELD	K_FIX,1,ORG	; SAVE FILE ORGANIZATION FIELD

                                     01E0   411 

                                     01E0   412 		ASSUME	DAP$K_SEQ EQ 0

                                     01E0   413 		ASSUME	DAP$K_REL EQ 16

                                     01E0   414 		ASSUME	DAP$K_IDX EQ 32

                                     01E0   415 

                          66     95  01E0   416 	TSTB	(R6)			; CHECK FOR VALID VALUE

                          0C     13  01E2   417 	BEQL	25$			; BRANCH IF OK

            10            66     91  01E4   418 	CMPB	(R6),#DAP$K_REL		; CHECK FOR VALID VALUE

                          07     13  01E7   419 	BEQL	25$			; BRANCH IF OK

NT0DECODE       DECODE DAP MESSAGE                               21-AUG-1978 22:20:24   VAX-11 MACRO X0.3-11               Page  10

016             ATT_MSG - DECODE ATTRIBUTES MESSAGE                                                                              (5)



            20            66     91  01E9   420 	CMPB	(R6),#DAP$K_IDX		; CHECK FOR UNSUPPORTED VALUE

                          50     13  01EC   421 	BEQL	ATT_UNSUPPORT		; BRANCH ON ERROR

                          4B     11  01EE   422 	BRB	ATT_INVALID		; BRANCH ON ERROR

                                 05  01F0   423 25$:	RSB				;

                                     01F1   424 30$:	STORE_FIELD	K_FIX,1,RFM	; SAVE RECORD FORMAT FIELD

                                     01F8   425 

                                     01F8   426 		ASSUME DAP$K_UDF EQ 0

                                     01F8   427 		ASSUME DAP$K_FIX EQ 1

                                     01F8   428 		ASSUME DAP$K_VAR EQ 2

                                     01F8   429 		ASSUME DAP$K_VFC EQ 3

                                     01F8   430 		ASSUME DAP$K_STM EQ 4

                                     01F8   431 		ASSUME DAP$K_LSA EQ 5

                                     01F8   432 

            05            66     91  01F8   433 	CMPB	(R6),#DAP$K_LSA		; CHECK FOR VALID VALUE

                          3E     1A  01FB   434 	BGTRU	ATT_INVALID		; BRANCH IF OUT-OF-RANGE

            03            66     91  01FD   435 	CMPB	(R6),#DAP$K_VFC		; CHECK FOR SUPPORTED VALUE

                          3C     1A  0200   436 	BGTRU	ATT_UNSUPPORT		; BRANCH IF OUT-OF-RANGE

                                 05  0202   437 	RSB				;

                                     0203   438 40$:	STORE_FIELD	K_EXT,1,RAT	; SAVE RECORD ATTRIBUTES FIELD

            20            66     93  020A   439 	BITB	(R6),#DAP$K_RAT_I	; CHECK FOR INVALID BITS

                          2C     12  020D   440 	BNEQ	ATT_INVALID		; BRANCH ON ERROR

                                 05  020F   441 	RSB				;

                                     0210   442 130$:	STORE_FIELD	K_EXT,4,FOP	; SAVE FILE OPTIONS FIELD

   01020024 8F            66     D3  0217   443 	BITL	(R6),#DAP$K_FOP_I	; CHECK FOR INVALID BITS

                          1B     12  021E   444 	BNEQ	ATT_INVALID		; BRANCH ON ERROR

   00001010 8F            66     D3  0220   445 	BITL	(R6),#<DAP$M_DLK!DAP$M_FID> ; CHECK FOR UNSUPPORTED BITS

                          15     12  0227   446 	BNEQ	ATT_UNSUPPORT		; BRANCH ON ERROR

                                 05  0229   447 	RSB				;

                                     022A   448 150$:	STORE_FIELD	K_EXT,4,DEV	; SAVE DEVICE CHARACTERISTICS FIELD

   04000040 8F            66     D3  0231   449 	BITL	(R6),#DAP$K_DEV_I	; CHECK FOR INVALID BITS

                          01     12  0238   450 	BNEQ	ATT_INVALID		; BRANCH ON ERROR

                                 05  023A   451 	RSB				;

                                     023B   452 

                                     023B   453 ;

                                     023B   454 ; BRANCH HERE ON EXCEPTION CONDITION.

                                     023B   455 ;

                                     023B   456 

                                     023B   457 ATT_INVALID:				;

                          0252   31  023B   458 	BRW	ERROR_INVALID		; BRANCH AID

                                     023E   459 ATT_UNSUPPORT:				;

                          025B   31  023E   460 	BRW	ERROR_UNSUPPORT		; BRANCH AID

NT0DECODE       DECODE DAP MESSAGE                               21-AUG-1978 22:20:24   VAX-11 MACRO X0.3-11               Page  11

016             ACC_MSG - DECODE ACCESS MESSAGE                                                                                  (6)



                                     0241   462 	.SBTTL	ACC_MSG - DECODE ACCESS MESSAGE

                                     0241   463 

                                     0241   464 ;++

                                     0241   465 ; DECODE THE OPERAND FIELDS OF THE ACCESS MESSAGE.

                                     0241   466 ;--

                                     0241   467 

                                     0241   468 ACC_MSG:				; CONTROL POINT

                                     0241   469 

                                     0241   470 ;

                                     0241   471 ; PROCESS THE ACCFUNC FIELD (REQUIRED).

                                     0241   472 ;

                                     0241   473 

            58       048A'CF     9E  0241   474 	MOVAB	W^ERROR_FORMAT,R8	; SPECIFY ROUTINE TO EXECUTE ON EOM

                                     0246   475 	STORE_FIELD	K_FIX,1,ACCFUNC	; SAVE ACCESS FUNCTION FIELD

                                     024D   476 

                                     024D   477 		ASSUME DAP$K_OPEN EQ 1

                                     024D   478 		ASSUME DAP$K_CREATE EQ 2

                                     024D   479 		ASSUME DAP$K_ERASE EQ 4

                                     024D   480 		ASSUME DAP$K_SUBMIT EQ 7

                                     024D   481 		ASSUME DAP$K_EXECUTE EQ 8

                                     024D   482 

                                     024D   483 	$CASEB	SELECTOR=(R6),BASE=#DAP$K_OPEN,DISPL=<- ; CHECK VALUE

                                     024D   484 		10$-			; $OPEN

                                     024D   485 		10$-			; $CREATE

                                     024D   486 		ERROR_INVALID-		; $RENAME

                                     024D   487 		10$-			; $ERASE

                                     024D   488 		ERROR_INVALID-		; RESERVED

                                     024D   489 		ERROR_INVALID-		; DIR_LIST

                                     024D   490 		10$-			; SUBMIT COMMAND FILE

                                     024D   491 		10$-			; EXECUTE COMMAND FILE

                                     024D   492 	>

                          41     11  0261   493 	BRB	ACC_INVALID		; VALUE OUT-OF-RANGE

                                     0263   494 

                                     0263   495 ;

                                     0263   496 ; PROCESS THE ACCOPT AND FILESPEC FIELDS (REQUIRED).

                                     0263   497 ;

                                     0263   498 

                                     0263   499 10$:	STORE_FIELD	K_EXT,1,ACCOPT	; SAVE ACCESS OPTIONS FIELD

            08            66     93  026A   500 	BITB	(R6),#DAP$K_ACCOPT_I	; CHECK FOR INVALID BITS

                          35     12  026D   501 	BNEQ	ACC_INVALID		; BRANCH ON ERROR

                                     026F   502 	STORE_FIELD	K_IMG,8,FILESPEC,<M_DESC>

                                     0276   503 					; SAVE DESCRIPTOR OF THE

                                     0276   504 					;  FILE SPECIFICATION FIELD

         80 8F            66     91  0276   505 	CMPB	(R6),#128		; CHECK FOR STRING TOO LONG

                          28     1A  027A   506 	BGTRU	ACC_INVALID		; BRANCH ON ERROR

                                     027C   507 

                                     027C   508 ;

                                     027C   509 ; PROCESS THE FAC AND SHR FIELDS (OPTIONAL).

                                     027C   510 ;

                                     027C   511 

         62 A9            02     90  027C   512 	MOVB	#DAP$M_GET,DAP$B_FAC(R9) ; APPLY DEFAULT FAC VALUE

                       63 A9     94  0280   513 	CLRB	DAP$B_SHR(R9)		; APPLY DEFAULT SHR VALUE

                                     0283   514 					; ***** CONTRARY TO DAP SPEC *****

                                     0283   515 

            58       04A9'CF     9E  0283   516 	MOVAB	W^EXIT_SUCCESS,R8	; ALL DONE IF EOM

                                     0288   517 	STORE_FIELD	K_EXT,1,FAC	; SAVE FILE ACCESS FIELD

         40 8F            66     93  028F   518 	BITB	(R6),#DAP$K_FAC_I	; CHECK FOR INVALID BITS

NT0DECODE       DECODE DAP MESSAGE                               21-AUG-1978 22:20:24   VAX-11 MACRO X0.3-11               Page  12

016             ACC_MSG - DECODE ACCESS MESSAGE                                                                                  (6)



                          0F     12  0293   519 	BNEQ	ACC_INVALID		; BRANCH ON ERROR

                                     0295   520 	STORE_FIELD	K_EXT,1,SHR	; SAVE FILE SHARING FIELD

         90 8F            66     93  029C   521 	BITB	(R6),#DAP$K_SHR_I	; CHECK FOR INVALID BITS

                          02     12  02A0   522 	BNEQ	ACC_INVALID		; BRANCH ON ERROR

                          68     17  02A2   523 	JMP	(R8)			; MESSAGE PARSED SUCCESSFULLY!

                                     02A4   524 

                                     02A4   525 ;

                                     02A4   526 ; BRANCH HERE ON  EXCEPTION CONDITION.

                                     02A4   527 ;

                                     02A4   528 

                                     02A4   529 ACC_INVALID:				;

                          01E9   31  02A4   530 	BRW	ERROR_INVALID		; BRANCH AID

NT0DECODE       DECODE DAP MESSAGE                               21-AUG-1978 22:20:24   VAX-11 MACRO X0.3-11               Page  13

016             CTL_MSG - DECODE CONTROL MESSAGE                                                                                 (9)



                                     02A7   534 	.SBTTL	CTL_MSG - DECODE CONTROL MESSAGE

                                     02A7   535 

                                     02A7   536 ;++

                                     02A7   537 ; DECODE THE OPERAND FIELDS OF THE CONTROL MESSAGE.

                                     02A7   538 ;--

                                     02A7   539 

                                     02A7   540 CTL_MSG:				; CONTROL POINT

                                     02A7   541 

                                     02A7   542 ;

                                     02A7   543 ; APPLY DEFAULT VALUES TO OPTIONAL FIELDS AS DEFINED IN THE CORPORATE

                                     02A7   544 ; DAP SPECIFICATION.

                                     02A7   545 ;

                       70 A9     7C  02A7   546 	CLRQ	DAP$Q_KEY(R9)

                       78 A9     D4  02AA   547 	CLRL	DAP$L_ROP(R9)

                                     02AD   548 

                                     02AD   549 ;

                                     02AD   550 ; PROCESS THE CTLFUNC FIELD (REQUIRED).

                                     02AD   551 ;

                                     02AD   552 

            58       048A'CF     9E  02AD   553 	MOVAB	W^ERROR_FORMAT,R8	; SPECIFY ROUTINE TO EXECUTE ON EOM

                                     02B2   554 	STORE_FIELD	K_FIX,1,CTLFUNC	; SAVE CONTROL FUNCTION FIELD

                                     02B9   555 

                                     02B9   556 		ASSUME DAP$K_GET_READ EQ 1

                                     02B9   557 		ASSUME DAP$K_CONNECT EQ 2

                                     02B9   558 		ASSUME DAP$K_UPDATE EQ 3

                                     02B9   559 		ASSUME DAP$K_PUT_WRITE EQ 4

                                     02B9   560 		ASSUME DAP$K_DELETE EQ 5

                                     02B9   561 		ASSUME DAP$K_REWIND EQ 6

                                     02B9   562 		ASSUME DAP$K_SPACE EQ 11

                                     02B9   563 		ASSUME DAP$K_FIND EQ 14

                                     02B9   564 

                                     02B9   565 	$CASEB	SELECTOR=(R6),BASE=#DAP$K_GET_READ,DISPL=<- ; CHECK VALUE

                                     02B9   566 		20$-			; $GET OR $READ

                                     02B9   567 		10$-			; $CONNECT

                                     02B9   568 		20$-			; $UPDATE

                                     02B9   569 		20$-			; $PUT OR $WRITE

                                     02B9   570 		20$-			; $DELETE

                                     02B9   571 		20$-			; $REWIND

                                     02B9   572 		ERROR_INVALID-		; RESERVED FOR $TRUNCATE

                                     02B9   573 		ERROR_INVALID-		; RESERVED

                                     02B9   574 		ERROR_INVALID-		; RESERVED FOR $RELEASE

                                     02B9   575 		ERROR_INVALID-		; RESERVED FOR $FREE

                                     02B9   576 		20$-			; $SPACE

                                     02B9   577 		ERROR_INVALID-		; RESERVED FOR $FLUSH

                                     02B9   578 		ERROR_INVALID-		; RESERVED FOR $NXTVOL

                                     02B9   579 		20$-			; $FIND

                                     02B9   580 	>				; RESERVED FOR $EXTEND, $DISPLAY

                          62     11  02D9   581 	BRB	CTL_INVALID		; VALUE OUT-OF-RANGE

                                     02DB   582 

                                     02DB   583 ;

                                     02DB   584 ; PROCESS THE CONTROL MENU FIELD (OPTIONAL).

                                     02DB   585 ; EACH BIT SET DENOTES THAT ITS ASSOCIATED FIELD FOLLOWS IN THE MESSAGE.

                                     02DB   586 ;

                                     02DB   587 ; ***** THE CORPORATE DAP SPECIFICATION DOES IS NOT CLEAR ON HOW TO DEFAULT

                                     02DB   588 ; ***** THE RAC FIELD. THE INTERPRETATION USED HERE IS TO DEFAULT TO

                                     02DB   589 ; ***** SEQUENTIAL FILE ACCESS ON $CONNECT AND TO USE PREVIOUS VALUE FOR

                                     02DB   590 ; ***** ALL OTHER CONTROL MESSAGE FUNCTIONS.

NT0DECODE       DECODE DAP MESSAGE                               21-AUG-1978 22:20:24   VAX-11 MACRO X0.3-11               Page  14

016             CTL_MSG - DECODE CONTROL MESSAGE                                                                                 (9)



                                     02DB   591 ;

                                     02DB   592 

                                     02DB   593 		ASSUME DAP$V_RAC+1 EQ DAP$V_KEY

                                     02DB   594 		ASSUME DAP$V_KEY+2 EQ DAP$V_ROP

                                     02DB   595 

         6E A9            03     90  02DB   596 10$:	MOVB	#DAP$K_SEQ_FILE,DAP$B_RAC(R9) ; RAC DEFAULT FOR $CONNECT

            58       04A9'CF     9E  02DF   597 20$:	MOVAB	W^EXIT_SUCCESS,R8	; ALL DONE IN EOM

                                     02E4   598 	STORE_FIELD	K_EXT,1,CTLMENU	; SAVE CONTROL MENU FIELD

            58       048A'CF     9E  02EB   599 	MOVAB	W^ERROR_FORMAT,R8	; SPECIFY ROUTINE TO EXECUTE ON EOM

            5C            66     9A  02F0   600 	MOVZBL	(R6),AP			; COPY MENU TO SCRATCH REGISTER

         54 8F            5C     93  02F3   601 	BITB	AP,#DAP$K_CTLMENU_I	; SCREEN OUT INVALID BITS

                          03     13  02F7   602 	BEQL	CTL_LOOP		; BRANCH IF ALL BITS VALID

                          0194   31  02F9   603 	BRW	ERROR_INVALID		; BRANCH ON ERROR

                                     02FC   604 CTL_LOOP:				;

            04            00     EA  02FC   605 	FFS	#0,#DAP$V_ROP+1,AP,R0	; GET POSITION OF NEXT BIT SET

            50            5C         02FF       

                                     0301   606 	CSB	R0,AP			; CLEAR MENU BIT JUST FOUND

                       F4 AF     9F  0305   607 	PUSHAB	B^CTL_LOOP		; PUSH RETURN ADDRESS ON STACK

                                     0308   608 	$CASEB	SELECTOR=R0,DISPL=<-	; NEXT FIELD:

                                     0308   609 		10$-			; RAC

                                     0308   610 		20$-			; KEY

                                     0308   611 		CTL_LOOP-		; KRF - CANNOT REACH HERE

                                     0308   612 		40$-			; ROP

                                     0308   613 	>				;

                                     0314   614 	

                          0192   31  0314   615 	BRW	EXIT_SUCCESS		; MESSAGE PARSED SUCCESSFULLY!

                                     0317   616 

                                     0317   617 ;

                                     0317   618 ; PROCESS THE FIELDS SPECIFIED IN THE MENU (OPTIONAL).

                                     0317   619 ;

                                     0317   620 

                                     0317   621 10$:	STORE_FIELD	K_FIX,1,RAC	; SAVE RECORD ACCESS FIELD

                                     031E   622 

                                     031E   623 		ASSUME DAP$K_SEQ_ACC EQ 0

                                     031E   624 		ASSUME DAP$K_KEY_ACC EQ 1

                                     031E   625 		ASSUME DAP$K_RFA_ACC EQ 2

                                     031E   626 		ASSUME DAP$K_SEQ_FILE EQ 3

                                     031E   627 		ASSUME DAP$K_BLK_VBN EQ 4

                                     031E   628 		ASSUME DAP$K_BLK_FILE EQ 5

                                     031E   629 

            05            66     91  031E   630 	CMPB	(R6),#DAP$K_BLK_FILE	; CHECK FOR VALUE TOO HIGH

                          1A     1A  0321   631 	BGTRU	CTL_INVALID		; BRANCH ON ERROR

                                 05  0323   632 	RSB				;

                                     0324   633 20$:	STORE_FIELD	K_IMG,8,KEY	; SAVE KEY FIELD

                                 05  032B   634 	RSB				;

                                     032C   635 40$:	STORE_FIELD	K_EXT,4,ROP	; SAVE RECORD OPTIONS FIELD

   00000802 8F            66     D3  0333   636 	BITL	(R6),#DAP$K_ROP_I	; CHECK FOR INVALID BITS

                          01     12  033A   637 	BNEQ	CTL_INVALID		; BRANCH ON ERROR

                                 05  033C   638 	RSB				;

                                     033D   639 

                                     033D   640 ;

                                     033D   641 ; BRANCH HERE ON  EXCEPTION CONDITION.

                                     033D   642 ;

                                     033D   643 

                                     033D   644 CTL_INVALID:				;

                          0150   31  033D   645 	BRW	ERROR_INVALID		; BRANCH AID

NT0DECODE       DECODE DAP MESSAGE                               21-AUG-1978 22:20:24   VAX-11 MACRO X0.3-11               Page  15

016             CON_MSG - DECODE CONTINUE TRANSFER MESSAGE                                                                      (10)



                                     0340   647 	.SBTTL	CON_MSG - DECODE CONTINUE TRANSFER MESSAGE

                                     0340   648 

                                     0340   649 ;++

                                     0340   650 ; DECODE THE OPERAND FIELDS OF THE CONTINUE TRANSFER MESSAGE.

                                     0340   651 ;--

                                     0340   652 

                                     0340   653 CON_MSG:				; CONTROL POINT

                                     0340   654 

                                     0340   655 ;

                                     0340   656 ; PROCESS THE CONFUNC FIELD (REQUIRED).

                                     0340   657 ;

                                     0340   658 

            58       048A'CF     9E  0340   659 	MOVAB	W^ERROR_FORMAT,R8	; SPECIFY ROUTINE TO EXECUTE ON EOM

                                     0345   660 	STORE_FIELD	K_FIX,1,CONFUNC	; SAVE CONTINUE TRANSFER FUNCTION FIELD

                                     034C   661 

                                     034C   662 		ASSUME	DAP$K_RETRY EQ 1

                                     034C   663 		ASSUME 	DAP$K_SKIP_REC EQ 2

                                     034C   664 		ASSUME	DAP$K_ABORT EQ 3

                                     034C   665 

                                     034C   666 	$CASEB	SELECTOR=(R6),BASE=#DAP$K_RETRY,DISPL=<- ; CHECK VALUE

                                     034C   667 		EXIT_SUCCESS-		; RETRY FUNCTION

                                     034C   668 		EXIT_SUCCESS-		; SKIP RECORD

                                     034C   669 		EXIT_SUCCESS-		; ABORT TRANSFER

                                     034C   670 	>				; VALUE OUT-OF-RANGE

                          0137   31  0356   671 	BRW	ERROR_INVALID		; BRANCH AID

NT0DECODE       DECODE DAP MESSAGE                               21-AUG-1978 22:20:24   VAX-11 MACRO X0.3-11               Page  16

016             ACK_MSG - DECODE ACKNOWLEDGE MESSAGE                                                                            (11)



                                     0359   673 	.SBTTL	ACK_MSG - DECODE ACKNOWLEDGE MESSAGE

                                     0359   674 

                                     0359   675 ;++

                                     0359   676 ; THERE ARE NO OPERAND FIELDS IN THE ACKNOWLEDGE MESSAGE.

                                     0359   677 ;--

                                     0359   678 

                                     0359   679 ACK_MSG:				; CONTROL POINT

                          014D   31  0359   680 	BRW	EXIT_SUCCESS		; MESSAGE PARSED SUCCESSFULLY!

NT0DECODE       DECODE DAP MESSAGE                               21-AUG-1978 22:20:24   VAX-11 MACRO X0.3-11               Page  17

016             CMP_MSG - DECODE ACCESS COMPLETE MESSAGE                                                                        (12)



                                     035C   682 	.SBTTL	CMP_MSG - DECODE ACCESS COMPLETE MESSAGE

                                     035C   683 

                                     035C   684 ;++

                                     035C   685 ; DECODE THE OPERAND FIELDS OF THE ACCESS COMPLETE MESSAGE.

                                     035C   686 ;--

                                     035C   687 

                                     035C   688 CMP_MSG:				; CONTROL POINT

                                     035C   689 

                                     035C   690 ;

                                     035C   691 ; PROCESS THE CMPFUNC FIELD (REQUIRED).

                                     035C   692 ;

                                     035C   693 

            58       048A'CF     9E  035C   694 	MOVAB	W^ERROR_FORMAT,R8	; SPECIFY ROUTINE TO EXECUTE ON EOM

                                     0361   695 

                                     0361   696 		ASSUME DAP$K_CLOSE EQ 1

                                     0361   697 		ASSUME DAP$K_RESPONSE EQ 2

                                     0361   698 		ASSUME DAP$K_PURGE EQ 3

                                     0361   699 		ASSUME DAP$K_DISCON EQ 4

                                     0361   700 

                                     0361   701 	STORE_FIELD	K_FIX,1,CMPFUNC	; SAVE ACCESS COMPLETE FUNCTION FIELD

                          66     95  0368   702 	TSTB	(R6)			; CHECK FOR VALUE TOO LOW

                          20     13  036A   703 	BEQL	CMP_INVALID		; BRANCH ON ERROR

            04            66     91  036C   704 	CMPB	(R6),#DAP$K_DISCON	; CHECK FOR VALUE TOO HIGH

                          1B     1A  036F   705 	BGTRU	CMP_INVALID		; BRANCH ON ERROR

                                     0371   706 

                                     0371   707 ;

                                     0371   708 ; PROCESS THE FOP FIELD (OPTIONAL).

                                     0371   709 ;

                                     0371   710 

                     0084 C9     D4  0371   711 	CLRL	DAP$L_FOP2(R9)		; APPLY DEFAULT VALUE

            58       04A9'CF     9E  0375   712 	MOVAB	W^EXIT_SUCCESS,R8	; ALL DONE IF EOM

                                     037A   713 	STORE_FIELD	K_EXT,4,FOP2	; SAVE FILE OPTIONS FIELD

   01020024 8F            66     D3  0381   714 	BITL	(R6),#DAP$K_FOP_I	; CHECK FOR INVALID BITS

                          02     12  0388   715 	BNEQ	CMP_INVALID		; BRANCH ON ERROR

                          68     17  038A   716 	JMP	(R8)			; MESSAGE PARSED SUCCESSFULLY!

                                     038C   717 

                                     038C   718 ;

                                     038C   719 ; BRANCH HERE ON  EXCEPTION CONDITION.

                                     038C   720 ;

                                     038C   721 

                                     038C   722 CMP_INVALID:				;

                          0101   31  038C   723 	BRW	ERROR_INVALID		; BRANCH AID

NT0DECODE       DECODE DAP MESSAGE                               21-AUG-1978 22:20:24   VAX-11 MACRO X0.3-11               Page  18

016             DAT_MSG - DECODE DATA MESSAGE                                                                                   (13)



                                     038F   725 	.SBTTL	DAT_MSG - DECODE DATA MESSAGE

                                     038F   726 

                                     038F   727 ;++

                                     038F   728 ; DECODE THE OPERAND FIELDS OF THE DATA MESSAGE.

                                     038F   729 ;--

                                     038F   730 

                                     038F   731 DAT_MSG:				; CONTROL POINT

                                     038F   732 

                                     038F   733 ;

                                     038F   734 ; PROCESS THE RECORD NUMBER FIELD (REQUIRED).

                                     038F   735 ;

                                     038F   736 

            58       048A'CF     9E  038F   737 	MOVAB	W^ERROR_FORMAT,R8	; SPECIFY ROUTINE TO EXECUTE ON EOM

                                     0394   738 	STORE_FIELD	K_IMG,8,NUMBER	; SAVE RECORD NUMBER FIELD

                                     039B   739 

                                     039B   740 ;

                                     039B   741 ; PROCESS THE FILEDATA FIELD (OPTIONAL FOR ZERO LENGTH RECORD).

                                     039B   742 ;

                                     039B   743 

                     0090 C9     D4  039B   744 	CLRL	DAP$Q_FILEDATA(R9)	; APPLY DEFAULT VALUE TO DESCRIPTOR

       0094 C9       0090 C9     9E  039F   745 	MOVAB	DAP$Q_FILEDATA(R9),DAP$Q_FILEDATA+4(R9) ; OF FIELD

            58       04A9'CF     9E  03A6   746 	MOVAB	W^EXIT_SUCCESS,R8	; ALL DONE IF EOM

                                     03AB   747 	STORE_FIELD	K_ROM,8,FILEDATA,<M_DESC> ; SAVE FILE DATA FIELD

                          68     17  03B2   748 	JMP	(R8)			; MESSAGE PARSED SUCCESSFULLY!

NT0DECODE       DECODE DAP MESSAGE                               21-AUG-1978 22:20:24   VAX-11 MACRO X0.3-11               Page  19

016             STS_MSG - DECODE STATUS MESSAGE                                                                                 (14)



                                     03B4   750 	.SBTTL	STS_MSG - DECODE STATUS MESSAGE

                                     03B4   751 

                                     03B4   752 ;++

                                     03B4   753 ; DECODE THE OPERAND FIELDS OF THE STATUS MESSAGE.

                                     03B4   754 ;--

                                     03B4   755 

                                     03B4   756 STS_MSG:				; CONTROL POINT

                                     03B4   757 

                                     03B4   758 ;

                                     03B4   759 ; APPLY DEFAULT VALUES TO OPTIONAL FIELDS AS DEFINED IN THE CORPORATE

                                     03B4   760 ; DAP SPECIFICATION.

                                     03B4   761 ;

                                     03B4   762 

                     009C C9     7C  03B4   763 	CLRQ	DAP$Q_RFA(R9)

                     00A4 C9     D4  03B8   764 	CLRL	DAP$L_RECNUM(R9)

                     00A8 C9     D4  03BC   765 	CLRL	DAP$L_STV(R9)

                                     03C0   766 

                                     03C0   767 ;

                                     03C0   768 ; PROCESS THE STSCODE FIELD (REQUIRED).

                                     03C0   769 ;

                                     03C0   770 

            58       048A'CF     9E  03C0   771 	MOVAB	W^ERROR_FORMAT,R8	; SPECIFY ROUTINE TO EXECUTE ON EOM

                                     03C5   772 	STORE_FIELD	K_FIX,2,STSCODE	; SAVE STATUS CODE FIELD

                                     03CC   773 

                                     03CC   774 ;

                                     03CC   775 ; PROCESS THE RFA, RECNUM, AND STV FIELDS (OPTIONAL).

                                     03CC   776 ;

                                     03CC   777 

            58       04A9'CF     9E  03CC   778 	MOVAB	W^EXIT_SUCCESS,R8	; ALL DONE IF EOM

                                     03D1   779 	STORE_FIELD	K_IMG,8,RFA	; SAVE RECORD FILE ADDRESS FIELD

                                     03D8   780 	STORE_FIELD	K_IMG,4,RECNUM	; SAVE RECORD NUMBER FIELD

                                     03DF   781 	STORE_FIELD	K_IMG,4,STV	; SAVE SECONDARY STATUS FIELD

                          68     17  03E6   782 	JMP	(R8)			; MESSAGE PARSED SUCCESSFULLY!

NT0DECODE       DECODE DAP MESSAGE                               21-AUG-1978 22:20:24   VAX-11 MACRO X0.3-11               Page  20

016             STORE_FIELD - STORE NEXT FIELD ROUTINES                                                                         (15)



                                     03E8   784 	.SBTTL	STORE_FIELD - STORE NEXT FIELD ROUTINES

                                     03E8   785 

                                     03E8   786 ;++

                                     03E8   787 ; FUNCTIONAL DESCRIPTION:

                                     03E8   788 ;

                                     03E8   789 ;	STORE_FIELD INVOKED FROM THE STORE_FIELD MACRO RESULTS IN THE

                                     03E8   790 ;	EXECUTION OF ONE OF THE FOLLOWING ROUTINES:

                                     03E8   791 ;

                                     03E8   792 ;	STORE_EXT INTERPRETS THE NEXT FIELD OF THE DAP MESSAGE AS AN

                                     03E8   793 ;	EXTENSIBLE FIELD OF 1 TO 32 BYTES AND STORES THE DATA PORTION OF

                                     03E8   794 ;	THE FIELD IN THE DESIGNATED FIELD OF THE DAP CONTROL BLOCK.

                                     03E8   795 ;

                                     03E8   796 ;	STORE_FIX INTERPRETS THE NEXT FIELD OF THE DAP MESSAGE AS A

                                     03E8   797 ;	FIXED LENGTH FIELD OF 1 TO 255 BYTES AND STORES THE STRING IN THE

                                     03E8   798 ;	DESIGNATED FIELD OF THE DAP CONTROL BLOCK.

                                     03E8   799 ;

                                     03E8   800 ;	STORE_IMG INTERPRETS THE NEXT FIELD OF THE DAP MESSAGE AS AN

                                     03E8   801 ;	IMAGE FIELD OF 1 TO 256 BYTES AND STORES THE DATA PORTION OF THE

                                     03E8   802 ;	FIELD IN THE DESIGNATED FIELD OF THE DAP CONTROL BLOCK.

                                     03E8   803 ;

                                     03E8   804 ;	STORE_ROM INTERPRETS THE NEXT FIELD OF THE DAP MESSAGE AS A

                                     03E8   805 ;	BINARY FIELD OF 1 TO 65535 BYTES CONSISTING OF THE REST OF THE

                                     03E8   806 ;	MESSAGE AND STORES THE STRING IN THE DESIGNATED FIELD OF THE DAP

                                     03E8   807 ;	CONTROL BLOCK.

                                     03E8   808 ;

                                     03E8   809 ; CALLING SEQUENCE:

                                     03E8   810 ;

                                     03E8   811 ;	BSB/JSB	STORE_FIELD

                                     03E8   812 ;

                                     03E8   813 ; INPUT PARAMETERS:

                                     03E8   814 ;

                                     03E8   815 ;	R8	ADDRESS OF ROUTINE TO EXECUTE IF END-OF-MESSAGE ENCOUNTERED

                                     03E8   816 ;	R9	ADDRESS OF DAP CONTROL BLOCK

                                     03E8   817 ;	R10	ADDRESS OF LAST BYTE + 1 OF DAP MESSAGE BEING PARSED

                                     03E8   818 ;	R11	ADDRESS OF NEXT BYTE OF DAP MESSAGE BEING PARSED

                                     03E8   819 ;

                                     03E8   820 ;	IN-LINE CODED ARGUMENTS:

                                     03E8   821 ;

                                     03E8   822 ;	BYTE0	SIZE IN BYTES OF THE DESTINATION FIELD IN DAP CONTROL BLOCK

                                     03E8   823 ;	BYTE1	OFFSET OF DESTINATION FIELD IN DAP CONTROL BLOCK

                                     03E8   824 ;	BYTE2	DAP FIELD IDENTIFIER (USED TO BUILD DAP STATUS CODE ON ERROR)

                                     03E8   825 ;	BYTE3	FLAGS THAT DIRECT PROCESSING OF FIELD

                                     03E8   826 ;

                                     03E8   827 ; IMPLICIT INPUTS:

                                     03E8   828 ;

                                     03E8   829 ;	NONE

                                     03E8   830 ;

                                     03E8   831 ; OUTPUT PARAMETERS:

                                     03E8   832 ;

                                     03E8   833 ;	R0-R5	DESTROYED

                                     03E8   834 ;	R6	ADDRESS OF DESTINATION FIELD IN DAP CONTROL BLOCK

                                     03E8   835 ;	R7	FIELD ID VALUE

                                     03E8   836 ;	R8-R10	UNCHANGED

                                     03E8   837 ;	R11	UPDATED NEXT BYTE POINTER

                                     03E8   838 ;

                                     03E8   839 ; IMPLICIT OUTPUTS:

                                     03E8   840 ;

NT0DECODE       DECODE DAP MESSAGE                               21-AUG-1978 22:20:24   VAX-11 MACRO X0.3-11               Page  21

016             STORE_FIELD - STORE NEXT FIELD ROUTINES                                                                         (15)



                                     03E8   841 ;	SPECIFIED FIELD OF DAP CONTROL BLOCK IS UPDATED.

                                     03E8   842 ;

                                     03E8   843 ; COMPLETION CODES:

                                     03E8   844 ;

                                     03E8   845 ;	NONE

                                     03E8   846 ;

                                     03E8   847 ; SIDE EFFECTS:

                                     03E8   848 ;

                                     03E8   849 ;	IF END-OF-MESSAGE IS ENCOUNTERED, CONTROL IS GIVEN TO SPECIFIED

                                     03E8   850 ;	ACTION ROUTINE.

                                     03E8   851 ;

                                     03E8   852 ;	IF A PARSE ERROR IS DETECTED, CONTROL IS GIVEN TO AN APPROPRIATE

                                     03E8   853 ;	ERROR ROUTINE.

                                     03E8   854 ;

                                     03E8   855 ;--

                                     03E8   856 

                                     03E8   857 STORE_FIELD:				; CONTROL POINT

                                     03E8   858 

                                     03E8   859 ;

                                     03E8   860 ; OBTAIN THE IN-LINE CODED ARGUMENTS, CHECK FOR END-OF-MESSAGE, AND

                                     03E8   861 ; TRANSFER CONTROL TO APPROPRIATE ROUTINE.

                                     03E8   862 ;

                                     03E8   863 

            50            6E     D0  03E8   864 	MOVL	(SP),R0			; GET ADDRESS OF IN-LINE ARGUMENTS

            55            80     9A  03EB   865 	MOVZBL	(R0)+,R5		; GET DST FIELD SIZE

            56            80     9A  03EE   866 	MOVZBL	(R0)+,R6		; GET DST FIELD OFFSET

            56            59     C0  03F1   867 	ADDL2	R9,R6			; COMPUTE DST FIELD ADDRESS

            57            80     9A  03F4   868 	MOVZBL	(R0)+,R7		; GET DAP FIELD ID VALUE

            52            80     9A  03F7   869 	MOVZBL	(R0)+,R2		; GET FLAGS MASK VALUE

            6E            50     D0  03FA   870 	MOVL	R0,(SP)			; BUMP RETURN ADDRESS PAST ARGUMENT LIST

            5A            5B     D1  03FD   871 	CMPL	R11,R10			; IS THERE AT LEAST ONE BYTE LEFT?

                          11     18  0400   872 	BGEQ	10$			; BRANCH IF END-OF-MESSAGE

            02            00     EF  0402   873 	EXTZV	#0,#2,R2,R1		; GET INDEX OF ROUTINE

            51            52         0405       

                                     0407   874 	$CASEB	SELECTOR=R1,DISPL=<-	; FIELD FORMAT:

                                     0407   875 		STORE_EXT-		; EXTENSIBLE

                                     0407   876 		STORE_FIX-		; FIXED LENGTH

                                     0407   877 		STORE_IMG-		; IMAGE

                                     0407   878 		STORE_ROM-		; REST-OF-MESSAGE

                                     0407   879 	>				;

                          68     17  0413   880 10$:	JMP	(R8)			; JUMP TO DESIGNATED EOM ROUTINE

NT0DECODE       DECODE DAP MESSAGE                               21-AUG-1978 22:20:24   VAX-11 MACRO X0.3-11               Page  22

016             STORE_EXT - STORE EXTENSIBLE FIELD                                                                              (16)



                                     0415   882 	.SBTTL	STORE_EXT - STORE EXTENSIBLE FIELD

                                     0415   883 

                                     0415   884 ;++

                                     0415   885 ; THIS ROUTINE INTERPRETS THE NEXT FIELD OF THE DAP MESSAGE AS AN

                                     0415   886 ; EXTENSIBLE FIELD OF 1 TO 32 BYTES WHERE BIT7 OF EACH BYTE DETERMINES

                                     0415   887 ; WHETHER TO CONTINUE (1) THE FIELD TO THE NEXT BYTE OR TO TERMINATE (0)

                                     0415   888 ; THE FIELD. FIRST, THE FIELD IS COMPRESSED IN PLACE (I.E., BIT7 OF EACH

                                     0415   889 ; BYTE IS DISCARDED AND THE REMAINING BITS ARE SQUEEZED TOGETHER). THEN,

                                     0415   890 ; THE RESULTANT STRING IS COPIED TO THE SPECIFIED FIELD IN THE DAP CONTROL

                                     0415   891 ; BLOCK.

                                     0415   892 ;--

                                     0415   893 

                                     0415   894 STORE_EXT:				; CONTROL POINT

            54            5B     D0  0415   895 	MOVL	R11,R4			; COPY SRC FIELD ADDRESS

                          50     D4  0418   896 	CLRL	R0			; INITIALIZE BIT POSITION INDEX

                          0A     11  041A   897 	BRB	20$			; BRANCH TO END OF LOOP BECAUSE

                                     041C   898 					;  FIRST 7 BITS ARE IN PROPER POSITION

            5A            5B     D1  041C   899 10$:	CMPL	R11,R10			; ERROR IF END-OF-MESSAGE IS REACHED

                          69     18  041F   900 	BGEQ	ERROR_FORMAT		;  BEFORE END-OF-FIELD IS REACHED

            50            6B     F0  0421   901 	INSV	(R11),R0,#7,(R4)	; PERFORM IN PLACE COMPACTION

            64            07         0424       

            50            07     C0  0426   902 20$:	ADDL2	#7,R0			; UPDATE BIT POSITION INDEX

            8B            07     E0  0429   903 	BBS	#7,(R11)+,10$		; LOOP IF FIELD IS CONTINUED TO NEXT BYTE

                          EF         042C       

            5B            54     C3  042D   904 	SUBL3	R4,R11,R3		; COMPUTE SIZE OF SRC FIELD IN BYTES

                          53         0430       

            20            53     D1  0431   905 	CMPL	R3,#32			; 'INSV' SIZE CAN NOT BE GTRU 32

                          54     14  0434   906 	BGTR	ERROR_FORMAT		; BRANCH ON ERROR

            50            00     F0  0436   907 	INSV	#0,R0,R3,(R4)		; ZERO FILL REST OF SRC FIELD

            64            53         0439       

                                     043B   908 					;  (1 BIT FOR EACH BYTE COMPRESSED)

                          31     11  043B   909 	BRB	MOVE_FIELD		; COPY STRING TO DST FIELD

NT0DECODE       DECODE DAP MESSAGE                               21-AUG-1978 22:20:24   VAX-11 MACRO X0.3-11               Page  23

016             STORE_FIX - STORE FIXED LENGTH FIELD                                                                            (17)



                                     043D   911 	.SBTTL	STORE_FIX - STORE FIXED LENGTH FIELD

                                     043D   912 

                                     043D   913 ;++

                                     043D   914 ; THIS ROUTINE INTERPRETS THE NEXT FIELD OF THE DAP MESSAGE AS A FIXED

                                     043D   915 ; LENGTH FIELD OF 1 TO 255 BYTES AND COPIES THE STRING TO THE SPECIFIED

                                     043D   916 ; FIELD IN THE DAP CONTROL BLOCK.

                                     043D   917 ;--

                                     043D   918 

                                     043D   919 STORE_FIX:				; CONTROL POINT

            01            55     D1  043D   920 	CMPL	R5,#1			; BRANCH IF FIELD IS LONGER THAN

                          04     14  0440   921 	BGTR	10$			;  ONE BYTE

            66            8B     90  0442   922 	MOVB	(R11)+,(R6)		; STORE FIELD IN DAP CONTROL BLOCK

                                 05  0445   923 	RSB				; EXIT

            54            5B     D0  0446   924 10$:	MOVL	R11,R4			; COPY SRC FIELD ADDRESS

            55            5A     F1  0449   925 	ACBL	R10,R5,R11,20$		; BRANCH IF <R5+R11> LEQ <R10>

            0002          5B         044C       

                          39     11  044F   926 	BRB	ERROR_FORMAT		; ERROR IF NOT ENOUGH BYTES IN

                                     0451   927 					;  MESSAGE TO CONTAIN FIELD

            64            55     28  0451   928 20$:	MOVC3	R5,(R4),(R6)		; STORE FIELD IN DAP CONTROL BLOCK

                          66         0454       

                                 05  0455   929 	RSB				; EXIT

NT0DECODE       DECODE DAP MESSAGE                               21-AUG-1978 22:20:24   VAX-11 MACRO X0.3-11               Page  24

016             STORE_IMG - STORE IMAGE FIELD                                                                                   (18)



                                     0456   931 	.SBTTL	STORE_IMG - STORE IMAGE FIELD

                                     0456   932 

                                     0456   933 ;++

                                     0456   934 ; THIS ROUTINE INTERPRETS THE NEXT FIELD OF THE DAP MESSAGE AS AN IMAGE

                                     0456   935 ; FIELD OF 1 TO 256 BYTES WHERE THE FIRST BYTE CONTAINS A COUNT OF THE

                                     0456   936 ; NUMBER OF DATA BYTES TO FOLLOW. THE DATA PORTION OF THE FIELD IS COPIED

                                     0456   937 ; TO THE SPECIFIED FIELD OF THE DAP CONTROL BLOCK.

                                     0456   938 ;--

                                     0456   939 

                                     0456   940 STORE_IMG:				; CONTROL POINT

            53            8B     9A  0456   941 	MOVZBL	(R11)+,R3		; GET BYTE COUNT OF SRC FIELD

            54            5B     D0  0459   942 	MOVL	R11,R4			; COPY ADDRESS OF DATA STRING

            53            5A     F1  045C   943 	ACBL	R10,R3,R11,MOVE_FIELD	; OK IF <R3+R11> LEQ <R10>

            000C          5B         045F       

                          26     11  0462   944 	BRB	ERROR_FORMAT		; ERROR IF NOT ENOUGH BYTES IN

                                     0464   945 					;  MESSAGE TO CONTAIN FIELD

NT0DECODE       DECODE DAP MESSAGE                               21-AUG-1978 22:20:24   VAX-11 MACRO X0.3-11               Page  25

016             STORE_ROM - STORE REST OF MESSAGE                                                                               (19)



                                     0464   947 	.SBTTL	STORE_ROM - STORE REST OF MESSAGE

                                     0464   948 

                                     0464   949 ;++

                                     0464   950 ; THIS ROUTINE INTERPRETS THE NEXT FIELD OF THE DAP MESSAGE AS A BINARY

                                     0464   951 ; FIELD OF 1 TO 65535 BYTES CONSISTING OF THE REST OF THE MESSAGE. THE

                                     0464   952 ; STRING IS COPIED TO THE SPECIFIED FIELD OF THE DAP CONTROL BLOCK.

                                     0464   953 ;--

                                     0464   954 

                                     0464   955 STORE_ROM:				; CONTROL POINT

            5A            5B     C3  0464   956 	SUBL3	R11,R10,R3		; COMPUTE SRC FIELD SIZE

                          53         0467       

            54            5B     D0  0468   957 	MOVL	R11,R4			; COPY SRC FIELD ADDRESS

            5B            5A     D0  046B   958 	MOVL	R10,R11			; ADVANCE NEXT BYTE POINTER TO EOM

                                     046E   959 

                                     046E   960 ;

                                     046E   961 ; <R3,R4> CONTAINS DESCRIPTOR OF SRC FIELD, AND

                                     046E   962 ; <R5,R6> CONTAINS DESCRIPTOR OF DST FIELD.

                                     046E   963 ;

                                     046E   964 

                                     046E   965 MOVE_FIELD:				; COPY SRC FIELD TO DST FIELD WITH

                                     046E   966 					;  ZERO FILL

            52            04     E0  046E   967 	BBS	#V_DESC,R2,DESCRIPTOR	; BRANCH IF ONLY DESCRIPTOR DESIRED

                          14         0471       

            64            53     2C  0472   968 	MOVC5	R3,(R4),#0,R5,(R6)	; MOVE FIELD TO DAP CONTROL BLOCK

            55            00         0475       

                          66         0477       

                          0B     15  0478   969 	BLEQ	20$			; DONE IF ALL SRC BYTES ARE COPIED

                                     047A   970 					;  (I.E., SRC SIZE LEQ DST SIZE)

            52            05     E0  047A   971 	BBS	#V_TRUNC,R2,20$		; DONE IF EXTRA BYTES ARE TO BE

                          07         047D       

                                     047E   972 					;  TRUNCATED; NOTE:

                                     047E   973 					;  R0 = # UNMOVED BYTES

                                     047E   974 					;  R1 = ADDRESS OF UNMOVED STRING

                          81     95  047E   975 10$:	TSTB	(R1)+			; ERROR IF ANY UNMOVED BYTES ARE

                          0E     12  0480   976 	BNEQ	ERROR_INVALID		;  NON-ZERO

            F9            50     F5  0482   977 	SOBGTR	R0,10$			; CONTINUE UNTIL ALL EXTRA BYTES

                                     0485   978 					;  ARE CHECKED

                                 05  0485   979 20$:	RSB				; EXIT

                                     0486   980 DESCRIPTOR:				; DST FIELD IS A DESCRIPTOR

            66            53     7D  0486   981 	MOVQ	R3,(R6)			; STORE ONLY QUADWORD DESCRIPTOR

                                 05  0489   982 	RSB				;  OF SRC FIELD AND EXIT

NT0DECODE       DECODE DAP MESSAGE                               21-AUG-1978 22:20:24   VAX-11 MACRO X0.3-11               Page  26

016             ERROR PROCESSSING AND EXIT ROUTINES                                                                             (20)



                                     048A   984 	.SBTTL	ERROR PROCESSSING AND EXIT ROUTINES

                                     048A   985 

                                     048A   986 ;

                                     048A   987 ; ERROR PROCESSING

                                     048A   988 ;

                                     048A   989 

                                     048A   990 ERROR_FORMAT:				; FORMAT OF MESSAGE IN INCORRECT

         0B A9            08     90  048A   991 	MOVB	#DAP$_FORMAT,DAP$B_MAC_CODE(R9)

                          10     11  048E   992 	BRB	ERROR_COMMON		; JOIN COMMON CODE

                                     0490   993 ERROR_INVALID:				; FIELD OF MESSAGE HAS INVALID VALUE

         0B A9            09     90  0490   994 	MOVB	#DAP$_INVALID,DAP$B_MAC_CODE(R9)

                          0A     11  0494   995 	BRB	ERROR_COMMON		; JOIN COMMON CODE

                                     0496   996 ERROR_SYNC:				; MESSAGE RECEIVED IS OUT-OF-SEQUENCE

         0B A9            0A     90  0496   997 	MOVB	#DAP$_MSG_SYNC,DAP$B_MAC_CODE(R9)

                          04     11  049A   998 	BRB	ERROR_COMMON		; JOIN COMMON CODE

                                     049C   999 ERROR_UNSUPPORT:			; FIELD OF MESSAGE HAS UNSUPPORTED VALUE

         0B A9            02     90  049C  1000 	MOVB	#DAP$_UNSUPPORT,DAP$B_MAC_CODE(R9)

                                     04A0  1001 ERROR_COMMON:				;

         09 A9            57     90  04A0  1002 	MOVB	R7,DAP$B_FIELD_ID(R9)	; STORE ID OF FIELD IN ERROR

                       08 A9     94  04A4  1003 	CLRB	DAP$L_DCODE_STS(R9)	; INDICATE FAILURE

                          11     11  04A7  1004 	BRB	EXIT_COMMON		; JOIN COMMON CODE

                                     04A9  1005 

                                     04A9  1006 ;

                                     04A9  1007 ; MESSAGE PARSE HAS BEEN SUCCESSFUL SO FAR, ...

                                     04A9  1008 ; MAKE FINAL VALIDITY CHECKS AND UPDATE MESSAGE DESCRIPTORS.

                                     04A9  1009 ;

                                     04A9  1010 

                                     04A9  1011 EXIT_SUCCESS:				; ENTER HERE ON SUCCESSFUL PARSE

            57            00     9A  04A9  1012 	MOVZBL	#DAP$_UNKNOWN,R7	; SET FIELD ID TO 'UNKNOWN'

            5A            5B     D1  04AC  1013 	CMPL	R11,R10			; BRANCH IF THERE ARE ANY UNPARSED

                          D9     12  04AF  1014 	BNEQ	ERROR_FORMAT		;  BYTES LEFT IN DAP MESSAGE

            50         0A A9     9A  04B1  1015 	MOVZBL	DAP$B_MSG_TYPE(R9),R0	; GET DAP MESSAGE TYPE

                          50     E1  04B5  1016 	BBC	R0,DAP$L_MSG_MASK(R9),-	; BRANCH IF THIS IS NOT A VALID

            DC         0C A9         04B7  1017 		ERROR_SYNC		;  MESSAGE TO RECEIVE

                                     04BA  1018 EXIT_COMMON:				; NOTE: ADDRESS OF MESSAGE JUST PARSED

                                     04BA  1019 					;  IS CORRECT IN DESCRIPTOR

                                 C3  04BA  1020 	SUBL3	DAP$Q_MSG_BUF2+4(R9),-	; COMPUTE SIZE OF MESSAGE JUST PARSED

            5A         1C A9         04BB  1021 		R10,DAP$Q_MSG_BUF2(R9)	;  AND STORE IT IN DESCRIPTOR

                       18 A9         04BE       

         14 A9            5A     D0  04C0  1022 	MOVL	R10,DAP$Q_MSG_BUF1+4(R9); STORE ADDRESS OF NEXT (BLOCKED)

                                     04C4  1023 					;  MESSAGE IN BUFFER TO PARSE

                                 C2  04C4  1024 	SUBL2	DAP$Q_MSG_BUF2(R9),-	; STORE SIZE OF NEXT (BLOCKED)

         10 A9         18 A9         04C5  1025 		DAP$Q_MSG_BUF1(R9)	;  MESSAGE IN BUFFER TO PARSE

            50         08 A9     D0  04C9  1026 	MOVL	DAP$L_DCODE_STS(R9),R0	; GET RETURN STATUS CODE

                                 04  04CD  1027 	RET				; RETURN TO CALLER

                                     04CE  1028 	.END

NT0DECODE       DECODE DAP MESSAGE                               21-AUG-1978 22:20:24   VAX-11 MACRO X0.3-11               Page  27

SYMBOL TABLE                                                                                                                    (20)



$$.PSECT_EP    = 00000000            DAP$K_BLK_FILE = 00000005            DAP$K_VAXVMS   = 00000007            

$$COUNT        = 00000004            DAP$K_BLK_VBN  = 00000004            DAP$K_VERNUM_V = 00000004            

$$RMSTEST      = 0000001A            DAP$K_BLN        000000C0            DAP$K_VFC      = 00000003            

$$RMS_PBUGCHK  = 00000010            DAP$K_BLS_D    = 00000200            DAP$L_ALQ        00000044            

$$RMS_TBUGCHK  = 00000008            DAP$K_BUFSIZ_V = 00001100            DAP$L_ATTMENU    00000038            

$$RMS_UMODE    = 00000004            DAP$K_CLOSE    = 00000001            DAP$L_DCODE_STS  00000008            

ACC_INVALID      000002A4 R     02   DAP$K_CMP_MSG  = 00000007            DAP$L_DEV        0000005C            

ACC_MSG          00000241 R     02   DAP$K_CNF_MSG  = 00000001            DAP$L_FOP        00000058            

ACK_MSG          00000359 R     02   DAP$K_CONNECT  = 00000002            DAP$L_FOP2       00000084            

ATT_INVALID      0000023B R     02   DAP$K_CON_MSG  = 00000005            DAP$L_MRN        0000004C            

ATT_LOOP         0000015A R     02   DAP$K_CREATE   = 00000002            DAP$L_MSG_MASK   0000000C            

ATT_MSG          00000107 R     02   DAP$K_CTLMENU_I= 00000054            DAP$L_OPERATOR   00000020            

ATT_UNSUPPORT    0000023E R     02   DAP$K_CTL_MSG  = 00000004            DAP$L_RECNUM     000000A4            

BIT...         = 00000000            DAP$K_DATATYP_I= 00000084            DAP$L_ROP        00000078            

CMP_INVALID      0000038C R     02   DAP$K_DAT_MSG  = 00000008            DAP$L_STV        000000A8            

CMP_MSG          0000035C R     02   DAP$K_DELETE   = 00000005            DAP$M_ALQ      = 00000040            

CNF_MSG          0000009F R     02   DAP$K_DEV_I    = 04000040            DAP$M_BKS      = 00000080            

CON_MSG          00000340 R     02   DAP$K_DISCON   = 00000004            DAP$M_BLS      = 00000010            

CTL_INVALID      0000033D R     02   DAP$K_ECONUM_V = 00000002            DAP$M_CBT      = 00800000            

CTL_LOOP         000002FC R     02   DAP$K_ERASE    = 00000004            DAP$M_CIF      = 00010000            

CTL_MSG          000002A7 R     02   DAP$K_EXECUTE  = 00000008            DAP$M_CTG      = 00000080            

DAP$B_ACCFUNC    00000060            DAP$K_FAC_I    = 00000040            DAP$M_DATATYPE = 00000001            

DAP$B_ACCOPT     00000061            DAP$K_FIND     = 0000000E            DAP$M_DEQ      = 00000800            

DAP$B_BKS        00000048            DAP$K_FIX      = 00000001            DAP$M_DEV      = 00004000            

DAP$B_CMPFUNC    00000080            DAP$K_FLAGS_I  = 00000004            DAP$M_DLK      = 00000010            

DAP$B_CONFUNC    0000007C            DAP$K_FOP_I    = 01020024            DAP$M_DLT      = 00400000            

DAP$B_CTLFUNC    0000006C            DAP$K_GET_READ = 00000001            DAP$M_DMO      = 00002000            

DAP$B_CTLMENU    0000006D            DAP$K_IDX      = 00000020            DAP$M_EMBEDDED = 00000010            

DAP$B_DATATYPE   0000003C            DAP$K_KEY_ACC  = 00000001            DAP$M_FID      = 00001000            

DAP$B_ECONUM     00000029            DAP$K_LSA      = 00000005            DAP$M_FOP      = 00001000            

DAP$B_FAC        00000062            DAP$K_OPEN     = 00000001            DAP$M_FSZ      = 00000100            

DAP$B_FIELD_ID   00000009            DAP$K_PURGE    = 00000003            DAP$M_GET      = 00000002            

DAP$B_FILESYS    00000027            DAP$K_PUT_WRITE= 00000004            DAP$M_IMAGE    = 00000002            

DAP$B_FLAGS      00000021            DAP$K_RAT_I    = 00000020            DAP$M_KEY      = 00000002            

DAP$B_FSZ        00000049            DAP$K_REL      = 00000010            DAP$M_MRN      = 00000200            

DAP$B_LENGTH     00000023            DAP$K_RESPONSE = 00000002            DAP$M_MRS      = 00000020            

DAP$B_MAC_CODE   0000000B            DAP$K_RETRY    = 00000001            DAP$M_MXV      = 00080000            

DAP$B_MSG_TYPE   0000000A            DAP$K_REWIND   = 00000006            DAP$M_NEF      = 00000200            

DAP$B_ORG        0000003D            DAP$K_RFA_ACC  = 00000002            DAP$M_NIL      = 00000040            

DAP$B_OSTYPE     00000026            DAP$K_RMS32    = 00000003            DAP$M_NONFATAL = 00000001            

DAP$B_RAC        0000006E            DAP$K_ROP_I    = 00000802            DAP$M_ORG      = 00000002            

DAP$B_RAT        0000003F            DAP$K_SEQ      = 00000000            DAP$M_POS      = 00000008            

DAP$B_RFM        0000003E            DAP$K_SEQ_ACC  = 00000000            DAP$M_RAC      = 00000001            

DAP$B_SHR        00000063            DAP$K_SEQ_FILE = 00000003            DAP$M_RAT      = 00000008            

DAP$B_SOFTVER    0000002B            DAP$K_SHR_I    = 00000090            DAP$M_RCK      = 00008000            

DAP$B_STREAMID   00000022            DAP$K_SKIP_REC = 00000002            DAP$M_RFM      = 00000004            

DAP$B_TYPE       00000020            DAP$K_SOFTVER_V= 00000001            DAP$M_ROP      = 00000008            

DAP$B_USRNUM     0000002A            DAP$K_SPACE    = 0000000B            DAP$M_RUNSYS   = 00000400            

DAP$B_USRSOFT    0000002C            DAP$K_STM      = 00000004            DAP$M_RWC      = 00000002            

DAP$B_VERNUM     00000028            DAP$K_STS_MSG  = 00000009            DAP$M_RWO      = 00000001            

DAP$C_BLN        000000C0            DAP$K_SUBMIT   = 00000007            DAP$M_SCF      = 00200000            

DAP$K_ABORT    = 00000003            DAP$K_SYSCAP_V = E00660E7            DAP$M_SPL      = 00100000            

DAP$K_ACCOPT_I = 00000008            DAP$K_UDF      = 00000000            DAP$M_SQO      = 00040000            

DAP$K_ACC_MSG  = 00000003            DAP$K_UPDATE   = 00000003            DAP$M_SUP      = 00000100            

DAP$K_ACK_MSG  = 00000006            DAP$K_USRNUM_V = 00000000            DAP$M_TMD      = 00000800            

DAP$K_ATTMENU_I= 0001A000            DAP$K_USRSOFT_V= 00000000            DAP$M_TMP      = 00000400            

DAP$K_ATT_MSG  = 00000002            DAP$K_VAR      = 00000002            DAP$M_WCK      = 00004000            

NT0DECODE       DECODE DAP MESSAGE                               21-AUG-1978 22:20:24   VAX-11 MACRO X0.3-11               Page  28

SYMBOL TABLE                                                                                                                    (20)



DAP$Q_DCODE_FLG  00000000            DAP$V_DLT      = 00000016            DAP$V_TRN      = 00000004            

DAP$Q_FILEDATA   00000090            DAP$V_DMO      = 0000000D            DAP$V_UPD      = 00000003            

DAP$Q_FILESPEC   00000064            DAP$V_EMBEDDED = 00000004            DAP$V_VAXVMS   = 00000021            

DAP$Q_KEY        00000070            DAP$V_EOF      = 00000000            DAP$V_WCK      = 0000000E            

DAP$Q_MSG_BUF1   00000010            DAP$V_EXEC     = 00000004            DAP$W_BLS        00000040            

DAP$Q_MSG_BUF2   00000018            DAP$V_FID      = 0000000C            DAP$W_BUFSIZ     00000024            

DAP$Q_NUMBER     00000088            DAP$V_FILALL   = 00000000            DAP$W_DEQ        0000004A            

DAP$Q_RFA        0000009C            DAP$V_FOP      = 0000000C            DAP$W_MRS        00000042            

DAP$Q_RUNSYS     00000050            DAP$V_FOPDLT   = 0000001F            DAP$W_STSCODE    00000098            

DAP$Q_SYSCAP     00000030            DAP$V_FOPSCF   = 0000001E            DAP$_ACCFUNC   = 00000010            

DAP$Q_VERSION    00000028            DAP$V_FOPSPL   = 0000001D            DAP$_ACCOPT    = 00000011            

DAP$S_TMP1..   = 0000000A            DAP$V_FSZ      = 00000008            DAP$_ALQ       = 00000017            

DAP$S_TMP2..   = 00000015            DAP$V_FTN      = 00000000            DAP$_ATTMENU   = 00000010            

DAP$S_TMP3..   = 00000002            DAP$V_GET      = 00000001            DAP$_BKS       = 00000018            

DAP$S_TMP4..   = 00000008            DAP$V_IMAGE    = 00000001            DAP$_BLS       = 00000015            

DAP$V_AFTER_V41= 00000020            DAP$V_KEY      = 00000001            DAP$_BUFSIZ    = 00000010            

DAP$V_ALQ      = 00000006            DAP$V_LENGTH   = 00000001            DAP$_CMPFUNC   = 00000010            

DAP$V_APPEND   = 0000000D            DAP$V_MRN      = 00000009            DAP$_CONFUNC   = 00000010            

DAP$V_ASCII    = 00000000            DAP$V_MRS      = 00000005            DAP$_CTLFUNC   = 00000010            

DAP$V_BIO      = 00000005            DAP$V_MSGBLK   = 00000012            DAP$_CTLMENU   = 00000011            

DAP$V_BKS      = 00000007            DAP$V_MXV      = 00000013            DAP$_DATATYPE  = 00000011            

DAP$V_BLK      = 00000003            DAP$V_NEF      = 00000009            DAP$_DEQ       = 0000001C            

DAP$V_BLS      = 00000004            DAP$V_NIL      = 00000006            DAP$_DEV       = 0000001F            

DAP$V_CBT      = 00000017            DAP$V_NONFATAL = 00000000            DAP$_ECONUM    = 00000014            

DAP$V_CIF      = 00000010            DAP$V_ORG      = 00000001            DAP$_FAC       = 00000013            

DAP$V_CR       = 00000001            DAP$V_POS      = 00000003            DAP$_FILEDATA  = 00000011            

DAP$V_CTG      = 00000007            DAP$V_PRIV     = 00000005            DAP$_FILESPEC  = 00000012            

DAP$V_DATATYPE = 00000000            DAP$V_PRN      = 00000002            DAP$_FILESYS   = 00000012            

DAP$V_DEL      = 00000002            DAP$V_PUT      = 00000000            DAP$_FILE_CLOS = 00000007            

DAP$V_DEQ      = 0000000B            DAP$V_RAC      = 00000000            DAP$_FILE_OPEN = 00000004            

DAP$V_DEV      = 0000000E            DAP$V_RANREC   = 00000006            DAP$_FILE_XFER = 00000005            

DAP$V_DEVALL   = 0000000C            DAP$V_RANVBN   = 00000007            DAP$_FLAGS     = 00000008            

DAP$V_DEVAVL   = 00000010            DAP$V_RAT      = 00000003            DAP$_FOP       = 0000001D            

DAP$V_DEVCCL   = 00000001            DAP$V_RCK      = 0000000F            DAP$_FOP2      = 00000011            

DAP$V_DEVDIR   = 00000003            DAP$V_RELORG   = 00000002            DAP$_FORMAT    = 00000008            

DAP$V_DEVDMT   = 0000000B            DAP$V_RFM      = 00000002            DAP$_FSZ       = 00000019            

DAP$V_DEVELG   = 00000011            DAP$V_ROP      = 00000003            DAP$_INVALID   = 00000009            

DAP$V_DEVFOD   = 00000007            DAP$V_RUNSYS   = 0000000A            DAP$_KEY       = 00000013            

DAP$V_DEVFOR   = 00000017            DAP$V_RWC      = 00000001            DAP$_LENGTH    = 0000000A            

DAP$V_DEVGEN   = 00000019            DAP$V_RWO      = 00000000            DAP$_MRN       = 0000001A            

DAP$V_DEVIDV   = 0000000D            DAP$V_SCF      = 00000015            DAP$_MRS       = 00000016            

DAP$V_DEVMBX   = 00000012            DAP$V_SEQORG   = 00000001            DAP$_MSG_SYNC  = 0000000A            

DAP$V_DEVMNT   = 0000000A            DAP$V_SEQREC   = 00000005            DAP$_NUMBER    = 00000010            

DAP$V_DEVNET   = 00000018            DAP$V_SPL      = 00000014            DAP$_ORG       = 00000012            

DAP$V_DEVODV   = 0000000E            DAP$V_SQO      = 00000012            DAP$_OSTYPE    = 00000011            

DAP$V_DEVRCK   = 00000015            DAP$V_STREAMID = 00000000            DAP$_PENDING   = 00000000            

DAP$V_DEVREC   = 00000000            DAP$V_STSRTN   = 00000011            DAP$_RAC       = 00000012            

DAP$V_DEVRND   = 00000014            DAP$V_STS_RETRV= 00000002            DAP$_RAT       = 00000014            

DAP$V_DEVRTM   = 00000013            DAP$V_STS_STORE= 00000001            DAP$_RECNUM    = 00000013            

DAP$V_DEVSDI   = 00000004            DAP$V_SUBMIT   = 0000000E            DAP$_RFA       = 00000012            

DAP$V_DEVSHR   = 00000008            DAP$V_SUP      = 00000008            DAP$_RFM       = 00000013            

DAP$V_DEVSPL   = 00000009            DAP$V_TMD      = 0000000B            DAP$_ROP       = 00000015            

DAP$V_DEVSQD   = 00000005            DAP$V_TMP      = 0000000A            DAP$_RUNSYS    = 0000001B            

DAP$V_DEVSWL   = 0000000F            DAP$V_TMP1..   = 00000001            DAP$_SHR       = 00000014            

DAP$V_DEVTRM   = 00000002            DAP$V_TMP2..   = 0000000B            DAP$_SOFTVER   = 00000016            

DAP$V_DEVWCK   = 00000016            DAP$V_TMP3..   = 00000006            DAP$_STREAMID  = 00000009            

DAP$V_DLK      = 00000004            DAP$V_TMP4..   = 00000018            DAP$_STSCODE   = 00000010            

NT0DECODE       DECODE DAP MESSAGE                               21-AUG-1978 22:20:24   VAX-11 MACRO X0.3-11               Page  29

SYMBOL TABLE                                                                                                                    (20)



DAP$_STV       = 00000014            

DAP$_SUCCESS   = 00000001            

DAP$_SYSCAP    = 00000018            

DAP$_TYPE      = 00000008            

DAP$_UNKNOWN   = 00000000            

DAP$_UNSUPPORT = 00000002            

DAP$_USRNUM    = 00000015            

DAP$_USRSOFT   = 00000017            

DAP$_VERNUM    = 00000013            

DAT_MSG          0000038F R     02   

DESCRIPTOR       00000486 R     02   

ERROR_COMMON     000004A0 R     02   

ERROR_FORMAT     0000048A R     02   

ERROR_INVALID    00000490 R     02   

ERROR_SYNC       00000496 R     02   

ERROR_UNSUPPORT  0000049C R     02   

EXIT_COMMON      000004BA R     02   

EXIT_SUCCESS     000004A9 R     02   

GBL...         = 00000000            

HDR_FORMAT       0000008D R     02   

HDR_INVALID      00000087 R     02   

HDR_UNSUPPORT    0000008A R     02   

K_EXT          = 00000000            

K_FIX          = 00000001            

K_IMG          = 00000002            

K_ROM          = 00000003            

MOVE_FIELD       0000046E R     02   

M_DESC         = 00000010            

M_TRUNC        = 00000020            

NT$DECODE_MSG    00000000 RG    02   

STORE_EXT        00000415 R     02   

STORE_FIELD      000003E8 R     02   

STORE_FIX        0000043D R     02   

STORE_IMG        00000456 R     02   

STORE_ROM        00000464 R     02   

STS_MSG          000003B4 R     02   

TMP1..         = 000003E3 R     02   

TMP2..         = 000003E4 R     02   

V_DESC         = 00000004            

V_TRUNC        = 00000005            





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  

NF$NETWORK       000004CE      02     NOPIC   USR   CON   REL   GBL NOSHR   EXE   RD  NOWRT BYTE  

$ABS$            000000C0      03     NOPIC   USR   CON   ABS   LCL NOSHR   EXE   RD    WRT BYTE  





THERE WERE NO ERRORS OR WARNINGS.

8184. BYTES LEFT IN FREE MEMORY POOL.

8436. BYTES OF RECLAIMED MEMORY.

OBJ$:NT0DECODE,LIS$:NT0DECODE/-SP=LIB$:N/ML,R/ML,SRC$:NT0DECODE

43 MLB DIR RDS - 787 GETS TO DEFINE 17 MACROS. 69 INTER. FILE WRITES. 

