DESCRVAL        - PARSE TABLE DESCRIPTOR VALUE MANIPULATION ROU  22-AUG-1978 01:13:49   VAX-11 MACRO X0.3-11               Page   0

TABLE OF CONTENTS   



   (1)      33  COMPRESS QUOTED STRING

   (1)      71  GET RESULT PARSE DESCRIPTOR VALUES

DESCRVAL        - PARSE TABLE DESCRIPTOR VALUE MANIPULATION ROU  22-AUG-1978 01:13:49   VAX-11 MACRO X0.3-11               Page   1

01                                                                                                                               (1)



                                     0000     1 	.TITLE	DESCRVAL - PARSE TABLE DESCRIPTOR VALUE MANIPULATION ROUTINES

                                     0000     2 	.IDENT	/01/

                                     0000     3  

                                     0000     4 ;

                                     0000     5 ; COPYRIGHT (C) 1977

                                     0000     6 ; DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.

                                     0000     7 ;

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

                                     0000     9 ; SINGLE COMPUTER SYSTEM AND MAY BE  COPIED ONLY WITH  THE INCLU-

                                     0000    10 ; SION OF  THE  ABOVE  COPYRIGHT NOTICE.  THIS SOFTWARE,  OR  ANY

                                     0000    11 ; OTHER COPIES THEREOF, MAY NOT BE  PROVIDED  OR  OTHERWISE  MADE

                                     0000    12 ; AVAILABLE TO ANY OTHER PERSON EXCEPT  FOR  USE  ON  SUCH SYSTEM

                                     0000    13 ; AND TO  ONE WHO AGREES  TO  THESE LICENSE  TERMS.  TITLE TO AND

                                     0000    14 ; OWNERSHIP OF THE SOFTWARE SHALL AT ALL TIMES REMAIN IN DEC.

                                     0000    15 ;

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

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

                                     0000    18 ; EQUIPMENT CORPORATION.

                                     0000    19 ;

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

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

                                     0000    22 ;

                                     0000    23 ; D. N. CUTLER 24-APR-77

                                     0000    24 ;

                                     0000    25 ; PARSE TABLE DESCRIPTOR VALUE MANIPULATION ROUTINES

                                     0000    26 ;

                                     0000    27 ; MACRO LIBRARY CALLS

                                     0000    28 ;

                                     0000    29  

                                     0000    30 	DEFCMDWRK			;DEFINE WORK AREA OFFSETS

                                     0000    31 	DEFPTRDSC			;DEFINE RESULT PARSE DESCRIPTOR FORMAT

DESCRVAL        - PARSE TABLE DESCRIPTOR VALUE MANIPULATION ROU  22-AUG-1978 01:13:49   VAX-11 MACRO X0.3-11               Page   2

01              COMPRESS QUOTED STRING                                                                                           (1)



                                     0000    33 	.SBTTL	COMPRESS QUOTED STRING

                                     0000    34 ;+

                                     0000    35 ; DCL$COMPSTRING - COMPRESS QUOTED STRING

                                     0000    36 ;

                                     0000    37 ; THIS ROUTINE IS CALLED TO COMPRESS A QUOTED STRING.

                                     0000    38 ;

                                     0000    39 ; INPUTS:

                                     0000    40 ;

                                     0000    41 ;	R1 = LENGTH OF STRING.

                                     0000    42 ;	R2 = ADDRESS OF STRING.

                                     0000    43 ;

                                     0000    44 ; OUTPUTS:

                                     0000    45 ;

                                     0000    46 ;	THE SPECIFIED STRING IS COMPRESSED REMOVING PAIRED QUOTES.

                                     0000    47 ;

                                     0000    48 ;		R1 = LENGTH OF COMPRESSED STRING.

                                     0000    49 ;		R2 = ADDRESS OF COMPRESSED STRING.

                                     0000    50 ;-

                                     0000    51  

                                 00000000    52 	.PSECT	DCL$ZCODE,BYTE,RD,NOWRT

                                     0000    53 DCL$COMPSTRING::			;COMPRESS QUOTED STRING

            53            52     D0  0000    54 	MOVL	R2,R3			;COPY BASE ADDRESS OF STRING

            54            53     D0  0003    55 	MOVL	R3,R4			;COPY BASE ADDRESS OF STRING

                          50     D4  0006    56 	CLRL	R0			;CLEAR QUOTATION FLAG

            63            22     91  0008    57 10$:	CMPB	#^A/"/,(R3)		;NEXT CHARACTER A QUOTE?

                          12     12  000B    58 	BNEQ	20$			;IF NEQ NO

                          53     D6  000D    59 	INCL	R3			;ADJUST PAST QUOTE

            50            00     E3  000F    60 	BBCS	#0,R0,30$		;IF CLR, JUST ENTERING QUOTE

                          0F         0012       

                          51     D7  0013    61 	DECL	R1			;DECREMENT NUMBER OF CHARACTERS REMAINING

                          0E     15  0015    62 	BLEQ	40$			;IF LEQ NONE

            63            22     91  0017    63 	CMPB	#^A/"/,(R3)		;NEXT CHARACTER ALSO A QUOTE?

                          03     13  001A    64 	BEQL	20$			;IF EQL YES

            50            01     CA  001C    65 	BICL	#1,R0			;CLEAR QUOTE IN PROGRESS

            84            83     90  001F    66 20$:	MOVB	(R3)+,(R4)+		;COPY CHARACTER AND COMPRESS

            E3            51     F5  0022    67 30$:	SOBGTR	R1,10$			;ANY MORE CHARACTERS TO SCAN?

            54            52     C3  0025    68 40$:	SUBL3	R2,R4,R1		;CALCULATE LENGTH OF COMPRESSED STRING

                          51         0028       

                                 05  0029    69 	RSB				;

DESCRVAL        - PARSE TABLE DESCRIPTOR VALUE MANIPULATION ROU  22-AUG-1978 01:13:49   VAX-11 MACRO X0.3-11               Page   3

01              GET RESULT PARSE DESCRIPTOR VALUES                                                                               (1)



                                     002A    71 	.SBTTL	GET RESULT PARSE DESCRIPTOR VALUES

                                     002A    72 ;+

                                     002A    73 ; DCL$GETDVAL - GET RESULT PARSE DESCRIPTOR VALUES

                                     002A    74 ;

                                     002A    75 ; THIS ROUTINE IS CALLED TO OBTAIN THE VALUES FROM THE NEXT DESCRIPTOR IN

                                     002A    76 ; THE RESULT PARSE TABLE.

                                     002A    77 ;

                                     002A    78 ; INPUTS:

                                     002A    79 ;

                                     002A    80 ;	R10 = RESULT PARSE DESCRIPTOR TABLE POINTER.

                                     002A    81 ;

                                     002A    82 ; OUTPUTS:

                                     002A    83 ;

                                     002A    84 ;	R0 LOW BIT CLEAR INDICATES PARSE DESCRIPTOR TABLE IS EMPTY.

                                     002A    85 ;

                                     002A    86 ;	R0 LOW BIT SET INDICATES NEXT PARSE DESCRIPTOR HAS BEEN OBTAINED

                                     002A    87 ;		WITH:

                                     002A    88 ;

                                     002A    89 ;	R1 = VALUE FIELD OF DESCRIPTOR.

                                     002A    90 ;	R2 = ADDRESS OF ITEM IN COMMAND BUFFER.

                                     002A    91 ;	R3 = FLAGS FIELD OF DESCRIPTOR.

                                     002A    92 ;	R4 = FIELD TERMINATOR CLASS NUMBER.

                                     002A    93 ;	R5 = TYPE OF ENTRY.

                                     002A    94 ;-

                                     002A    95  

                                     002A    96 DCL$GETDVAL::				;GET RESULT PARSE DESCRIPTOR VALUES

                          50     D4  002A    97 	CLRL	R0			;ASSUME TABLE IS EMPTY

       FD34 CD            5A     D1  002C    98 	CMPL	R10,WRK_L_RSLNXT(FP)	;ANY MORE ENTRIES IN PARSE TABLE?

                          23     1E  0031    99 	BGEQU	10$			;IF GEQU NO

                          00     EF  0033   100 	EXTZV	#PTR_V_VALUE,#PTR_S_VALUE,- ;EXTRACT VALUE

            6A            08         0035   101 		PTR_L_DESCR(R10),R1	;

                          51         0037       

                          08     EF  0038   102 	EXTZV	#PTR_V_OFFSET,#PTR_S_OFFSET,- ;EXTRACT OFFSET TO ITEM

            6A            0C         003A   103 		PTR_L_DESCR(R10),R2	;

                          52         003C       

            52       FD38 CD42   9E  003D   104 	MOVAB	WRK_AB_BUFFER(FP)[R2],R2 ;CALCULATE ACTUAL ITEM ADDRESS

                          14     EF  0043   105 	EXTZV	#PTR_V_FLAGS,#PTR_S_FLAGS,- ;EXTRACT FLAGS

            6A            04         0045   106 		PTR_L_DESCR(R10),R3	;

                          53         0047       

                          18     EF  0048   107 	EXTZV	#PTR_V_TERM,#PTR_S_TERM,- ;EXTRACT TERMINATOR CLASS

            6A            04         004A   108 		PTR_L_DESCR(R10),R4	;

                          54         004C       

                          1C     EF  004D   109 	EXTZV	#PTR_V_TYPE,#PTR_S_TYPE,- ;EXTRACT ITEM TYPE

            6A            04         004F   110 		PTR_L_DESCR(R10),R5	;

                          55         0051       

                          8A     D5  0052   111 	TSTL	(R10)+			;POINT TO NEXT DESCRIPTOR IN TABLE

                          50     D6  0054   112 	INCL	R0			;INDICATE NEXT DESCRIPTOR OBTAINED

                                 05  0056   113 10$:	RSB				;

                                     0057   114  

                                     0057   115 	.END

DESCRVAL        - PARSE TABLE DESCRIPTOR VALUE MANIPULATION ROU  22-AUG-1978 01:13:49   VAX-11 MACRO X0.3-11               Page   4

SYMBOL TABLE                                                                                                                     (1)



BIT...         = 00000005            PRC_M_YLEVEL   = 00000800            WRK_L_MAXPARM    FFFFFFE4            

CMDBUFSIZ      = 000001FC            PRC_Q_ALLOCREG   00000020            WRK_L_MINPARM    FFFFFFE8            

DCL$COMPSTRING   00000000 RG    03   PRC_Q_GLOBAL     00000028            WRK_L_PARMCNT    FFFFFFF0            

DCL$GETDVAL      0000002A RG    03   PRC_Q_LABEL      00000030            WRK_L_PAROUT     FFFFFFF4            

GBL...         = 00000000            PRC_Q_LOCAL      00000038            WRK_L_PROMPT     FFFFFFD0            

INPBUFSIZ      = 00000084            PRC_V_CNTRLY   = 00000001            WRK_L_PROPTR     FFFFFFDC            

MSGBUFSIZ      = 00000084            PRC_V_DBGQUAL  = 00000009            WRK_L_QUABLK     FFFFFFE0            

PRC_B_DEFRADIX   00000092            PRC_V_DBGTRUE  = 0000000A            WRK_L_RSLNXT     FFFFFD34            

PRC_B_EXMDEPMOD  00000091            PRC_V_DISABL   = 00000002            WRK_L_SAVAP      FFFFFFC8            

PRC_B_EXMDEPWID  00000090            PRC_V_EXIT     = 00000003            WRK_L_SAVFP      FFFFFFCC            

PRC_K_DEC      = 00000001            PRC_V_GOEOF    = 00000000            WRK_L_SAVSP      FFFFFFC4            

PRC_K_HEX      = 00000000            PRC_V_GOTO     = 00000004            WRK_M_COMMAND  = 00000002            

PRC_K_LENGTH     000000A0            PRC_V_HANGUP   = 0000000C            WRK_M_IMCHNG   = 00000004            

PRC_K_OCT      = 00000002            PRC_V_IND      = 00000005            WRK_M_INQUIRE  = 00000100            

PRC_L_CLIWRK0    0000005C            PRC_V_MODE     = 00000006            WRK_M_NOSTAT   = 00000200            

PRC_L_CLIWRK1    00000060            PRC_V_NOCTLY   = 0000000E            WRK_M_PROMPT   = 00000008            

PRC_L_CLIWRK2    00000064            PRC_V_PAUSE    = 0000000D            WRK_M_QUAL     = 00000010            

PRC_L_CLIWRK3    00000068            PRC_V_USRDET   = 00000008            WRK_M_QUOTE    = 00000020            

PRC_L_CLIWRK4    0000006C            PRC_V_VERIFY   = 00000007            WRK_M_RUNDWN   = 00000001            

PRC_L_ERRRAB     00000010            PRC_V_YLEVEL   = 0000000B            WRK_M_STAR     = 00000040            

PRC_L_EXMDEPADR  0000008C            PRC_W_CLIFLAG    00000052            WRK_M_TRAILSPC = 00000400            

PRC_L_EXTARG     00000078            PRC_W_ERRIFI     00000052            WRK_M_VERB     = 00000080            

PRC_L_EXTBLK     00000070            PRC_W_FLAGS      00000054            WRK_Q_IOSB       FFFFFFD4            

PRC_L_EXTCOD     00000080            PRC_W_INPCHAN    00000050            WRK_V_COMMAND  = 00000001            

PRC_L_EXTHND     00000074            PRC_W_ONLEVEL    00000056            WRK_V_IMCHNG   = 00000002            

PRC_L_EXTPRM     0000007C            PTR_K_BLANK    = 00000001            WRK_V_INQUIRE  = 00000008            

PRC_L_INDEPTH    00000048            PTR_K_COLON    = 00000002            WRK_V_NOSTAT   = 00000009            

PRC_L_INDFAB     0000001C            PTR_K_COMDQUAL = 00000000            WRK_V_PROMPT   = 00000003            

PRC_L_INDINPRAB  00000014            PTR_K_COMMA    = 00000005            WRK_V_QUAL     = 00000004            

PRC_L_INDOUTRAB  00000018            PTR_K_ENDLINE  = 00000004            WRK_V_QUOTE    = 00000005            

PRC_L_INPRAB     00000008            PTR_K_LPAREN   = 00000007            WRK_V_RUNDWN   = 00000000            

PRC_L_LSTSTATUS  00000094            PTR_K_PARAMETR = 00000003            WRK_V_STAR     = 00000006            

PRC_L_ONCTLY     0000009C            PTR_K_PARMQUAL = 00000001            WRK_V_TRAILSPC = 0000000A            

PRC_L_ONERROR    00000058            PTR_K_PLUS     = 00000004            WRK_V_VERB     = 00000007            

PRC_L_OUTRAB     0000000C            PTR_K_QUALVALU = 00000002            WRK_W_FLAGS      FFFFFFFA            

PRC_L_PROCUIC    00000098            PTR_K_RPAREN   = 00000006            WRK_W_IMGCHAN    FFFFFFF8            

PRC_L_SAVAP      00000000            PTR_K_SLASH    = 00000003            

PRC_L_SAVFP      00000004            PTR_L_DESCR      00000000            

PRC_L_SEVERITY   00000040            PTR_S_FLAGS    = 00000004            

PRC_L_STACKLM    00000088            PTR_S_OFFSET   = 0000000C            

PRC_L_STACKPT    00000084            PTR_S_TERM     = 00000004            

PRC_L_STATUS     00000044            PTR_S_TYPE     = 00000004            

PRC_L_SYMBOL     0000004C            PTR_S_VALUE    = 00000008            

PRC_M_CNTRLY   = 00000002            PTR_V_FLAGS    = 00000014            

PRC_M_DBGQUAL  = 00000200            PTR_V_NEGATE   = 00000000            

PRC_M_DBGTRUE  = 00000400            PTR_V_OFFSET   = 00000008            

PRC_M_DISABL   = 00000004            PTR_V_TERM     = 00000018            

PRC_M_EXIT     = 00000008            PTR_V_TYPE     = 0000001C            

PRC_M_GOEOF    = 00000001            PTR_V_VALUE    = 00000000            

PRC_M_GOTO     = 00000010            RSLBUFSIZ      = 00000180            

PRC_M_HANGUP   = 00001000            WRK_AB_BUFFER    FFFFFD38            

PRC_M_IND      = 00000020            WRK_AG_RESULT    FFFFFBB4            

PRC_M_MODE     = 00000040            WRK_B_VERBTYP    FFFFFFC0            

PRC_M_NOCTLY   = 00004000            WRK_K_LENGTH     FFFFFBB4            

PRC_M_PAUSE    = 00002000            WRK_L_CHARPTR    FFFFFFFC            

PRC_M_USRDET   = 00000100            WRK_L_CMDOUT     FFFFFFBC            

PRC_M_VERIFY   = 00000080            WRK_L_IMAGE      FFFFFFEC            

DESCRVAL        - PARSE TABLE DESCRIPTOR VALUE MANIPULATION ROU  22-AUG-1978 01:13:49   VAX-11 MACRO X0.3-11               Page   5

PROGRAM SECTION SYNOPSIS                                                                                                         (1)







PROGRAM SECTION SYNOPSIS



.  ABS  .        00000000      00     NOPIC   USR   CON   ABS   LCL NOSHR NOEXE NORD  NOWRT BYTE  

. BLANK .        00000000      01     NOPIC   USR   CON   REL   LCL NOSHR   EXE   RD    WRT BYTE  

$ABS$            FFFFFFFC      02     NOPIC   USR   CON   ABS   LCL NOSHR   EXE   RD    WRT BYTE  

DCL$ZCODE        00000057      03     NOPIC   USR   CON   REL   LCL NOSHR   EXE   RD  NOWRT BYTE  





THERE WERE NO ERRORS OR WARNINGS.

21818. BYTES LEFT IN FREE MEMORY POOL.

6. BYTES OF RECLAIMED MEMORY.

EXE$:DESCRVAL,LIS$:DESCRVAL/-SP=EXECML$/ML,LIB$:DCL/ML,SRC$:DESCRVAL

21 MLB DIR RDS - 253 GETS TO DEFINE 12 MACROS. 17 INTER. FILE WRITES. 

