PREFIX          - INPUT SYMBIONT PREFIX FILE                     21-AUG-1978 21:40:10   VAX-11 MACRO X0.3-11               Page   0

TABLE OF CONTENTS   



   (1)    3800  DECLARATIONS

   (1)    1900  JOB CARD PARSER

   (1)    3440  JOB CARD PARSING STATE TABLE

   (1)    9940  PASSWORD CARD PARSER

   (1)   11820  EOJ CARD PARSER

PARSECMD        - INPUT SYMBIONT COMMAND PARSER                  21-AUG-1978 21:40:10   VAX-11 MACRO X0.3-11               Page   1

X0001           DECLARATIONS                                                                                                     (1)



                                     0000    20 	.TITLE	PARSECMD - INPUT SYMBIONT COMMAND PARSER

                                     0000    40 	.IDENT	"X0001"

                                     0000    60 

                                     0000    80 ;

                                     0000   100 ; COPYRIGHT (C) 1978

                                     0000   120 ; DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASSACHUSETTS 01754

                                     0000   140 ;

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

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

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

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

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

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

                                     0000   280 ; REMAIN IN DEC.

                                     0000   300 ;

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

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

                                     0000   360 ; CORPORATION.

                                     0000   380 ;

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

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

                                     0000   440 

                                     0000   460 ;++

                                     0000   480 ;

                                     0000   500 ; FACILITY:  VAX/VMS INPUT SYMBIONT

                                     0000   520 ;

                                     0000   540 ; ABSTRACT:	THIS MODULE CONTAINS THE COMMAND PARSER FOR THE JOB,

                                     0000   560 ;		PASSWORD, AND EOJ CARDS.

                                     0000   580 ;

                                     0000   600 ;

                                     0000   620 ; ENVIRONMENT:	USER MODE

                                     0000   640 ;

                                     0000   660 ;

                                     0000   680 ; AUTHOR:	LEN KAWELL, CREATION DATE: 8-MAR-78

                                     0000   700 ;

                                     0000   720 ; MODIFIED BY:

                                     0000   740 ;

                                     0000   760 ;  , VERSION  ,

                                     0000   780 ; 01	- 

                                     0000   800 ;--

                                     0000   820 

                                     0000   840 ;

                                     0000   860 ; INCLUDE FILES:

                                     0000   880 ;

                                     0000   900 ;	[INPSMB.SRC]PREFIX.MAR

                                     0000   920 ;

                                     0000   940 ; MACROS:

                                     0000   960 ;

                                     0000   980 

                                     0000  1000 ;

                                     0000  1020 ; EQUATED SYMBOLS:

                                     0000  1040 ;

                                     0000  1060 	$JBCMSGDEF			;JOB CONTROLLER MESSAGES

                                     0000  1080 	$TPADEF				;TPARSE DEFINTIONS

                                     0000  1100 	$SMRDEF				;SYMBIONT MANAGER MESSAGES

                                     0000  1120 	$SHRDEF				;SHARED MESSAGES

                                     0000  1140 	$UAFDEF				;USER ACCESS FILE DEFINITIONS

PARSECMD        - INPUT SYMBIONT COMMAND PARSER                  21-AUG-1978 21:40:10   VAX-11 MACRO X0.3-11               Page   2

X0001           DECLARATIONS                                                                                                     (1)



                           0000002C  0000  1160 COMMA	= ^A\,\				;LITERAL COMMA

                                     0000  1180 

                                     0000  1200 ;

                                     0000  1220 ; OWN STORAGE:

                                     0000  1240 ;

                                     0000  1260 

                                     0000  1280 	IMPURE_DATA

                                     0000  1300 

                                     0000  1320 ;

                                     0000  1340 ; TPARSE PARAMETER BLOCK

                                     0000  1360 ;

                                     0000  1380 TPARSE_BLOCK:

                           00000008  0000  1400 	.LONG	TPA$K_COUNT0		;PARAMETER COUNT

                           00000002  0004  1420 	.LONG	TPA$M_ABBREV		;ALLOW ABBREVIATIONS

                           00000078  0008  1440 	.BLKL	TPA$K_LENGTH0-8		;REMAINDER SET AT RUNTIME

                                     0078  1460 

                                     0078  1480 ;

                                     0078  1500 ; TEMPORARY TOKEN DESCRIPTOR

                                     0078  1520 ;

                                     0078  1540 TOKEN_DESC:

                           00000080  0078  1560 	.BLKQ	1

                                     0080  1580 

                                     0080  1600 	PURE_SECTION

                                     0000  1620 

                                     0000  1640 ;

                                     0000  1660 ; DEFAULT QUEUE NAME

                                     0000  1680 ;

                                     0000  1700 DEF_QUEUE:

      48 43 54 41 42 24 53 59 53 00' 0000  1720 	.ASCIC	\SYS$BATCH\

                                 09  0000       

                                     000A  1740 

                                     000A  1760 ;

                                     000A  1780 ; DEFAULT JOB NAME

                                     000A  1800 ;

                                     000A  1820 DEF_JOBNAME:

                                     000A  1840 	STRING_DESC	<INPBATCH>

                                     001A  1860 

                                     001A  1862 ;

                                     001A  1864 ; EOJ/JOB STRING TABLE

                                     001A  1866 ;

                                     001A  1868 EOJ_TABLE:				; *** NOTE: ORDER IS SIGNIFICANT

                           4A 4F 45  001A  1870 	.ASCII	/EOJ/

                           42 4F 4A  001D  1872 	.ASCII	/JOB/

                                     0020  1874 

PARSECMD        - INPUT SYMBIONT COMMAND PARSER                  21-AUG-1978 21:40:10   VAX-11 MACRO X0.3-11               Page   3

X0001           JOB CARD PARSER                                                                                                  (1)



                                     0020  1900 	.SBTTL	JOB CARD PARSER

                                     0020  1920 ;++

                                     0020  1940 ;

                                     0020  1960 ; FUNCTIONAL DESCRIPTION:

                                     0020  1980 ;

                                     0020  2000 ;	PARSES THE JOB CARD USING LIB$TPARSE

                                     0020  2020 ;

                                     0020  2040 ; CALLING SEQUENCE:

                                     0020  2060 ;

                                     0020  2080 ;	BSBW	INP$PARSE_JOB

                                     0020  2100 ;

                                     0020  2120 ; INPUT PARAMETERS:

                                     0020  2140 ;

                                     0020  2160 ;	R6 CONTAINS ADDRESS OF INPUT

                                     0020  2180 ;	R7 CONTAINS BYTE COUNT

                                     0020  2200 ;

                                     0020  2220 ; IMPLICIT INPUTS:

                                     0020  2240 ;

                                     0020  2260 ;	R11 CONTAINS ADDRESS OF INP$G_DATA

                                     0020  2280 ;

                                     0020  2300 ; OUTPUT PARAMETERS:

                                     0020  2320 ;

                                     0020  2340 ;	NONE

                                     0020  2360 ;

                                     0020  2380 ; IMPLICIT OUTPUTS:

                                     0020  2400 ;

                                     0020  2420 ;	VARIOUS DATA STRUCTURES SETUP FROM JOB CARD FIELDS

                                     0020  2440 ;

                                     0020  2460 ; COMPLETION CODES

                                     0020  2480 ;

                                     0020  2500 ;	R0 CONTAINS - LIB$_NORMAL IF SYNTAX OK

                                     0020  2520 ;

                                     0020  2540 ; SIDE EFFECTS:

                                     0020  2560 ;

                                     0020  2580 ;	IF SYNTAX ERROR - ERROR SIGNALED

                                     0020  2600 ;

                                     0020  2620 ;--

                                     0020  2640 

                                     0020  2660 	PURE_SECTION

                                     0020  2680 

                                     0020  2700 	.ENABL	LSB

                                     0020  2720 

                                     0020  2740 INP$PARSE_JOB::

                       41 AB     B4  0020  2760 	CLRW	ID_L_FLAGS(R11)		;CLEAR ALL THE JOB CARD FLAGS

                          10     28  0023  2780 	MOVC3	#16,W^DEF_QUEUE,-	;SET DEFAULT QUEUE NAME

       0002'CF       FFD8 CF         0025  2800 		W^SM_T_QUEUE+INP$G_SYMMSG

         22 AB       FFDB CF     7D  002B  2820 	MOVQ	W^DEF_JOBNAME,ID_Q_JOBNM_DESC(R11) ;SET DEFAULT JOB NAME

         1A AB            08     D0  0031  2840 	MOVL	#8,ID_Q_ACCNT_DESC(R11)	;SET DEFAULT ACCOUNT

                                 DE  0035  2860 	MOVAL	W^UAF$T_ACCOUNT+INP$T_UAFBUF,-

         1E AB       0010'CF         0036  2880 		ID_Q_ACCNT_DESC+4(R11)

                                     003B  2900 

       0008'CF            56     7D  003B  2920 	MOVQ	R6,W^TPA$L_STRINGCNT+TPARSE_BLOCK ;SET STRING SIZE & ADDRESS

            50       0042'CF     DE  0040  2940 	MOVAL	W^SM_T_OPTIONS+INP$G_SYMMSG,R0	;GET OPTIONS LIST ADDRESS

            80            22     B0  0045  2960 	MOVW	#SMO$K_JOBPRI,(R0)+	;SET PRIORITY INITIALLY TO ZERO

         3D AB            50     D0  0048  2980 	MOVL	R0,ID_L_OPT_PTR(R11)	;SAVE OPTION LIST POINTER

                     0000'CF     DF  004C  3000 	PUSHAL	W^JOB_KEY		;SET KEY TABLE ADDRESS

                     0000'CF     DF  0050  3020 	PUSHAL	W^JOB_STATE		;SET STATE TABLE ADDRESS

PARSECMD        - INPUT SYMBIONT COMMAND PARSER                  21-AUG-1978 21:40:10   VAX-11 MACRO X0.3-11               Page   4

X0001           JOB CARD PARSER                                                                                                  (1)



                     0000'CF     DF  0054  3040 	PUSHAL	W^TPARSE_BLOCK		;SET PARAMETER BLOCK ADDRESS

   00000000'EF            03     FB  0058  3060 	CALLS	#3,LIB$TPARSE		;ATTEMPT TO PARSE JOB CARD

                                     005F  3080 ;

                                     005F  3100 ; PARSING COMPLETE, CHECK FOR ERRORS AND OPTIONS

                                     005F  3120 ;

         41 AB            01     E1  005F  3140 	BBC	#FLAG_V_NAME,ID_L_FLAGS(R11),JOB_EXIT ;BR IF NOT A $JOB CARD

                          22         0063       

            13            50     E8  0064  3160 	BLBS	R0,10$			;BR IF NO SYNTAX ERRORS

                     0010'CF     DF  0067  3180 	PUSHAL	W^TPA$L_TOKENCNT+TPARSE_BLOCK ;ADDRESS OF TOKEN DESC

                          01     DD  006B  3200 	PUSHL	#1			;1 FAO ARGUMENT

                 000484B0 8F     DD  006D  3220 	PUSHL	#JBC$_JOBCRD		;SYNTAX ERROR MESSAGE

   00000000'EF            03     FB  0073  3240 	CALLS	#3,LIB$SIGNAL		;SIGNAL THE ERROR

         41 AB            02     E0  007A  3260 10$:	BBS	#FLAG_V_NODEL,ID_L_FLAGS(R11),JOB_EXIT ;BR IF NO DELETE

                          07         007E       

         3D BB            01     90  007F  3280 	MOVB	#SMO$K_DELETE,@ID_L_OPT_PTR(R11) ;SET DELETE

                       3D AB     D6  0083  3300 	INCL	ID_L_OPT_PTR(R11)	;INCREMENT LIST POINTER

                                     0086  3320 

                                     0086  3340 JOB_EXIT:

                                 05  0086  3360 	RSB				;RETURN

                                     0087  3380 

                                     0087  3400 	.DSABL	LSB

PARSECMD        - INPUT SYMBIONT COMMAND PARSER                  21-AUG-1978 21:40:10   VAX-11 MACRO X0.3-11               Page   5

X0001           JOB CARD PARSING STATE TABLE                                                                                     (1)



                                     0087  3440 	.SBTTL	JOB CARD PARSING STATE TABLE

                                     0087  3460 

                                     0087  3480 	.ENABL	LSB

                                     0087  3500 

                                     0087  3520 	$INIT_STATE JOB_STATE,JOB_KEY

                                     0000  3540 ;

                                     0000  3560 ; CHECK THAT IT'S A $JOB CARD

                                     0000  3580 ;

                                     0000  3600 	$STATE

                                     0000  3620 	$TRAN	'$'

                                     0000  3640 	$STATE

                                     0000  3660 	$TRAN	'JOB',,GET_JOB_CONT,FLAG_M_JOB,ID_L_FLAGS+INP$G_DATA

                                     0000  3680 ;

                                     0000  3700 ; GET USER NAME

                                     0000  3720 ;

                                     0000  3740 	$STATE

                                     0000  3760 	$TRAN	TPA$_STRING,MAIN,SET_USERNAME,-

                                     0000  3780 		FLAG_M_NAME,ID_L_FLAGS+INP$G_DATA,12

                                     0000  3800 ;

                                     0000  3820 ; MAIN - CHECK FOR OPTIONS

                                     0000  3840 ;

                                     0000  3860 	$STATE	MAIN

                                     0000  3880 	$TRAN	'/'

                                     0000  3900 	$TRAN	TPA$_EOS,TPA$_EXIT

                                     0000  3920 ;

                                     0000  3940 ; OPTION PROCESSING

                                     0000  3960 ;

                                     0000  3980 	$STATE	OPTIONS

                                     0000  4000 	$TRAN	'ACCOUNT',PARSE_ACCOUNT

                                     0000  4020 	$TRAN	'AFTER',PARSE_TIME

                                     0000  4040 	$TRAN	'DELETE',MAIN

                                     0000  4060 	$TRAN	'NAME',PARSE_JOBNAME

                                     0000  4080 	$TRAN	'NODELETE',MAIN,,FLAG_M_NODEL,ID_L_FLAGS+INP$G_DATA

                                     0000  4090 	$TRAN	'NOTRAILING_BLANKS',MAIN,,-

                                     0000  4095 		FLAG_M_NOTRAIL,ID_L_FLAGS+INP$G_DATA

                                     0000  4100 	$TRAN	'PARAMETERS',PARSE_PARAM

                                     0000  4120 	$TRAN	'PRIORITY',PARSE_PRIOR

                                     0000  4140 	$TRAN	'QUEUE',PARSE_QUEUE

                                     0000  4150 	$TRAN	'TRAILING_BLANKS',MAIN

                                     0000  4160 ;

                                     0000  4180 ; PARSE ACCOUNT NAME

                                     0000  4200 ;

                                     0000  4220 	$STATE	PARSE_ACCOUNT

                                     0000  4240 	$TRAN	':'

                                     0000  4260 	$TRAN	'='

                                     0000  4280 	$STATE

                                     0000  4300 	$TRAN	TPA$_SYMBOL,MAIN,CHECK_SIZE,,-

                                     0000  4320 		ID_Q_ACCNT_DESC+INP$G_DATA,8

                                     0000  4340 ;

                                     0000  4360 ; PARSE AFTER TIME

                                     0000  4380 ;

                                     0000  4400 	$STATE	PARSE_TIME

                                     0000  4420 	$TRAN	':'

                                     0000  4440 	$TRAN	'='

                                     0000  4460 	$STATE

                                     0000  4480 	$TRAN	TPA$_STRING,,BLANKS_ON,,TOKEN_DESC

                                     0000  4500 

PARSECMD        - INPUT SYMBIONT COMMAND PARSER                  21-AUG-1978 21:40:10   VAX-11 MACRO X0.3-11               Page   6

X0001           JOB CARD PARSING STATE TABLE                                                                                     (1)



                                     0000  4520 	$STATE	SCAN_TIME

                                     0000  4540 	$TRAN	TPA$_BLANK,MAIN,SET_TIME

                                     0000  4560 	$TRAN	'/',OPTIONS,SET_TIME

                                     0000  4580 	$TRAN	TPA$_EOS,TPA$_EXIT,SET_TIME

                                     0000  4600 	$TRAN	TPA$_ANY,SCAN_TIME

                                     0000  4620 ;

                                     0000  4640 ; PARSE JOB NAME

                                     0000  4660 ;

                                     0000  4680 	$STATE	PARSE_JOBNAME

                                     0000  4700 	$TRAN	':'

                                     0000  4720 	$TRAN	'='

                                     0000  4740 	$STATE

                                     0000  4760 	$TRAN	TPA$_STRING,MAIN,CHECK_SIZE,,-

                                     0000  4780 		ID_Q_JOBNM_DESC+INP$G_DATA,8

                                     0000  4800 ;

                                     0000  4820 ; PARSE THE PARAMETERS

                                     0000  4840 ;

                                     0000  4860 	$STATE	PARSE_PARAM

                                     0000  4880 	$TRAN	':'

                                     0000  4900 	$TRAN	'='

                                     0000  4920 	$STATE

                                     0000  4940 	$TRAN	'(',PARAM_LIST,START_PARAM

                                     0000  4960 	$TRAN	!GET_PARAM,MAIN,SET_1PARAM

                                     0000  4980 

                                     0000  5000 	$STATE	PARAM_LIST

                                     0000  5020 	$TRAN	!GET_PARAM,,SET_PARAM

                                     0000  5040 	$STATE

                                     0000  5060 	$TRAN	COMMA,PARAM_LIST

                                     0000  5080 	$TRAN	')',MAIN,END_PARAM

                                     0000  5100 ;

                                     0000  5120 ; SUB-EXPRESSION TO GET A PARAMETER

                                     0000  5140 ;

                                     0000  5160 	$STATE	GET_PARAM

                                     0000  5180 	$TRAN	'"',,BLANKS_ON

                                     0000  5200 	$TRAN	TPA$_SYMBOL,TPA$_EXIT

                                     0000  5220 	$STATE

                                     0000  5240 	$TRAN	'"',TPA$_EXIT

                                     0000  5260 	$TRAN	TPA$_ANY

                                     0000  5280 

                                     0000  5300 	$STATE	SCAN_PARAM

                                     0000  5320 	$TRAN	!LIT_QUOTE,SCAN_PARAM

                                     0000  5340 	$TRAN	'"',TPA$_EXIT

                                     0000  5360 	$TRAN	TPA$_ANY,SCAN_PARAM

                                     0000  5380 ;

                                     0000  5400 ; SUB-EXPRESSION TO CHECK FOR A LITERAL QUOTE ("")

                                     0000  5420 ;

                                     0000  5440 	$STATE	LIT_QUOTE

                                     0000  5460 	$TRAN	'"'

                                     0000  5480 	$STATE

                                     0000  5500 	$TRAN	'"',TPA$_EXIT,ZAP_QUOTE

                                     0000  5520 ;

                                     0000  5540 ; PARSE QUEUE PRIORITY

                                     0000  5560 ;

                                     0000  5580 	$STATE	PARSE_PRIOR

                                     0000  5600 	$TRAN	':'

                                     0000  5620 	$TRAN	'='

                                     0000  5640 	$STATE

PARSECMD        - INPUT SYMBIONT COMMAND PARSER                  21-AUG-1978 21:40:10   VAX-11 MACRO X0.3-11               Page   7

X0001           JOB CARD PARSING STATE TABLE                                                                                     (1)



                                     0000  5660 	$TRAN	TPA$_DECIMAL,MAIN,SET_PRIOR

                                     0000  5680 ;

                                     0000  5700 ; PARSE QUEUE NAME

                                     0000  5720 ;

                                     0000  5740 	$STATE	PARSE_QUEUE

                                     0000  5760 	$TRAN	':'

                                     0000  5780 	$TRAN	'='

                                     0000  5800 	$STATE

                                     0000  5820 	$TRAN	TPA$_SYMBOL,MAIN,SET_QUEUE,,,16

                                     0000  5840 

                                     0000  5860 	$END_STATE

                                     0126  5880 

                                     0126  5900 	.DSABL	LSB

                                     0126  5920 

                                     0126  5940 	PURE_SECTION

                                     0087  5960 ;

                                     0087  5980 ; SET USERNAME

                                     0087  6000 ;

                                     0087  6020 SET_USERNAME:

                               0000  0087  6040 	.WORD	0

       0012'CF         10 AC     7D  0089  6060 	MOVQ	TPA$L_TOKENCNT(AP),W^ID_Q_UNAME_DESC+INP$G_DATA ;SET DESCRIPTOR

       019C'CF            6C     FA  008F  6080 	CALLG	(AP),W^CHECK_SIZE	;CHECK NAME STRING SIZE

            12            50     E9  0094  6100 	BLBC	R0,10$			;BR IF TOO LONG

                                     0097  6120 	$CMKRNL_S W^INP$SET_UNAME,-	;CHANGE TO KERNAL TO SET NAME

                                     0097  6140 		  W^ID_Q_UNAME_DESC+INP$G_DATA

            50            01     D0  00A6  6160 	MOVL	#1,R0			;SET STATUS TO SUCCESS

                                 04  00A9  6180 10$:	RET				;RETURN

                                     00AA  6200 

                                     00AA  6220 ;

                                     00AA  6240 ; SET QUEUE NAME

                                     00AA  6260 ;

                                     00AA  6280 SET_QUEUE:

                               003C  00AA  6300 	.WORD	^M<R2,R3,R4,R5>

       019C'CF            6C     FA  00AC  6320 	CALLG	(AP),W^CHECK_SIZE	;CHECK NAME STRING SIZE

            11            50     E9  00B1  6340 	BLBC	R0,10$			;BR IF TOO BIG

       0002'CF         10 AC     90  00B4  6360 	MOVB	TPA$L_TOKENCNT(AP),W^SM_T_QUEUE+INP$G_SYMMSG ;SET LENGTH

                       10 AC     28  00BA  6380 	MOVC3	TPA$L_TOKENCNT(AP),@TPA$L_TOKENPTR(AP),- ;SET QUEUE NAME

       0003'CF         14 BC         00BD  6400 		W^SM_T_QUEUE+1+INP$G_SYMMSG

            50            01     D0  00C2  6420 	MOVL	#1,R0			;SET SUCCESS

                                 04  00C5  6440 10$:	RET				;RETURN

                                     00C6  6460 ;

                                     00C6  6480 ; SET THE PRIORITY

                                     00C6  6500 ;

                                     00C6  6520 SET_PRIOR:

                               0000  00C6  6540 	.WORD	0

       0043'CF         1C AC     90  00C8  6560 	MOVB	TPA$L_NUMBER(AP),W^SM_T_OPTIONS+INP$G_SYMMSG+1 ;SET PRIORITY

                                 04  00CE  6580 	RET

                                     00CF  6600 ;

                                     00CF  6620 ; SET THE AFTER TIME

                                     00CF  6640 ;

                                     00CF  6660 SET_TIME:	

                               0018  00CF  6680 	.WORD	^M<R3,R4>

                                     00D1  6700 	CLRBIT	TPA$V_BLANKS,TPA$L_OPTIONS(AP) ;TURN OFF BLANKS

                     007C'CF     C3  00D5  6720 	SUBL3	W^TOKEN_DESC+4,TPA$L_TOKENPTR(AP),- ;COMPUTE STRING LENGTH

       0078'CF         14 AC         00D9  6740 		W^TOKEN_DESC

                          7E     7C  00DE  6760 	CLRQ	-(SP)			;CREATE A QUAD WORD BUFFER

                          6E     7F  00E0  6780 	PUSHAQ	(SP)			;1ST ARG IS ADDR OF TIME BUFFER

PARSECMD        - INPUT SYMBIONT COMMAND PARSER                  21-AUG-1978 21:40:10   VAX-11 MACRO X0.3-11               Page   8

X0001           JOB CARD PARSING STATE TABLE                                                                                     (1)



                     0078'CF     7F  00E2  6800 	PUSHAQ	W^TOKEN_DESC		;2ND ARG IS ADDR OF INPUT DESC

   00000000'EF            02     FB  00E6  6820 	CALLS	#2,LIB$CVT_TIME	;CONVERT THE TIME

            15            50     E8  00ED  6840 	BLBS	R0,10$			;BR IF CONVERTED OK

                     0078'CF     7F  00F0  6860 	PUSHAQ	W^TOKEN_DESC		;ADDR OF TIME DESCRIPTOR

                          01     DD  00F4  6880 	PUSHL	#1			;1 FAO ARGUMENT

                 00041190 8F     DD  00F6  6900 	PUSHL	#SHR$_BADTIME!<4@16>	;CONDITON CODE

   00000000'EF            03     FB  00FC  6920 	CALLS	#3,LIB$SIGNAL		;SIGNAL THE ERROR

                          11     11  0103  6940 	BRB	20$			;QUIT

            54            05     D0  0105  6960 10$:	MOVL	#5,R4			;5 BYTES FOR THIS OPTION

                          00F7   30  0108  6980 	BSBW	OPTION_ROOM		;CHECK FOR ROOM IN MESSAGE BUFFER

            83            20     90  010B  7000 	MOVB	#SMO$K_RLSTIM,(R3)+	;SET OPTION CODE IN MESSAGE

            83            8E     7D  010E  7020 	MOVQ	(SP)+,(R3)+		;SET TIME VALUE IN MESSAGE

       003D'CF            53     D0  0111  7040 	MOVL	R3,W^ID_L_OPT_PTR+INP$G_DATA ;RE-SET OPTION POINTER

                                 04  0116  7060 20$:	RET

                                     0117  7080 ;

                                     0117  7100 ; ROUTINE TO SET START OF PARAMETERS IN MESSAGE BUFFER

                                     0117  7120 ;

                                     0117  7140 START_PARAM:

                               0018  0117  7160 	.WORD	^M<R4,R3>

            54            01     D0  0119  7180 	MOVL	#1,R4			;1 BYTE TO BE ENTERED IN BUFFER

                          00E3   30  011C  7200 	BSBW	OPTION_ROOM		;CHECK FOR ROOM IN BUFFER

            83            26     90  011F  7220 	MOVB	#SMO$K_PARAMS,(R3)+	;SET OPTION CODE IN BUFFER

       003D'CF            53     D0  0122  7240 	MOVL	R3,W^ID_L_OPT_PTR+INP$G_DATA ;SAVE POINTER

                                 04  0127  7260 	RET

                                     0128  7280 ;

                                     0128  7300 ; ROUTINE TO SET A PARAMETER IN MESSAGE BUFFER

                                     0128  7320 ;

                                     0128  7340 SET_PARAM:

                               003C  0128  7360 	.WORD	^M<R2,R3,R4,R5>

                                     012A  7380 	CLRBIT	TPA$V_BLANKS,TPA$L_OPTIONS(AP) ;TURN OFF EXPLICIT BLANKS

            54         10 AC     D0  012E  7400 	MOVL	TPA$L_TOKENCNT(AP),R4	;GET BYTE COUNT

            55         14 AC     D0  0132  7420 	MOVL	TPA$L_TOKENPTR(AP),R5	;GET POINTER

            65            22     91  0136  7440 	CMPB	#^A\"\,(R5)		;IS IT A QUOTED PARAMETER?

                          05     12  0139  7460 	BNEQU	10$			;BR IF NOT

            54            02     C2  013B  7480 	SUBL	#2,R4			;LESS 2 BYTES FOR 2 QUOTES

                          55     D6  013E  7500 	INCL	R5			;START AT FIRTS BYTE AFTER QUOTE

                          54     D5  0140  7520 10$:	TSTL	R4			;NULL PARAMETER?

                          08     12  0142  7540 	BNEQ	20$			;BR IF NOT

            54            01     D0  0144  7560 	MOVL	#1,R4			;1 BYTE FOR NULL

            55       015F'CF     DE  0147  7580 	MOVAL	W^30$,R5		;MAKE NULL A BLANK

                          00B3   30  014C  7600 20$:	BSBW	OPTION_ROOM		;CHECK FOR ROOM IN OPTION BUFFER

            83            54     90  014F  7620 	MOVB	R4,(R3)+		;SET BYTE COUNT IN MESSAGE

            65            54     28  0152  7640 	MOVC3	R4,(R5),(R3)		;PUT PARAMETER IN MESSAGE BUFFER

                          63         0155       

       003D'CF            53     D0  0156  7660 	MOVL	R3,W^ID_L_OPT_PTR+INP$G_DATA ;SAVE POINTER

            50            01     D0  015B  7680 	MOVL	#1,R0			;SET STATUS OK

                                 04  015E  7700 	RET

                                     015F  7720 

                                 20  015F  7740 30$:	.ASCII	\ \			;NULL PARAMETER

                                     0160  7760 ;

                                     0160  7780 ; ROUTINE TO SET END OF PARAMETER LIST

                                     0160  7800 ;

                                     0160  7820 END_PARAM:

                               0018  0160  7840 	.WORD	^M<R4,R3>

            54            01     D0  0162  7860 	MOVL	#1,R4			;1 BYTE TO BE PUT IN BUFFER

                          009A   30  0165  7880 	BSBW	OPTION_ROOM		;CHECK FOR ROOM IN BUFFER

                          83     94  0168  7900 	CLRB	(R3)+			;SET END OF PARAMETER LIST FLAG

PARSECMD        - INPUT SYMBIONT COMMAND PARSER                  21-AUG-1978 21:40:10   VAX-11 MACRO X0.3-11               Page   9

X0001           JOB CARD PARSING STATE TABLE                                                                                     (1)



       003D'CF            53     D0  016A  7920 	MOVL	R3,W^ID_L_OPT_PTR+INP$G_DATA ;SAVE POINTER

                                 04  016F  7940 	RET

                                     0170  7960 ;

                                     0170  7980 ; ROUTINE TO PUT ONE PARAMETER IN MESSAGE BUFFER

                                     0170  8000 ;

                                     0170  8020 SET_1PARAM:

                               0000  0170  8040 	.WORD	0

       FFA0 CF            6C     FA  0172  8060 	CALLG	(AP),W^START_PARAM	;START PARAMETER LIST

       FFAC CF            6C     FA  0177  8080 	CALLG	(AP),W^SET_PARAM	;SET PARAMETER IN LIST

       FFDF CF            6C     FA  017C  8100 	CALLG	(AP),W^END_PARAM	;END PARAMETER LIST

                                 04  0181  8120 	RET

                                     0182  8140 ;

                                     0182  8160 ; ROUTINE TO ZAP THE EXTRA QUOTE IN A LITERAL QUOTE

                                     0182  8180 ;

                                     0182  8200 ZAP_QUOTE:

                               003C  0182  8220 	.WORD	^M<R2,R3,R4,R5>

                       08 AC     28  0184  8240 	MOVC3	TPA$L_STRINGCNT(AP),@TPA$L_STRINGPTR(AP),- ;KILL LAST QUOTE

         14 BC         0C BC         0187  8260 		@TPA$L_TOKENPTR(AP)

            63            20     90  018B  8270 	MOVB	#^A\ \,(R3)		;BLANK DUPLICATE LAST CHARACTER

                       0C AC     D7  018E  8280 	DECL	TPA$L_STRINGPTR(AP)	;BACKUP POINTER

            50            01     D0  0191  8340 	MOVL	#1,R0			;SET STATUS OK

                                 04  0194  8360 	RET

                                     0195  8380 

                                     0195  8400 

                                     0195  8420 

                                     0195  8440 ;

                                     0195  8460 ; TURN ON EXPLICIT BLANK PROCESSING

                                     0195  8480 ;

                                     0195  8500 BLANKS_ON:

                               0000  0195  8520 	.WORD	0

                                     0197  8540 	SETBIT	TPA$V_BLANKS,TPA$L_OPTIONS(AP)

                                 04  019B  8560 	RET

                                     019C  8580 

                                     019C  8600 ;

                                     019C  8620 ; CHECK A TOKEN'S SIZE

                                     019C  8640 ;

                                     019C  8660 CHECK_SIZE:

                               0000  019C  8680 	.WORD	0

         20 AC         10 AC     D1  019E  8700 	CMPL	TPA$L_TOKENCNT(AP),TPA$L_PARAM(AP) ;IS IT TOO BIG?

                          02     15  01A3  8720 	BLEQ	10$			;BR IT NO

                          50     D4  01A5  8740 	CLRL	R0			;ELSE, SET FAILURE

                                 04  01A7  8760 10$:	RET				;RETURN

                                     01A8  8780 

                                     01A8  8800 ;

                                     01A8  8820 ; ROUTINE TO READ ALL THE JOB CARD CONTINUATIONS INTO JOB CARD BUFFER

                                     01A8  8840 ;

                                     01A8  8860 GET_JOB_CONT:

                               09FC  01A8  8880 	.WORD	^M<R2,R3,R4,R5,R6,R7,R8,R11>

            5B       0000'CF     DE  01AA  8900 	MOVAL	W^INP$G_DATA,R11	;SET ADDRESS OF DATA VECTOR

            56         08 AC     D0  01AF  8920 	MOVL	TPA$L_STRINGCNT(AP),R6	;GET BYTE COUNT FOR 1ST CARD

            57         0C AC     D0  01B3  8940 	MOVL	TPA$L_STRINGPTR(AP),R7	;GET ADDRESS OF 1ST CARD

            57            56     C1  01B7  8960 	ADDL3	R6,R7,R8		;COMPUTE ADDRESS OF BYTE AFTER LAST

                          58         01BA       

                       08 AC     D4  01BB  8980 	CLRL	TPA$L_STRINGCNT(AP)	;RE-INIT STRING DESCRIPTOR

                                 DE  01BE  9000 	MOVAL	W^ID_T_JOB_CARD(R11),-	; TO POINT TO JOB CARD BUFFER

         0C AC       00D1 CB         01BF  9020 		TPA$L_STRINGPTR(AP)

                                     01C4  9040 

PARSECMD        - INPUT SYMBIONT COMMAND PARSER                  21-AUG-1978 21:40:10   VAX-11 MACRO X0.3-11               Page  10

X0001           JOB CARD PARSING STATE TABLE                                                                                     (1)



            78            20     91  01C4  9060 10$:	CMPB	#^A\ \,-(R8)		;IS LAST CHARACTER A BLANK?

                          05     12  01C7  9080 	BNEQU	20$			;BR IF NOT

            F8            56     F5  01C9  9100 	SOBGTR	R6,10$			;DECREMENT BYTE COUNT & CHECK AGAIN

                          30     11  01CC  9120 	BRB	50$			;BLANK CARD - EXIT

                                     01CE  9140 

                                 C1  01CE  9160 20$:	ADDL3	TPA$L_STRINGCNT(AP),-	;COMPUTE END OF CURRENT STRING

         0C AC         08 AC         01CF  9180 		TPA$L_STRINGPTR(AP),R0

                          50         01D3       

            50            56     C1  01D4  9200 	ADDL3	R6,R0,R1		;COMPUTE STRINGPTR AFTER THIS CARD

                          51         01D7       

            52       01D1 CB     DE  01D8  9220 	MOVAL	ID_T_JOB_CARD+INP$K_JOBCRDSZ(R11),R2 ;ADDR OF END OF BUFFER

            52            51     D1  01DD  9240 	CMPL	R1,R2			;IS THERE ROOM IN THE BUFFER?

                          1C     1A  01E0  9260 	BGTRU	50$			;BR IF NO - TRUNCATE IT

            67            56     28  01E2  9280 	MOVC3	R6,(R7),(R0)		;ADD THIS CARD TO THE BUFFER

                          60         01E5       

         08 AC            56     C0  01E6  9300 	ADDL	R6,TPA$L_STRINGCNT(AP)	;COMPUTE NEW BYTE COUNT

                                     01EA  9320 

            68            2D     91  01EA  9340 	CMPB	#^A\-\,(R8)		;IS LAST CHARACTER A HYPHEN

                          0F     12  01ED  9360 	BNEQU	50$			;BR IF NOT - ALL DONE

                       08 AC     D7  01EF  9380 	DECL	TPA$L_STRINGCNT(AP)	;FORGET HYPHEN

                          FE0B'  30  01F2  9400 	BSBW	INP$GETCARD		;GET NEXT CARD

            06            50     E9  01F5  9420 	BLBC	R0,50$			;BR IF ERROR GETTING IT

            57            56     C1  01F8  9440 	ADDL3	R6,R7,R8		;GET ADDRESS OF BYTE AFTER LAST

                          58         01FB       

                          C6     11  01FC  9460 	BRB	10$			;LOOK FOR END OF THIS CARD

                                     01FE  9480 

            50            01     D0  01FE  9500 50$:	MOVL	#1,R0			;SET STATUS TO SUCCESS

                                 04  0201  9520 	RET

                                     0202  9540 

                                     0202  9560 

                                     0202  9580 ;

                                     0202  9600 ; SUBROUTINE TO CHECK FOR ROOM IN THE OPTION BUFFER

                                     0202  9620 ;

                                     0202  9640 ;	ON ENTRY - R4 = NUMBER OF BYTES TO PUT IN BUFFER

                                     0202  9660 ;

                                     0202  9680 ;	ON EXIT - IF ROOM: R3 = POINTER TO NEXT BYTE OF BUFFER

                                     0202  9700 ;		  IF NO ROOM: R0 = FAILURE AND ACTION ROUTINE EXITS

                                     0202  9720 ;

                                     0202  9740 OPTION_ROOM:

            53       003D'CF     D0  0202  9760 	MOVL	W^ID_L_OPT_PTR+INP$G_DATA,R3 ;GET OPTION LIST POINTER

            53            54     C1  0207  9780 	ADDL3	R4,R3,R1		;COMPUTE LAST BYTE OF ENTRY

                          51         020A       

                          51     D1  020B  9800 	CMPL	R1,#SM_T_OPTIONS+INP$G_SYMMSG- ;IS THERE ROOM?

                 0000008A'8F         020D  9820 		+ INP$K_OPTBUFSZ

                          03     1F  0212  9840 	BLSSU	10$			;BR IF YES (+1 BYTE FOR DELETE FLAG)

                          50     D4  0214  9860 	CLRL	R0			;ELSE - SET FAILURE

                                 04  0216  9880 	RET				;EXIT ACTION ROUTINE

                                 05  0217  9900 10$:	RSB				;RETURN TO ACTION ROUTINE

PARSECMD        - INPUT SYMBIONT COMMAND PARSER                  21-AUG-1978 21:40:10   VAX-11 MACRO X0.3-11               Page  11

X0001           PASSWORD CARD PARSER                                                                                             (1)



                                     0218  9940 	.SBTTL	PASSWORD CARD PARSER

                                     0218  9960 ;++

                                     0218  9980 ;

                                     0218 10000 ; FUNCTIONAL DESCRIPTION:

                                     0218 10020 ;

                                     0218 10040 ;	PARSES THE PASSWORD CARD USING LIB$TPARSE

                                     0218 10060 ;

                                     0218 10080 ; CALLING SEQUENCE:

                                     0218 10100 ;

                                     0218 10120 ;	BSBW	INP$PARSE_PASS

                                     0218 10140 ;

                                     0218 10160 ; INPUT PARAMETERS:

                                     0218 10180 ;

                                     0218 10200 ;	R6 CONTAINS ADDRESS OF INPUT

                                     0218 10220 ;	R7 CONTAINS BYTE COUNT

                                     0218 10240 ;

                                     0218 10260 ; IMPLICIT INPUTS:

                                     0218 10280 ;

                                     0218 10300 ;	R11 CONTAINS ADDRESS OF INP$G_DATA

                                     0218 10320 ;

                                     0218 10340 ; OUTPUT PARAMETERS:

                                     0218 10360 ;

                                     0218 10380 ;	NONE

                                     0218 10400 ;

                                     0218 10420 ; IMPLICIT OUTPUTS:

                                     0218 10440 ;

                                     0218 10460 ;	ID_Q_PASSW_DESC(R11) CONTAINS DESCRIPTOR FOR PASSWORD

                                     0218 10480 ;

                                     0218 10500 ; COMPLETION CODES

                                     0218 10520 ;

                                     0218 10540 ;	R0 CONTAINS - LIB$_NORMAL IF SYNTAX OK

                                     0218 10560 ;

                                     0218 10580 ; SIDE EFFECTS:

                                     0218 10600 ;

                                     0218 10620 ;	IF SYNTAX ERROR - ERROR SIGNALED

                                     0218 10640 ;

                                     0218 10660 ;--

                                     0218 10680 

                                     0218 10700 	PURE_SECTION

                                     0218 10720 

                                     0218 10740 	.ENABL	LSB

                                     0218 10760 

                                     0218 10780 INP$PARSE_PASS::

                                     0218 10800 

       0008'CF            56     7D  0218 10820 	MOVQ	R6,W^TPA$L_STRINGCNT+TPARSE_BLOCK ;SET STRING SIZE & ADDRESS

                     0016'CF     DF  021D 10840 	PUSHAL	W^PASS_KEY		;SET KEY TABLE ADDRESS

                     0126'CF     DF  0221 10860 	PUSHAL	W^PASS_STATE		;SET STATE TABLE ADDRESS

                     0000'CF     DF  0225 10880 	PUSHAL	W^TPARSE_BLOCK		;SET PARAMETER BLOCK ADDRESS

   00000000'EF            03     FB  0229 10900 	CALLS	#3,LIB$TPARSE		;ATTEMPT TO PARSE PASSWORD CARD

            13            50     E8  0230 10920 	BLBS	R0,10$			;BR IF PARSED OK

                     0010'CF     DF  0233 10940 	PUSHAL	W^TPA$L_TOKENCNT+TPARSE_BLOCK ;ADDRESS OF TOKEN DESC

                          01     DD  0237 10960 	PUSHL	#1			;1 FAO PARAMETER

                 000484B8 8F     DD  0239 10980 	PUSHL	#JBC$_PASSCRD		;CONDITION CODE

   00000000'EF            03     FB  023F 11000 	CALLS	#3,LIB$SIGNAL		;SIGNAL THE ERROR

                                     0246 11020 10$:

                                 05  0246 11040 	RSB				;RETURN

                                     0247 11060 

PARSECMD        - INPUT SYMBIONT COMMAND PARSER                  21-AUG-1978 21:40:10   VAX-11 MACRO X0.3-11               Page  12

X0001           PASSWORD CARD PARSER                                                                                             (1)



                                     0247 11080 	.DSABL	LSB

                                     0247 11100 

                                     0247 11120 ;

                                     0247 11140 ; $PASSWORD CARD STATE TABLE

                                     0247 11160 ;

                                     0247 11180 

                                     0247 11200 	.ENABL	LSB

                                     0247 11220 

                                     0247 11240 	$INIT_STATE	PASS_STATE,PASS_KEY

                                     0000 11260 

                                     0000 11280 	$STATE

                                     0000 11300 	$TRAN	'$'

                                     0000 11320 	$STATE

                                     0000 11340 	$TRAN	'PASSWORD'

                                     0000 11360 	$STATE

                                     0000 11380 	$TRAN	TPA$_SYMBOL,TPA$_EXIT,SET_PASSWORD,,,8

                                     0000 11400 

                                     0000 11420 	$END_STATE

                                     0137 11440 

                                     0137 11460 	.DSABL	LSB

                                     0137 11480 

                                     0137 11500 	PURE_SECTION

                                     0247 11520 

                                     0247 11540 ;

                                     0247 11560 ; ACTION ROUTINE TO SET PASSWORD

                                     0247 11580 ;

                                     0247 11600 SET_PASSWORD:

                               003C  0247 11620 	.WORD	^M<R2,R3,R4,R5>		;ENTRY MASK

       FF4E CF            6C     FA  0249 11640 	CALLG	(AP),CHECK_SIZE		;CHECK STRING SIZE

            10            50     E9  024E 11660 	BLBC	R0,10$			;BR IF TOO BIG

       000A'CF         10 AC     7D  0251 11680 	MOVQ	TPA$L_TOKENCNT(AP),W^ID_Q_PASSW_DESC+INP$G_DATA ;SET DESCRIPTOR

                       10 AC     28  0257 11700 	MOVC3	TPA$L_TOKENCNT(AP),@TPA$L_TOKENPTR(AP),- ;SAVE PASSWORD

         2A AB         14 BC         025A 11720 		ID_T_PASSWORD(R11)

            50            01     D0  025E 11740 	MOVL	#1,R0			;SET SUCCESS

                                 04  0261 11760 10$:	RET				;RETURN

                                     0262 11780 

PARSECMD        - INPUT SYMBIONT COMMAND PARSER                  21-AUG-1978 21:40:10   VAX-11 MACRO X0.3-11               Page  13

X0001           EOJ CARD PARSER                                                                                                  (1)



                                     0262 11820 	.SBTTL	EOJ CARD PARSER

                                     0262 11840 ;++

                                     0262 11860 ;

                                     0262 11880 ; INP$EOJ - SCANS BUFFER FOR "$EOJ"

                                     0262 11900 ; INP$EOJ_JOB - SCANS BUFFER FOR "$EOJ" OR "$JOB"

                                     0262 11910 ;

                                     0262 11920 ; FUNCTIONAL DESCRIPTION:

                                     0262 11940 ;

                                     0262 11960 ;	SCANS CURRENT BUFFER FOR "$EOJ" AND/OR "$JOB"

                                     0262 11980 ;

                                     0262 12000 ; CALLING SEQUENCE:

                                     0262 12020 ;

                                     0262 12040 ;	BSBW	INP$EOJ

                                     0262 12060 ;	BSBW	INP$EOJ_JOB

                                     0262 12080 ;

                                     0262 12100 ; INPUT PARAMETERS:

                                     0262 12110 ;

                                     0262 12120 ;	R6 CONTAINS ADDRESS OF INPUT

                                     0262 12140 ;	R7 CONTAINS BYTE COUNT

                                     0262 12160 ;

                                     0262 12180 ; IMPLICIT INPUTS:

                                     0262 12200 ;

                                     0262 12205 ;	NONE

                                     0262 12220 ;

                                     0262 12240 ; OUTPUT PARAMETERS:

                                     0262 12260 ;	NONE

                                     0262 12280 ;

                                     0262 12300 ; IMPLICIT OUTPUTS:

                                     0262 12320 ;	NONE

                                     0262 12340 ;

                                     0262 12360 ; COMPLETION CODES

                                     0262 12380 ;	R0 CONTAINS - 1 IF $EOJ OR $JOB CARD

                                     0262 12385 ;		      0 IF NOT

                                     0262 12420 ;

                                     0262 12440 ; SIDE EFFECTS:

                                     0262 12460 ;	NONE

                                     0262 12480 ;

                                     0262 12500 ;--

                                     0262 12520 

                                     0262 12540 	PURE_SECTION

                                     0262 12560 

                                     0262 12580 	.ENABL	LSB

                                     0262 12600 

                                     0262 12605 INP$EOJ::

                     033C 8F     BB  0262 12610 	PUSHR	#^M<R2,R3,R4,R5,R8,R9>	;SAVE REGISTERS

            58            01     D0  0266 12615 	MOVL	#1,R8			;ONLY LOOK FOR $EOJ

                          07     11  0269 12620 	BRB	10$

                                     026B 12625 

                                     026B 12630 INP$EOJ_JOB::

                     033C 8F     BB  026B 12635 	PUSHR	#^M<R2,R3,R4,R5,R8,R9>	;SAVE REGISTERS

            58            02     D0  026F 12640 	MOVL	#2,R8			;LOOK FOR BOTH $EOJ AND $JOB

            56            20     3B  0272 12645 10$:	SKPC	#^A\ \,R6,(R7)		;SKIP ANY LEADING BLANKS

                          67         0275       

                          23     13  0276 12650 	BEQL	30$			;BR IF THAT'S ALL THERE IS

            81            24     91  0278 12655 	CMPB	#^A\$\,(R1)+		;IS CHARACTER A "$"?

                          1E     12  027B 12660 	BNEQU	30$			;BR IF NOT - ALL DONE

                          50     D7  027D 12662 	DECL	R0			;ONE LESS CHAR TO CHECK

PARSECMD        - INPUT SYMBIONT COMMAND PARSER                  21-AUG-1978 21:40:10   VAX-11 MACRO X0.3-11               Page  14

X0001           EOJ CARD PARSER                                                                                                  (1)



                          1A     13  027F 12664 	BEQL	30$			;BR IF NONE LEFT

            50            20     3B  0281 12665 	SKPC	#^A\ \,R0,(R1)		;SKIP ANY BLANKS

                          61         0284       

                          14     13  0285 12670 	BEQL	30$			;BR IF THAT'S ALL THERE IS

            54            50     7D  0287 12675 	MOVQ	R0,R4			;SAVE DESCRIPTOR IN SAFE REGS

            59       FD8C CF     DE  028A 12680 	MOVAL	W^EOJ_TABLE,R9		;SET ADDR OF EOJ/JOB TABLE

            65            03     29  028F 12685 20$:	CMPC3	#3,(R5),(R9)		;DOES STRING MATCH?

                          69         0292       

                          0A     13  0293 12690 	BEQL	40$			;BR IF YES

            59            03     C0  0295 12695 	ADDL	#3,R9			;SET POINTER TO NEXT STRING

            F4            58     F5  0298 12700 	SOBGTR	R8,20$			;DEC COUNT AND BR IF MORE

                          50     D4  029B 12705 30$:	CLRL	R0			;STRING IS NOT "$EOJ" OR "$JOB"

                          03     11  029D 12710 	BRB	50$			;EXIT

            50            01     D0  029F 12715 40$:	MOVL	#1,R0			;STRING IS "$EOJ" OR "$JOB"

                     033C 8F     BA  02A2 12720 50$:	POPR	#^M<R2,R3,R4,R5,R8,R9>	;RESTORE REGISTERS

                                 05  02A6 12725 	RSB				;RETURN

                                     02A7 16375 	.DSABL	LSB

                                     02A7 16400 

                                     02A7 16425 	.END

PARSECMD        - INPUT SYMBIONT COMMAND PARSER                  21-AUG-1978 21:40:10   VAX-11 MACRO X0.3-11               Page  15

SYMBOL TABLE                                                                                                                     (1)



$$$CNT         = 0000000A            INP$PARSE_JOB    00000020 RG    04   LIB$SIGNAL       ********   X   04   

$$$FLG         = FFFFFFFF            INP$PARSE_PASS   00000218 RG    04   LIB$TPARSE       ********   X   04   

$$$KEY         = 00000000            INP$SET_UNAME    ********   X   04   LIT_QUOTE        000000FF R     05   

$$$KFG         = FFFFFFFF            INP$T_UAFBUF     ********   X   04   MAIN             00000025 R     05   

$$$TMP         = 00000065 R     07   JBC$_ACMINVOP  = 00048088            OPTIONS          0000002B R     05   

$$KEYTAB       = 00000016 R     06   JBC$_ACNTOPN   = 00048478            OPTION_ROOM      00000202 R     04   

BIT...         = 00000002            JBC$_ACNTWRT   = 00048480            PARAM_LIST       000000CD R     05   

BLANKS_ON        00000195 R     04   JBC$_ENTQUE    = 000484A8            PARSE_ACCOUNT    00000063 R     05   

CHECK_SIZE       0000019C R     04   JBC$_ILLDEVNAM = 00048000            PARSE_JOBNAME    000000A2 R     05   

COMMA          = 0000002C            JBC$_ILLDEVTYP = 00048008            PARSE_PARAM      000000B7 R     05   

DEF_JOBNAME      0000000A R     04   JBC$_ILLFILNAM = 00048010            PARSE_PRIOR      00000109 R     05   

DEF_QUEUE        00000000 R     04   JBC$_ILLQUENAM = 00048018            PARSE_QUEUE      00000115 R     05   

END_PARAM        00000160 R     04   JBC$_INPASGN   = 00048488            PARSE_TIME       00000078 R     05   

EOJ_TABLE        0000001A R     04   JBC$_INPREAD   = 00048490            PASS_KEY         00000016 RG    06   

FLAG_M_CREATED = 00020000            JBC$_INVMSG    = 00048418            PASS_STATE       00000126 RG    05   

FLAG_M_INITOK  = 00010000            JBC$_INVSCT    = 00048468            SCAN_PARAM       000000F1 R     05   

FLAG_M_JOB     = 00000001            JBC$_JOBABORT  = 00048080            SCAN_TIME        00000086 R     05   

FLAG_M_NAME    = 00000002            JBC$_JOBCRD    = 000484B0            SET_1PARAM       00000170 R     04   

FLAG_M_NODEL   = 00000004            JBC$_LOSTREC   = 00048438            SET_PARAM        00000128 R     04   

FLAG_M_NOTRAIL = 00000008            JBC$_MBASGN    = 00048400            SET_PASSWORD     00000247 R     04   

FLAG_V_CREATED = 00000011            JBC$_MBDEAS    = 00048460            SET_PRIOR        000000C6 R     04   

FLAG_V_INITOK  = 00000010            JBC$_MBREAD    = 00048408            SET_QUEUE        000000AA R     04   

FLAG_V_JOB     = 00000000            JBC$_MBSETAST  = 000484C8            SET_TIME         000000CF R     04   

FLAG_V_NAME    = 00000001            JBC$_MBWRITE   = 000484D0            SET_USERNAME     00000087 R     04   

FLAG_V_NODEL   = 00000002            JBC$_MULTREC   = 00048430            SHR$_ABEND     = 000010D8            

FLAG_V_NOTRAIL = 00000003            JBC$_NOOPENJOB = 00048048            SHR$_ABENDD    = 000010E0            

GBL...         = 00000000            JBC$_NOPRIV    = 00048020            SHR$_ABENDT    = 000010E8            

GET_JOB_CONT     000001A8 R     04   JBC$_NOQUEHDR  = 00048028            SHR$_APPENDEDB = 00001000            

GET_PARAM        000000E1 R     05   JBC$_NOQUESPACE= 00048030            SHR$_APPENDEDR = 00001008            

ID_B_INBUF_INDX  00000032            JBC$_NORMAL    = 00040001            SHR$_ATPC      = 00001158            

ID_K_SIZE        000001D1            JBC$_NOSUCHJOB = 00048040            SHR$_BADBYTE   = 00001010            

ID_L_FLAGS       00000041            JBC$_NOSUCHQUE = 00048038            SHR$_BADCOPIES = 00001160            

ID_L_OPT_PTR     0000003D            JBC$_PASSCRD   = 000484B8            SHR$_BADDELIM  = 00001118            

ID_Q_ACCNT_DESC  0000001A            JBC$_PRCREAT   = 00048410            SHR$_BADFIELD  = 00001018            

ID_Q_IOSB        00000002            JBC$_PRINTOUT  = 000484E0            SHR$_BADFORM   = 00001168            

ID_Q_JOBNM_DESC  00000022            JBC$_QUECNT    = 00048428            SHR$_BADJOBID  = 00001170            

ID_Q_PASSW_DESC  0000000A            JBC$_QUEERR    = 00048458            SHR$_BADJOBNAME= 00001178            

ID_Q_TIMEOUT     00000033            JBC$_QUENOSTOP = 00048050            SHR$_BADKEY    = 00001108            

ID_Q_UNAME_DESC  00000012            JBC$_QUEUPD    = 000484E8            SHR$_BADLOGIC  = 00001120            

ID_T_CHAN_INFO   00000045            JBC$_SCTERR    = 00048450            SHR$_BADLOGICPC= 00001150            

ID_T_DEF_DIR     00000051            JBC$_SMINVOPR  = 00048058            SHR$_BADLONG   = 00001020            

ID_T_JOB_CARD    000000D1            JBC$_SMINVOPT  = 00048060            SHR$_BADPRTY   = 00001180            

ID_T_PASSWORD    0000002A            JBC$_SMINVREQ  = 00048068            SHR$_BADQNAME  = 00001188            

ID_W_CRCHAN      00000000            JBC$_SMZEROJOB = 00048070            SHR$_BADTIME   = 00001190            

ID_W_MBCHAN      0000003B            JBC$_SNDRESP   = 00048420            SHR$_BADVALUE  = 00001110            

INP$EOJ          00000262 RG    04   JBC$_SYMBASN   = 00048440            SHR$_BADWORD   = 00001028            

INP$EOJ_JOB      0000026B RG    04   JBC$_SYMBCRE   = 000484D8            SHR$_BEGIN     = 00001030            

INP$GETCARD      ********   X   04   JBC$_SYMBDSAB  = 00048078            SHR$_BEGIND    = 00001038            

INP$G_DATA       ********   X   05   JBC$_SYMBWRT   = 00048448            SHR$_BEGINT    = 00001040            

INP$G_SYMMSG     ********   X   04   JBC$_SYMDEL    = 00048470            SHR$_CLICB     = 00001048            

INP$K_CREFN    = 00000001            JBC$_UAFOPN    = 000484A0            SHR$_CLOSEDEL  = 00001218            

INP$K_GENEFN   = 00000000            JBC$_UNESYMMSG = 000484C0            SHR$_CLOSEIN   = 00001050            

INP$K_JOBCRDSZ = 00000100            JBC$_USERVAL   = 00048498            SHR$_CLOSEOUT  = 00001058            

INP$K_MAXRSS   = 00000080            JOB_EXIT         00000086 R     04   SHR$_CONFDEL   = 000011F8            

INP$K_OPTBUFSZ = 00000048            JOB_KEY          00000000 RG    06   SHR$_COPIEDB   = 00001060            

INP$K_TIMEFN   = 00000002            JOB_STATE        00000000 RG    05   SHR$_COPIEDR   = 00001068            

INP$K_UAFBUFSZ = 00000100            LIB$CVT_TIME     ********   X   04   SHR$_CREATED   = 00001070            

PARSECMD        - INPUT SYMBIONT COMMAND PARSER                  21-AUG-1978 21:40:10   VAX-11 MACRO X0.3-11               Page  16

SYMBOL TABLE                                                                                                                     (1)



SHR$_DELETED   = 00001200            SMO$K_JOBCOPY  = 00000023            TPA$L_COUNT      00000000            

SHR$_DELINTERR = 00001240            SMO$K_JOBLIM   = 0000004C            TPA$L_NUMBER     0000001C            

SHR$_DELVER    = 00001208            SMO$K_JOBNAME  = 00000027            TPA$L_OPTIONS    00000004            

SHR$_DIRTOOBUS = 00001220            SMO$K_JOBPRI   = 00000022            TPA$L_PARAM      00000020            

SHR$_ENDED     = 00001078            SMO$K_LOWER    = 00000025            TPA$L_STRINGCNT  00000008            

SHR$_ENDEDD    = 00001080            SMO$K_NEXTJOB  = 00000060            TPA$L_STRINGPTR  0000000C            

SHR$_ENDEDT    = 00001088            SMO$K_NOBRSTPAG= 00000003            TPA$L_TOKENCNT   00000010            

SHR$_FILNOTDEL = 000011F0            SMO$K_NODEFBRST= 00000047            TPA$L_TOKENPTR   00000014            

SHR$_FILNOTPUR = 00001230            SMO$K_NODEFFLAG= 00000049            TPA$M_ABBREV   = 00000002            

SHR$_FILPURGED = 00001250            SMO$K_NOFEED   = 00000008            TPA$M_ABBRFM   = 00000004            

SHR$_HASHCONCAT= 000011D8            SMO$K_NOFLAGPAG= 00000005            TPA$M_AMBIG    = 00010000            

SHR$_HIGHVER   = 00001148            SMO$K_NOGENDEV = 00000045            TPA$M_BLANKS   = 00000001            

SHR$_IDXCONCAT = 00001138            SMO$K_NOGENPRT = 00000042            TPA$V_ABBREV   = 00000001            

SHR$_INCOMPAT  = 000011E0            SMO$K_NOLOWER  = 00000028            TPA$V_ABBRFM   = 00000002            

SHR$_NEWFILES  = 00001090            SMO$K_NOTRMDEV = 0000004B            TPA$V_AMBIG    = 00000010            

SHR$_NOFILPURG = 00001228            SMO$K_PAGCNT   = 00000009            TPA$V_BLANKS   = 00000000            

SHR$_NOJOBID   = 000011A0            SMO$K_PAGHDR   = 00000006            TPA$_ALPHA     = 000001EE            

SHR$_NOJOBNAME = 000011A8            SMO$K_PARAMS   = 00000026            TPA$_ANY       = 000001ED            

SHR$_NOQUEUE   = 00001198            SMO$K_REQUEUE  = 00000070            TPA$_BLANK     = 000001F2            

SHR$_NOTCMPLT  = 000011C0            SMO$K_RLSTIM   = 00000020            TPA$_DECIMAL   = 000001F3            

SHR$_NOTCOPIED = 000011B8            SMO$K_SPCCNT   = 00000062            TPA$_DIGIT     = 000001EF            

SHR$_NOVALUE   = 00001100            SMO$K_TOPOFILE = 00000061            TPA$_EOS       = 000001F7            

SHR$_NOWILD    = 00001128            SMO$K_TRMDEV   = 0000004A            TPA$_EXIT      = FFFFFFFF            

SHR$_OPENIN    = 00001098            SMR$K_ABORT    = 0000000E            TPA$_FAIL      = FFFFFFFE            

SHR$_OPENOUT   = 000010A0            SMR$K_ADDFIL   = 0000000A            TPA$_HEX       = 000001F5            

SHR$_OVERLAY   = 000010A8            SMR$K_ALTER    = 0000000D            TPA$_KEYWORD   = 00000100            

SHR$_PARSEFAIL = 00001248            SMR$K_CLSJOB   = 0000000B            TPA$_LAMBDA    = 000001F6            

SHR$_PURGEVER  = 00001210            SMR$K_CREJOB   = 00000009            TPA$_MAXKEY    = 000000DC            

SHR$_READERR   = 000010B0            SMR$K_DELETE   = 00000001            TPA$_OCTAL     = 000001F4            

SHR$_RELCONCAT = 00001140            SMR$K_DETINIT  = 00000010            TPA$_STRING    = 000001F0            

SHR$_REPLACED  = 000010B8            SMR$K_ENTER    = 00000008            TPA$_SUBXPR    = 000001F8            

SHR$_RMSERROR  = 000011C8            SMR$K_INITIAL  = 00000000            TPA$_SYMBOL    = 000001F1            

SHR$_SEARCHFAIL= 00001238            SMR$K_JUSTIFY  = 00000006            TPARSE_BLOCK     00000000 R     03   

SHR$_SYNTAX    = 000010F8            SMR$K_MERGE    = 00000004            UAF$B_FLAGS      0000008B            

SHR$_SYSERROR  = 000011B0            SMR$K_PAUSE    = 00000003            UAF$B_PRI        0000008A            

SHR$_SYSERRORPC= 000010F0            SMR$K_REDIRECT = 00000005            UAF$C_LENGTH     000000B8            

SHR$_TEXT      = 00001130            SMR$K_RELEASE  = 0000000F            UAF$K_LENGTH     000000B8            

SHR$_UNXPCTSTS = 000011D0            SMR$K_RMVJOB   = 0000000C            UAF$L_CPUTIM     00000054            

SHR$_VALERR    = 000011E8            SMR$K_START    = 00000002            UAF$L_LEVEL      0000008C            

SHR$_WILDCONCAT= 000010C0            SMR$K_STOP     = 00000007            UAF$L_PWD        0000000C            

SHR$_WILDOUTVER= 000010C8            SMR$K_SYNCJOB  = 00000011            UAF$L_UIC        00000018            

SHR$_WRITEERR  = 000010D0            SM_K_SIZE        0000008A            UAF$Q_PRIV       00000058            

SMO$K_BRSTPAG  = 00000002            SM_T_DEVNAME     00000012            UAF$T_ACCOUNT    00000010            

SMO$K_COPIES   = 0000000A            SM_T_FILENAME    0000002E            UAF$T_DEFCLI     0000004C            

SMO$K_CURFORM  = 00000040            SM_T_OPTIONS     00000042            UAF$T_DEFDEV     0000003C            

SMO$K_DEFBRST  = 00000046            SM_T_QUEUE       00000002            UAF$T_DEFDIR     0000001C            

SMO$K_DEFFLAG  = 00000048            SM_W_DIRID       00000028            UAF$T_LGICMD     00000090            

SMO$K_DELETE   = 00000001            SM_W_FILEID      00000022            UAF$T_OWNER      00000074            

SMO$K_DETJOB   = 00000043            SM_W_REQUEST     00000000            UAF$T_USERNAME   00000000            

SMO$K_DISWAP   = 0000004E            START_PARAM      00000117 R     04   UAF$V_DEFCLI   = 00000001            

SMO$K_DOUBLE   = 00000007            SYS$CMKRNL       ********   X   04   UAF$V_DISCTLY  = 00000000            

SMO$K_FLAGPAG  = 00000004            TOKEN_DESC       00000078 R     03   UAF$W_ASTLM      00000070            

SMO$K_FORMTYPE = 00000024            TPA$B_MCOUNT     00000007            UAF$W_BIOLM      00000060            

SMO$K_GENDEV   = 00000044            TPA$C_LENGTH0    00000024            UAF$W_BYTLM      00000062            

SMO$K_GENPRT   = 00000041            TPA$K_COUNT0   = 00000008            UAF$W_DFWSCNT    0000006E            

SMO$K_HOLD     = 00000021            TPA$K_LENGTH0    00000024            UAF$W_DIOLM      00000064            

SMO$K_INIPRI   = 0000004D            TPA$L_CHAR       00000018            UAF$W_FILLM      00000066            

PARSECMD        - INPUT SYMBIONT COMMAND PARSER                  21-AUG-1978 21:40:10   VAX-11 MACRO X0.3-11               Page  17

SYMBOL TABLE                                                                                                                     (1)



UAF$W_FILPRT     00000088            

UAF$W_GRP        0000001A            

UAF$W_MEM        00000018            

UAF$W_PGFLQUOTA  00000072            

UAF$W_PRCCNT     0000006A            

UAF$W_TQCNT      00000068            

UAF$W_WSQUOTA    0000006C            

ZAP_QUOTE        00000182 R     04   

_$$_           = 000000EF            





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$            000001D1      02     NOPIC   USR   CON   ABS   LCL NOSHR   EXE   RD    WRT BYTE  

INP_RWDATA       00000080      03     NOPIC   USR   CON   REL   LCL NOSHR NOEXE   RD    WRT LONG  

INP_PURE         000002A7      04     NOPIC   USR   CON   REL   LCL NOSHR   EXE   RD  NOWRT LONG  

LIB$STATE$       00000137      05     NOPIC   USR   CON   REL   LCL   SHR NOEXE   RD  NOWRT BYTE  

LIB$KEY0$        00000018      06     NOPIC   USR   CON   REL   LCL   SHR NOEXE   RD  NOWRT WORD  

LIB$KEY1$        0000006F      07     NOPIC   USR   CON   REL   LCL   SHR NOEXE   RD  NOWRT BYTE  





THERE WERE NO ERRORS OR WARNINGS.

10322. BYTES LEFT IN FREE MEMORY POOL.

2890. BYTES OF RECLAIMED MEMORY.

OBJ$:PARSECMD,LIS$:PARSECMD/-SP=SRC$:PREFIX,SRC$:PARSECMD

11 MLB DIR RDS - 634 GETS TO DEFINE 22 MACROS. 94 INTER. FILE WRITES. 

