STARTR	MACRO M1110  21-AUG-78 21:52

TABLE OF CONTENTS



    32-   10	VAX-11 MACRO SETUP ROUTINE FOR PASS 1

    33-   61	INIT		STORAGE AND DIRECTIVE INITIALIZATION

    34-  106	STARTUP		INITIALIZE FILES

    35-  167	OPEN FILES FOR OUTPUT AND THEN INPUT

    37-  279	SYSLIB		LOCATE SYSTEM MACRO LIBRARY

    38-  310	COMMAND LINE ERROR MESSAGES

STARTR	MACRO M1110  21-AUG-78 21:52  PAGE 26





      1						.IDENT	\X03.11\

      2					;

      3					; COPYRIGHT (C) 1977, 1978

      4					; DIGITAL EQUIPMENT CORPORATION, MAYNARD MASSACHUSETTS 01754

      5					;

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

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

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

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

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

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

     12					; REMAIN IN DEC.

     13					;

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

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

     16					; CORPORATION.

     17					;

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

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

     20					;

     21

     22					;++

     23					; FACILITY:	VAX-11 MACRO OBJECT MODULE LIBRARY "MAR.OLB"

     24					;

     25					; ABSTRACT:	THIS MODULE IS PART OF THE VAX-11 MACRO ASSEMBLER, ITS DESCRIPTION

     26					;		IS ON THE FOLLOWING PAGE.

     27					;

     28					;

     29					; ENVIRNOMENT:	VAX-11 MACRO RUNS ON ANY VAX-11 WITH COMPATIBILITY MODE, UNDER

     30					;		THE CME (COMPATIBILITY MODE EMULATOR) OF VAX/VMS OR ON A PDP-11

     31					;		WITH EXTENDED INSTRUCTIONS UNDER RSX-11/M.

     32					;

     33					; AUTHOR:	STEVE POULSEN, CREATION DATE:  22-JUL-76

     34					;		DALE A. ROEDGER, 10-JAN-77 - 19-DEC-77

     35					;		DAVE N. CUTLER

     36					;		BENN L. SCHREIBER

     37					;

     38					; MODIFIED BY:

     39					;

     40					;--

     41					.IF NDF $DATA$

STARTR	MACRO M1110  21-AUG-78 21:52  PAGE 32





      1					.TITLE	STARTR

      2	000000				.PSECT	STARTR

      3

      4					.MCALL	GCML$,	CSI$1,	CSI$2,	EXIT$S, EXST$S

      5					.MCALL	OFNB$,	CLOSE$,	QIOW$S,	WSIG$S

      6

      7		000020 			FA.TMP	= 20

      8

      9

     10					.SBTTL	VAX-11 MACRO SETUP ROUTINE FOR PASS 1

     11					;++

     12					;

     13					; THIS ROUTINE INITIALIZES THE USER HASH TABLES, AND THE DEFAULT PSECTS,

     14					; AND THE ENABLE/DISABLE OPTIONS.

     15					; IN ADDITION IT INITIALIZES SOME VARIABLES THAT ONLY GET INITIALIZED ONCE

     16					; PER ASSEMBLY.

     17					;

     18					;--

     19

     20	000000				SETUP::

     21	000000					LET R1	:= #IDENTB			; POINT TO USER SYMBOL TABLE

     22	000004					LET R2	:= #MACNAM			; POINT TO MACRO NAME TABLE

     23	000010					REPEAT THRU R0 := #HASHSZ		; ZERO THE HASH TABLES

     24	000014					    LET (R1)+ := 0			;

     25	000016					    LET (R2)+ := 0			;

     26	000020					END;R

     27	000022					LET R2	:= #EN.PNC			; POINT TO LIST OF ENABLE OPTIONS

     28	000026					REPEAT

     29	000026					    LET SYMVL2(R2) := SYMVL1(R2)	; RESET SWITCHES

     30	000034					    LET R2	:= (R2)			; POINT TO NEXT

     31	000036					UNTIL R2 IS EQ				; ALL DONE!

     32	000042					LET FREEPT	:= #FREEST		; INITIALIZE FREE STORAGE

     33	000050					LET CORLST	:= 0			; NO FREE BLOCKS

     34	000054					LET TOCFLG	:= FALSE		; "TABLE OF CONTENTS" NOT PRINTED

     35	000060					LET FRMPTR	:= #FRMBUF		; POINT TO BUFFER START

     36	000066					LET LSB		:= 0			; INITIALIZE LOCAL SYMBOL BLOCK

     37	000072					LET ERRCT	:= 0			; NO ERRORS YET

     38	000076					LET WARNCT	:= 0			; NO WARNINGS YET

     39	000102					LET LISTIT	:= TRUE			; ASSUME LISTING

     40	000110					LET CRSYM	:= #30000.		; FIRST CREATED SYMBOL #

     41	000116					LET PSECTN	:= 0			; INITIALIZE PSECT LIST HEAD

     42	000122					LET R0		:= #MAIN		; ABSOLUTE PSECT

     43	000126					LET PSECOP(R0)	:= #S.DF		; ABSOLUTE PSECT

     44	000134					LET SYMFLAG(R0)	:= #S.REF		; TREAT AS IF PSECT REFERENCED

     45	000142					LET R0		:= #BLNKP		; DEFAULT PSECT

     46	000146					LET PSECOP(R0)	:= #S.DF+710		; DEFINED, REL, LCL, EXE, RD, WRT

     47	000154					LET SYMSEG(R0)	:B= #1			; SEGMENT 1

     48	000162					LET SYMVL1(R0)	:= 0			; NOTHING ALLOCATED YET

     49	000166					LET SYMVL2(R0)	:= 0			;

     50	000172					LET PSECTP	:= R0			; SET PSECT

     51	000176					LET PC1		:= 0			; START AT PC=0

     52	000202					LET PC2		:= 0			;

     53	000206					LET IDENTP	:= 0			; NO IDENT YET

     54	000212					LET TITLEP	:= 0			; NO TITLE YET

     55	000216					LET TRNSFR	:= 0			; NO TRANSFER ADDRESS

     56	000222					LET PSTNUM	:= #1			; FIRST SEGMENT

     57	000230					LET PSTMAX	:= #1			; ONLY SEGMENT SO FAR

STARTR	MACRO M1110  21-AUG-78 21:52  PAGE 32-1

VAX-11 MACRO SETUP ROUTINE FOR PASS 1



     58	000236					LET EVALEXPR	:= TRUE			; EVALUATE EXPRESSIONS

     59	000244					RETURN

STARTR	MACRO M1110  21-AUG-78 21:52  PAGE 33

INIT		STORAGE AND DIRECTIVE INITIALIZATION



     61					.SBTTL	INIT		STORAGE AND DIRECTIVE INITIALIZATION

     62					;++

     63					;

     64					; THIS ROUTINE INITIALIZES THE LISTING SYMBOL BLOCKS, AND THE INPUT

     65					; CONTEXT BLOCK.  IN ADDITION IT INITIALIZES VARIOUS SYMBOLS FOR PASS 1

     66					; AND PASS 2.

     67					;

     68					;--

     69

     70	000246				INIT::

     71	000246				    LET LPTCT	:= 0				; ZERO PAGE LINE COUNTER

     72	000252				    LET LPTPAG	:= 0				; FIRST LISTING PAGE NUMBER

     73	000256				    LET SRCPAG	:= #1				; FIRST SOURCE PAGE NUMBER

     74	000264				    LET LISTLV	:= 0				; FIRST LISTING LEVEL

     75	000270				    LET SBTTLN	:= 0				; NO SUBTITLE

     76	000274				    LET LINENM	:= 0				; FIRST LINE

     77	000300				    LET LINBAS	:= 0				; INITIALIZE LINE BASE TOO

     78	000304				    LET IFLVL	:= 0				; IF LEVEL STARTS AT ZERO

     79	000310				    LET IFSTAT	:= FALSE			; NOT IF STATEMENT

     80	000314				    LET IRPSTAT := FALSE			; NOT IRP

     81	000320				    LET LASTML	:= #-1				; NO MACRO LIBRARIES OPEN

     82	000326	005067 	000000G			CLR	MLBIND			;CLEAR POINTER TO MACRO INDEX BUFFER

     83	000332				    LET NEWPND	:= FALSE			; NO NEW PAGE PENDING

     84	000336				    LET P2	:= FALSE			; NOT PASS 2

     85	000342				    LET R2	:= #LS.LST			; POINT TO LISTING DIRECTIVES

     86	000346				    REPEAT					; ONCE PER DIRECTIVE

     87	000346					LET SYMVL2(R2)	:= SYMVL1(R2)		; RESET DEFAULTS

     88	000354					LET R2		:= (R2)			; POINT TO NEXT

     89	000356				    UNTIL R2 IS EQ				; UNTIL END OF LIST

     90

     91	000362				    LET R0	:= #FREEND - #M.ARGS		; ALLOCATE INITIAL INPUT BLOCK

     92	000372				    LET INPUTP	:= R0				; INPUT BLOCK POINTER

     93	000376				    LET FRIEND	:= R0

     94	000402				    LET M.LINK(R0)	:= R0			; LINK TO SELF

     95	000406				    LET M.NXTL(R0)	:= 0			; NEXT LINE POINTER

     96	000412				    LET M.GETL(R0)	:= #GETLIN		; INPUT ROUTINE POINTER

     97	000420				    LET M.IFLV(R0)	:= 0			; IF LEVEL

     98	000424				    LET M.IFVL(R0)	:= 0			; IF VALUES

     99	000430				    LET M.ARGC(R0)	:= 0			; NO MACRO ARGS

    100	000434				    LET M.END(R0)	:= R0			; END OF CHAIN

    101	000440				    LET CONTLN		:= TRUE			; ALLOW LINE CONTINUATION

    102	000446				    LET SAVPTR		:= #SAVBUF		; PSECT CONTEXT STACK

    103	000454				    RETURN

    104

STARTR	MACRO M1110  21-AUG-78 21:52  PAGE 34

STARTUP		INITIALIZE FILES



    106					.SBTTL	STARTUP		INITIALIZE FILES

    107					;

    108					; THIS PROCEDURE IS CALLED TO INITIALIZE FILES AND TO READ

    109					; THE USER'S COMMAND LINE.

    110					;

    111

    112	000456				STARTUP::

    113	000456					CALL	IOROOT				; LOAD IOTREE

    114	000462					CALL	CLOSET				; CLOSE ALL FILES

    115	000466	005067 	000000G			CLR	CMDFLG				; CLEAR COMMAND SWITCH FLAGS

    116	000472	012700 	000000G			MOV	#TTYBLK,R0			; POINT TO FILE DESCRIPTOR BLK

    117	000476	012701 	000000C			MOV	#TTYBLK+F.FNB,R1		; POINT TO FILE NAME BLOCK

    118	000502	005002 				CLR	R2				; NO DATA SET DESC

    119	000504	012703 	000000G			MOV	#TTYFIL,R3			; DEFAULT FNB

    120	000510	004767 	000000G			JSR	PC,.PARSE			; PARSE FILE NAME

    121	000514				5$:	OFNB$	R0				; OPEN THE TTY

    122	000520	103003 				BCC	10$				; SKIP IF NO ERRORS

    123	000522	004767 	000000G			JSR	PC,OPNFAIL			; FAIL TO OPEN TERMINAL

    124	000526	000772 				BR	5$				; RETRY

    125	000530				10$:	GCML$	#CMLBLK				; READ COMMAND LINE

    126	000544	103065 				BCC	40$				; SKIP IF COMMAND OKAY

    127	000546	012700 	000140G			MOV	#CMLBLK+G.ERR,R0		; GET ADDRESS OF ERROR BYTE

    128	000552	122710 	177766 			CMPB	#GE.EOF,(R0)			; END OF FILE (^Z)

    129	000556	001444 				BEQ	30$				; YES, EXIT

    130	000560	122710 	177776 			CMPB	#GE.OPR,(R0)			; COMMAND FILE OPEN ERROR?

    131	000564	001007 				BNE	15$				; SKIP IF NOT

    132	000566					ERRPRT	CMDFOP				;

    133	000602	000752 				BR	10$				; GET NEW COMMAND

    134	000604	122710 	177775 		15$:	CMPB	#GE.BIF,(R0)			; COMMAND FILE SYNTAX ERROR?

    135	000610	001007 				BNE	20$				; SKIP IF NOT

    136	000612					ERRPRT	CMDFSY				;

    137	000626	000740 				BR	10$				; GET NEW COMMAND

    138	000630	122710 	177774 		20$:	CMPB	#GE.MDE,(R0)			; EXCEEDED NESTING LEVEL?

    139	000634	001007 				BNE	25$				; SKIP IF NOT

    140	000636					ERRPRT	CMDNST				;

    141	000652	000726 				BR	10$				; GET NEW COMMAND

    142	000654				25$:	ERRPRT	CMDIOR				; COMMAND I/O ERROR

    143	000670	016700 	000000G		30$:	MOV	STATUS,R0			; GET EXIT STATUS

    144	000674	100002 				BPL	35$				; IF STATUS PRESENT, GO EXIT

    145	000676	012700 	000001 			MOV	#EX$SUC,R0			; ELSE ASSUME SUCCESS

    146	000702				35$:	EXST$S	R0				; TRY AN EXIT WITH STATUS

    147	000712					EXIT$S					; EXIT NORMALLY IF EXST FAILS

    148

    149	000720	005067 	000000G		40$:	CLR	CURMLB				; NO MACRO LIBRARIES YET

    150	000724	004767 	000776 			JSR	PC,SYSLIB			; LOCATE SYSTEM MACRO LIBRARY

    151	000730	103007 				BCC	42$				; SYSTEM LIBRARY FOUND

    152	000732					ERRPRT	NOSYSL				; NO SYSTEM LIBRARY

    153	000746	000750 				BR	30$				; EXIT, TO CONTINUE IS FUTILE

    154	000750	012705 	000000G		42$:	MOV	#CSIBLK,R5			; POINT TO CSI BLOCK

    155	000754	012700 	000000G			MOV	#CMLBLK,R0			; POINT TO COMMAND BLOCK

    156	000760	012767 	000002G	000000G		MOV	#CSIBLK+C.CMLD,CMLINE		; POINT TO CSI CMD LINE DESC.

    157	000766	016065 	000150 	000004 		MOV	G.CMLD+2(R0),C.CMLD+2(R5)	; ADDRESS OF COMMAND LINE

    158	000774	016065 	000146 	000002 		MOV	G.CMLD(R0),C.CMLD(R5)		; LENGTH OF LINE

    159	001002	001652 				BEQ	10$				; ZERO LENGTH, TRY AGAIN

    160	001004					CSI$1	R5				; CHECK THE LINE

    161	001012	103404 				BCS	43$				; SYNTAX ERROR

    162	001014	132765 	000040 	000001 		BITB	#CS.EQU,C.STAT(R5)		; IS THERE AN EQUALS SIGN IN LINE

STARTR	MACRO M1110  21-AUG-78 21:52  PAGE 34-1

STARTUP		INITIALIZE FILES



    163	001022	001007 				BNE	45$				; SKIP IF EQUALS SIGN

    164	001024				43$:	ERRPRT	CMDSYN,CSIBLK+C.CMLD		; COMMAND SYNTAX ERROR

    165	001040	000606 				BR	STARTUP				; START OVER

STARTR	MACRO M1110  21-AUG-78 21:52  PAGE 35

OPEN FILES FOR OUTPUT AND THEN INPUT



    167					.SBTTL	OPEN FILES FOR OUTPUT AND THEN INPUT

    168					;

    169					; OPEN INTERMEDIATE CODE FILE

    170					;

    171	001042	012700 	000000G		45$:	MOV	#INTBLK,R0			; POINT TO INTERMEDIATE FILE

    172	001046	012701 	000000G			MOV	#INTFIL,R1			; POINT TO FNB

    173	001052	004767 	000000G			JSR	PC,.GTDID			; GET DIRECTORY ID

    174	001056	062700 	000000G			ADD	#F.FNB,R0			; POINT TO FNB IN FDB

    175	001062	012703 	000000C			MOV	#<INTFLN-INTFIL+1>/2,R3		; GET FNB LENGTH

    176	001066	012120 			49$:	MOV	(R1)+,(R0)+			; COPY FNB INTO FDB

    177	001070	077302 				SOB	R3,49$				;

    178	001072	012700 	000000G		50$:	MOV	#INTBLK,R0			; GET ADDRESS OF FDB

    179	001076	016760 	000000G	000000G		MOV	INTCTG,F.CNTG(R0)		; SET INITIAL ALLOCATION

    180	001104	016760 	000000G	000000G		MOV	INTALO,F.ALOC(R0)		; SET EXTENSION SIZE

    181	001112					OFNB$	R0,#FO.WRT!FA.CRE!FA.TMP	; OPEN TEMP FILE

    182	001124	103024 				BCC	55$				; SKIP IF SUCCESSFUL

    183	001126	126027 	000000G	000000G		CMPB	F.ERR(R0),#IE.NOD		; INSUFFICIENT NODES?

    184	001134	001404 				BEQ	52$				; SKIP TO WAIT

    185	001136	126027 	000000G	000000G		CMPB	F.ERR(R0),#IE.UPN		; INSUFFICIENT NODES?

    186	001144	001004 				BNE	53$				; OPEN ERROR

    187	001146				52$:	WSIG$S					; WAIT FOR SIGNIFICANT EVENT

    188	001154	000746 				BR	50$				; TRY AGAIN

    189	001156				53$:	ERRPRT	OPNWRK				; WORK FILE OPEN FAILURE

    190	001172	000167 	177260 			JMP	STARTUP				; GET NEXT COMMAND

    191	001176	004767 	000000G		55$:	JSR	PC,.MRKDL			; MARK FOR DELETION

    192					;

    193					; OPEN OBJECT CODE FILE

    194					;

    195	001202	012701 	000000G			MOV	#OBJFIL,R1			; OBJECT FILE SPECS

    196	001206	012703 	000000G			MOV	#OBJBLK,R3			;

    197	001212					CSI$2	R5,OUTPUT,#OBJ.SW		; SCAN SWITCHES AND FILE

    198	001232	103446 				BCS	58$				; EXIT IF ERRORS

    199	001234	132765 	000005 	000001 		BITB	#CS.NMF!CS.DVF,C.STAT(R5)	; NAME, OR DEVICE ?

    200	001242	001415 				BEQ	57$				; SKIP IF NO OBJECT FILE

    201	001244	016763 	000000G	000000G		MOV	OBJCTG,F.CNTG(R3)		; SET INITIAL ALLOCATION

    202	001252	016763 	000000G	000000G		MOV	OBJALO,F.ALOC(R3)		; SET EXTENSION SIZE

    203	001260	004767 	000000G			JSR	PC,OPENIT			; OPEN OBJECT FILE

    204	001264	103002 				BCC	56$				; SKIP IF OPEN OKAY

    205	001266	000167 	000420 			JMP	140$				; DELETE INTERMEDIATE FILE

    206	001272	004767 	000000G		56$:	JSR	PC,SWSCN			; SCAN SWITCHES

    207					;

    208					; OPEN LISTING FILE

    209					;

    210	001276	005067 	000000G		57$:	CLR	LSTXST				; INITIALIZE LIST FILE FLAG

    211	001302	132765 	000020 	000001 		BITB	#CS.MOR,C.STAT(R5)		; CHECK FOR LISTING FILE

    212	001310	001454 				BEQ	60$				; NO, JUST EXIT

    213	001312	012701 	000000G			MOV	#LSTFIL,R1			; LISTING SPECS

    214	001316	012703 	000000G			MOV	#LSTBLK,R3			;

    215	001322	016767 	000000G	000000G		MOV	SPOOLD,SPOOLF			; SET SPOOL DEFAULT

    216	001330					CSI$2	R5,OUTPUT,#LST.SW		; SCAN FILE AND SWITCHES

    217	001350	103531 			58$:	BCS	100$				; EXIT IF ERRORS

    218	001352	132765 	000005 	000001 		BITB	#CS.NMF!CS.DVF,C.STAT(R5)	; NAME OR DEVICE ?

    219	001360	001455 				BEQ	70$				; SKIP IF NO LISTING

    220	001362	016763 	000000G	000000G		MOV	LSTCTG,F.CNTG(R3)		; SET INITIAL ALLOCATION

    221	001370	016763 	000000G	000000G		MOV	LSTALO,F.ALOC(R3)		; SET EXTENSION SIZE

    222	001376	004767 	000000G			JSR	PC,OPENIT			; OPEN LISTING FILE

    223	001402	103537 				BCS	135$				; DELETE ".OBJ" - GET NEW CMD

STARTR	MACRO M1110  21-AUG-78 21:52  PAGE 35-1

OPEN FILES FOR OUTPUT AND THEN INPUT



    224	001404	005367 	000000G			DEC	LSTXST				; THERE IS A LISTING FILE

    225	001410	004767 	000000G			JSR	PC,SWSCN			; SCAN THE SWITCHES

    226	001414	132765 	000020 	000001 		BITB	#CS.MOR,C.STAT(R5)		; MORE OUTPUT FILES?

    227	001422	001407 				BEQ	60$				; NO

    228	001424					ERRPRT	CMDTOO				; TOO MANY OUTPUT FILES

    229	001440	000514 				BR	130$				; DELETE OUTPUTS - GET NEW CMD

    230

    231	001442	132767 	000000G	000000C	60$:	BITB	#FD.REC,LSTBLK+F.RCTL		; RECORD ORIENTED DEVICE?

    232	001450	001421 				BEQ	70$				; NOPE

    233	001452	116700 	000000C			MOVB	LSTBLK+F.LUN,R0			; GET LIST DEV'S LUN

    234	001456					QIOW$S	#IO.ATT,R0			; ATTACH LISTING DEVICE

STARTR	MACRO M1110  21-AUG-78 21:52  PAGE 36

OPEN FILES FOR OUTPUT AND THEN INPUT



    236					;

    237					; OPEN FIRST INPUT FILE

    238					;

    239	001514	012701 	000000G		70$:	MOV	#VAXFIL,R1			; INPUT FILE SPECS

    240	001520	012703 	000000G			MOV	#VAXBLK,R3			;

    241	001524					CSI$2	R5,INPUT,#INP.SW		; SCAN FILE AND SWITCHES

    242	001544	103442 				BCS	105$				; EXIT IF ERRORS

    243	001546	132765 	000005 	000001 		BITB	#CS.NMF!CS.DVF,C.STAT(R5)	; NAME OR DEVICE FOR INPUT ?

    244	001554	001013 				BNE	75$				; SKIP IF DEVICE GIVEN

    245	001556	132765 	000020 	000001 		BITB	#CS.MOR,C.STAT(R5)		; ANOTHER FILE ?

    246	001564	001353 				BNE	70$				; TRY FOR NEXT FILE

    247	001566					ERRPRT	CMDNOI				; NO INPUT FILES

    248	001602	000433 				BR	130$				; DELETE OUTPUTS - GET NEW CMD

    249	001604	032765 	000000G	000024 	75$:	BIT	#SWM.ML,C.MKW1(R5)		; MACRO LIBRARY ?

    250	001612	001402 				BEQ	80$				; NOPE

    251	001614	012701 	000000G			MOV	#MLBFIL,R1			; YES, ASSUME LIBRARY

    252	001620	004767 	000000G		80$:	JSR	PC,OPENIT			; OPEN THE FILE

    253	001624	103422 				BCS	130$				; DELETE OUTPUTS - GET NEW CMD

    254

    255	001626	004767 	000000G			JSR	PC,SWSCN			; SCAN SWITCHES

    256	001632	000207 				RTS	PC				; ALL DONE

    257

    258

    259

    260

    261	001634				100$:	ERRPRT	OUTSPC,CSIBLK+C.FILD		; OUTPUT FILE SPEC ERROR

    262	001650	000406 				BR	110$				; EXIT

    263	001652				105$:	ERRPRT	INPSPC,CSIBLK+C.FILD		; INPUT FILE SPEC ERROR

    264	001666	000167 	000000G		110$:	JMP	ABORT				; TERMINATE ASSEMBLY

    265

    266

    267

    268	001672	012700 	000000G		130$:	MOV	#LSTBLK,R0			; POINT TO LISTING FDB

    269	001676	004767 	000000G			JSR	PC,.DLFNB			; DELETE LISTING FILE

    270

    271	001702	012700 	000000G		135$:	MOV	#OBJBLK,R0			; POINT TO OBJECT FDB

    272	001706	004767 	000000G			JSR	PC,.DLFNB			; DELETE OBJECT FILE

    273

    274	001712	012700 	000000G		140$:	MOV	#INTBLK,R0			; POINT TO INTERMEDIATE FDB

    275	001716	004767 	000000G			JSR	PC,.DLFNB			; DELETE INTERMEDIATE FILE

    276

    277	001722	000167 	176530 			JMP	STARTUP				; GET NEW COMMAND

STARTR	MACRO M1110  21-AUG-78 21:52  PAGE 37

SYSLIB		LOCATE SYSTEM MACRO LIBRARY



    279					.SBTTL	SYSLIB		LOCATE SYSTEM MACRO LIBRARY

    280					;

    281					; CALLED DURING INITIALIZATION TO GET THE FILE ID OF THE SYSTEM

    282					; MACRO LIBRARY.

    283					;

    284

    285	001726				SYSLIB::					; FIND SYSTEM MLB

    286	001726					CLOSE$	#MLBBLK				; CLOSE LIBRARY FDB

    287	001736	010001 				MOV	R0,R1				; COPY POINTER

    288	001740	062701 	000000G			ADD	#F.FNB,R1			; POINT TO FNB

    289	001744	012702 	000000G			MOV	#MLBDSC,R2			; DATASET DESCRIPTOR

    290	001750	012703 	000000G			MOV	#MLBSYS,R3			; DEFAULT FNB

    291	001754	004767 	000000G			JSR	PC,.PARSE			; PARSE THE FILE NAME

    292	001760	103425 				BCS	1$				; ERROR?

    293	001762	004767 	000000G			JSR	PC,.FIND			; LOCATE FILE

    294	001766	103422 				BCS	1$				; NOT FOUND?

    295

    296	001770	016702 	000000G			MOV	FREEPT,R2			; GET SOME CORE

    297	001774	010267 	000000G			MOV	R2,CURMLB			; POINT TO IT

    298	002000	005022 				CLR	(R2)+				; NO OTHER LIBRARIES OPEN

    299	002002	012701 	000000C			MOV	#MLBBLK+F.FNB+N.FID,R1		; POINT TO FILE ID

    300	002006	012122 				MOV	(R1)+,(R2)+			; SAVE FILE ID

    301	002010	012122 				MOV	(R1)+,(R2)+

    302	002012	012122 				MOV	(R1)+,(R2)+

    303	002014	016122 	000000C			MOV	N.DVNM-<N.FID+6>(R1),(R2)+	; DEVICE NAME

    304	002020	016122 	000000C			MOV	N.UNIT-<N.FID+6>(R1),(R2)+	; UNIT NUMBER

    305	002024	005022 				CLR	(R2)+			;CLEAR NUMBER OF NAME TABLE ENTRIES

    306	002026	005022 				CLR	(R2)+			;CLEAR VIRTUAL BLOCK OF NAME TABLE

    307	002030	010267 	000000G			MOV	R2,FREEPT			; ALLOCATE THE BLOCK

    308	002034	000207 			1$:	RTS	PC				; AND RETURN

STARTR	MACRO M1110  21-AUG-78 21:52  PAGE 38

COMMAND LINE ERROR MESSAGES



    310					.SBTTL	COMMAND LINE ERROR MESSAGES

    311	000000				.PSECT	CMDMSG,D,GBL

    312

    313

    314	000000				CMDFOP:: CNTSTR	<MAR -- COMMAND FILE OPEN ERROR>

    315	000040				CMDFSY:: CNTSTR	<MAR -- COMMAND FILE SYNTAX ERROR>

    316	000102				CMDNST:: CNTSTR	<MAR -- COMMAND FILE NESTING LEVEL EXCEEDED>

    317	000156				CMDIOR:: CNTSTR	<MAR -- COMMAND FILE I/O ERROR>

    318

    319	000216				NOSYSL:: CNTSTR	<MAR -- NO SYSTEM LIBRARY FOUND>

    320	000256				CMDSYN:: CNTSTR	<MAR -- COMMAND SYNTAX ERROR>

    321	000314				OPNWRK::	CNTSTR	<MAR -- FAILED TO OPEN INTERMEDIATE FILE>

    322	000366				CMDTOO:: CNTSTR	<MAR -- TOO MANY OUTPUT FILES>

    323	000424				CMDNOI:: CNTSTR	<MAR -- NO INPUT FILE SPECIFIED>

    324	000464				OUTSPC:: CNTSTR	<MAR -- SWITCH ERROR ON OUTPUT FILE>

    325

    326		000001 			.END

STARTR	MACRO M1110  21-AUG-78 21:52  PAGE 38-1

SYMBOL TABLE



ABORT = ****** GX	E0      000022R     002	INP.SW= ****** GX	OBJFIL= ****** GX	S.FNAM= 000006

A3    = 000000   	E1      000042R     002	INTALO= ****** GX	OBJ.SW= ****** GX	S.FNB = 000036

BLNK  = 000040   	E2      000362R     002	INTBLK= ****** GX	OPENIT= ****** GX	S.FNBW= 000017

BLNKP = ****** GX	FA.CRE= ****** GX	INTCTG= ****** GX	OPNFAI= ****** GX	S.FNTY= 000004

B0      000014R     002	FA.TMP= 000020   	INTFIL= ****** GX	OPNWRK  000314RG    003	S.FTYP= 000002

B1      000026R     002	FD.REC= ****** GX	INTFLN= ****** GX	OUTSPC  000464RG    003	S.GLOB= 020000

B2      000346R     002	FF    = 000014   	IOROOT= ****** GX	PAR$$$= 000027   	S.LOCL= 001000

CLOSET= ****** GX	FO.WRT= ****** GX	IO.ATT= ****** GX	PC1   = ****** GX	S.NFEN= 000020

CMDFLG= ****** GX	FREEND= ****** GX	IRPSTA= ****** GX	PC2   = ****** GX	S.ODBG= 000040

CMDFOP  000000RG    003	FREEPT= ****** GX	LASTML= ****** GX	PSECCH= 000020   	S.REF = 000400

CMDFSY  000040RG    003	FREEST= ****** GX	LBLS0 = 000001   	PSECOP= 000016   	S.TKMS= 000377

CMDIOR  000156RG    003	FRIEND= ****** GX	LF    = 000012   	PSECTN= ****** GX	S.WEAK= 040000

CMDNOI  000424RG    003	FRMBUF= ****** GX	LFTANG= 000074   	PSECTP= ****** GX	TAB   = 000011

CMDNST  000102RG    003	FRMPTR= ****** GX	LINBAS= ****** GX	PSECV1= 000012   	TITLEP= ****** GX

CMDSYN  000256RG    003	F.ALOC= ****** GX	LINENM= ****** GX	PSECV2= 000014   	TOCFLG= ****** GX

CMDTOO  000366RG    003	F.CNTG= ****** GX	LISTIT= ****** GX	PSTMAX= ****** GX	TRNSFR= ****** GX

CMLBLK= ****** GX	F.ERR = ****** GX	LISTLV= ****** GX	PSTNUM= ****** GX	TTYBLK= ****** GX

CMLINE= ****** GX	F.FACC= ****** GX	LOWCAS= 000140   	P2    = ****** GX	TTYFIL= ****** GX

COMMA = 000054   	F.FNB = ****** GX	LPTCT = ****** GX	RGTANG= 000076   	TYPS0 = 000000

CONTLN= ****** GX	F.LUN = ****** GX	LPTLEN= 000074   	RTNVAL=%000000   	VAXBLK= ****** GX

CORLST= ****** GX	F.RCTL= ****** GX	LPTPAG= ****** GX	R6    =%000006   	VAXFIL= ****** GX

CR    = 000015   	GETLIN= ****** GX	LSB   = ****** GX	R7    =%000007   	WARNCT= ****** GX

CRSYM = ****** GX	GE.BIF= 177775   	LSTALO= ****** GX	SAVBUF= ****** GX	$DIDDO= 000000

CSIBLK= ****** GX	GE.CLO= 000004   	LSTBLK= ****** GX	SAVPTR= ****** GX	$E$   = 000001

CS.DIF= 000002   	GE.COM= 000001   	LSTCTG= ****** GX	SBTTLN= ****** GX	$F$   = 000000

CS.DVF= 000004   	GE.CON= 000020   	LSTFIL= ****** GX	SEMI  = 000073   	$I$   = 000001

CS.EQU= 000040   	GE.EOF= 177766   	LSTXST= ****** GX	SETUP   000000RG    002	$L    = 000003

CS.INP= 000001   	GE.IND= 000002   	LST.SW= ****** GX	SPACE = 000040   	$LL   = 000002

CS.MOR= 000020   	GE.IOR= 177777   	LS.LST= ****** GX	SPOOLD= ****** GX	$L$   = 000000

CS.NMF= 000001   	GE.LC = 000010   	MACNAM= ****** GX	SPOOLF= ****** GX	$O$   = 000000

CS.OUT= 000002   	GE.MDE= 177774   	MAIN  = ****** GX	SRCPAG= ****** GX	$R    = 177777

CS.WLD= 000010   	GE.OPR= 177776   	MLBBLK= ****** GX	STARTU  000456RG    002	$T    = 000002

CURMLB= ****** GX	GE.RBG= 177730   	MLBDSC= ****** GX	STATUS= ****** GX	$TT$  = 000464R     003

C.CMLD= 000002   	GE.SIZ= 000040   	MLBFIL= ****** GX	SWM.ML= ****** GX	$T1   = 000005

C.DEVD= 000006   	G.CMLD= 000146   	MLBIND= ****** GX	SWSCN = ****** GX	$T2   = 000002

C.DIRD= 000012   	G.DPRM= 000160   	MLBSYS= ****** GX	SYMCHR= 000012   	$Y$   = 000000

C.DSDS= 000006   	G.ERR = 000140   	M.ARGC= 000014   	SYMFLA= 000002   	$Z$   = 000000

C.FILD= 000016   	G.ISIZ= 000020   	M.ARGS= 000016   	SYMLEN= 000011   	$$T   = 000001

C.MKW1= 000024   	G.MODE= 000141   	M.END = 000012   	SYMLIN= 000000   	$$$ARG= 000002

C.MKW2= 000026   	G.PSDS= 000142   	M.GETL= 000004   	SYMMAX= 000017   	$$$OST= 000005

C.SIZE= 000054   	G.SIZE= 000224   	M.IFLV= 000006   	SYMSEG= 000010   	.CLOSE= ****** G

C.STAT= 000001   	HASHSZ= ****** GX	M.IFVL= 000010   	SYMVL1= 000004   	.CSI1 = ****** G

C.SWAD= 000022   	IDENTB= ****** GX	M.LINK= 000000   	SYMVL2= 000006   	.CSI2 = ****** G

C.TYPR= 000000   	IDENTP= ****** GX	M.NXTL= 000002   	SYSLIB  001726RG    002	.DLFNB= ****** GX

EN.PNC= ****** GX	IE.NOD= ****** GX	NEWPND= ****** GX	S.ABS = 004000   	.FIND = ****** GX

ERRCT = ****** GX	IE.UPN= ****** GX	NOSYSL  000216RG    003	S.ASN = 000200   	.GCML1= ****** G

ERRPRI= ****** GX	IFLVL = ****** GX	N.DVNM= ****** GX	S.DBG = 002000   	.GTDID= ****** GX

EVALEX= ****** GX	IFSTAT= ****** GX	N.FID = ****** GX	S.DF  = 100000   	.MRKDL= ****** GX

EX$ERR= 000002   	IIII  = 177777   	N.UNIT= ****** GX	S.EPT = 000100   	.OPFNB= ****** G

EX$SEV= 000004   	INIT    000246RG    002	OBJALO= ****** GX	S.EXTN= 010000   	.PARSE= ****** GX

EX$SUC= 000001   	INPSPC= ****** GX	OBJBLK= ****** GX	S.FDB = 000140   	...TPC= 000140

EX$WAR= 000000   	INPUTP= ****** GX	OBJCTG= ****** GX



. ABS.	000000	   000

      	000000	   001

STARTR	002036	   002

CMDMSG	000530	   003

STARTR	MACRO M1110  21-AUG-78 21:52  PAGE 38-2

SYMBOL TABLE



ERRORS DETECTED:  0



VIRTUAL MEMORY USED:  15611 WORDS  ( 61 PAGES)

DYNAMIC MEMORY:  16500 WORDS  ( 63 PAGES)

ELAPSED TIME:  00:02:25

OBJ$:STARTR,LIS$:STARTR/-SP=SRC$:MD,COMMON,STARTR

