MCRCOMD         - PROCESS NEXT COMMAND                           22-AUG-1978 01:28:05   VAX-11 MACRO X0.3-11               Page   0

TABLE OF CONTENTS   



   (1)    4800  PROCESS NEXT COMMAND

   (1)   43500  CHECK FOR CONTROL Y/C AST PENDING

   (1)   45600  ENABLE/DISABLE CONTROL Y/C AST'S

   (1)   49000  FLUSH COMMAND BUFFER

   (1)   51700  PROCESS FOREIGN COMMAND

MCRCOMD         - PROCESS NEXT COMMAND                           22-AUG-1978 01:28:05   VAX-11 MACRO X0.3-11               Page   1

01                                                                                                                               (1)



                                     0000   100 	.TITLE	MCRCOMD - PROCESS NEXT COMMAND

                                     0000   200 	.IDENT	/01/

                                     0000   300 

                                     0000   400 ;

                                     0000   500 ; COPYRIGHT (C) 1977, 1978

                                     0000   600 ; DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASSACHUSETTS 01754

                                     0000   700 ;

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

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

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

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

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

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

                                     0000  1400 ; REMAIN IN DEC.

                                     0000  1500 ;

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

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

                                     0000  1800 ; CORPORATION.

                                     0000  1900 ;

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

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

                                     0000  2200 ;

                                     0000  2300 ; W. H. BROWN 7-DEC-1977

                                     0000  2400 ;

                                     0000  2500 ; PROCESS NEXT COMMAND

                                     0000  2600 ;

                                     0000  2700 ; MACRO LIBRARY CALLS

                                     0000  2800 ;

                                     0000  2900  

                                     0000  3000 	$CLIMSGDEF			;DEFINE CLI MESSAGE CODES

                                     0000  3100 	DEFCMDBLK			;DEFINE COMMAND BLOCK OFFSETS

                                     0000  3200 	DEFCMDWRK			;DEFINE WORK AREA OFFSETS

                                     0000  3300 	DEFPROBLK			;DEFINE PROMPT DESCRIPTOR BLOCK OFFSETS

                                     0000  3400 	DEFPTRDSC			;DEFINE RESULT PARSE DESCRIPTOR FORMAT

                                     0000  3500 	DEFSYMTBL			;DEFINE SYMBOL ENTRY OFFSETS

                                     0000  3600 	$DEVDEF				;DEFINE DEVICE CHARACTERISTIC BITS

                                     0000  3700 	$PSLDEF				;DEFINE PROCESSOR STATUS FIELDS

                                     0000  3800 	$RABDEF				;DEFINE RAB OFFSETS

                                     0000  3900  

                                     0000  4000 ;

                                     0000  4100 ; GLOBAL DATA

                                     0000  4200 ;

                                     0000  4300  

                                 00000000  4400 	.PSECT	MCR$ZCODE,BYTE,RD,NOWRT

                                     0000  4500 MCR$T_PROMPT::				;PRIMARY PROMPT

                           20 3E 00' 0000  4600 	.ASCIC	\> \			;

                                 02  0000       

MCRCOMD         - PROCESS NEXT COMMAND                           22-AUG-1978 01:28:05   VAX-11 MACRO X0.3-11               Page   2

01              PROCESS NEXT COMMAND                                                                                             (1)



                                     0003  4800 	.SBTTL	PROCESS NEXT COMMAND

                                     0003  4900 ;+

                                     0003  5000 ; MCR$RESTART - PROCESS NEXT COMMAND

                                     0003  5100 ;

                                     0003  5200 ; THIS ROUTINE IS THE CENTRAL COMMAND PARSE AND DISPATCH ROUTINE FOR THE

                                     0003  5300 ; STARLET MCRS COMMAND LANGUAGE INTERPRETER. IT INITIALIZES FOR THE NEXT

                                     0003  5400 ; COMMAND, READS AND PARSES THE COMMAND FOR SYNTACTIC CORRECTNESS, AND THEN

                                     0003  5500 ; EXECUTES THE APPROPRIATE IMAGE.

                                     0003  5600 ;

                                     0003  5700 ; INPUTS:

                                     0003  5800 ;

                                     0003  5900 ;	NONE.

                                     0003  6000 ;

                                     0003  6100 ; OUTPUTS:

                                     0003  6200 ;

                                     0003  6300 ;	COMMAND IS READ, PARSED, AND AN IMAGE IS ACTIVATED.

                                     0003  6400 ;-

                                     0003  6500  

                                     0003  6600 	.ENABL	LSB			;

                          FFFA'  31  0003  6700 1$:	BRW	MCR$LOGOUT		;LOGOUT THE COMMAND

                                     0006  6800 MCR$RESTART::				;RESTART ENTRY POINT

         FC AD       FFFF'CF     9E  0006  6900 	MOVAB	W^MCR$HYPHEN-1,WRK_L_CHARPTR(FP) ;SET TO FORCE INPUT ON NEXT GET

                                     000C  7000  

                                     000C  7100 ;

                                     000C  7200 ; PARSE COMMAND AND BUILD RESULT TABLE

                                     000C  7300 ;

                                     000C  7400  

                                     000C  7500 MCR$CMDSTART::				;COMMAND PROCESSING ENTRY POINT

                       C8 AD     94  000C  7600 	CLRB	WRK_B_VERBTYP(FP)	;INIT VERB CLASS TO NONE!

                                     000F  7700 	CLRBIT	MCR_V_FORCMD,PRC_W_CLIFLAG(R11) ;REOMVE FOREIGN COMMAND FLAG

         F4 AD         E9 AF     9E  0014  7800 	MOVAB	MCR$T_PROMPT,WRK_L_PROMPT(FP) ;SET ADDRESS OF DEFAULT PROMPT

            6D       0000'CF     9E  0019  7900 	MOVAB	W^MCR$CONDHAND,(FP)	;ESTABLISH CONDITION HANDLER

            5E       FBB0 CD     9E  001E  8000 	MOVAB	WRK_K_LENGTH-16(FP),SP	;ALLOCATE COMMAND IMPURE AREA

                                     0023  8100 	ASSUME	WRK_W_FLAGS EQ WRK_W_LOCFLG+2 

                       F8 AD     D4  0023  8200 	CLRL	WRK_W_LOCFLG(FP)	;RESET COMMAND FLAGS

         54 AB            24     AA  0026  8300 	BICW	#PRC_M_DISABL!-		;CLEAR COMMAND INTERPRETER CONTROL Y/C

                                     002A  8400 		PRC_M_IND,PRC_W_FLAGS(R11) ;CLEAR INDIRECT FILE IN PROGRESS

         54 AB            01     E5  002A  8500 	BBCC	#PRC_V_CNTRLY,PRC_W_FLAGS(R11),10$ ;BR IF NO CONTROL Y/C REQUESTED

                          06         002E       

         54 AB       0800 8F     A8  002F  8600 	BISW	#PRC_M_YLEVEL,PRC_W_FLAGS(R11) ;SET CONTROL Y/C LEVEL

         54 AB            0C     E0  0035  8700 10$:	BBS	#PRC_V_HANGUP,PRC_W_FLAGS(R11),1$ ;BR IF HANGUP PENDING

                          C9         0039       

            59       FD46 CD     9E  003A  8800 	MOVAB	WRK_AB_BUFFER+2(FP),R9	;SET ADDRESS OF COMMAND BUFFER

            5A       FBC0 CD     9E  003F  8900 	MOVAB	WRK_AG_RESULT(FP),R10	;SET ADDRESS OF RESULT PARSE TABLE

                                     0044  9000 	SETNBLK				;POINT TO NEXT NONBLANK CHARACTER

                          BD     13  0047  9100 	BEQL	MCR$RESTART		;IF EQL NULL LINE

            50            24     91  0049  9200 20$:	CMPB	#^A/$/,R0		;DOLLAR SIGN?

                          11     12  004C  9300 	BNEQ	30$			;BR IF NO-PROCESS THE COMMAND

                       FC AD     D6  004E  9400 	INCL	WRK_L_CHARPTR(FP)	;SKIP THE DOLLAR SIGN

                       48 AB     DD  0051  9500 	PUSHL	PRC_L_INDEPTH(R11)	;SAVE CURRENT INDIRECT LEVEL

                                     0054  9600 	SETNBLK				;POINT AT NEXT NON-BLANK CHARACTER

                          AD     13  0057  9700 	BEQL	MCR$RESTART		;NULL LINE

            8E         48 AB     D1  0059  9800 	CMPL	PRC_L_INDEPTH(R11),(SP)+ ;INDIRECT LEVEL CHANGE?

                          EA     12  005D  9900 	BNEQ	20$			;IF YES-LOOK FOR LEADING DOLLAR SIGN

            56            59     D0  005F 10000 30$:	MOVL	R9,R6			;SET ERROR PRINT POINTER

            2E            50     91  0062 10100 	CMPB	R0,#^A/./		;IS THIS AN INDIRECT COMMAND OR LABEL?

                          1A     13  0065 10200 	BEQL	50$			;BR IF YES

MCRCOMD         - PROCESS NEXT COMMAND                           22-AUG-1978 01:28:05   VAX-11 MACRO X0.3-11               Page   3

01              PROCESS NEXT COMMAND                                                                                             (1)



         54 AB            0B     E0  0067 10300 	BBS	#PRC_V_YLEVEL,PRC_W_FLAGS(R11),40$ ;BR IF AT CONTROL Y LEVEL

                          0A         006B       

         54 AB            04     E0  006C 10400 	BBS	#PRC_V_GOTO,PRC_W_FLAGS(R11),60$ ;BR IF IN A GOTO

                          1F         0070       

            2F            50     91  0071 10500 	CMPB	R0,#^A\/\		;LOGICAL EOF?

                          03     13  0074 10600 	BEQL	45$			;BR IF YES

                          00C7   31  0076 10700 40$:	BRW	COMMAND			;PROCESS COMMAND

                                     0079 10800 45$:	FLUSH				;REST OF COMMAND IS IGNORED

                          FF81'  30  007C 10900 	BSBW	MCR$EXIT		;EFFECT AN EXIT

                          85     11  007F 11000 	BRB	MCR$RESTART		;READ IN NEXT COMMAND

                                     0081 11100 50$:	MOVTOKN				;GET THE TOKEN FOR THE INDIRECT COMMAND

                          10     13  0084 11200 	BEQL	65$			;BR IF NULL INDIRECT COMMAND

            50            3A     91  0086 11300 	CMPB	#^A/:/,R0		;LABEL TERMINATOR?

                          1E     13  0089 11400 	BEQL	70$			;BR IF FOUND A LABEL

         54 AB            04     E1  008B 11500 	BBC	#PRC_V_GOTO,PRC_W_FLAGS(R11),67$ ;BR IF NOT IN A GOTO

                          13         008F       

                                     0090 11600 60$:	FLUSH				;FLUSH THE COMMAND

                          FF70   31  0093 11700 	BRW	MCR$RESTART		;START WITH A NEW COMMAND

         54 AB            04     E0  0096 11800 65$:	BBS	#PRC_V_GOTO,PRC_W_FLAGS(R11),60$ ;BR IF IN A FORWARD GOTO

                          F5         009A       

            3B            50     91  009B 11900 	CMPB	R0,#^A/;/		;"DOTTED" COMMENT

                          F0     13  009E 12000 	BEQL	60$			;IF YES - JUST FLUSH IT

                          008A   31  00A0 12100 	BRW	NOCOMD			;

                          FF5A'  30  00A3 12200 67$:	BSBW	MCR$INDCMD		;PROCESS MCR INDIRECT COMMAND

                          02AC   31  00A6 12300 EXIT1:	BRW	ERROR_EXIT		;

                                     00A9 12400  

                                     00A9 12500 ;

                                     00A9 12600 ; LABEL ENCOUNTERED

                                     00A9 12700 ;

                                     00A9 12800  

                                     00A9 12900 70$:	MOVNCHR				;MOVE COLON TO THE COMMAND BUFFER

         54 AB            0B     E0  00AC 13000 	BBS	#PRC_V_YLEVEL,PRC_W_FLAGS(R11),START1 ;IF SET, CONTROL Y/C LEVEL

                          63         00B0       

            57         14 AB     D0  00B1 13100 	MOVL	PRC_L_INDINPRAB(R11),R7	;GET CURRENT INDIRECT INPUT RAB

         18 A7            1C     E1  00B5 13200 	BBC	#DEV$V_RND,RAB$L_CTX(R7),START1 ;IF CLR, NOT RANDOM DEVICE

                          5A         00B9       

            57            51     7D  00BA 13300 	MOVQ	R1,R7			;PUT LABEL DESCRIPTOR IN SAFE REGISTERS

                          50     95  00BD 13400 	TSTB	R0			;CHECK IF NEXT CHARACTER IS EOL

                          20     12  00BF 13500 	BNEQ	80$			;BR IF NO - MAKE NO LABEL TABLE ENTRY

         54 AB            04     E0  00C1 13600 	BBS	#PRC_V_GOTO,PRC_W_FLAGS(R11),80$ ;BR IF IN GOTO

                          1B         00C5       

            55         30 AB     9E  00C6 13700 	MOVAB	PRC_Q_LABEL(R11),R5	;GET ADDRESS OF LABEL TABLE LISTHEAD

            53            57     7D  00CA 13800 	MOVQ	R7,R3			;SET LABEL NAME PARAMETERS

            52         14 AB     D0  00CD 13900 	MOVL	PRC_L_INDINPRAB(R11),R2	;GET ADDRESS OF INDIRECT RAB

            52         10 A2     9E  00D1 14000 	MOVAB	RAB$W_RFA(R2),R2	;SET ADDRESS OF RECORD FILE ADDRESS

            51            06     9A  00D5 14100 	MOVZBL	#6,R1			;SET LENGTH OF RECORD FILE ADDRESS

                                     00D8 14200 	DISABLE				;DISABLE CONTROL Y/C AST'S

                                     00DB 14300 	ALLOCSYM			;ALLOCATE AND INSERT LABEL IN TABLE

            C5            50     E9  00DE 14400 	BLBC	R0,EXIT1		;IF LBC ALLOCATION FAILURE

         54 AB            04     E1  00E1 14500 80$:	BBC	#PRC_V_GOTO,PRC_W_FLAGS(R11),START1 ;IF CLR, NO GOTO

                          2E         00E5       

            53         4C AB     D0  00E6 14600 	MOVL	PRC_L_SYMBOL(R11),R3	;GET ADDRESS OF GOTO LABEL NAME

            57            83     91  00EA 14700 	CMPB	(R3)+,R7		;LABEL LENGTHS MATCH?

                          25     12  00ED 14800 	BNEQ	START1			;IF NEQ NO

            68            57     29  00EF 14900 	CMPC	R7,(R8),(R3)		;LABELS HAVE SAME NAME?

                          63         00F2       

                          1F     12  00F3 15000 	BNEQ	START1			;IF NEQ NO

MCRCOMD         - PROCESS NEXT COMMAND                           22-AUG-1978 01:28:05   VAX-11 MACRO X0.3-11               Page   4

01              PROCESS NEXT COMMAND                                                                                             (1)



                                 AA  00F5 15100 	BICW	#PRC_M_GOTO!PRC_M_GOEOF,- ;CLEAR GOTO IN PROGRESS AND EOF

         54 AB            11         00F6 15200 		PRC_W_FLAGS(R11)	;ENCOUNTERED DURING SEARCH FLAGS

            52         14 AB     D0  00F9 15300 	MOVL	PRC_L_INDINPRAB(R11),R2	;GET THE INDIRECT INPUT RAB

         1E A2            02     90  00FD 15400 	MOVB	#RAB$C_RFA,RAB$B_RAC(R2);SET ACCESS TO "RECORD FILE ADDRESS"

                                     0101 15500 	$FIND	RAB=(R2)		;POSITION TO CURRENT RECORD

         1E A2            00     90  010A 15600 	MOVB	#RAB$C_SEQ,RAB$B_RAC(R2);RESET ACCESS TO SEQUENTIAL

                          FEEF'  30  010E 15700 	BSBW	MCR$DEALGOTO		;DEALLOCATE THE GOTO LABEL

                          FEF2   31  0111 15800 	BRW	MCR$RESTART		;READ THE NEXT COMMAND LINE

                          FEF5   31  0114 15900 START1:	BRW	MCR$CMDSTART		;START THE COMMAND OVER

                                     0117 16000 	.DSABL	LSB

                                     0117 16100  

                                     0117 16200 ;

                                     0117 16300 ; FOREIGN COMMAND VERB

                                     0117 16400 ;

                                     0117 16500  

                          0298   30  0117 16600 FORCMD:	BSBW	PROCFORN		;PROCESS FOREIGN COMMAND

         C8 AD         00'8F     90  011A 16700 	MOVB	#CLI$K_VERB_FORE,WRK_B_VERBTYP(FP) ;SET COMMADN GENERIC TYPE

                                     011F 16800 	SETBIT	MCR_V_FORCMD,PRC_W_CLIFLAG(R11) ;FLAG DOING FOREIGN COMMAND

                          06     BA  0124 16900 	POPR	#^M<R1,R2>		;RESTORE FILENAME DESCRIPTOR PARAMETERS

            62         80 8F     8A  0126 17000 	BICB	#^X80,(R2)		;RESTORE TO NORMAL ASCII CHARACTER

                          0175   31  012A 17100 	BRW	EXECEXT			;

                                     012D 17200  

                                     012D 17300 ;

                                     012D 17400 ; NO COMMAND VERB

                                     012D 17500 ;

                                     012D 17600  

            3B            50     91  012D 17700 NOCOMD:	CMPB	R0,#^A/;/		;COMMENT COMMAND

                          03     12  0130 17800 	BNEQ	10$			;IF NO ITS AN ERROR

                          0139   31  0132 17900 	BRW	COMNT			;LIST THE COMMENT

                                     0135 18000 10$:	STATUS	NOCOMD			;SET NO COMMAND STATUS

                          021A   31  0138 18100 COMDERR:BRW	ERROR_EXIT

                                     013B 18200  

                                     013B 18300 ;

                                     013B 18400 ; AMBIGUOUS COMMAND VERB

                                     013B 18500 ;

                                     013B 18600  

                                     013B 18700 ABVERB:	STATUS	ABVERB			;SET AMBIGUOUS COMMAND VERB STATUS

                          F8     11  013E 18800 	BRB	COMDERR			;

                                     0140 18900  

                                     0140 19000  

                                     0140 19100 ;

                                     0140 19200 ; STANDARD COMMAND VERB

                                     0140 19300 ;

                                     0140 19400  

                                     0140 19500 COMMAND:GETOKEN				;GET COMMAND VERB TOKEN

                          E8     13  0143 19600 	BEQL	NOCOMD			;IF EQL NONE

         54 AB            0B     E1  0145 19700 	BBC	#PRC_V_YLEVEL,PRC_W_FLAGS(R11),1$ ;BR IF NOT A ^Y LEVEL

                          04         0149       

                                     014A 19800 	SETBIT	PRC_V_IND,PRC_W_FLAGS(R11) ;NO INDIRECT FILES BEYOND VERB

            54            51     7D  014E 19900 1$:	MOVQ	R1,R4			;SAVE COMMAND VERB DESCRIPTOR

                          30     BB  0151 20000 	PUSHR	#^M<R4,R5>		;SAVE DESCRIPTOR OF NAME INCASE FOREIGN

            54            04     D1  0153 20100 	CMPL	#4,R4			;COMMAND VERB LESS THAN 5 CHARACTERS?

                          03     18  0156 20200 	BGEQ	5$			;IF GEQ YES

            54            04     D0  0158 20300 	MOVL	#4,R4			;SET TO SCAN ONLY 4 CHARACTERS

            65         80 8F     88  015B 20400 5$:	BISB	#^X80,(R5)		;SET HIGH ORDER BIT TO FORCE COMMAND MATCH

                          54     39  015F 20500 	MATCHC	R4,(R5),-		;SCAN FOR COMMAND VERB MATCH

                          65         0161 20600 		#<MCR$AB_VERBEND-MCR$AB_VERBTBL>,- ;SIZE OF TABLE IN BYTES

MCRCOMD         - PROCESS NEXT COMMAND                           22-AUG-1978 01:28:05   VAX-11 MACRO X0.3-11               Page   5

01              PROCESS NEXT COMMAND                                                                                             (1)



       0000'CF       0000'8F         0162 20700 		W^MCR$AB_VERBTBL	;START OF TABLE

                          AD     12  0168 20800 	BNEQ	FORCMD			;IF NEQ NO MATCH - FOREIGN COMMAND

            5E            08     C0  016A 20900 	ADDL	#8,SP			;CLEAR NAME DESCRIPTOR

            52            54     C0  016D 21000 	ADDL	R4,R2			;CALCULATE BYTES REMAINING INCLUDING SUBSTRING

            52            04     C7  0170 21100 	DIVL3	#4,R2,R8		;CALCULATE COMPLEMENT COMMAND INDEX

                          58         0173       

       0000'8F            58     A3  0174 21200 	SUBW3	R8,#<<MCR$AB_VERBEND-MCR$AB_VERBTBL>/4>,R8 ;CALCULATE VERB INDEX

                          58         0179       

            50       0000'CF48   3E  017A 21300 	MOVAW	W^MCR$AW_COMDPTR[R8],R0	;GET ADDRESS OF COMMAND BLOCK DISPLACEMENT

            58            80     32  0180 21400 	CVTWL	(R0)+,R8		;GET DISPLACEMENT TO COMMAND BLOCK

            58            50     C0  0183 21500 	ADDL	R0,R8			;CALCULATE ADDRESS OF COMMAND BLOCK

         04 A8            05     E0  0186 21600 	BBS	#CMD_V_ABREV,CMD_B_FLAGS(R8),10$ ; BR IF NON UNIQUE ACCEPTABLE

                          07         018A       

            65            54     39  018B 21700 	MATCHC	R4,(R5),#7,(R3)		;SCAN FOR DUPLICATE MATCH

            63            07         018E       

                          A9     13  0190 21800 	BEQL	ABVERB			;IF EQL DUPLICATE MATCH

         C8 AD            88     90  0192 21900 10$:	MOVB	(R8)+,WRK_B_VERBTYP(FP)	;SET VERB GENERIC TYPE

                          00     EF  0196 22000 	EXTZV	#CMD_V_MINPARM,#CMD_S_MINPARM,- ;GET MINIMUN PARAMETER COUNT

            68            04         0198 22100 		(R8),WRK_L_MINPARM(FP)	;INTO WORK AREA

                       D0 AD         019A       

                          04     EF  019C 22200 	EXTZV	#CMD_V_MAXPARM,#CMD_S_MAXPARM,- ;NOW MAXIMUM PARAMETER

            88            04         019E 22300 		(R8)+,WRK_L_MAXPARM(FP)	;INTO WORK AREA

                       CC AD         01A0       

         EC AD            88     9A  01A2 22400 	MOVZBL	(R8)+,WRK_L_IMAGE(FP)	;SAVE IMAGE NAME INDEX NUMBER

                          44     10  01A6 22500 	BSBB	30$			;GET ADDRESS OF QUALIFIER DESCRIPTORS

            68            04     E1  01A8 22600 	BBC	#CMD_V_DEFQUAL,(R8),11$	;CHECK IF QUALIFIER LIST IS DEFERED

                          06         01AB       

            51            60     32  01AC 22700 	CVTWL	(R0),R1			;GET OFFSET TO LIST

            50            51     C0  01AF 22800 	ADDL	R1,R0			;FIND REAL ADDRESS OF LIST

         E8 AD            50     D0  01B2 22900 11$:	MOVL	R0,WRK_L_QUABLK(FP)	;SET ADDRESS QUALIFIER DESCRIPTORS

         C9 AD            68     90  01B6 23000 	MOVB	(R8),WRK_B_CMDFLG(FP)	;SAVE A COPY OF COMMAND FLAGS

            68            01     E0  01BA 23100 	BBS	#CMD_V_IMMED,(R8),45$	;IF SET, IMMEDIATE COMMAND EXECUTION

                          37         01BD       

                          50     D4  01BE 23200 	CLRL	R0			;ASSUME NO PARSE ROUTINE CASE INDICIES

            88            02     E1  01C0 23300 	BBC	#CMD_V_PAROUT,(R8)+,15$	;IF CLR, NO PARSE ROUTINE CASE INDICIES

                          03         01C3       

            50            68     9E  01C4 23400 	MOVAB	(R8),R0			;GET ADDRESS OF PARSE ROUTINE CASE INDICIES

         F0 AD            50     D0  01C7 23500 15$:	MOVL	R0,WRK_L_PAROUT(FP)	;SAVE ADDRESS OF PARSE ROUTINE CASE INDICES

                                     01CB 23600  

                                     01CB 23700 ;

                                     01CB 23800 ; PROCESS COMMAND QUALIFIERS

                                     01CB 23900 ;

                                     01CB 24000  

                       CB AD     94  01CB 24100 	CLRB	WRK_B_PARMCNT(FP)	;ZERO NUMBER OF PARAMETERS SEEN

                                     01CE 24200 	SETBIT	WRK_V_VERB,WRK_W_FLAGS(FP) ;SET VERB PROCESSING FLAG

                                     01D3 24300 20$:	TESTBLANK			;PEEK AT NEXT CHARACTER IN INPUT BUFFER

            50            2F     91  01D6 24400 	CMPB	#^A\/\,R0		;QUALIFIER?

                          23     12  01D9 24500 	BNEQ	50$			;IF NEQ NO

         C9 AD            00     E0  01DB 24600 	BBS	#CMD_V_OPTION,WRK_B_CMDFLG(FP),90$ ;BR IF THIS IS OPTION

                          6B         01DF       

            56            59     D0  01E0 24700 	MOVL	R9,R6			;SAVE DISPLAY PARAMETER

                                     01E3 24800 	PROCQUAL			;PROCESS QUALIFIER

            EA            50     E8  01E6 24900 	BLBS	R0,20$			;IF LBS SUCCESSFUL COMPLETION

                          0169   31  01E9 25000 	BRW	ERROR_EXIT		;

                                     01EC 25100  

                                     01EC 25200 ;

                                     01EC 25300 ; CALCULATE ADDRESS FROM BYTE DISPLACEMENT

MCRCOMD         - PROCESS NEXT COMMAND                           22-AUG-1978 01:28:05   VAX-11 MACRO X0.3-11               Page   6

01              PROCESS NEXT COMMAND                                                                                             (1)



                                     01EC 25400 ;

                                     01EC 25500  

            50            88     9A  01EC 25600 30$:	MOVZBL	(R8)+,R0		;GET POSITIVE DISPLACEMENT

                          03     13  01EF 25700 	BEQL	40$			;IF EQL NONE

            50            58     C0  01F1 25800 	ADDL	R8,R0			;CALCULATE ACTUAL ADDRESS

                                 05  01F4 25900 40$:	RSB				;

                                     01F5 26000  

                                     01F5 26100 ;

                                     01F5 26200 ; IMMEDIATE COMMAND EXECUTION

                                     01F5 26300 ;

                                     01F5 26400  

            07            00     EF  01F5 26500 45$:	EXTZV	#0,#7,WRK_L_IMAGE(FP),R3 ;GET INTERNAL IMAGE INDEX

            53         EC AD         01F8       

                          0154   31  01FB 26600 	BRW	IMMED			;

                                     01FE 26700  

                                     01FE 26800 ;

                                     01FE 26900 ; PROCESS COMMAND PARAMETERS

                                     01FE 27000 ;

                                     01FE 27100  

                                     01FE 27200 50$:	CLRBIT	WRK_V_VERB,WRK_W_FLAGS(FP) ;CLEAR VERB PROCESSING

                                     0203 27300 	TESTBLANK			;PEEK AT NEXT CHARACTER

            2C            50     91  0206 27400 	CMPB	R0,#^A/,/		;PARAMETER LIST SEPARATOR

                          09     12  0209 27500 	BNEQ	60$			;BR IF NO

         FC BD            20     90  020B 27600 	MOVB	#^A/ /,@WRK_L_CHARPTR(FP) ;SET A NULL PARAMETER

                       FC AD     D7  020F 27700 	DECL	WRK_L_CHARPTR(FP)	;BACK UP TO GET SPACE NEXT

                          17     11  0212 27800 	BRB	70$			;PROCESS NULL FILE SPEC

            56            59     D0  0214 27900 60$:	MOVL	R9,R6			;SAVE ADDRESS INCASE ERROR

                                     0217 28000 	TESTBLANK			;PEEK AT NEXT CHARACTER IN INPUT BUFFER

                          6A     13  021A 28100 	BEQL	EXECMD			;IF EQL END OF LINE

            50            20     91  021C 28200 	CMPB	#^A/ /,R0		;BLANK?

                          0A     13  021F 28300 	BEQL	70$			;BR IF YES

            50            3D     91  0221 28400 	CMPB	#^A/=/,R0		;IS INPUT/OUTPUT SEPARATOR

                          41     12  0224 28500 	BNEQ	120$			;IF NEQ NO

         FA AD            03     E2  0226 28600 	BBSS	#WRK_V_EQUAL,WRK_W_FLAGS(FP),120$ ;BR IF SECOND EQUAL SIGN

                          3C         022A       

            56            59     D0  022B 28700 70$:	MOVL	R9,R6			;SAVE DISPLAY PARAMETER

         C9 AD            00     E0  022E 28800 	BBS	#CMD_V_OPTION,WRK_B_CMDFLG(FP),90$ ;BR IF CMD TAKES AN OPTION

                          18         0232       

                                     0233 28900 	STATUS	MAXPARM			;ASSUME TOO MANY PARAMETERS

         CC AD         CB AD     91  0236 29000 	CMPB	WRK_B_PARMCNT(FP),WRK_L_MAXPARM(FP) ;TOO MANY PARAMETERS?

                          2E     18  023B 29100 	BGEQ	ERREXT			;BR IF YES

                                     023D 29200 	PROCFILE			;PROCESS FILE SPECIFICATION

            28            50     E9  0240 29300 80$:	BLBC	R0,ERREXT		;IF LBC PARSE ERROR

                                     0243 29400 	SETCHAR				;PEEK AT NEXT CHARACTER IN INPUT BUFFER

            50            2F     91  0246 29500 	CMPB	#^A\/\,R0		;QUALIFIER?

                          12     12  0249 29600 	BNEQ	100$			;IF NEQ NO

                                     024B 29700 90$:	CLRBIT	WRK_V_VERB,WRK_W_FLAGS(FP) ;MAKE SURE VERB FLAG IS OFF

                                     0250 29800 	PROCQUAL			;PROCESS QUALIFIER SPECIFICATION

         C9 AD            00     E5  0253 29900 	BBCC	#CMD_V_OPTION,WRK_B_CMDFLG(FP),80$ ;BR IF NOT PROCESSING OPTION

                          E8         0257       

                       CB AD     97  0258 30000 	DECB	WRK_B_PARMCNT(FP)	;ADJUST PARAMETER COUNT FOR OPTION

                          E3     11  025B 30100 	BRB	80$			;

            50            2C     91  025D 30200 100$:	CMPB	#^A/,/,R0		;MULTIPLE PARAMETERS?

                          C9     13  0260 30300 	BEQL	70$			;IF EQL YES

                       CB AD     96  0262 30400 	INCB	WRK_B_PARMCNT(FP)	;COUNT NUMBER OF PARAMETERS SEEN

                          AD     11  0265 30500 	BRB	60$			;

                                     0267 30600  

MCRCOMD         - PROCESS NEXT COMMAND                           22-AUG-1978 01:28:05   VAX-11 MACRO X0.3-11               Page   7

01              PROCESS NEXT COMMAND                                                                                             (1)



                                     0267 30700 ;

                                     0267 30800 ; INVALID PARAMETER DELIMITER

                                     0267 30900 ;

                                     0267 31000  

                                     0267 31100 120$:	STATUS	PARMDEL			;SET INVALID PARAMETER DELIMITER STATUS

                          00E7   31  026B 31200 ERREXT:	BRW	ERROR_EXIT		;

                                     026E 31300 ;

                                     026E 31400 ; COMMENT COMMAND - PRINT THE LINE IF IT HAS NOT BEEN PRINTED

                                     026E 31500 ;

                                     026E 31600  

         54 AB            07     E0  026E 31700 COMNT:	BBS	#PRC_V_VERIFY,PRC_W_FLAGS(R11),175$ ;BR IF ALREADY VERIFIED

                          10         0272       

            52         FC AD     D0  0273 31800 	MOVL	WRK_L_CHARPTR(FP),R2	;GET START OF INPUT LINE

       0084 8F            00     3A  0277 31900 	LOCC	#0,#INPBUFSIZ,(R2)+	;FIND THE END OF LINE

                          82         027C       

            51            52     C2  027D 32000 	SUBL	R2,R1			;GET COUNT OF BYTES TO THE END

                                     0280 32100 	MSGOUT				;PRINT THE COMMENT

                          00D8   31  0283 32200 175$:	BRW	RSTRT			;

                                     0286 32300  

                                     0286 32400 ;

                                     0286 32500 ; BUILD IMAGE NAME DESCRIPTOR

                                     0286 32600 ;

                                     0286 32700  

                                     0286 32800 EXECMD:	STATUS	INSFPRM			;ASSUME NOT ENOUGH PARAMETERS

         D0 AD         CB AD     91  0289 32900 	CMPB	WRK_B_PARMCNT(FP),WRK_L_MINPARM(FP) ;NOT ENOUGH PARAMETERS

                          DB     19  028E 33000 	BLSS	ERREXT			;BR IF ERROR

            53         EC AD     D0  0290 33100 	MOVL	WRK_L_IMAGE(FP),R3	;GET IMAGE NAME INDEX NUMBER

            53            07     E4  0294 33200 	BBSC	#7,R3,EXECINT		;IF SET, INTERNAL COMMAND

                          0E         0297       

                          53     D7  0298 33300 	DECL	R3			;CONVERT TO RELATIVE IMAGE NAME INDEX

            52       0000'CF     9E  029A 33400 	MOVAB	W^MCR$AB_IMAGETBL,R2	;GET ADDRESS OF IMAGE NAME TABLE

                                     029F 33500 	LOCATE				;LOCATE IMAGE NAME STRING

                                     02A2 33600  

                                     02A2 33700 ;

                                     02A2 33800 ; EXECUTE EXTERNAL COMMAND

                                     02A2 33900 ;

                                     02A2 34000  

                                     02A2 34100 EXECEXT:				;EXECUTE EXTERNAL COMMAND

            53         00'8F     9A  02A2 34200 	MOVZBL	#IMG_K_EXTIMAGE&^X7F,R3	;SET EXTERNAL IMAGE COMMAND INDEX

                                     02A6 34300  

                                     02A6 34400 ;

                                     02A6 34500 ; EXECUTE INTERNAL COMMAND

                                     02A6 34600 ;

                                     02A6 34700  

                                     02A6 34800 EXECINT:				;EXECUTE INTERNAL COMMAND

                          0E     BB  02A6 34900 	PUSHR	#^M<R1,R2,R3>		;SAVE IMAGE NAME PARAMETERS

            55            04     9A  02A8 35000 	MOVZBL	#PTR_K_ENDLINE,R5	;SET ITEM TYPE TO END OF LINE

                          56     D4  02AB 35100 	CLRL	R6			;CLEAR FLAGS

            57            01     9A  02AD 35200 	MOVZBL	#1,R7			;SET LENGTH OF ITEM

            58            59     D0  02B0 35300 	MOVL	R9,R8			;SET STARTING ADDRESS OF ITEM

                                     02B3 35400 	GENDESCR			;GENERATE RESULT PARSE DESCRIPTOR

                                 B3  02B6 35500 	BITW	#<PRC_M_VERIFY!PRC_M_YLEVEL>,-	;IF COMMAND WAS VERIFIED,

         54 AB       0880 8F         02B7 35600 		PRC_W_FLAGS(R11)		;OR IF AT CONTROL Y LEVEL

                          18     12  02BC 35700 	BNEQ	5$				;THEN DON'T PRINT AGAIN

         14 AB         08 AB     D1  02BE 35800 	CMPL	PRC_L_INPRAB(R11),PRC_L_INDINPRAB(R11) ;IF INPUT IS THE SAME AS

                          11     13  02C3 35900 	BEQL	5$			;INDIRECT INPUT, THEN DON'T RE-PRINT

            52       FD46 CD     9E  02C5 36000 	MOVAB	WRK_AB_BUFFER+2(FP),R2	;GET START OF COMMAND BUFFER

MCRCOMD         - PROCESS NEXT COMMAND                           22-AUG-1978 01:28:05   VAX-11 MACRO X0.3-11               Page   8

01              PROCESS NEXT COMMAND                                                                                             (1)



            72       203E 8F     B0  02CA 36100 	MOVW	#^A/> /,-(R2)		;SET PROPER PREFIX

            59            52     C3  02CF 36200 	SUBL3	R2,R9,R1		;FIND LENGTH OF COMMAND

                          51         02D2       

                                     02D3 36300 	MSGOUT				;PRINT THE COMMAND

                          0E     BA  02D6 36400 5$:	POPR	#^M<R1,R2,R3>		;RESTORE IMAGE NAME PARAMETERS

       FD40 CD            5A     D0  02D8 36500 	MOVL	R10,WRK_L_RSLNXT(FP)	;SAVE ADDRESS OF NEXT PARSE TABLE ENTRY

         EC AD            07     E1  02DD 36600 	BBC	#7,WRK_L_IMAGE(FP),70$	;IF CLR, EXTERNAL IMAGE

                          55         02E1       

            57       FBC0 CD     9E  02E2 36700 	MOVAB	WRK_AG_RESULT(FP),R7	;GET ADDRESS OF RESULT DESCRIPTOR ARRAY

            58            57     D0  02E7 36800 	MOVL	R7,R8			;COPY ADDRESS OF RESULT DESCRIPTOR ARRAY

            5E       FE80 CE     9E  02EA 36900 	MOVAB	-RSLBUFSIZ(SP),SP	;ALLOCATE TEMPORARY DESCRIPTOR ARRAY

            59            5E     D0  02EF 37000 	MOVL	SP,R9			;SAVE ADDRESS OF TEMPORARY DESCRIPTOR ARRAY

       FD40 CD            57     D1  02F2 37100 10$:	CMPL	R7,WRK_L_RSLNXT(FP)	;END OF RESULT DESCRIPTOR ARRAY?

                          1D     13  02F7 37200 	BEQL	30$			;IF EQL YES

            69            87     D0  02F9 37300 	MOVL	(R7)+,(R9)		;MOVE DESCRIPTOR TO TEMPORARY ARRAY

                          1C     ED  02FC 37400 	CMPZV	#PTR_V_TYPE,#PTR_S_TYPE,- ;COMMAND QUALIFIER?

            69            04         02FE 37500 		(R9),#PTR_K_COMDQUAL	;

                          00         0300       

                          EF     12  0301 37600 	BNEQ	10$			;IF NEQ NO

                       FC A7     D4  0303 37700 	CLRL	-4(R7)			;CLEAR COMMAND QUALIFIER DESCRIPTOR

                          89     D5  0306 37800 	TSTL	(R9)+			;POINT TO NEXT ITEM IN TEMPORARY ARRAY

                          1C     ED  0308 37900 20$:	CMPZV	#PTR_V_TYPE,#PTR_S_TYPE,- ;QUALIFIER VALUE?

            67            04         030A 38000 		(R7),#PTR_K_QUALVALU	;

                          02         030C       

                          E3     12  030D 38100 	BNEQ	10$			;IF NEQ NO

            89            67     D0  030F 38200 	MOVL	(R7),(R9)+		;MOVE DESCRIPTOR TO TEMPORARY ARRAY

                          87     D4  0312 38300 	CLRL	(R7)+			;CLEAR QUALIFIER VALUE DESCRIPTOR

                          F2     11  0314 38400 	BRB	20$			;

            5A            57     D0  0316 38500 30$:	MOVL	R7,R10			;COPY ADDRESS OF LAST DESCRIPTOR + 4

            58            57     D1  0319 38600 40$:	CMPL	R7,R8			;ANY MORE DESCRIPTORS TO EXAMINE?

                          0A     13  031C 38700 	BEQL	50$			;IF EQL NO

            56            77     D0  031E 38800 	MOVL	-(R7),R6		;GET DESCRIPTOR

                          F6     13  0321 38900 	BEQL	40$			;IF EQL NONE

            7A            56     D0  0323 39000 	MOVL	R6,-(R10)		;MOVE DESCRIPTOR TO NEW POSITION

                          F1     11  0326 39100 	BRB	40$			;

            5E            59     D1  0328 39200 50$:	CMPL	R9,SP			;ANY MORE TEMPORARY DESCRIPTORS?

                          05     13  032B 39300 	BEQL	60$			;IF EQL NO

            7A            79     D0  032D 39400 	MOVL	-(R9),-(R10)		;MOVE DESCRIPTOR TO NEW POSITION

                          F6     11  0330 39500 	BRB	50$			;

            5E       0180 CE     9E  0332 39600 60$:	MOVAB	RSLBUFSIZ(SP),SP	;DEALLOCATE TEMPORARY DESCRIPTOR ARRAY

         FA AD            02     A8  0337 39700 70$:	BISW	#WRK_M_COMMAND,WRK_W_FLAGS(FP) ;SET COMMAND EXECUTION IN PROGRESS

            59            5E     D0  033B 39800 	MOVL	SP,R9			;SET ADDRESS OF SCRATCH STACK

            5E       FEF8 CE     9E  033E 39900 	MOVAB	-MSGBUFSIZ*2(SP),SP	;ALLOCATE MESSAGE BUFFER ON STACK

                          6E     9F  0343 40000 	PUSHAB	(SP)			;BUILD SCRATCH BUFFER DESCRIPTOR

            7E       0108 8F     3C  0345 40100 	MOVZWL	#MSGBUFSIZ*2,-(SP)	;SET SIZE OF BUFFER

            58            5E     D0  034A 40200 	MOVL	SP,R8			;SET ADDRESS OF SCRATCH BUFFER DESCRIPTOR

            5A       FBC0 CD     9E  034D 40300 	MOVAB	WRK_AG_RESULT(FP),R10	;SET ADDRESS OF RESULT PARSE DESCRIPTOR TABLE

                                     0352 40400  

                                     0352 40500 ;

                                     0352 40600 ; INTERNAL COMMAND PARAMETERS:

                                     0352 40700 ;

                                     0352 40800 ;	R1 = LENGTH OF IMAGE FILENAME (IF ANY).

                                     0352 40900 ;	R2 = ADDRESS OF IMAGE FILENAME (IF ANY).

                                     0352 41000 ;	R8 = ADDRESS OF SCRATCH BUFFER DESCRIPTOR.

                                     0352 41100 ;	R9 = ADDRESS OF SCRATCH STACK.

                                     0352 41200 ;	R10 = RESULT PARSE DESCRIPTOR TABLE POINTER.

                                     0352 41300 ;	R11 = BASE ADDRESS OF PROCESS WORK AREA.

MCRCOMD         - PROCESS NEXT COMMAND                           22-AUG-1978 01:28:05   VAX-11 MACRO X0.3-11               Page   9

01              PROCESS NEXT COMMAND                                                                                             (1)



                                     0352 41400 ;	FP = BASE ADDRESS OF COMMAND WORK AREA.

                                     0352 41500 ;

                                     0352 41600 ; IMMEDIATE COMMAND PARAMETERS:

                                     0352 41700 ;

                                     0352 41800 ;	R6 = COMMAND BUFFER POINTER BACKUP PARAMETER.

                                     0352 41900 ;	R7 = RESULT PARSE TABLE POINTER BACKUP PARAMETER.

                                     0352 42000 ;	R9 = ADDRESS OF NEXT BYTE IN COMMAND BUFFER.

                                     0352 42100 ;	R10 = RESULT PARSE DESCRIPTOR TABLE POINTER.

                                     0352 42200 ;	R11 = BASE ADDRESS OF PROCESS WORK AREA.

                                     0352 42300 ;	FP = BASE ADDRESS OF COMMAND WORK AREA.

                                     0352 42400 ;

                                     0352 42500  

                                     0352 42600 IMMED:					;IMMEDIATE COMMAND EXECUTION

                          FCAB'  30  0352 42700 	BSBW	MCR$INTIMAGE		;EXECUTE INTERNAL IMAGE

                                     0355 42800 ERROR_EXIT:				;ERROR EXIT

            03            50     E8  0355 42900 	BLBS	R0,10$			;IF LBS SUCCESSFUL COMPLETION

                                     0358 43000 	ERRMSG				;OUTPUT SYSTEM ERROR MESSAGE

                                     035B 43100 10$:	SET_STATUS			;SET COMPLETION STATUS

                          36     10  035E 43200 RSTRT:	BSBB	MCR$FLUSH		;FLUSH COMMAND BUFFER

                          FCA3   31  0360 43300 	BRW	MCR$RESTART		;

MCRCOMD         - PROCESS NEXT COMMAND                           22-AUG-1978 01:28:05   VAX-11 MACRO X0.3-11               Page  10

01              CHECK FOR CONTROL Y/C AST PENDING                                                                                (1)



                                     0363 43500 	.SBTTL	CHECK FOR CONTROL Y/C AST PENDING

                                     0363 43600 ;+

                                     0363 43700 ; MCR$CHECK_AST - CHECK FOR CONTROL Y/C AST PENDING

                                     0363 43800 ;

                                     0363 43900 ; THIS ROUTINE IS CALLED TO CHECK FOR A PENDING CONTROL Y/C AST.

                                     0363 44000 ;

                                     0363 44100 ; INPUTS:

                                     0363 44200 ;

                                     0363 44300 ;	NONE.

                                     0363 44400 ;

                                     0363 44500 ; OUTPUTS:

                                     0363 44600 ;

                                     0363 44700 ;	IF A CONTROL Y/C AST IS PENDING, THEN CONTROL IS TRANSFERED TO THE COMMAND

                                     0363 44800 ;	RESTART ENTRY POINT. OTHERWISE CONTROL IS RETURNED TO THE CALLER.

                                     0363 44900 ;-

                                     0363 45000  

                                     0363 45100 	.ENABL	LSB

                                     0363 45200 MCR$CHECK_AST::				;CHECK FOR PENDING CONTROL Y/C AST

         54 AB            01     E1  0363 45300 	BBC	#PRC_V_CNTRLY,PRC_W_FLAGS(R11),50$ ;IF CLR, NO PENDING AST

                          2D         0367       

                          FC9B   31  0368 45400 10$:	BRW	MCR$RESTART		;

MCRCOMD         - PROCESS NEXT COMMAND                           22-AUG-1978 01:28:05   VAX-11 MACRO X0.3-11               Page  11

01              ENABLE/DISABLE CONTROL Y/C AST'S                                                                                 (1)



                                     036B 45600 	.SBTTL	ENABLE/DISABLE CONTROL Y/C AST'S

                                     036B 45700 ;+

                                     036B 45800 ; MCR$DISABLE - DISABLE CONTROL Y/C AST'S

                                     036B 45900 ;

                                     036B 46000 ; THIS ROUTINE IS CALLED TO DISABLE/ENABLE CONTROL Y/C AST'S.

                                     036B 46100 ;

                                     036B 46200 ; INPUTS:

                                     036B 46300 ;

                                     036B 46400 ;	NONE.

                                     036B 46500 ;

                                     036B 46600 ; OUTPUTS:

                                     036B 46700 ;

                                     036B 46800 ;	CONTROL Y/C AST'S ARE DISABLED, THE PREVIOUS ENABLE STATE IS SAVED, AND

                                     036B 46900 ;	A CO-ROUTINE CALL IS MADE BACK TO THE CALLER. WHEN CONTROL RETURNS, THE

                                     036B 47000 ;	AST STATE IS RESTORED TO ITS VALUE BEFORE THE DISABLE.

                                     036B 47100 ;

                                     036B 47200 ;	ALL REGISTERS ARE PRESERVED ACROSS CALL

                                     036B 47300 ;-

                                     036B 47400  

                                     036B 47500 MCR$DISABLE::				;DISABLE CONTROL Y/C AST'S

                          6E     DD  036B 47600 	PUSHL	(SP)			;COPY RETURN ADDRESS

         04 AE         54 AB     3C  036D 47700 	MOVZWL	PRC_W_FLAGS(R11),4(SP)	;SAVE PREVIOUS DISABLE STATE

         54 AB            04     A8  0372 47800 	BISW	#PRC_M_DISABL,PRC_W_FLAGS(R11) ;DISABLE CONTROL Y/C AST'S

                          9E     16  0376 47900 	JSB	@(SP)+			;CALL THE CALLER BACK

         04 AE            02     E0  0378 48000 	BBS	#PRC_V_DISABL,4(SP),40$	;IF SET, AST'S PREVIOUSLY DISABLED

                          15         037C       

         54 AB            0B     E0  037D 48100 	BBS	#PRC_V_YLEVEL,PRC_W_FLAGS(R11),20$ ;IF SET, AT CONTROL Y/C LEVEL

                          07         0381       

         14 AB         08 AB     D1  0382 48200 	CMPL	PRC_L_INPRAB(R11),PRC_L_INDINPRAB(R11) ;INDIRECT LEVEL ZERO?

                          05     12  0387 48300 	BNEQ	30$			;IF NEQ NO

         54 AB            01     E0  0389 48400 20$:	BBS	#PRC_V_CNTRLY,PRC_W_FLAGS(R11),10$ ;IF SET, CONTROL Y/C REQUEST

                          DA         038D       

         54 AB            04     AA  038E 48500 30$:	BICW	#PRC_M_DISABL,PRC_W_FLAGS(R11) ;ENABLE CONTROL Y/C AST'S

                          6E   8ED0  0392 48600 40$:	POPL	(SP)			;REMOVE PREVIOUS STATE FROM STACK

                                 05  0395 48700 50$:	RSB				;

                                     0396 48800 	.DSABL	LSB

MCRCOMD         - PROCESS NEXT COMMAND                           22-AUG-1978 01:28:05   VAX-11 MACRO X0.3-11               Page  12

01              FLUSH COMMAND BUFFER                                                                                             (1)



                                     0396 49000 	.SBTTL	FLUSH COMMAND BUFFER

                                     0396 49100 ;+

                                     0396 49200 ; MCR$FLUSH - FLUSH COMMAND BUFFER

                                     0396 49300 ;

                                     0396 49400 ; THIS ROUTINE IS CALLED TO READ CHARACTERS FROM THE COMMAND BUFFER UNTIL AN

                                     0396 49500 ; END OF LINE IS ENCOUNTERED.

                                     0396 49600 ;

                                     0396 49700 ; INPUTS:

                                     0396 49800 ;

                                     0396 49900 ;	NONE.

                                     0396 50000 ;

                                     0396 50100 ; OUTPUTS:

                                     0396 50200 ;

                                     0396 50300 ;	INDIRECT FILE RECOGNITION IS DISABLED AND CHARACTERS ARE READ FROM THE

                                     0396 50400 ;	INPUT BUFFER UNTIL AN END OF LINE IS ENCOUNTERED.

                                     0396 50500 ;-

                                     0396 50600  

                                     0396 50700 MCR$FLUSH::				;FLUSH COMMAND BUFFER

         54 AB            0B     E0  0396 50800 	BBS	#PRC_V_YLEVEL,PRC_W_FLAGS(R11),20$ ;IF AT ^Y LEVEL DON'T FLUSH

                          16         039A       

            50         14 AB     D0  039B 50900 	MOVL	PRC_L_INDINPRAB(R11),R0	;GET CURRENT INPUT RAB

         18 A0            02     E0  039F 51000 	BBS	#DEV$V_TRM,RAB$L_CTX(R0),20$ ;LIKEWISE FOR TERMINALS

                          0D         03A3       

         54 AB            20     A8  03A4 51100 	BISW	#PRC_M_IND,PRC_W_FLAGS(R11) ;DISABLE INDIRECT FILE RECOGNITION

                                     03A8 51200 10$:	GETCHAR				;GET CHARACTER FROM INPUT BUFFER

                          FB     12  03AB 51300 	BNEQ	10$			;IF NEQ NOT END OF LINE

         54 AB            20     AA  03AD 51400 	BICW	#PRC_M_IND,PRC_W_FLAGS(R11) ;ENABLE INDIRECT FILE RECOGNITION

                                 05  03B1 51500 20$:	RSB				;

MCRCOMD         - PROCESS NEXT COMMAND                           22-AUG-1978 01:28:05   VAX-11 MACRO X0.3-11               Page  13

01              PROCESS FOREIGN COMMAND                                                                                          (1)



                                     03B2 51700 	.SBTTL	PROCESS FOREIGN COMMAND

                                     03B2 51800 ;

                                     03B2 51900 ; SUBROUTINE TO PROCESS FOREIGN COMMAND AND BUILD RESULT PARSE DESCRIPTOR

                                     03B2 52000 ;

                                     03B2 52100  

                                     03B2 52200 PROCFORN:				;PROCESS FOREIGN COMMAND

         FC BD            20     90  03B2 52300 	MOVB	#^A/ /,@WRK_L_CHARPTR(FP) ;MAKE SURE THERE IS A SPACE

                       FC AD     D7  03B6 52400 	DECL	WRK_L_CHARPTR(FP)	;BACKUP POINTER TO GET SPACE

            58         01 A9     9E  03B9 52500 	MOVAB	1(R9),R8		;SET START OF LINE AFTER SPACE

         54 AB            20     A8  03BD 52600 	BISW	#PRC_M_IND,PRC_W_FLAGS(R11) ;DISABLE INDIRECT FILE INTERPRETATION

                                     03C1 52700 10$:	MOVCHAR				;MOVE CHARACTER TO COMMAND BUFFER

                          FB     12  03C4 52800 	BNEQ	10$			;IF NEQ NOT END OF FILE

                          59     D7  03C6 52900 	DECL	R9			;BACK UP TO TERMINATOR

            59            58     C3  03C8 53000 	SUBL3	R8,R9,R7		;CALCULATE LENGTH OF COMMAND LINE

                          57         03CB       

                          56     D4  03CC 53100 	CLRL	R6			;CLEAR FLAGS

            55            03     9A  03CE 53200 	MOVZBL	#PTR_K_PARAMETR,R5	;SET ITEM TYPE TO PARAMETER

                                     03D1 53300 	GENDESCR			;GENERATE RESULT PARSE TABLE DESCRIPTOR

         54 AB            20     AA  03D4 53400 	BICW	#PRC_M_IND,PRC_W_FLAGS(R11) ;ENABLE INDIRECT FILE INTERPRETATION

                                 05  03D8 53500 	RSB				;

                                     03D9 53600  

                                     03D9 53700 	.END

MCRCOMD         - PROCESS NEXT COMMAND                           22-AUG-1978 01:28:05   VAX-11 MACRO X0.3-11               Page  14

SYMBOL TABLE                                                                                                                     (1)



$$.TMP1        = 00000001            CLI$_ONERR     = 000380F8            DEV$M_DIR      = 00000008            

$$.TMP2        = 00000062            CLI$_ONEVAL    = 00038158            DEV$M_DMT      = 00200000            

ABVERB           0000013B R     03   CLI$_ONLEVL    = 00038100            DEV$M_ELG      = 00400000            

BIT...         = 00000020            CLI$_ONOVF     = 00038108            DEV$M_FOD      = 00004000            

CLI$K_VERB_FORE  ********   X   03   CLI$_OVRFLW    = 00038160            DEV$M_FOR      = 01000000            

CLI$_ABFNAM    = 000381B8            CLI$_PARMDEL   = 00038110            DEV$M_GEN      = 00020000            

CLI$_ABKEYW    = 00038000            CLI$_PROC_ID   = 0003FFF1            DEV$M_IDV      = 04000000            

CLI$_ABVERB    = 00038008            CLI$_QUEJOBCRE = 0003FFF9            DEV$M_MBX      = 00100000            

CLI$_BADRET    = 00038198            CLI$_REQPRMABS = 00038812            DEV$M_MNT      = 00080000            

CLI$_BADTEXT   = 000381B0            CLI$_RSLOVF    = 00038118            DEV$M_NET      = 00002000            

CLI$_BUFOVF    = 00038018            CLI$_SKPDAT    = 00038120            DEV$M_ODV      = 08000000            

CLI$_COMPLX    = 00038020            CLI$_SPARE0    = 00038010            DEV$M_RCK      = 40000000            

CLI$_CONFQUAL  = 00038802            CLI$_SPARE1    = 00038058            DEV$M_REC      = 00000001            

CLI$_CREQUEJOB = 0003884A            CLI$_STKOVF    = 00038128            DEV$M_RND      = 10000000            

CLI$_DEFOVF    = 00038028            CLI$_SUBMITERR = 00038852            DEV$M_RTM      = 20000000            

CLI$_DEVALSPL  = 0003885A            CLI$_SYMDEL    = 00038130            DEV$M_SDI      = 00000010            

CLI$_DEVNOTFOR = 0003887A            CLI$_SYMOVF    = 00038138            DEV$M_SHR      = 00010000            

CLI$_DEVNOTSPL = 00038862            CLI$_UNDFIL    = 00038188            DEV$M_SPL      = 00000040            

CLI$_DIRECT    = 00038030            CLI$_UNDSYM    = 00038140            DEV$M_SQD      = 00000020            

CLI$_EXPSYN    = 00038038            CLI$_UNPROPARM = 00038170            DEV$M_SWL      = 02000000            

CLI$_FILOPN    = 00038190            CLI$_UNPROQUAL = 00038168            DEV$M_TRM      = 00000004            

CLI$_ILLVAL    = 0003883A            CLI$_USGOTO    = 00038148            DEV$M_WCK      = 80000000            

CLI$_IMCHNG    = 00038040            CLI$_VALCNVERR = 00038832            DEV$V_ALL      = 00000017            

CLI$_IMGFNF    = 00038872            CLI$_VALREQ    = 00038150            DEV$V_AVL      = 00000012            

CLI$_INSFPRM   = 00038048            CMDBUFSIZ      = 000001FC            DEV$V_CCL      = 00000001            

CLI$_INVKEY    = 00038178            CMD_AB_PAROUT    00000005            DEV$V_DIR      = 00000003            

CLI$_INVQUAL   = 0003880A            CMD_B_DEFIMG     00000002            DEV$V_DMT      = 00000015            

CLI$_INVQUALNUM= 0003881A            CMD_B_FLAGS      00000004            DEV$V_ELG      = 00000016            

CLI$_INVREQTYP = 00038822            CMD_B_PARMCNT    00000001            DEV$V_FOD      = 0000000E            

CLI$_INVRSP    = 00038180            CMD_B_QUABLK     00000003            DEV$V_FOR      = 00000018            

CLI$_INVUIC    = 000381A8            CMD_B_VERBTYP    00000000            DEV$V_GEN      = 00000011            

CLI$_IVCHAR    = 00038050            CMD_M_ABREV    = 00000020            DEV$V_IDV      = 0000001A            

CLI$_IVDEVTYPE = 0003886A            CMD_M_DEFQUAL  = 00000010            DEV$V_MBX      = 00000014            

CLI$_IVFNAM    = 000381C0            CMD_M_DEVNAM   = 00000080            DEV$V_MNT      = 00000013            

CLI$_IVKEYW    = 00038060            CMD_M_IMMED    = 00000002            DEV$V_NET      = 0000000D            

CLI$_IVOPER    = 00038068            CMD_M_NOEQL    = 00000040            DEV$V_ODV      = 0000001B            

CLI$_IVPROT    = 00038070            CMD_M_NOSTAT   = 00000008            DEV$V_RCK      = 0000001E            

CLI$_IVQLOC    = 00038078            CMD_M_OPTION   = 00000001            DEV$V_REC      = 00000000            

CLI$_IVSYMB    = 00038080            CMD_M_PAROUT   = 00000004            DEV$V_RND      = 0000001C            

CLI$_IVVALU    = 00038088            CMD_S_MAXPARM  = 00000004            DEV$V_RTM      = 0000001D            

CLI$_IVVERB    = 00038090            CMD_S_MINPARM  = 00000004            DEV$V_SDI      = 00000004            

CLI$_MAXPARM   = 00038098            CMD_V_ABREV    = 00000005            DEV$V_SHR      = 00000010            

CLI$_MULKEY    = 000381A0            CMD_V_DEFQUAL  = 00000004            DEV$V_SPL      = 00000006            

CLI$_NOATFIL   = 000380A0            CMD_V_DEVNAM   = 00000007            DEV$V_SQD      = 00000005            

CLI$_NOCCAT    = 000380A8            CMD_V_IMMED    = 00000001            DEV$V_SWL      = 00000019            

CLI$_NOCOMD    = 000380B0            CMD_V_MAXPARM  = 00000004            DEV$V_TRM      = 00000002            

CLI$_NOKEYW    = 000380B8            CMD_V_MINPARM  = 00000000            DEV$V_WCK      = 0000001F            

CLI$_NOLIST    = 000380C0            CMD_V_NOEQL    = 00000006            ERREXT           0000026B R     03   

CLI$_NOOPTPRS  = 00038842            CMD_V_NOSTAT   = 00000003            ERROR_EXIT       00000355 R     03   

CLI$_NOQUAL    = 000380C8            CMD_V_OPTION   = 00000000            EXECEXT          000002A2 R     03   

CLI$_NORMAL    = 00030001            CMD_V_PAROUT   = 00000002            EXECINT          000002A6 R     03   

CLI$_NOTNEG    = 000380D8            COMDERR          00000138 R     03   EXECMD           00000286 R     03   

CLI$_NOVALU    = 000380D0            COMMAND          00000140 R     03   EXIT1            000000A6 R     03   

CLI$_NOVALUE   = 0003882A            COMNT            0000026E R     03   FORCMD           00000117 R     03   

CLI$_NULFIL    = 000380E0            DEV$M_ALL      = 00800000            GBL...         = 00000000            

CLI$_NUMBER    = 000380E8            DEV$M_AVL      = 00040000            IMG_K_EXTIMAGE   ********   X   03   

CLI$_ONCOMD    = 000380F0            DEV$M_CCL      = 00000002            IMMED            00000352 R     03   

MCRCOMD         - PROCESS NEXT COMMAND                           22-AUG-1978 01:28:05   VAX-11 MACRO X0.3-11               Page  15

SYMBOL TABLE                                                                                                                     (1)



INPBUFSIZ      = 00000084            MSGBUFSIZ      = 00000084            PRC_V_CNTRLY   = 00000001            

MCR$AB_IMAGETBL  ********   X   03   NOCOMD           0000012D R     03   PRC_V_DBGQUAL  = 00000009            

MCR$AB_VERBEND   ********   X   03   PRC_B_DEFRADIX   00000092            PRC_V_DBGTRUE  = 0000000A            

MCR$AB_VERBTBL   ********   X   03   PRC_B_EXMDEPMOD  00000091            PRC_V_DISABL   = 00000002            

MCR$ALLOCSYM     ********   X   03   PRC_B_EXMDEPWID  00000090            PRC_V_EXIT     = 00000003            

MCR$AW_COMDPTR   ********   X   03   PRC_K_DEC      = 00000001            PRC_V_GOEOF    = 00000000            

MCR$CHECK_AST    00000363 RG    03   PRC_K_HEX      = 00000000            PRC_V_GOTO     = 00000004            

MCR$CMDSTART     0000000C RG    03   PRC_K_LENGTH     000000A0            PRC_V_HANGUP   = 0000000C            

MCR$CONDHAND     ********   X   03   PRC_K_OCT      = 00000002            PRC_V_IND      = 00000005            

MCR$DEALGOTO     ********   X   03   PRC_L_CLIWRK0    0000005C            PRC_V_MODE     = 00000006            

MCR$DISABLE      0000036B RG    03   PRC_L_CLIWRK1    00000060            PRC_V_NOCTLY   = 0000000E            

MCR$ERRORMSG     ********   X   03   PRC_L_CLIWRK2    00000064            PRC_V_PAUSE    = 0000000D            

MCR$EXIT         ********   X   03   PRC_L_CLIWRK3    00000068            PRC_V_USRDET   = 00000008            

MCR$FLUSH        00000396 RG    03   PRC_L_CLIWRK4    0000006C            PRC_V_VERIFY   = 00000007            

MCR$GENDESCR     ********   X   03   PRC_L_ERRRAB     00000010            PRC_V_YLEVEL   = 0000000B            

MCR$GETCHAR      ********   X   03   PRC_L_EXMDEPADR  0000008C            PRC_W_CLIFLAG    00000052            

MCR$GETOKEN      ********   X   03   PRC_L_EXTARG     00000078            PRC_W_ERRIFI     00000052            

MCR$HYPHEN       ********   X   03   PRC_L_EXTBLK     00000070            PRC_W_FLAGS      00000054            

MCR$INDCMD       ********   X   03   PRC_L_EXTCOD     00000080            PRC_W_INPCHAN    00000050            

MCR$INTIMAGE     ********   X   03   PRC_L_EXTHND     00000074            PRC_W_ONLEVEL    00000056            

MCR$LOCATE       ********   X   03   PRC_L_EXTPRM     0000007C            PROCFORN         000003B2 R     03   

MCR$LOGOUT       ********   X   03   PRC_L_INDEPTH    00000048            PRO_B_FLAGS      00000001            

MCR$MOVCHAR      ********   X   03   PRC_L_INDFAB     0000001C            PRO_B_PROMPT     00000000            

MCR$MOVNCHR      ********   X   03   PRC_L_INDINPRAB  00000014            PRO_K_LENGTH     00000002            

MCR$MOVTOKN      ********   X   03   PRC_L_INDOUTRAB  00000018            PRO_M_CONCAT   = 00000001            

MCR$MSGOUT       ********   X   03   PRC_L_INPRAB     00000008            PRO_M_IMPCAT   = 00000002            

MCR$PROCFILE     ********   X   03   PRC_L_LSTSTATUS  00000094            PRO_M_LIST     = 00000004            

MCR$PROCQUAL     ********   X   03   PRC_L_ONCTLY     0000009C            PRO_M_OPTION   = 00000008            

MCR$RESTART      00000006 RG    03   PRC_L_ONERROR    00000058            PRO_M_REQ      = 00000010            

MCR$SETCHAR      ********   X   03   PRC_L_OUTRAB     0000000C            PRO_M_STRING   = 00000020            

MCR$SETNBLK      ********   X   03   PRC_L_PROCUIC    00000098            PRO_V_CONCAT   = 00000000            

MCR$SET_STATUS   ********   X   03   PRC_L_SAVAP      00000000            PRO_V_IMPCAT   = 00000001            

MCR$TESTBLANK    ********   X   03   PRC_L_SAVFP      00000004            PRO_V_LIST     = 00000002            

MCR$T_PROMPT     00000000 RG    03   PRC_L_SEVERITY   00000040            PRO_V_OPTION   = 00000003            

MCR_M_ALPHAN   = 00000002            PRC_L_STACKLM    00000088            PRO_V_REQ      = 00000004            

MCR_M_DEFALT   = 00000008            PRC_L_STACKPT    00000084            PRO_V_STRING   = 00000005            

MCR_M_DELINP   = 00000080            PRC_L_STATUS     00000044            PSL$C_EXEC     = 00000001            

MCR_M_DOLLARS  = 00000100            PRC_L_SYMBOL     0000004C            PSL$C_KERNEL   = 00000000            

MCR_M_ESCAPE   = 00000004            PRC_M_CNTRLY   = 00000002            PSL$C_SUPER    = 00000002            

MCR_M_ESCTRM   = 00000200            PRC_M_DBGQUAL  = 00000200            PSL$C_USER     = 00000003            

MCR_M_GLOBAL   = 00000400            PRC_M_DBGTRUE  = 00000400            PSL$M_CM       = 80000000            

MCR_M_LOWER    = 00000800            PRC_M_DISABL   = 00000004            PSL$M_CURMOD   = 03000000            

MCR_M_OPNINP   = 00000040            PRC_M_EXIT     = 00000008            PSL$M_DV       = 00000080            

MCR_M_RAD50    = 00000001            PRC_M_GOEOF    = 00000001            PSL$M_FPD      = 08000000            

MCR_M_STRSUB   = 00001000            PRC_M_GOTO     = 00000010            PSL$M_FU       = 00000040            

MCR_V_ALPHAN   = 00000001            PRC_M_HANGUP   = 00001000            PSL$M_IPL      = 001F0000            

MCR_V_DEFALT   = 00000003            PRC_M_IND      = 00000020            PSL$M_IS       = 04000000            

MCR_V_DELINP   = 00000007            PRC_M_MODE     = 00000040            PSL$M_IV       = 00000020            

MCR_V_DOLLARS  = 00000008            PRC_M_NOCTLY   = 00004000            PSL$M_PRVMOD   = 00C00000            

MCR_V_ESCAPE   = 00000002            PRC_M_PAUSE    = 00002000            PSL$M_SAFBITS  = 000037FF            

MCR_V_ESCTRM   = 00000009            PRC_M_USRDET   = 00000100            PSL$M_TBIT     = 00000010            

MCR_V_FORCMD   = 0000000E            PRC_M_VERIFY   = 00000080            PSL$M_TP       = 40000000            

MCR_V_GLOBAL   = 0000000A            PRC_M_YLEVEL   = 00000800            PSL$S_CURMOD   = 00000002            

MCR_V_LOWER    = 0000000B            PRC_Q_ALLOCREG   00000020            PSL$S_IPL      = 00000005            

MCR_V_OPNINP   = 00000006            PRC_Q_GLOBAL     00000028            PSL$S_PRVMOD   = 00000002            

MCR_V_RAD50    = 00000000            PRC_Q_LABEL      00000030            PSL$V_CM       = 0000001F            

MCR_V_STRSUB   = 0000000C            PRC_Q_LOCAL      00000038            PSL$V_CURMOD   = 00000018            

MCRCOMD         - PROCESS NEXT COMMAND                           22-AUG-1978 01:28:05   VAX-11 MACRO X0.3-11               Page  16

SYMBOL TABLE                                                                                                                     (1)



PSL$V_DV       = 00000007            RAB$L_PBF        00000030            RAB$V_RAH      = 00000009            

PSL$V_FPD      = 0000001B            RAB$L_RBF        00000028            RAB$V_RLK      = 00000013            

PSL$V_FU       = 00000006            RAB$L_RFA0       00000010            RAB$V_RNE      = 00000018            

PSL$V_IPL      = 00000010            RAB$L_RHB        0000002C            RAB$V_RNF      = 0000001B            

PSL$V_IS       = 0000001A            RAB$L_ROP        00000004            RAB$V_TMO      = 00000019            

PSL$V_IV       = 00000005            RAB$L_STS        00000008            RAB$V_TPT      = 00000001            

PSL$V_PRVMOD   = 00000016            RAB$L_STV        0000000C            RAB$V_UIF      = 00000004            

PSL$V_TBIT     = 00000004            RAB$L_UBF        00000024            RAB$V_ULK      = 00000012            

PSL$V_TP       = 0000001E            RAB$M_ASY      = 00000001            RAB$V_WAT      = 00000011            

PTR_K_BLANK    = 00000001            RAB$M_BIO      = 00000800            RAB$V_WBH      = 0000000A            

PTR_K_COLON    = 00000002            RAB$M_CCO      = 80000000            RAB$W_ISI        00000002            

PTR_K_COMDQUAL = 00000000            RAB$M_CVT      = 04000000            RAB$W_RFA        00000010            

PTR_K_COMMA    = 00000005            RAB$M_EOF      = 00000100            RAB$W_RFA4       00000014            

PTR_K_ENDLINE  = 00000004            RAB$M_FDL      = 00000040            RAB$W_RSZ        00000022            

PTR_K_LPAREN   = 00000007            RAB$M_HSH      = 00000080            RAB$W_USZ        00000020            

PTR_K_PARAMETR = 00000003            RAB$M_KGE      = 00200000            RSLBUFSIZ      = 00000180            

PTR_K_PARMQUAL = 00000001            RAB$M_KGT      = 00400000            RSTRT            0000035E R     03   

PTR_K_PLUS     = 00000004            RAB$M_LIM      = 00004000            START1           00000114 R     03   

PTR_K_QUALVALU = 00000002            RAB$M_LOA      = 00002000            SYM_B_TYPE       0000000A            

PTR_K_RPAREN   = 00000006            RAB$M_LOC      = 00010000            SYM_K_DECIMAL  = 00000004            

PTR_K_SLASH    = 00000003            RAB$M_MAS      = 00000020            SYM_K_HEXDEC   = 00000005            

PTR_L_DESCR      00000000            RAB$M_NLK      = 00100000            SYM_K_LOGICAL  = 00000002            

PTR_S_FLAGS    = 00000004            RAB$M_NXR      = 00800000            SYM_K_OCTAL    = 00000003            

PTR_S_OFFSET   = 0000000C            RAB$M_PMT      = 40000000            SYM_K_PERM     = 00000001            

PTR_S_TERM     = 00000004            RAB$M_PPF_IND  = 00004000            SYM_K_STRING   = 00000000            

PTR_S_TYPE     = 00000004            RAB$M_PPF_RAT  = 00003FC0            SYM_L_BL         00000004            

PTR_S_VALUE    = 00000008            RAB$M_PTA      = 20000000            SYM_L_FL         00000000            

PTR_V_EQUAL    = 00000000            RAB$M_RAH      = 00000200            SYM_T_SYMBOL     0000000C            

PTR_V_FLAGS    = 00000014            RAB$M_RLK      = 00080000            SYM_W_SIZE       00000008            

PTR_V_NEGATE   = 00000000            RAB$M_RNE      = 01000000            SYS$FIND         ********  GX   03   

PTR_V_OFFSET   = 00000008            RAB$M_RNF      = 08000000            WRK_AB_BUFFER    FFFFFD44            

PTR_V_TERM     = 00000018            RAB$M_TMO      = 02000000            WRK_AG_RESULT    FFFFFBC0            

PTR_V_TYPE     = 0000001C            RAB$M_TPT      = 00000002            WRK_B_CMDFLG     FFFFFFC9            

PTR_V_VALUE    = 00000000            RAB$M_UIF      = 00000010            WRK_B_CURADX     FFFFFFCA            

RAB$B_BID        00000000            RAB$M_ULK      = 00040000            WRK_B_PARMCNT    FFFFFFCB            

RAB$B_BLN        00000001            RAB$M_WAT      = 00020000            WRK_B_VERBTYP    FFFFFFC8            

RAB$B_KRF        00000035            RAB$M_WBH      = 00000400            WRK_K_LENGTH     FFFFFBC0            

RAB$B_KSZ        00000034            RAB$S_PPF_RAT  = 00000008            WRK_L_CHARPTR    FFFFFFFC            

RAB$B_MBC        00000037            RAB$V_ASY      = 00000000            WRK_L_IMAGE      FFFFFFEC            

RAB$B_MBF        00000036            RAB$V_BIO      = 0000000B            WRK_L_MAXPARM    FFFFFFCC            

RAB$B_PSZ        00000034            RAB$V_CCO      = 0000001F            WRK_L_MINPARM    FFFFFFD0            

RAB$B_RAC        0000001E            RAB$V_CVT      = 0000001A            WRK_L_PAROUT     FFFFFFF0            

RAB$B_ROP1       00000005            RAB$V_EOF      = 00000008            WRK_L_PROMPT     FFFFFFF4            

RAB$B_ROP2       00000006            RAB$V_FDL      = 00000006            WRK_L_QUABLK     FFFFFFE8            

RAB$B_ROP3       00000007            RAB$V_HSH      = 00000007            WRK_L_RSLNXT     FFFFFD40            

RAB$B_TMO        0000001F            RAB$V_KGE      = 00000015            WRK_L_SAVAP      FFFFFFD8            

RAB$C_BID      = 00000001            RAB$V_KGT      = 00000016            WRK_L_SAVFP      FFFFFFDC            

RAB$C_BLN        00000044            RAB$V_LIM      = 0000000E            WRK_L_SAVSP      FFFFFFD4            

RAB$C_KEY      = 00000001            RAB$V_LOA      = 0000000D            WRK_M_ALL      = 00000001            

RAB$C_RFA      = 00000002            RAB$V_LOC      = 00000010            WRK_M_ASK      = 00000100            

RAB$C_SEQ      = 00000000            RAB$V_MAS      = 00000005            WRK_M_COMMAND  = 00000002            

RAB$K_BLN        00000044            RAB$V_NLK      = 00000014            WRK_M_CONTINU  = 00000400            

RAB$L_BKT        00000038            RAB$V_NXR      = 00000017            WRK_M_EQUAL    = 00000008            

RAB$L_CTX        00000018            RAB$V_PMT      = 0000001E            WRK_M_IMCHNG   = 00000004            

RAB$L_DCT        00000038            RAB$V_PPF_IND  = 0000000E            WRK_M_QUAL     = 00000010            

RAB$L_FAB        0000003C            RAB$V_PPF_RAT  = 00000006            WRK_M_QUOTE    = 00000020            

RAB$L_KBF        00000030            RAB$V_PTA      = 0000001D            WRK_M_STAR     = 00000040            

MCRCOMD         - PROCESS NEXT COMMAND                           22-AUG-1978 01:28:05   VAX-11 MACRO X0.3-11               Page  17

SYMBOL TABLE                                                                                                                     (1)



WRK_M_TRAILSPC = 00000200            

WRK_M_VERB     = 00000080            

WRK_Q_IOSB       FFFFFFE0            

WRK_V_ALL      = 00000000            

WRK_V_ASK      = 00000008            

WRK_V_COMMAND  = 00000001            

WRK_V_CONTINU  = 0000000A            

WRK_V_EQUAL    = 00000003            

WRK_V_IMCHNG   = 00000002            

WRK_V_QUAL     = 00000004            

WRK_V_QUOTE    = 00000005            

WRK_V_STAR     = 00000006            

WRK_V_TRAILSPC = 00000009            

WRK_V_VERB     = 00000007            

WRK_W_FLAGS      FFFFFFFA            

WRK_W_LOCFLG     FFFFFFF8            

_$$_           = 00000012            





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  

MCR$ZCODE        000003D9      03     NOPIC   USR   CON   REL   LCL NOSHR   EXE   RD  NOWRT BYTE  





THERE WERE NO ERRORS OR WARNINGS.

9822. BYTES LEFT IN FREE MEMORY POOL.

28. BYTES OF RECLAIMED MEMORY.

OBJ$:MCRCOMD,LIS$:MCRCOMD/-SP=EXECML$/ML,LIB$:MCR/ML,SRC$:MCRCOMD

38 MLB DIR RDS - 794 GETS TO DEFINE 45 MACROS. 66 INTER. FILE WRITES. 

