Google
 

Trailing-Edge - PDP-10 Archives - decuslib20-04 - decus/20-0131/libman.lpt
There are 2 other files named libman.lpt in the archive. Click here to see a list.
LIBMAN -- LIBRARY FILE MANIPULATION PROGRAM %3(21)	MACRO %50A(441)-2 13:45 23-FEB-77 PAGE 1
LIBMAN	MAC	17-JAN-77 14:47		B. SCHREIBER - U OF I HIGH ENERGY PHYSICS GROUP

     1					SUBTTL	B. SCHREIBER - U OF I HIGH ENERGY PHYSICS GROUP
     2
     3					SEARCH	JOBDAT,UUOSYM,MACTEN,SCNMAC
     4					.DIREC	.XTABM
     5					SALL
     6
     7					;LIBMAN VERSION
     8
     9			000003		LIBVER==3	;MAJOR VERSION
    10			000021		LIBEDT==21	;EDIT LEVEL
    11			000000		LIBMIN==0	;MINOR VERSION
    12			000000		LIBWHO==0	;WHO?
    13
    14					DEFINE CTITLE (WORD1,TEXT,MAJVER,VEREDT)
    15					<WORD1 'TEXT'MAJVER(VEREDT)>
    16
    17					CTITLE	(TITLE,<LIBMAN -- LIBRARY FILE MANIPULATION PROGRAM %>,\LIBVER,\LIBEDT)
    18
    19	000137				LOC	.JBVER
    20		000300	000021		%%LIBM==:VRSN.	(LIB)
    21	000137	000300	000021		EXP	%%LIBM
    22
    23					;SHOW UNIVERSAL VERSION NUMBERS
    24
    25		043000	000443		%%JOBD==:%%JOBD		;JOBDAT
    26		101100	000225		%%UUOS==:%%UUOS		;UUOSYM
    27		000100	000024		%%MACT==:%%MACT		;MACTEN
    28		000700	000203		%%SCNM==:%%SCNM		;SCNMAC
    29
    30					;REQUEST REST OF LOADING
    31
    32					.REQUE	REL:ALCOR
    33					.REQUE	REL:SCN7B
    34					.REQUE	REL:WLD7A
    35					.REQUE	REL:HELPER
    36

LIBMAN -- LIBRARY FILE MANIPULATION PROGRAM %3(21)	MACRO %50A(441)-2 13:45 23-FEB-77 PAGE 2
LIBMAN	MAC	17-JAN-77 14:47		REVISION HISTORY / SUGGESTIONS / KNOWN BUGS

    37					SUBTTL	REVISION HISTORY / SUGGESTIONS / KNOWN BUGS
    38
    39					COMMENT	$		REVISION HISTORY
    40
    41					1(1)			BIRTH
    42					2(2)	12/12/76	ADD DVERSION COMMAND TO SET VERSION OF DISK FILES
    43								(NOT IN LIBRARY). IMPLEMENT SUPERSEDE TOTALLY.
    44					2(3)	12/13/76	ADD SOME INFORMATIVE TYPEOUT SO USER KNOWS WHAT
    45								WE ARE DOING.  BREAK UP LISTING SOME.
    46					2(4)	12/15/76	ADD MISSING JRST CPTYEN AFTER LOOKUP IN CPYTYF
    47					3(5)	12/16/76	IMPLEMENT LSUPERSEDE AND DSUPERSEDE TO ALLOW
    48								DIFFERENT SUPERSEDE OPTIONS FOR COPY AND REPLACE.
    49								IMPLEMENT FILDIR COMMAND WHICH RUNS DIRECT TO
    50								GET A DISK DIRECTORY AND RERUNS LIBMAN.  WRITE
    51								NNNLRL.TMP TO REMEMBER LIBMAN LIBRARY FROM LAST
    52								USE COMMAND (ONLY USE COMMAND!)
    53					3(6)	12/22/76	FIX FEW BUGS.  DISREGARD /SUPERSEDE CHECKING IF
    54								UNIVERSAL DATE/TIME IS 0 (I.E. CONVERTED FROM
    55								UFLIP FORMAT WITH LIBCVT)
    56					3(7)	12/26/76	ADD SUPPORT FOR /BEFORE/SINCE/ABEFORE/SINCE
    57								IN ADD COMMAND (TO SELECTIVELY LIBRARY FILES)
    58					3(10)	12/26/76	CHECK TO MAKE SURE WE ARE NOT ADDING A LIBRARY
    59								TO ITSELF IN ADD COMMAND (I.E. SO ADD *.* WILL
    60								NOT ADD THE LIBRARY ITSELF)
    61					3(11)	12/27/76	ADD REMEMBER VERB.  SPEED UP ADDING FILES SOMEWHAT
    62								(ESP. IF FILE NOT FOUND)
    63					3(12)	1/3/77		MAKE "COPY A,B,C" WORK.  FIX USAGE OF .RBTIM IN A FEW
    64								CASES.
    65					3(13)	1/3/77		FIXUP IN CASE "FILDIR 'NOT'*.TMP". SCAN WAS CHANGING
    66								GUIDE WORDS TO META-CHARACTERS.  I MUST RESET THEM.
    67					3(14)	1/9/77		MAKE /NOREMEMBER THE DEFAULT.  TEACH FILDIR HOW
    68								TO REMEMBER LIBRARY IF NEEDED.  MESSAGE USER ABOUT
    69								FILES NOT COPIED/REPLACED WITH INFO ON WHY.
    70					3(15)	1/10/77		IMPLEMENT /BUFFER:N. GET VERBOSITY BITS AND SUPPORT
    71								THEM IN ERROR HANDLER (AT LEAST /MESS:PREFIX)
    72					3(16)	1/14/77		FIX MINOR BUG INTRODUCED IN COPY COMMAND.  CHANGE
    73								NO FILES COPIED/REPLACED MESSAGE TO "NO FILES FOUND
    74								TO MATCH FS,FS,FS"
    75					3(17)	1/14/77		COUNT # FILES REJECTED FOR ONE REASON OR ANOTHER
    76								AND DON'T GIVE NO FILES FOUND TO MATCH MESSAGE IF
    77								FILES FOUND BUT REJECTED
    78					3(20)	1/14/77		FILDIR WAS NOT WRITING TMPFILE ALL THE TIME.
    79					3(21)	1/17/77		USE TLBVP A LITTLE MORE. ON FILDIR COMMAND, BLT
    80								SOME CODE TO LOWSEG, RELEASE HISEG BEFORE TRYING
    81								THE RUN COMMAND
    82
    83						$
    84
    85					COMMENT	$		SUGGESTIONS
    86
    87					1) INCLUDE VERSION IN REQUIREMENTS FOR A MATCH
    88
    89						$
    90
    91					COMMENT	$		KNOWN BUGS

LIBMAN -- LIBRARY FILE MANIPULATION PROGRAM %3(21)	MACRO %50A(441)-2 13:45 23-FEB-77 PAGE 2-1
LIBMAN	MAC	17-JAN-77 14:47		REVISION HISTORY / SUGGESTIONS / KNOWN BUGS

    92
    93						$

LIBMAN -- LIBRARY FILE MANIPULATION PROGRAM %3(21)	MACRO %50A(441)-2 13:45 23-FEB-77 PAGE 3
LIBMAN	MAC	17-JAN-77 14:47		ASSEMBLY / ACCUMULATOR DEFINITIONS

    94					SUBTTL	ASSEMBLY / ACCUMULATOR DEFINITIONS
    95
    96					ND LN$PDL,^D200		;PDL SIZE
    97					ND MX$DIR,^D32		;# ENTRIES IN PRIMARY DIRECTORY BLOCK
    98			000100		LN$DRB==2*MX$DIR	;SIZE OF PRIMARY DIRECTORY BLOCK
    99					ND MY$NAM,'LIBMAN'	;MY NAME
   100						INTERN	MY$PFX	;MAKE IT VISIBLE
   101					ND MY$PFX,'LIB'		;MY MESSAGE PREFIX
   102					ND DF$EXT,'LIB'		;DEFAULT LIBRARY EXTENSION
   103					ND DF$BUF,^D6		;DEFAULT # BUFFERS = 6
   104					ND FT$DDT,0		;NON-ZERO FOR DEBUGGING (DDT COMMAND)
   105
   106					;DEFINE THE ACCUMULATORS
   107
   108					DEFINE	AC$ (X)
   109					<X=ZZ
   110					ZZ==ZZ+1
   111					X=X>
   112
   113			000000		ZZ==0
   114
   115			000000		AC$ (F)		;FLAGS
   116			000001		AC$ (T1)	;T1-4 ARE TEMPORARY
   117			000002		AC$ (T2)
   118			000003		AC$ (T3)
   119			000004		AC$ (T4)
   120			000005		AC$ (P1)	;P1-4 ARE PERMANENT--MUST BE PRESERVED
   121			000006		AC$ (P2)
   122			000007		AC$ (P3)
   123			000010		AC$ (P4)
   124			000011		AC$ (B)			;CURRENT BLOCK IN LIBRARY
   125			000012		AC$ (L)			;PTR TO INPUT FDB LINKED LIST
   126			000007			N==P3	;NUMBER/WORD FROM SCAN
   127			000010			C==P4	;CHARACTER FROM SCAN
   128			000017			P=17	;PUSHDOWN LIST PTR

LIBMAN -- LIBRARY FILE MANIPULATION PROGRAM %3(21)	MACRO %50A(441)-2 13:45 23-FEB-77 PAGE 4
LIBMAN	MAC	17-JAN-77 14:47		FLAG DEFINITIONS

   129					SUBTTL	FLAG DEFINITIONS
   130
   131					;FLAGS IN LH OF F
   132
   133					DEFINE FLAG$ (FLG)
   134					<FL$'FLG==ZZ
   135					ZZ==ZZ_-1
   136					FL$'FLG==FL$'FLG>
   137
   138			400000		ZZ==(1B0)
   139
   140			400000		FLAG$ (LIB)		;ON WHEN A "USE" OR "CREAT" COMMAND GIVEN
   141			200000		FLAG$ (CRE)		;ON IF "CREATE"
   142			100000		FLAG$ (TYP)		;ON IF TYPE, OFF IF COPY
   143			040000		FLAG$ (RDO)		;READ ONLY
   144			020000		FLAG$ (ONE)		;ON IF "ONEOUT", OFF IF "COPY" OR "TYPE"
   145			010000		FLAG$ (OFG)		;ON IF OUTPUT FILE GIVEN (SET/CLEARED BY CKOFDB)
   146
   147					;I/O CHANNELS
   148
   149					;0	;NEVER USED BY ME
   150			000001		LIBC==1	;LIBRARY CHANNEL
   151			000002		INPC==2	;INPUT
   152			000003		OUTC==3	;OUTPUT
   153			000004		ILIB==4	;LIBRARY INPUT CHANNEL FOR USE WITH DELETE AND REPLACE
   154			000005		TMPC==5	;ONE-SHOT TEMPORARY USES
   155
   156					;OPDEFINES
   157
   158		260740	000000		OPDEF	CALL	[PUSHJ	P,]	;SUBROUTINE CALL
   159		321000	000000		OPDEF	JUMPU	[JUMPL	F,]	;JUMP IF "USE/CREATE" GIVEN
   160		325000	000000		OPDEF	JUMPNU	[JUMPGE	F,]	;JUMP IF NO "USE/CREATE" GIVEN
   161
   162					;OTHER BITS AND STUFF
   163
   164			000020		ATSIGN==(1B13)			;FOR OPENIO

LIBMAN -- LIBRARY FILE MANIPULATION PROGRAM %3(21)	MACRO %50A(441)-2 13:45 23-FEB-77 PAGE 6
LIBMAN	MAC	17-JAN-77 14:47		ERROR MACRO DEFINITIONS

   165					SUBTTL	ERROR MACRO DEFINITIONS
   166
   167					;ERROR.	($FLGS,$PFX,$MSG)
   168					;
   169					;$FLGS 	IS THE COMBINITATION OF THE FOLLOWING BITS:
   170
   171			000000			EF$ERR==0	;ERROR--PREFIX MSG WITH ?, RETURN CONTROL AFTER CALL
   172			000400			EF$FTL==400	;FATAL ERROR--ABORT AND RESTART
   173			000200			EF$WRN==200	;WARNING MESSAGE--CONTINUE
   174			000100			EF$INF==100	;INFORMATIVE MESSAGE--CONTINUE
   175			000040			EF$NCR==40	;NO FREE CRLF AFTER MESSAGE
   176
   177					DEFINE ETYP ($TYP)
   178					<ZZ==ZZ+1
   179					EF$'$TYP==ZZ>
   180
   181			000000		ZZ==0		;TYPE CODES ARE FROM 1-37
   182
   183			000001		ETYP (DEC)	;TYPE T1 IN DECIMAL AT END OF MESSAGE
   184			000002		ETYP (OCT)	;TYPE T1 IN OCTAL AT END OF MESSAGE
   185			000003		ETYP (SIX)	;TYPE T1 IN SIXBIT AT END OF MESSAGE
   186			000004		ETYP (PPN)	;TYPE T1 AS A PPN AT END OF MESSAGE
   187			000005		ETYP (STR)	;T1 PTS TO ASCIZ STR TO TYPE AT END OF MESSAGE
   188			000006		ETYP (FIL)	;T1 PTS TO SCAN FILE BLOCK TO TYPE AT END OF MSG
   189			000007		ETYP (LEB)	;T1 PTS TO 3 WD OPEN BLOCK AND T2 PTS TO LOOKUP BLOCK
   190			000007			EF$MAX==ZZ	;MAX ERROR TYPE
   191
   192					IFG ZZ-37,<PRINTX ?TOO MANY ERROR TYPES>
   193
   194					;$PFX IS THE 3-LETTER PREFIX FOR THE MESSAGE
   195					;$MSG IS THE MESSAGE ITSELF
   196
   197			300000		NOOP==	(CAI)		;DEFINE NO-MEMORY-REFERENCE RIGHT-HAND NOOP
   198
   199					DEFINE	ERROR.	($FLGS,$PFX,$MSG)
   200					<CALL	EHNDLR
   201					XWD NOOP+<$FLGS>,[''$PFX'',,[ASCIZ @$MSG@ ]
   202						IFN $FLGS&EF$NCR,<JRST X$$'$PFX>]
   203					>
   204
   205					;FATAL. FLGS,PFX,MSG
   206
   207					DEFINE	FATAL.	($FLGS,$PFX,$MSG)
   208					<ERROR.	(EF$FTL!$FLGS,$PFX,$MSG)>
   209
   210					;WARN.	FLGS,PFX,MSG
   211
   212					DEFINE	WARN.	($FLGS,$PFX,$MSG)
   213					<ERROR.	(EF$WRN!$FLGS,$PFX,$MSG)>
   214
   215					;INFO.	FLGS,PFX,MSG
   216
   217					DEFINE	INFO.	($FLGS,$PFX,$MSG)
   218					<ERROR.	(EF$INF!$FLGS,$PFX,$MSG)>
   219

LIBMAN -- LIBRARY FILE MANIPULATION PROGRAM %3(21)	MACRO %50A(441)-2 13:45 23-FEB-77 PAGE 6-1
LIBMAN	MAC	17-JAN-77 14:47		ERROR MACRO DEFINITIONS

   220					;STOPX$ STOPS THE PROGRAM QUICKLY WITH A HALT <CODE>
   221
   222					DEFINE	STOPX$
   223					<HALT	STOP$N
   224					STOP$N==STOP$N+1>

LIBMAN -- LIBRARY FILE MANIPULATION PROGRAM %3(21)	MACRO %50A(441)-2 13:45 23-FEB-77 PAGE 7
LIBMAN	MAC	17-JAN-77 14:47		OTHER MACRO DEFINITIONS

   225					SUBTTL	OTHER MACRO DEFINITIONS
   226					;SAVE$ SAVES DATA ON THE STACK
   227
   228					DEFINE	SAVE$	(X)
   229					<XLIST
   230					IRP X,<PUSH P,X>
   231					LIST>
   232
   233					;RESTR$ RESTORES DATA FROM THE STACK
   234
   235					DEFINE	RESTR$	(X)
   236					<XLIST
   237					IRP X,<POP P,X>
   238					LIST>
   239
   240					;MACRO TO ALLOCATE STORAGE IN THE LOW SEGMENT DATA BASE
   241
   242					DEFINE	U ($NAME,$WORDS<1>)
   243					<$NAME:	BLOCK	$WORDS>
   244
   245					;STRNG$ (STRING) SENDS STRING TO OUTPUT THROUGH .TSTRG
   246
   247					DEFINE STRNG$ (S)
   248					<MOVEI	T1,[ASCIZ \S\]
   249					CALL	.TSTRG##>
   250
   251					;ASCIZ$ (STRING) CREATES XLISTED ASCIZ STRING TO KEEP LISTING PRETTY
   252
   253					DEFINE ASCIZ$ (S)
   254					<XLIST
   255					ASCIZ \S\
   256					LIST>
   257
   258					;JUMPCR (LOC) JUMPS TO LOC IF CREATE COMMAND
   259
   260					DEFINE JUMPCR (LOC)
   261					<TLNE	F,FL$CRE
   262					JRST	LOC>
   263
   264					;JUMPNC (LOC) JUMPS TO LOC IF NOT CREATE COMMAND
   265
   266					DEFINE JUMPNC (LOC)
   267					<TLNN	F,FL$CRE
   268					JRST	LOC>
   269
   270					;JMPRDO (LOC) JUMPS TO LOC IF READ ONLY
   271
   272					DEFINE JMPRDO (LOC)
   273					<TLNE	F,FL$RDO
   274					JRST	LOC>

LIBMAN -- LIBRARY FILE MANIPULATION PROGRAM %3(21)	MACRO %50A(441)-2 13:45 23-FEB-77 PAGE 8
LIBMAN	MAC	17-JAN-77 14:47		MAIN-LINE PROGRAM

   275					SUBTTL	MAIN-LINE PROGRAM
   276
   277	400000'				TWOSEG
   278	400000'				RELOC	400000
   279			000000		STOP$N==0			;INITIALIZE THE FATAL COUNTER
   280
   281	400000'	634 01 0 00 000001 	LIBMAN:	TDZA	T1,T1		;FLAG NORMAL START
   282	400001'	201 01 0 00 000001 		MOVEI	T1,1		;FLAG CCL START
   283	400002'	202 01 0 00 000002'		MOVEM	T1,OFFSET	;SAVE FOR SCAN
   284
   285	400003'	402 00 0 00 000000 		STORE	17,0,16,0	;CLEAR ACS
   286	400004'	200 17 0 00 403350'
   287	400005'	251 17 0 00 000016 
   288	400006'	402 00 0 00 000004'		STORE	17,FW$ZER,LW$ZER,0 ;AND CORE WHICH SHOULD BE CLEARED
   289	400007'	200 17 0 00 403351'
   290	400010'	251 17 0 00 000661'
   291	400011'	476 00 0 00 000655'		STORE	T1,SCN$FO,SCN$LO,-1 ;SET SWITCHES TO DEFAULTS
   292	400012'	200 01 0 00 403352'
   293	400013'	251 01 0 00 000661'
   294	400014'	047 00 0 00 000000 		RESET			;STOP EXTERNAL I/O WHICH MAY BE IN PROGRESS
   295	400015'	334 17 0 00 400016'		SKIPA	P,.+1		;SETUP PDL
   296	400016'	777470	000004'		INIPDP:	IOWD	LN$PDL,PDLIST
   297	400017'	260 17 0 00 000000*		CALL	.RECOR##	;RESET CORE ALLOCATION
   298	400020'	200 01 0 00 400073'		MOVE	T1,ISCNBL	;GET ISCAN BLOCK
   299	400021'	260 17 0 00 000000*		CALL	.ISCAN##	;INITIALIZE THE COMMAND SCANNER
   300	400022'	202 01 0 00 000000'		MOVEM	T1,ISCNVL	;REMEMBER WHAT ISCAN RETURNS
   301	400023'	336 00 0 00 000002'		SKIPN	OFFSET		;CCL ENTRY?
   302	400024'	332 00 0 00 000001'		 SKIPE	TLDVER		;OR ALREADY TOLD VERSION?
   303	400025'	254 00 0 00 400034'		  JRST	LIBM.0		;ONE OR THE OTHER
   304	400026'	201 01 0 00 403353'		STRNG$	<LIBMAN %>	;NO--DO IT NOW
   305	400027'	260 17 0 00 000000*
   306	400030'	200 01 0 00 000137 		MOVE	T1,.JBVER
   307	400031'	260 17 0 00 000000*		CALL	.TVERW##
   308	400032'	260 17 0 00 000000*		CALL	.TCRLF##
   309	400033'	476 00 0 00 000001'		SETOM	TLDVER		;SO WE ONLY TELL VERSION ONE TIME

LIBMAN -- LIBRARY FILE MANIPULATION PROGRAM %3(21)	MACRO %50A(441)-2 13:45 23-FEB-77 PAGE 9
LIBMAN	MAC	17-JAN-77 14:47		MAIN-LINE PROGRAM

   310	400034'				RESTRT:
   311	400034'	332 00 0 00 000003'	LIBM.0:	SKIPE	FLTMPC		;HAVE WE ALREADY TRIED TO READ NNNLRL.TMP?
   312	400035'	254 00 0 00 400067'		 JRST	LIBM.1		;YES--JUST GO CALL .VSCAN
   313	400036'	476 00 0 00 000003'		SETOM	FLTMPC		;NO--FLAG DOING IT TO PREVENT A LOOP
   314	400037'	050 05 0 00 403355'		OPEN	TMPC,[EXP .IODMP,'DSK   ',0] ;GET DISK IN DUMP MODE
   315	400040'	254 00 0 00 400067'		 JRST	LIBM.1		;FAILED--GIVE UP
   316	400041'	260 17 0 00 401651'		CALL	MAKCCL		;GET CCL NAME
   317	400042'	541 01 0 00 546254 		HRRI	T1,'LRL'	;LIBMAN REMEMBER LIBRARY
   318	400043'	205 02 0 00 645560 		MOVSI	T2,'TMP'	;COMPLEETE NAME
   319	400044'	403 03 0 00 000004 		SETZB	T3,T4
   320	400045'	076 05 0 00 000001 		LOOKUP	TMPC,T1		;SEE IF IT LIVES
   321	400046'	254 00 0 00 400065'		JRST	LIBM0A		;NO--QUIT
   322	400047'	260 17 0 00 402617'		CALL	$GTFDB		;GET AN FDB TO READ INTO
   323	400050'	202 01 0 00 000340'		MOVEM	T1,LIBFDB	;REMEMBER IT FOR ASECOND
   324	400051'	505 01 0 00 777746 		HRLI	T1,-.FXLEN	;FORM IOWD
   325	400052'	541 01 0 01 777777 		HRRI	T1,-1(T1)	;...
   326	400053'	400 02 0 00 000000 		SETZ	T2,		;END OF I/O LIST
   327	400054'	066 05 0 00 000001 		INPUT	TMPC,T1		;READ FDB
   328	400055'	063 05 0 00 760000 		STATZ	TMPC,IO.ERR!IO.EOF ;WE SHOULD NOT SEE THESE FLAGS
   329	400056'	254 00 0 00 400065'		 JRST	LIBM0A		;WE DID--ASSUME JUNK
   330	400057'	070 05 0 00 000000 		CLOSE	TMPC,
   331	400060'	200 01 0 00 000340'		MOVE	T1,LIBFDB	;RESET T1 TO POINT  TO FDB FOR OPENIO
   332	400061'	260 17 0 00 403022'		CALL	OPENIO		;SEE IF FILE LIVES
   333	400062'	300 01 0 14 000000 		CAI	LIBC,0(.IOBIN)	;...
   334	400063'	254 00 0 00 400065'		 JRST	LIBM0A		;NO--QUIT NOW
   335	400064'	661 00 0 00 400000 		TLO	F,FL$LIB	;YES--FLAG WE HAVE A LIBRARY
   336	400065'	071 05 0 00 000000 	LIBM0A:	RELEASE	TMPC,		;FREE UP CHANNELS
   337	400066'	071 01 0 00 000000 		RELEASE	LIBC,		;IN CASE THEY WERE OPEN
   338	400067'	200 01 0 00 400101'	LIBM.1:	MOVE	T1,VSCNBL	;GET ARG BLOCK FOR .VSCAN
   339	400070'	260 17 0 00 000000*		CALL	.VSCAN##	;DO THE WORK
   340	400071'	260 17 0 00 000000*		CALL	.MONRT##	;EXIT TO MONITOR
   341	400072'	254 00 0 00 400034'		JRST	RESTRT		;GO RESTART

LIBMAN -- LIBRARY FILE MANIPULATION PROGRAM %3(21)	MACRO %50A(441)-2 13:45 23-FEB-77 PAGE 10
LIBMAN	MAC	17-JAN-77 14:47		ARGUMENT BLOCKS FOR ISCAN AND VSCAN

   342					SUBTTL	ARGUMENT BLOCKS FOR ISCAN AND VSCAN
   343
   344	400073'	000005	400074'		ISCNBL:	XWD 5,	.+1
   345	400074'	777777	400115'			IOWD	N$CMDS,CMDLST
   346	400075'	000002'	545142			XWD	OFFSET,MY$PFX
   347	400076'	000000	000000			EXP	0
   348	400077'	000000	000000			EXP	0
   349	400100'	400111'	000000			XWD	DOPRMP,0
   350
   351					;ARG BLOCK FOR .VSCAN
   352
   353	400101'	000007	400102'		VSCNBL:	XWD 7,	.+1
   354	400102'	777756	400121'			IOWD	VSWTL,VSWTN
   355	400103'	400210'	400166'			XWD	VSWTD,VSWTM
   356	400104'	000000	400144'			XWD	0,VSWTP
   357	400105'	777777	777777			EXP	-1
   358	400106'	000000	000000			EXP	0
   359	400107'	000000	000000			EXP	0
   360	400110'	000000	000000			EXP	0
   361
   362					;SCAN CALLS HERE TO PROMPT -- T1 NEGATIVE IF CONTINUATION
   363
   364	400111'	331 00 0 00 000001 	DOPRMP:	SKIPL	T1		;FIRST?
   365	400112'	334 01 0 00 400115'		 SKIPA	T1,PRMPTM	;YES--LOAD UP MESSAGE
   366	400113'	205 01 0 00 030000 		MOVSI	T1,'#  '	;NO--LOAD UP CONTINUATION
   367	400114'	254 00 0 00 000000*		PJRST	.TSIXN##	;GO TYPE IT
   368
   369	400115'	545142	360000		PRMPTM:	XWD	MY$PFX,'>  '
   370
   371	400116'	545142	554156		CMDLST:	EXP	MY$NAM
   372			000001			N$CMDS==.-CMDLST
   373
   374					;HERE FOR DDT COMMAND IF DEBUGGING
   375
   376					IFN FT$DDT,<$DDT:
   377						SKIPN	T1,.JBDDT	;PICK UP/CHECK IF DDT  IS LOADED
   378						 FATAL.	0,DNL,<DDT NOT LOADED> ;FATAL ONLY SO SCAN WILL CLEAN UP
   379						AOS	(P)		;OK--SET TO SKIP BACK
   380						PUSH	P,T1		;SAVE DDT ADDRESS ON PDL
   381						CALL	.TCRLF##	;NEW LINE
   382						STRNG$	<DDT>		;ANNOUNCE HIMSELF
   383						POPJ	P,		;RETURN TO DDT
   384					DX=:	POPJ	P,		;DX$X WILL GET BACK TO COMMAND MODE
   385					>;END IFN FT$DDT

LIBMAN -- LIBRARY FILE MANIPULATION PROGRAM %3(21)	MACRO %50A(441)-2 13:45 23-FEB-77 PAGE 11
LIBMAN	MAC	17-JAN-77 14:47		SWITCH TABLE

   386					SUBTTL	SWITCH TABLE
   387
   388					DEFINE SWTCHS,<
   389					SP *ADD,,$ADD,,
   390					SP BUFFER,S.BUFR,.SWDEC##,BUF,FS.NUE
   391					SP CREATE,,$CREAT,,
   392					SP *COPY,,$COPY,,
   393					IFN FT$DDT,<SP DDT,,$DDT,,>
   394					SP DELETE,,$DELET,,
   395					SP DIRECT,,$DIREC,,
   396					SL DSUPER,S.DSUP,SUP,SUPOLD,FS.NUE
   397					SP DVERSI,,$DVERS,,
   398					SP FILDIR,,$FILDIR,,
   399					SL LSUPER,S.LSUP,SUP,SUPOLD,FS.NUE
   400					SP *ONEOUT,,$ONEOU,,
   401					SP READ,,$READ,,
   402					SN REMEMB,S.REML,FS.NUE
   403					SP RENAME,,$RENAM,,
   404					SP *REPLAC,,$REPLAC,,
   405					SL *SUPERS,S.SUPR,SUP,SUPOLD,FS.NUE
   406					SP *TYPE,,$TYPE,,
   407					SP *USE,,$USE,,
   408					>
   409
   410					DM (BUF,^D100,DF$BUF,DF$BUF)
   411	400117'	415467	417163		KEYS (SUP,<ALWAYS,OLDER,NEVER>)
   412	400120'	575444	456200
   413	400121'	564566	456200
   414						ND SUPDEF,SUPOLD		;DEFAULT IN CASE NO /SUPERSEDE
   415
   416					DOSCAN (VSWT)
   417	400122'	124144	440000			EXP  SIXBIT  /*ADD/
   418	400123'	426546	464562			EXP  SIXBIT  /BUFFER/
   419	400124'	436245	416445			EXP  SIXBIT  /CREATE/
   420	400125'	124357	607100			EXP  SIXBIT  /*COPY/
   421	400126'	444554	456445			EXP  SIXBIT  /DELETE/
   422	400127'	445162	454364			EXP  SIXBIT  /DIRECT/
   423	400130'	446365	604562			EXP  SIXBIT  /DSUPER/
   424	400131'	446645	626351			EXP  SIXBIT  /DVERSI/
   425	400132'	465154	445162			EXP  SIXBIT  /FILDIR/
   426	400133'	546365	604562			EXP  SIXBIT  /LSUPER/
   427	400134'	125756	455765			EXP  SIXBIT  /*ONEOUT/
   428	400135'	624541	440000			EXP  SIXBIT  /READ/
   429	400136'	624555	455542			EXP  SIXBIT  /REMEMB/
   430	400137'	624556	415545			EXP  SIXBIT  /RENAME/
   431	400140'	126245	605441			EXP  SIXBIT  /*REPLAC/
   432	400141'	126365	604562			EXP  SIXBIT  /*SUPERS/
   433	400142'	126471	604500			EXP  SIXBIT  /*TYPE/
   434	400143'	126563	450000			EXP  SIXBIT  /*USE/
   435	400144'	000 00 0 00 000000 		Z			;*ADD
   436	400145'	000000	000655'			EXP <S.BUFR>			;BUFFER
   437	400146'	000 00 0 00 000000 		Z			;CREATE
   438	400147'	000 00 0 00 000000 		Z			;*COPY
   439	400150'	000 00 0 00 000000 		Z			;DELETE
   440	400151'	000 00 0 00 000000 		Z			;DIRECT

LIBMAN -- LIBRARY FILE MANIPULATION PROGRAM %3(21)	MACRO %50A(441)-2 13:45 23-FEB-77 PAGE 11-1
LIBMAN	MAC	17-JAN-77 14:47		SWITCH TABLE

   441	400152'	000000	000656'			EXP <S.DSUP>			;DSUPER
   442	400153'	000 00 0 00 000000 		Z			;DVERSI
   443	400154'	000 00 0 00 000000 		Z			;FILDIR
   444	400155'	000000	000657'			EXP <S.LSUP>			;LSUPER
   445	400156'	000 00 0 00 000000 		Z			;*ONEOUT
   446	400157'	000 00 0 00 000000 		Z			;READ
   447	400160'	000000	000661'			EXP <S.REML>			;REMEMB
   448	400161'	000 00 0 00 000000 		Z			;RENAME
   449	400162'	000 00 0 00 000000 		Z			;*REPLAC
   450	400163'	000000	000660'			EXP <S.SUPR>			;*SUPERS
   451	400164'	000 00 0 00 000000 		Z			;*TYPE
   452	400165'	000 00 0 00 000000 		Z			;*USE
   453	400166'	000000	400232'			XWD	MX.,$ADD	;*ADD
   454	400167'	000144	000000*			XWD	MX.BUF,.SWDEC##	;BUFFER
   455	400170'	000000	402123'			XWD	MX.,$CREAT	;CREATE
   456	400171'	000000	400413'			XWD	MX.,$COPY	;*COPY
   457	400172'	000000	400740'			XWD	MX.,$DELET	;DELETE
   458	400173'	000000	401251'			XWD	MX.,$DIREC	;DIRECT
   459	400174'	777775	400116'			XWD	-SUP.L,SUP.T-1	;DSUPER
   460	400175'	000000	401442'			XWD	MX.,$DVERS	;DVERSI
   461	400176'	000000	401532'			XWD	MX.,$FILDIR	;FILDIR
   462	400177'	777775	400116'			XWD	-SUP.L,SUP.T-1	;LSUPER
   463	400200'	000000	401661'			XWD	MX.,$ONEOU	;*ONEOUT
   464	400201'	000000	402121'			XWD	MX.,$READ	;READ
   465	400202'	000000	000000			XWD	0,0	;REMEMB
   466	400203'	000000	401730'			XWD	MX.,$RENAM	;RENAME
   467	400204'	000000	400741'			XWD	MX.,$REPLAC	;*REPLAC
   468	400205'	777775	400116'			XWD	-SUP.L,SUP.T-1	;*SUPERS
   469	400206'	000000	400414'			XWD	MX.,$TYPE	;*TYPE
   470	400207'	000000	402124'			XWD	MX.,$USE	;*USE
   471	400210'	000000	000000			XWD	..TEMR,PD.	;*ADD
   472	400211'	100000	000006			XWD	..TEMR,PD.BUF	;BUFFER
   473	400212'	000000	000000			XWD	..TEMR,PD.	;CREATE
   474	400213'	000000	000000			XWD	..TEMR,PD.	;*COPY
   475	400214'	000000	000000			XWD	..TEMR,PD.	;DELETE
   476	400215'	000000	000000			XWD	..TEMR,PD.	;DIRECT
   477	400216'	100000	000002			XWD	..TEMR,SUPOLD	;DSUPER
   478	400217'	000000	000000			XWD	..TEMR,PD.	;DVERSI
   479	400220'	000000	000000			XWD	..TEMR,PD.	;FILDIR
   480	400221'	100000	000002			XWD	..TEMR,SUPOLD	;LSUPER
   481	400222'	000000	000000			XWD	..TEMR,PD.	;*ONEOUT
   482	400223'	000000	000000			XWD	..TEMR,PD.	;READ
   483	400224'	110000	000000			XWD	..TEMR,0	;REMEMB
   484	400225'	000000	000000			XWD	..TEMR,PD.	;RENAME
   485	400226'	000000	000000			XWD	..TEMR,PD.	;*REPLAC
   486	400227'	100000	000002			XWD	..TEMR,SUPOLD	;*SUPERS
   487	400230'	000000	000000			XWD	..TEMR,PD.	;*TYPE
   488	400231'	000000	000000			XWD	..TEMR,PD.	;*USE
   489

LIBMAN -- LIBRARY FILE MANIPULATION PROGRAM %3(21)	MACRO %50A(441)-2 13:45 23-FEB-77 PAGE 12
LIBMAN	MAC	17-JAN-77 14:47		PROCESS ADD COMMAND

   490					SUBTTL	PROCESS ADD COMMAND
   491
   492	400232'	325 00 0 00 403344'	$ADD:	JUMPNU	E$$NUC		;MUST HAVE USE OR CREATE
   493	400233'	603 00 0 00 040000 		JMPRDO	E$$IRO		;ILLEGAL IF READ ONLY
   494	400234'	254 00 0 00 400411'
   495	400235'	260 17 0 00 000000*		CALL	.SAVE1##	;PRESERVE P1
   496	400236'	350 00 0 17 000000 		AOS	(P)		;SET TO SKIP BACK SO SCAN DOESN'T STORE
   497	400237'	260 17 0 00 402523'		CALL	$GTLST		;READ FILE LIST
   498	400240'	254 00 0 00 402133'		 JRST	E$$NFS		;DID'NT GIVE ONE
   499	400241'	200 05 0 00 000012 		MOVE	P1,L		;REMEMBER WHERE IT IS
   500	400242'	260 17 0 00 402243'		 CALL	$GTDIR		;READ DIRECTORY
   501	400243'	402 00 0 00 000443'		SETZM	FILCNT		;CLEAR COUNT OF FILES ADDED
   502	400244'	402 00 0 00 000444'		SETZM	NOFILR		;CLEAR COUNT OF FILES REJECTED
   503						STRNG$	<FILES ADDED TO LIBRARY:
   504	400245'	201 01 0 00 403360'	>
   505	400246'	260 17 0 00 400027*
   506	400247'	402 00 0 00 000442'	ADDL.L:	SETZM	WLDPTR		;CLEAR WILD'S TEMP PTR
   507	400250'	552 05 0 00 000441'	ADDL.0:	HRRZM	P1,WLDFIR	;STORE PTR FOR WILD
   508	400251'	200 01 0 00 400314'		MOVE	T1,LKWLDB	;GET ARG FOR .LKWLD
   509	400252'	260 17 0 00 000000*		CALL	.LKWLD##	;GET A FILE TO ADD
   510	400253'	254 00 0 00 400306'		 JRST	ADDL.5		;NOT ANY MORE THIS FDB
   511	400254'	200 01 0 00 000505'		MOVE	T1,DSKLKP+.RBNAM;GET FILENAME
   512	400255'	510 02 0 00 000506'		HLLZ	T2,DSKLKP+.RBEXT;AND EXTENSION
   513	400256'	200 03 0 00 000340'		MOVE	T3,LIBFDB	;GET LIBRARY FDB ADDRESS
   514	400257'	510 04 0 03 000003 		HLLZ	T4,.FXEXT(T3)	;GET LIBRARY EXTENSION
   515	400260'	316 01 0 03 000001 		CAMN	T1,.FXNAM(T3)	;SEE IF FILENAMES
   516	400261'	312 02 0 00 000004 		CAME	T2,T4		;AND EXTENSIONS ARE THE SAME
   517	400262'	334 00 0 00 000000 		 SKIPA			;NO--OK TO POSSIBLY ADD TO LIBRARY
   518	400263'	254 00 0 00 400250'		 JRST	ADDL.0		;YES--DON'T ADD LIBRARY TO ITSELF
   519	400264'	260 17 0 00 402432'		CALL	IFNDIR		;SEE IF ALREADY IN DIR
   520	400265'	254 00 0 00 400330'		 JRST	ADDL.A		;NO--OK TO ADD IT
   521	400266'	474 01 0 00 000000 		SETO	T1,		;ALREADY THERE--SEE IF WE SHOULD BITCH
   522	400267'	201 02 0 00 777777 		MOVEI	T2,-1		;MASK FOR EXT
   523	400270'	430 01 0 05 000002 		XOR	T1,.FXNMM(P1)	;SEE IF WILD FILENAME
   524	400271'	652 01 0 00 403366'		TDCE	T1,[EXP	-1]	;...
   525	400272'	254 00 0 00 400250'		 JRST	ADDL.0		;FILENAME WAS WILD--DON'T COMPLAIN
   526	400273'	430 02 0 05 000003 		XOR	T2,.FXEXT(P1)	;CHECK EXTENCION
   527	400274'	642 02 0 00 777777 		TRCE	T2,-1		;...
   528	400275'	254 00 0 00 400250'		 JRST	ADDL.0		;EXT WAS WILD--OK
   529	400276'	350 00 0 00 000444'		AOS	NOFILR		;COUNT A FILE AS REJECTED
   530	400277'	201 01 0 00 000500'		MOVEI	T1,DSKOPN	;POINT AT OPEN BLOCK
   531	400300'	201 02 0 00 000503'		MOVEI	T2,DSKLKP	;AND LOOKUP BLOCK
   532	400301'	260 17 0 00 403234'		WARN.	EF$LEB!EF$NCR,FAL,<FILE ALREADY IN LIBRARY - >
   533	400302'	300247	403375'
   534						STRNG$	< - IGNORING
   535	400303'	201 01 0 00 403377'	>
   536	400304'	260 17 0 00 400246*
   537	400305'	254 00 0 00 400250'	X$$FAL:	JRST	ADDL.0		;GET NEXT
   538
   539					;HERE WHEN WILD SAYS NO MORE FILES TO BE FOUND FROM THIS FDB
   540
   541	400306'	550 05 0 05 777777 	ADDL.5:	HRRZ	P1,-1(P1)	;CHAIN TO NEXT FDB
   542	400307'	326 05 0 00 400247'		JUMPN	P1,ADDL.L	;JUMP IF MORE TO COME
   543	400310'	336 00 0 00 000443'		SKIPN	FILCNT		;DONE--SEE IF WE DID ANYTHING
   544	400311'	260 17 0 00 400322'		CALL	WRNOFM		;NO--TELL NO FILES MATCH

LIBMAN -- LIBRARY FILE MANIPULATION PROGRAM %3(21)	MACRO %50A(441)-2 13:45 23-FEB-77 PAGE 12-1
LIBMAN	MAC	17-JAN-77 14:47		PROCESS ADD COMMAND

   545	400312'	200 01 0 00 000012 		MOVE	T1,L		;NO--COPY LST ADDR
   546	400313'	254 00 0 00 402575'		PJRST	GIVLST		;GO FREE IT UP AND RETURN
   547
   548	400314'	000005	400315'		LKWLDB:	XWD	5,.+1		;ARG PTR FOR .LKWLD
   549	400315'	000441'	000000			XWD	WLDFIR,0	;LOC HAVING FIRST WORD OF SPECS, 0
   550	400316'	000500'	000503'			XWD	DSKOPN,DSKLKP	;OPEN BLOCK,LOOKUP BLOCK
   551	400317'	000032	000036			XWD	.FXLEN,.RBTIM+1	;SIZE OF SCAN BLOCK,SIZE OF LOOKUP BLOCK
   552	400320'	000000	000442'			XWD	0,WLDPTR	;CHANNEL+FLAGS,PTR FOR WILD COMMUNICATION
   553	400321'	000000	000000			EXP	0		;ROUTINE TO NOTIFY AT END OF DIR
   554
   555			403047'				X$$NFM=$POPJ	;JUST RETURN IF /MESSAGE:PREFIX
   556	400322'	332 00 0 00 000444'	WRNOFM:	SKIPE	NOFILR		;DON'T MESSAGE IF FILES WERE REJECTED
   557	400323'	263 17 0 00 000000 		 POPJ	P,		;REJECTED FILES--HE ALREADY KNOWS
   558	400324'	260 17 0 00 403234'		WARN.	EF$NCR,NFM,<NO FILES FOUND TO MATCH >
   559	400325'	300240	403407'
   560	400326'	260 17 0 00 402623'		CALL	$TYIOL		;TYPE THE LIST
   561	400327'	254 00 0 00 400032*		PJRST	.TCRLF##	;NEW LINE AND EXIT

LIBMAN -- LIBRARY FILE MANIPULATION PROGRAM %3(21)	MACRO %50A(441)-2 13:45 23-FEB-77 PAGE 13
LIBMAN	MAC	17-JAN-77 14:47		PROCESS ADD COMMAND

   562					;HERE TO ADD FILE TO LIBRARY
   563
   564	400330'	260 17 0 00 402734'	ADDL.A:	CALL	DSKOPI		;OPEN DISK FILE FOR INPUT
   565	400331'	254 00 0 00 400370'		JRST	ADDL.X		;FILE NOT FOUND--CLOSE OUT AND GET NEXT FILE
   566	400332'	260 17 0 00 000000*		CALL	.CHKTM##	;CHECK /BEFORE/SINCE/ABEFORE/ASINCE
   567	400333'	254 00 0 00 400370'		 JRST	ADDL.X		;LOSE--CLOSE OUT AND GET NEXT FILE
   568	400334'	260 17 0 00 403117'		CALL	GETNBF		;GET # BUFFERS FOR DSK INPUT
   569	400335'	200 02 0 00 403411'		MOVE	T2,[XWD OPNBLK,IBHR] ;...
   570	400336'	260 17 0 00 000000*		CALL	.ALCBF##
   571	400337'	400 01 0 00 000000 		SETZ	T1,		;FLAG WE WANT TO APPEND TO LIBRARY
   572	400340'	260 17 0 00 402635'		CALL	OLIBUP		;OPEN LIBRARY IN APPEND MODE
   573	400341'	505 05 0 11 000000 		HRLI	P1,(B)		;REMEMBER FIRST BLOCK FOR FILE
   574	400342'	261 17 0 00 000504'		PUSH	P,DSKLKP+.RBPPN	;SAVE ORIGINAL PPN AND THEN
   575	400343'	200 01 0 00 000000*		MOVE	T1,.MYPPN##	;   PUT MY PPN INTO LKPBLK
   576	400344'	202 01 0 00 000504'		MOVEM	T1,DSKLKP+.RBPPN;BEFORE WE COPY IT TO LIBRARY
   577	400345'	205 01 0 00 000502'		MOVSI	T1,DSKLKP-1	;SETUP SO WE CAN COPY DSKLKP TO LIB
   578	400346'	540 01 0 00 000650'		HRR	T1,OBHR+.BFPTR	;...
   579	400347'	252 01 0 00 400350'		AOBJP	T1,.+1		;OFF BY ONE IN BOTH HALFS
   580	400350'	201 02 0 01 000036 		MOVEI	T2,.RBTIM+1(T1)	;SET END OF BLT (REST OF BLOCK WILL BE 0'S)
   581	400351'	260 17 0 00 400401'		CALL	DCPY.1		;COPY LKPBLK AND THEN FILE
   582	400352'	262 17 0 00 000504'		POP	P,DSKLKP+.RBPPN	;RESTORE ORIGINAL PPN
   583
   584					;HERE AT END OF ADDITION
   585
   586	400353'	260 17 0 00 402714'		CALL	OLBCLS		;CLOSE LIB
   587	400354'	260 17 0 00 402760'		CALL	DSKICL		;AND INPUT FILE
   588	400355'	200 01 0 00 000505'		MOVE	T1,DSKLKP+.RBNAM;GET FILENAME
   589	400356'	510 02 0 00 000506'		HLLZ	T2,DSKLKP+.RBEXT;AND EXTENSION
   590	400357'	554 11 0 00 000005 		HLRZ	B,P1		;GET FIRST BLOCK IN FILE BACK
   591	400360'	260 17 0 00 402470'		CALL	AD2DIR		;ADD TO INCORE DIRECTORY
   592	400361'	621 00 0 00 200000 		TLZ	F,FL$CRE	;LIBRARY EXISTS--CLEAR CREATE FLAG
   593	400362'	350 00 0 00 000443'		AOS	FILCNT		;COUNT A FILE AS DONE
   594	400363'	201 01 0 00 000500'		MOVEI	T1,DSKOPN	;POINT TO OPEN BLOCK
   595	400364'	201 02 0 00 000503'		MOVEI	T2,DSKLKP	;AND LOOKUP BLOCK
   596	400365'	260 17 0 00 000000*		CALL	.TOLEB##	;TYPE NAME TO USER
   597	400366'	260 17 0 00 400327*		CALL	.TCRLF##
   598	400367'	254 00 0 00 400250'		JRST	ADDL.0		;GO ADD MORE FILES
   599
   600	400370'	260 17 0 00 402760'	ADDL.X:	CALL	DSKICL		;CLOSE OUT DISK FILE
   601	400371'	254 00 0 00 400250'		JRST	ADDL.0		;GO GET NEXT THING
   602
   603					;CALL HERE TO DO THE MAJOR COPY LOOP
   604
   605	400372'	260 17 0 00 403205'	DOCOPY:	CALL	XCTIO		;GET A BLOCK
   606	400373'	056 02 0 00 000000 		 IN	INPC,		;XCT'D FROM DOWN BELOW
   607	400374'	263 17 0 00 000000 		  POPJ	P,		;END OF FILE
   608	400375'	514 01 0 00 000645'		HRLZ	T1,IBHR+.BFPTR	;GET BUFFER ADDRESSES
   609	400376'	540 01 0 00 000650'		HRR	T1,OBHR+.BFPTR	;...
   610	400377'	252 01 0 00 400400'		AOBJP	T1,.+1		;OFF BY ONE
   611	400400'	201 02 0 01 000200 		MOVEI	T2,200(T1)	;SET END OF BLT
   612	400401'	251 01 0 02 777777 	DCPY.1:	BLT	T1,-1(T2)	;ZIP THE BLOCK OVER
   613	400402'	201 01 0 00 000200 		MOVEI	T1,200		;UPDATE OUTPUT STUFF
   614	400403'	272 01 0 00 000650'		ADDM	T1,OBHR+.BFPTR	;...
   615	400404'	402 00 0 00 000651'		SETZM	OBHR+.BFCTR
   616	400405'	260 17 0 00 403205'		CALL	XCTIO		;WRITE BLOCK TO LIB

LIBMAN -- LIBRARY FILE MANIPULATION PROGRAM %3(21)	MACRO %50A(441)-2 13:45 23-FEB-77 PAGE 13-1
LIBMAN	MAC	17-JAN-77 14:47		PROCESS ADD COMMAND

   617	400406'	057 01 0 00 000000 		 OUT	LIBC,		;...
   618	400407'	254 04 0 00 000000 		 STOPX$			;***TEMP
   619	400410'	344 11 0 00 400372'		AOJA	B,DOCOPY	;COUNT BLOCKS INTO LIBRARY
   620
   621	400411'	260 17 0 00 403234'	E$$IRO:	FATAL.	0,IRO,<ILLEGAL COMMAND FOR READ-ONLY LIBRARY>
   622	400412'	300400	403422'

LIBMAN -- LIBRARY FILE MANIPULATION PROGRAM %3(21)	MACRO %50A(441)-2 13:45 23-FEB-77 PAGE 14
LIBMAN	MAC	17-JAN-77 14:47		PROCESS COPY/TYPE COMMANDS

   623					SUBTTL	PROCESS COPY/TYPE COMMANDS
   624
   625	400413'	625 00 0 00 100000 	$COPY:	TLZA	F,FL$TYP	;FLAG COPY NOT TYPE
   626	400414'	661 00 0 00 100000 	$TYPE:	TLO	F,FL$TYP	;FLAG TYPE
   627	400415'	325 00 0 00 403344'		JUMPNU	E$$NUC		;JUMP IF NO USE COMMAND
   628	400416'	607 00 0 00 200000 		JUMPNC	CTYP.0		;JUMP IF NOT CREATE
   629	400417'	254 00 0 00 400422'
   630	400420'	260 17 0 00 403234'	E$$LIE:	FATAL.	0,LIE,<LIBRARY IS EMPTY> ;NOTHING TO DO
   631	400421'	300400	403427'
   632	400422'	260 17 0 00 400235*	CTYP.0:	CALL	.SAVE1##	;SAVE P1
   633	400423'	350 00 0 17 000000 		AOS	(P)		;SET TO SKIP BACK
   634	400424'	621 00 0 00 020000 		TLZ	F,FL$ONE	;FLAG COPY/TYPE AND NOT ONEOUT
   635	400425'	260 17 0 00 402534'		CALL	$GTIOL		;GET I/O LIST
   636	400426'	254 00 0 00 402133'		 JRST	E$$NFS		;NEED A LIST THO
   637	400427'	201 01 0 00 403004'		MOVEI	T1,OPNTTO	;ASSUME TYPING
   638	400430'	607 00 0 00 100000 		TLNN	F,FL$TYP	;ARE WE TYPEING?
   639	400431'	201 01 0 00 402455'		 MOVEI	T1,CKOFDB	;NO--DO DIFFERENTLY
   640	400432'	260 17 0 01 000000 		CALL	(T1)		;CALL THE RIGHT ROUTINE
   641	400433'	260 17 0 00 402243'		CALL	$GTDIR		;CREATE IN-CORE DIRECTORY
   642	400434'	201 01 0 00 000006 		MOVEI	T1,6		;USE SIX INPUT BUFFERS
   643	400435'	260 17 0 00 402332'		CALL	OLIBIN		;OPEN THE LIBRARY
   644						JRST	[FATAL. (0,CFL,<CAN'T FIND LIBRARY>) ;???
   645	400436'	254 00 0 00 403435'			PJRST	CTYP.X]	;CLEAN UP AND EXIT
   646	400437'	402 00 0 00 000443'		SETZM	FILCNT		;CLEAR FILE COUNT
   647	400440'	402 00 0 00 000444'		SETZM	NOFILR		;CLEAR REJECTED FILE COUNT
   648						MOVEI	T1,[ASCIZ/FILES COPIED FROM LIBRARY:
   649	400441'	201 01 0 00 403440'	/]
   650	400442'	607 00 0 00 100000 		TLNN	F,FL$TYP	;UNLESS WE ARE TYPING
   651	400443'	260 17 0 00 400304*		 CALL	.TSTRG##	; THEN TELL USER THE FILES WE COPIED
   652	400444'	260 17 0 00 402344'		CALL	$MKLST		;MAKE  THE LST
   653	400445'	260 17 0 00 400454'		 CALL	CPYTYF		;(THIS INSTR IS XCT'D BY $MKLST--COROUTINE)
   654	400446'	336 00 0 00 000443'		SKIPN	FILCNT		;FIND ANY FILES?
   655	400447'	260 17 0 00 400322'		 CALL	WRNOFM		;TELL NO FILES MATCHED
   656	400450'	260 17 0 00 402610'	CTYP.X:	CALL	GIVIOL		;GIVE OUTFDB AND INPUT LIST BACK
   657	400451'	623 00 0 00 100000 		TLZE	F,FL$TYP	;WERE WE JUST TYPEING
   658	400452'	260 17 0 00 402764'		 CALL	CLSTTO		;YES--CLOSE OUTPUT
   659	400453'	254 00 0 00 402770'		PJRST	ILBCLS		;GO CLOSE LIBRARY AND RETURN

LIBMAN -- LIBRARY FILE MANIPULATION PROGRAM %3(21)	MACRO %50A(441)-2 13:45 23-FEB-77 PAGE 15
LIBMAN	MAC	17-JAN-77 14:47		PROCESS COPY/TYPE COMMANDS

   660					;COROUTINE CALLED BY $MKLST TO DO THE WORK
   661					;CALLED WITH P3=PTR TO EXT OF FILE IN INCORE DIRECTORY
   662					;AND P4=PTR TO INPUT FDB WHICH MATCHES IT
   663
   664	400454'	260 17 0 00 000000*	CPYTYF:	CALL	.SAVE2##	;PRESERVE P1-2
   665	400455'	552 10 0 00 000445'		HRRZM	P4,IFDBAD	;SAVE FOR .SCWLD
   666	400456'	603 00 0 00 120000 		TLNE	F,FL$TYP!FL$ONE	;ARE WE TYPING OR "ONEOUTING"?
   667	400457'	254 00 0 00 400465'		 JRST	CPTF.3		;YES--SKIP SOME
   668	400460'	514 01 0 00 000337'		HRLZ	T1,OUTFDB	;BLOT OUTFDB TO KNOWN LOC
   669	400461'	607 00 0 00 010000 		TLNN	F,FL$OFG	;SEE IF OUTPUT FILE GIVEN
   670	400462'	514 01 0 00 000010 		 HRLZ	T1,P4		;NO--USE INPUT FDB THAT MATCHES
   671	400463'	541 01 0 00 000446'		HRRI	T1,OFDB
   672	400464'	251 01 0 00 000477'		BLT	T1,OFDB+.FXLEN-1
   673	400465'	550 01 0 00 000644'	CPTF.3:	HRRZ	T1,IBHR+.BFADR	;SETUP TO CLEAR USE BITS
   674	400466'	260 17 0 00 403162'		CALL	CLRUSE		;DO IT
   675	400467'	047 01 0 00 000010 		 WAIT	LIBC,		;XCT'D BY CLRUSE
   676	400470'	550 11 0 07 000000 		HRRZ	B,(P3)		;GET BLOCK # OF LKPBLK IN FILE
   677	400471'	074 01 0 11 000000 		USETI	LIBC,(B)	;SET TO READ IT
   678	400472'	260 17 0 00 403205'		CALL	XCTIO		;READ IT
   679	400473'	056 01 0 00 000000 		 IN	LIBC,		;XCT'D BY XCTIO
   680	400474'	254 00 0 00 400704'		 JRST	CPYIFL		;INCORRECTLY FORMATTED LIB
   681	400475'	550 01 0 00 000645'		HRRZ	T1,IBHR+.BFPTR	;GET THE LKPBLK ADDR
   682	400476'	205 01 0 01 000001 		MOVSI	T1,1(T1)	;+1 AND TO LH
   683	400477'	554 05 0 00 000001 		HLRZ	P1,T1		;REMEMBER ADDRESS FOR LATER
   684	400500'	201 02 0 00 000035 		MOVEI	T2,.RBTIM	;THIS SHOULD BE IN .RBCNT
   685	400501'	312 02 0 05 000000 		CAME	T2,.RBCNT(P1)	;MAKE SURE IT IS
   686	400502'	254 00 0 00 400704'		 JRST	CPYIFL		;NO--GO DIE
   687	400503'	603 00 0 00 100000 		TLNE	F,FL$TYP	;ARE WE TYPEING?
   688	400504'	254 00 0 00 400602'		 JRST	CPTF.4		;YES--NO NEED TO CALL .SCWLD
   689	400505'	603 00 0 00 020000 		TLNE	F,FL$ONE	;IS THIS A "ONEOUT"?
   690	400506'	254 00 0 00 400611'		 JRST	CPTF.5		;YES--OUTPUT FILE IS ALREADY OPEN
   691	400507'	541 01 0 00 000544'		HRRI	T1,LKPBLK	;SET IN WHERE IT GOES TO
   692	400510'	251 01 0 00 000601'		BLT	T1,LKPBLK+.RBTIM ;ZIP IT OVER
   693	400511'	205 01 0 00 446353 		MOVSI	T1,'DSK'	;JUST USE DSK FOR NOW
   694	400512'	202 01 0 00 000542'		MOVEM	T1,OPNBLK+.OPDEV;
   695	400513'	200 01 0 00 400706'		MOVE	T1,SCWABL	;SETUP FOR .SCWLD
   696	400514'	260 17 0 00 000000*		CALL	.SCWLD##	;DO SECONDARY WILDCARDING
   697	400515'	263 17 0 00 000000 		 POPJ	P,		;MESSAGE ALREADY ISSUED--JUST RETURN
   698	400516'	200 01 0 00 000501'		MOVE	T1,DSKOPN+.OPDEV;GET THE DEVICE NAME
   699	400517'	047 01 0 00 000004 		DEVCHR	T1,		;GET CHARACTERISTICS
   700	400520'	606 01 0 00 004000 		TXNN	T1,DV.M13	;CAN IT DO BINARY MODE I/O?
   701	400521'	254 00 0 00 400677'		 JRST	CPYN13		;NO--GO DIE OUT

LIBMAN -- LIBRARY FILE MANIPULATION PROGRAM %3(21)	MACRO %50A(441)-2 13:45 23-FEB-77 PAGE 16
LIBMAN	MAC	17-JAN-77 14:47		PROCESS COPY/TYPE COMMANDS

   702	400522'	135 01 0 00 403446'		LDB	T1,[POINTR(.RBPRV(P1),RB.MOD)] ;GET MODE OF FILE
   703	400523'	202 01 0 00 000500'		MOVEM	T1,DSKOPN+.OPMOD;SET THE MODE
   704	400524'	205 01 0 00 000647'		MOVSI	T1,OBHR		;AND THE BUFFER HEADER
   705	400525'	202 01 0 00 000502'		MOVEM	T1,DSKOPN+.OPBUF;...
   706	400526'	050 03 0 00 000500'		OPEN	OUTC,DSKOPN	;OPEN THE CHANNEL
   707	400527'	254 00 0 00 000000*		 PJRST	E.SCO##		;REPORT OPEN ERROR
   708	400530'	550 01 0 05 000003 		HRRZ	T1,.RBEXT(P1)	;GET GOOD BITS
   709	400531'	542 01 0 00 000506'		HRRM	T1,DSKLKP+.RBEXT;AND SET IN ENTER BLOCK
   710	400532'	200 01 0 05 000004 		MOVE	T1,.RBPRV(P1)	;GET PRIV WORDS
   711	400533'	621 01 0 00 777000 		TLZ	T1,777000	;CLEAR PROT SINCE .SCWLD SETS IT UP
   712	400534'	436 01 0 00 000507'		IORM	T1,DSKLKP+.RBPRV;SO JUST SET EVERYTHING ELSE
   713	400535'	200 01 0 05 000007 		MOVE	T1,.RBSPL(P1)	;COPY REST OF ARGS WE CAN SET
   714	400536'	202 01 0 00 000512'		MOVEM	T1,DSKLKP+.RBSPL
   715	400537'	200 01 0 05 000011 		MOVE	T1,.RBALC(P1)
   716	400540'	202 01 0 00 000514'		MOVEM	T1,DSKLKP+.RBALC;
   717									;***DON'T SET .RBEST DUE TO MON BUG
   718									;IF .RBEST .GT. .RBALC!!!***
   719	400541'	200 01 0 05 000014 		MOVE	T1,.RBNCA(P1)	;NON-PRIV CUST ARG
   720	400542'	202 01 0 00 000517'		MOVEM	T1,DSKLKP+.RBNCA;IN CASE ANYONE USES IT
   721	400543'	200 01 0 05 000006 		MOVE	T1,.RBVER(P1)	;DON'T FORGET THE VERSION
   722	400544'	336 00 0 00 000511'		SKIPN	DSKLKP+.RBVER	;BUT DON'T OVERWRITE IF SPECIFIED IN COMMAND
   723	400545'	202 01 0 00 000511'		MOVEM	T1,DSKLKP+.RBVER;...
   724	400546'	337 02 0 00 000656'		SKIPG	T2,S.DSUP	;PICKUP DSUPERSEDE SWITCH IF GIVEN
   725	400547'	200 02 0 00 000660'		 MOVE	T2,S.SUPR	;ELSE USE THE /SUPERSEDE VALUE
   726	400550'	337 00 0 00 000002 		SKIPG	T2		;SEE IF WE GOT A /SUPERSEDE VALUE
   727	400551'	201 02 0 00 000002 		MOVEI	T2,SUPDEF	;NO--USE THE DEFAULT
   728	400552'	332 00 0 05 000035 		SKIPE	.RBTIM(P1)	;IS CREATION DATE/TIME ZERO? (IE FROM UFLIP)
   729	400553'	306 02 0 00 000001 		CAIN	T2,SUPALW	;WAS IT /SUPERSEDE:ALWAYS?
   730	400554'	254 00 0 00 400570'		 JRST	CPTYEN		;YES--FORGET THE DATE CHECKS
   731	400555'	200 01 0 00 403447'		MOVE	T1,[XWD DSKOPN,TMPOPN] ;NO--MUST CHECK IF FILE ALREADY LIVES
   732	400556'	251 01 0 00 000642'		BLT	T1,TMPXEN	;SO MAKE A DESTROYABLE COPY
   733	400557'	050 05 0 00 000602'		OPEN	TMPC,TMPOPN	;OPEN THE DEVICE
   734	400560'	254 00 0 00 400570'		 JRST	CPTYEN		;??? JUST IGNORE THE WHOLE THING
   735	400561'	076 05 0 00 000605'		LOOKUP	TMPC,TMPLKP	;SEE IF FILE ALREADY LIVES
   736	400562'	254 00 0 00 400713'		 JRST	CPTLER		;DOESN'T OR SOME ERROR--CHECK IT OUT
   737	400563'	306 02 0 00 000003 	CPTYCS:	CAIN	T2,SUPNEV	;IT LIVES--WAS IT /SUPERSEDE:NEVER
   738	400564'	254 00 0 00 400717'		 PJRST	WRNFNC		;YES--TELL USER OF /SUPERSEDE FAILURE
   739	400565'	200 01 0 00 000642'		MOVE	T1,TMPLKP+.RBTIM;NO--GET INTERNAL CREATION TIME
   740	400566'	311 01 0 05 000035 		CAML	T1,.RBTIM(P1)	;MUST BE OLDER THAN ONE IN LIBRARY
   741	400567'	254 00 0 00 400717'		 PJRST	WRNFNC		;NO--SAME COPY OR NEWER--IGNORE IT
   742	400570'	077 03 0 00 000503'	CPTYEN:	ENTER	OUTC,DSKLKP	;WRITE THE FILE
   743	400571'	254 00 0 00 000000*		 PJRST	E.SCL##		;REPORT ENTER ERROR
   744	400572'	060 03 0 00 000014 		SETSTS	OUTC,.IOBIN	;BACK TO BUFFERED BINARY
   745	400573'	201 01 0 00 000014 		MOVEI	T1,.IOBIN	;SET IN OPEN BLOCK ALSO
   746	400574'	542 01 0 00 000500'		HRRM	T1,DSKOPN+.OPMOD;FOR .ALCBF
   747	400575'	260 17 0 00 403117'		CALL	GETNBF		;GET CORRECT # BUFFERS
   748	400576'	200 02 0 00 403450'		MOVE	T2,[XWD DSKOPN,OBHR] ;FOR .ALCBF
   749	400577'	260 17 0 00 400336*		CALL	.ALCBF##	;ALLOCATE BUFFERS FOR OUTPUT
   750	400600'	067 03 0 00 000000 		OUTPUT	OUTC,		;DUMMY OUTPUT TO GET HEADER RIGHT
   751	400601'	254 00 0 00 400611'		JRST	CPTF.5		;SKIP TTY CODE

LIBMAN -- LIBRARY FILE MANIPULATION PROGRAM %3(21)	MACRO %50A(441)-2 13:45 23-FEB-77 PAGE 17
LIBMAN	MAC	17-JAN-77 14:47		PROCESS COPY/TYPE COMMANDS

   752	400602'	201 01 0 00 000133 	CPTF.4:	MOVEI	T1,"["		;TELL WHAT FILE WE ARE TYPEING
   753	400603'	260 17 0 00 000000*		CALL	.TCHAR##	;...
   754	400604'	201 01 0 00 403355'		MOVEI	T1,[EXP .IODMP,'DSK   ',0];SETUP FAKE OPEN BLOCK
   755	400605'	201 02 0 05 000000 		MOVEI	T2,(P1)		;POINT TO THE LKPBLK IN THE BUFFER
   756	400606'	260 17 0 00 400365*		CALL	.TOLEB##	;TYPE OPEN LOOKUP BLOCK
   757						STRNG$	<]
   758	400607'	201 01 0 00 403451'	>				;CLOSE IT OUT
   759	400610'	260 17 0 00 400443*
   760	400611'	200 05 0 05 000005 	CPTF.5:	MOVE	P1,.RBSIZ(P1)	;GET SIZE OF FILE IN WORDS
   761	400612'	271 05 0 00 000177 		ADDI	P1,177		;ROUND UP
   762	400613'	246 05 0 00 777771 		LSHC	P1,-7		;GET BLOCKS, SAVE REMAINDER WORDS
   763	400614'	242 06 0 00 777743 		LSH	P2,-35		;GET REMAINDER WORDS - 1
   764	400615'	340 06 0 00 000000 		AOJ	P2,		;NOW HAVE CORRECT # WORDS FOR LAST BLOCK
   765	400616'	340 11 0 00 000000 		AOJ	B,		;INC B TO NEXT BLOCK

LIBMAN -- LIBRARY FILE MANIPULATION PROGRAM %3(21)	MACRO %50A(441)-2 13:45 23-FEB-77 PAGE 18
LIBMAN	MAC	17-JAN-77 14:47		PROCESS COPY/TYPE COMMANDS

   766					;COPY THE FILE FROM THE LIBRARY OUT TO WHATEVER
   767
   768	400617'	361 05 0 00 400660'	CPTF.6:	SOJL	P1,CPTF.X	;WATCH FOR THE END
   769	400620'	260 17 0 00 403205'		CALL	XCTIO		;READ NEXT LIB RECORD
   770	400621'	056 01 0 00 000000 		 IN	LIBC,		;XCT'D
   771						 JRST	[CALL	DSKOCL	;??? CLOSE DISK FILE
   772	400622'	254 00 0 00 403452'			JRST	CPYIFL]	;AND GO DIE
   773	400623'	336 00 0 00 000005 		SKIPN	P1		;SKIP IF NOT LAST BLOCK
   774	400624'	202 06 0 00 000646'		MOVEM	P2,IBHR+.BFCTR	;YES--SET TO ONLY DO SO MANY WORDS
   775	400625'	200 01 0 00 000646'		MOVE	T1,IBHR+.BFCTR	;GET SIZE OF BUFFER DATA
   776	400626'	200 02 0 00 000651'	CPTF.8:	MOVE	T2,OBHR+.BFCTR	;AND SIZE OF OUTPUT BUFFER
   777	400627'	603 00 0 00 100000 		TLNE	F,FL$TYP	;ARE WE TYPEING?
   778	400630'	231 02 0 00 000005 		 IDIVI	T2,5		;YES--CVT CHARS TO WORDS
   779	400631'	313 01 0 00 000002 		CAMLE	T1,T2		;ROOM FOR ALL?
   780	400632'	200 01 0 00 000002 		 MOVE	T1,T2		;NO--MOVE WHAT WE CAN
   781	400633'	210 02 0 00 000001 		MOVN	T2,T1		;GET - WORDS
   782	400634'	272 02 0 00 000646'		 ADDM	T2,IBHR+.BFCTR	;UPDATE INPUT COUNTER
   783	400635'	603 00 0 00 100000 		  TLNE	F,FL$TYP	;TYPEING?
   784	400636'	221 02 0 00 000005 		   IMULI T2,5		;YES--BACK TO CHARACTERS
   785	400637'	272 02 0 00 000651'		ADDM	T2,OBHR+.BFCTR	;UPDATE OUTPUT COUNTER
   786	400640'	514 02 0 00 000645'		HRLZ	T2,IBHR+.BFPTR	;GET INPUT POINTER
   787	400641'	540 02 0 00 000650'		HRR	T2,OBHR+.BFPTR	;AND OUTPUT
   788	400642'	252 02 0 00 400643'		AOBJP	T2,.+1		;OFF BY ONE
   789	400643'	272 01 0 00 000645'		ADDM	T1,IBHR+.BFPTR	;UPDATE INPUT PTR
   790	400644'	273 01 0 00 000650'		ADDB	T1,OBHR+.BFPTR	;AND OUTPUT AND GET END ADR OF BLT
   791	400645'	251 02 0 01 000000 		BLT	T2,(T1)		;MOVE THE DATA
   792	400646'	603 00 0 00 020000 		TLNE	F,FL$ONE	;IF THIS IS "ONEOUT"
   793	400647'	337 00 0 00 000651'		 SKIPG	OBHR+.BFCTR	;YES--SEE IF LAST BUFFER IS FULL BUFFER
   794	400650'	334 00 0 00 000000 		  SKIPA			;NOT ONEOUT OR LAST BUFFER IS FULL
   795	400651'	322 05 0 00 400660'		JUMPE	P1,CPTF.X	;ONEOUT AND LAST BUFFER--THEN DON'T OUTPUT IT
   796									;SO WE DON'T FILL BLOCK WITH ZEROS
   797	400652'	260 17 0 00 403205'		CALL	XCTIO		;WRITE THE BUFFER
   798	400653'	057 03 0 00 000000 		 OUT	OUTC,		;XCT'D
   799	400654'	254 04 0 00 000001 		 STOPX$			;***FULL??
   800	400655'	333 01 0 00 000646'		SKIPLE	T1,IBHR+.BFCTR	;ANY MORE IN THIS INPUT BUFFER?
   801	400656'	254 00 0 00 400626'		 JRST	CPTF.8		;YES--GO GET IT
   802	400657'	344 11 0 00 400617'		AOJA	B,CPTF.6	;NO--INC BLOCK COUNTER AND GET NEXT BLOCK
   803	400660'	603 00 0 00 120000 	CPTF.X:	TLNE	F,FL$TYP!FL$ONE	;UNLESS WE ARE TYPEING OR ONEOUTING
   804	400661'	254 00 0 00 400675'		 JRST	CPTFX2		;YES--SKIP AHEAD SOME
   805	400662'	200 01 0 07 777777 		MOVE	T1,-1(P3)	;GET FILE NAME
   806	400663'	260 17 0 00 400114*		CALL	.TSIXN##	;TYPE IT OUT
   807	400664'	260 17 0 00 403346'		CALL	.TDOT		;AND A DOT
   808	400665'	510 01 0 07 000000 		HLLZ	T1,(P3)		;GRAB THE EXTENSION
   809	400666'	541 01 0 00 353600 		HRRI	T1,'=> '	;FORM RH TOO
   810	400667'	260 17 0 00 400663*		CALL	.TSIXN##	;TYPE IT OUT
   811	400670'	201 01 0 00 000500'		MOVEI	T1,DSKOPN	;GET OPEN BLOCK ADDR
   812	400671'	201 02 0 00 000503'		MOVEI	T2,DSKLKP	;AND LOOKUP BLOCK
   813	400672'	260 17 0 00 403175'		CALL	$TLBVP		;TYPE LOOKUP BLOCK, VERSION AND PROTECTION
   814	400673'	260 17 0 00 400366*		CALL	.TCRLF##	;NEW LINE NOW
   815	400674'	260 17 0 00 402764'		CALL	DSKOCL		;CLOSE OUTPUT
   816	400675'	350 00 0 00 000443'	CPTFX2:	AOS	FILCNT		;COUNT A FILE AS DONE
   817	400676'	263 17 0 00 000000 		POPJ	P,		;ALL DONE
   818
   819					;HERE IF CAN'T DO BINARY I/O
   820

LIBMAN -- LIBRARY FILE MANIPULATION PROGRAM %3(21)	MACRO %50A(441)-2 13:45 23-FEB-77 PAGE 18-1
LIBMAN	MAC	17-JAN-77 14:47		PROCESS COPY/TYPE COMMANDS

   821	400677'	201 01 0 00 000541'	CPYN13:	MOVEI	T1,OPNBLK	;GET OPEN BLOCK
   822	400700'	201 02 0 00 000503'		MOVEI	T2,DSKLKP	;AND LOOKUP BLOCK
   823	400701'	260 17 0 00 403234'		ERROR.	EF$LEB,CDB,<CAN'T DO BINARY I/O TO >
   824	400702'	300007	403461'
   825	400703'	263 17 0 00 000000 		POPJ	P,		;JUST RETURN

LIBMAN -- LIBRARY FILE MANIPULATION PROGRAM %3(21)	MACRO %50A(441)-2 13:45 23-FEB-77 PAGE 19
LIBMAN	MAC	17-JAN-77 14:47		PROCESS COPY/TYPE COMMANDS

   826					;HERE WHEN FILE IN BAD FORMAT
   827
   828	400704'	260 17 0 00 400450'	CPYIFL:	CALL	CTYP.X		;CLEAN UP
   829	400705'	254 00 0 00 402304'		PJRST	E$$IFL		;REPORT BAD FORMAT
   830
   831					;ARG BLOCK FOR .SCWLD
   832
   833	400706'	000004	400707'		SCWABL:	XWD	4,.+1
   834	400707'	000445'	403462'			XWD	IFDBAD,[OFDB]	;SCAN FILE SPEC
   835	400710'	000541'	000500'			XWD	OPNBLK,DSKOPN	;OPEN BLOCK
   836	400711'	000544'	000503'			XWD	LKPBLK,DSKLKP	;LOOKUP/ENTER BLOCK
   837	400712'	403357'	000036			XWD	[0],.RBTIM+1	;DEFAULT OUTPUT EXT,,LENGTH OF ENTER BLOCK
   838
   839					;HERE WHEN LOOKUP FOR CHECKING /SUPERSEDE FAILS
   840
   841	400713'	071 05 0 00 000000 	CPTLER:	RELEASE	TMPC,		;CLOSE THE CONNECTION
   842	400714'	550 01 0 00 000610'		HRRZ	T1,TMPLKP+.RBEXT;GET FAIL CODE
   843	400715'	322 01 0 00 400570'		JUMPE	T1,CPTYEN	;IF FILE NOT FOUND THEN GO AHEAD
   844	400716'	254 00 0 00 400563'		JRST	CPTYCS		;ELSE GO CHECK DATE/TIME STUFF
   845
   846					;HERE TO REPORT A FILE NOT COPIED--T2 HAS SUPXXX
   847
   848	400717'	350 00 0 00 000444'	WRNFNC:	AOS	NOFILR		;COUNT A FILE AS REJECTED
   849						SAVE$	T2		;SAVE T2
   850	400721'	201 01 0 00 000602'		MOVEI	T1,TMPOPN	;POINT AT OPEN BLOCK
   851	400722'	201 02 0 00 000605'		MOVEI	T2,TMPLKP	;AND LOOKUP BLOCK
   852	400723'	260 17 0 00 403234'		WARN.	EF$NCR!EF$LEB,FNC,<FILE NOT COPIED: >
   853	400724'	300247	403467'
   854	400725'	200 02 0 17 000000 		MOVE	T2,(P)		;GET SUPXXX
   855	400726'	260 17 0 00 400733'		CALL	TSUPSW		;TYPE /SUPERSEDE:XXXXX
   856	400727'	262 17 0 00 000002 	X$$FNC:	POP	P,T2		;KEEP THE STACK STRAIGHT
   857
   858					;HERE TO RELEASE CHANNELS AND RETURN BECAUSE SUPERSEDE TEST FAILED
   859
   860	400730'	071 05 0 00 000000 	CPTOLD:	RELEASE	TMPC,		;CLOSE TEMP CHANNEL
   861	400731'	071 03 0 00 000000 		RELEASE	OUTC,		;AND OUTPUT
   862	400732'	263 17 0 00 000000 		POPJ	P,		;RETURN
   863
   864					;TYPE /SUPERSEDE:XXXXX
   865					;ENTER WITH SUPXXX IN T2
   866
   867	400733'	201 01 0 00 403471'	TSUPSW:	STRNG$	</SUPERSEDE:>
   868	400734'	260 17 0 00 400610*
   869	400735'	200 01 0 02 400116'		MOVE	T1,SUP.T-1(T2)	;GET SIXBIT REPRESENTATION OF IT
   870	400736'	260 17 0 00 400667*		CALL	.TSIXN##	;TYPE IT
   871	400737'	254 00 0 00 400673*		PJRST	.TCRLF##	;AND NEW LINE EXIT

LIBMAN -- LIBRARY FILE MANIPULATION PROGRAM %3(21)	MACRO %50A(441)-2 13:45 23-FEB-77 PAGE 20
LIBMAN	MAC	17-JAN-77 14:47		PROCESS DELETE COMMAND

   872					SUBTTL	PROCESS DELETE COMMAND
   873
   874	400740'	625 00 0 00 100000 	$DELET:	TLZA	F,FL$TYP	;FLAG DELETE
   875	400741'	661 00 0 00 100000 	$REPLA:	TLO	F,FL$TYP	;RATHER THAN A REPLACE
   876	400742'	325 00 0 00 403344'		JUMPNU	E$$NUC		;NEED A USE COMMAND
   877	400743'	603 00 0 00 200000 		JUMPCR	E$$LIE		;AND NOT CREATE
   878	400744'	254 00 0 00 400420'
   879	400745'	603 00 0 00 040000 		JMPRDO	E$$IRO		;AND CERTAINLY NOT READ ONLY
   880	400746'	254 00 0 00 400411'
   881	400747'	260 17 0 00 400454*		CALL	.SAVE2##	;OK--ITS COOL--SAVE REGISTERS
   882	400750'	350 00 0 17 000000 		AOS	(P)		;AND SET TO SKIP SO SCAN DOESN'T WIPE FLAGS
   883	400751'	260 17 0 00 402523'		CALL	$GTLST		;GET A FILE LIST
   884	400752'	254 00 0 00 402133'		 JRST	E$$NFS		;MUST HAVE A LIST
   885	400753'	260 17 0 00 402243'		CALL	$GTDIR		;CREATE INCORE DIR IF NOT DONE ALREADY
   886	400754'	402 00 0 00 000443'		SETZM	FILCNT		;CLEAR FILE COUNT
   887	400755'	402 00 0 00 000444'		SETZM	NOFILR		;CLEAR # FILES REJECTED
   888	400756'	260 17 0 00 402344'		CALL	$MKLST		;MAKE THE LIST OF FILES TO DELETE/REPLACE
   889	400757'	260 17 0 00 401167'		 CALL	RDLSUB		;XCT'D BY $MKLST
   890	400760'	332 00 0 00 000443'		SKIPE	FILCNT		;DID WE GET A LST
   891	400761'	254 00 0 00 400764'		 JRST	DLRP.2		;YES
   892	400762'	260 17 0 00 400322'		CALL	WRNOFM		;NO FILES MATCHED
   893	400763'	254 00 0 00 402610'		PJRST	GIVIOL		;GIVE I/O LISTS AND RETURN
   894
   895	400764'	200 01 0 00 000340'	DLRP.2:	MOVE	T1,LIBFDB	;GET THE LIBRARY FOR INPUT
   896	400765'	260 17 0 00 403022'		CALL	OPENIO		;...
   897	400766'	300 04 0 14 000652'		 CAI	ILIB,LBHR(.IOBIN)
   898	400767'	254 00 0 00 401166'		  JRST	DLRPNL		;NO LIBRARY!!!
   899	400770'	260 17 0 00 403117'		CALL	GETNBF		;GET BUFFER COUNT
   900	400771'	200 02 0 00 403474'		MOVE	T2,[XWD OPNBLK,LBHR]
   901	400772'	260 17 0 00 400577*		CALL	.ALCBF##
   902	400773'	200 01 0 00 000340'		MOVE	T1,LIBFDB	;SET TO REWRITE LIBRARY
   903	400774'	260 17 0 00 403022'		CALL	OPENIO
   904	400775'	300 01 1 14 000647'		CAI	LIBC,@OBHR(.IOBIN) ;OPEN FOR OUTPUT
   905	400776'	255 00 0 00 000000 		 JFCL			;SHOULD ALWAYS CPOPJ2 FOR WRITING
   906	400777'	260 17 0 00 403117'		CALL	GETNBF		;GET BUFFER COUNT
   907	401000'	200 02 0 00 403475'		MOVE	T2,[XWD OPNBLK,OBHR]
   908	401001'	260 17 0 00 400772*		CALL	.ALCBF##
   909	401002'	067 01 0 00 000000 		OUTPUT	LIBC,		;DO A DUMMY OUTPUT
   910	401003'	201 11 0 00 000001 		MOVEI	B,1		;INIT BLOCK COUNTER
   911	401004'	201 01 0 00 403476'		STRNG$	<FILES >	;SETUP HEADER
   912	401005'	260 17 0 00 400734*
   913	401006'	201 01 0 00 403500'		MOVEI	T1,[ASCIZ/DELETED/]
   914	401007'	603 00 0 00 100000 		TLNE	F,FL$TYP	;SEE IF DELETING OR REPLACING
   915	401010'	201 01 0 00 403502'		MOVEI	T1,[ASCIZ/REPLACED/]
   916	401011'	260 17 0 00 401005*		CALL	.TSTRG##
   917						STRNG$	<:
   918	401012'	201 01 0 00 403445'	>
   919	401013'	260 17 0 00 401011*

LIBMAN -- LIBRARY FILE MANIPULATION PROGRAM %3(21)	MACRO %50A(441)-2 13:45 23-FEB-77 PAGE 21
LIBMAN	MAC	17-JAN-77 14:47		PROCESS DELETE COMMAND

   920					;NOW LOOP OVER THE INPUT LIBRARY AND DELETE OR REPLACE AS NEEDED
   921
   922	401014'	260 17 0 00 403205'	DLRP.4:	CALL	XCTIO		;GET A LKPBLK FROM INPUT DIR
   923	401015'	056 04 0 00 000000 		 IN	ILIB,		;XCT'D
   924	401016'	254 00 0 00 401151'		JRST	DLRPDN		;EOF--WE ARE DONE
   925	401017'	200 05 0 00 000653'		MOVE	P1,LBHR+.BFPTR	;ADDRESS THE BUFFER
   926	401020'	340 05 0 00 000000 		AOJ	P1,
   927	401021'	200 01 0 05 000000 		MOVE	T1,.RBCNT(P1)	;GET THE COUNT
   928	401022'	302 01 0 00 000035 		CAIE	T1,.RBTIM	;MUST BE THIS
   929	401023'	254 00 0 00 401162'		 JRST	DLRIFL		;OR WE HAVE A BAD LIBRARY
   930	401024'	200 06 0 05 000005 		MOVE	P2,.RBSIZ(P1)	;GET FILE SIZE IN WORDS
   931	401025'	271 06 0 00 000177 		ADDI	P2,177		;ROUND UP
   932	401026'	242 06 0 00 777771 		LSH	P2,-7		;P2=# BLOCKS NEEDED TO HOLD FILE
   933	401027'	200 01 0 05 000002 		MOVE	T1,.RBNAM(P1)	;GET FILENAME
   934	401030'	510 02 0 05 000003 		HLLZ	T2,.RBEXT(P1)	;AND EXTENSION
   935	401031'	200 03 0 00 000336'		MOVE	T3,LSTPTR	;THIS IS WHERE THE LST IS
   936	401032'	260 17 0 00 402434'		CALL	IFNLST		;SEE IF THIS FILE IS DESTINED TO BE DELETED
   937	401033'	254 00 0 00 401126'		 JRST	DLRP.8		;NO--JUST COPY TO NEW LIBRARY
   938	401034'	607 00 0 00 100000 		TLNN	F,FL$TYP	;ARE WE REPLACING OR DELETING?
   939	401035'	254 00 0 00 401111'		 JRST	DLRP.7		;DELETING--JUST SKIP TO NEXT LKPBLK
   940	401036'	514 01 0 03 000000 		HRLZ	T1,(T3)		;GET FDB POINTER
   941	401037'	541 01 0 00 000446'		HRRI	T1,OFDB		;AND WHERE TO STORE IT
   942	401040'	251 01 0 00 000477'		BLT	T1,OFDB+.FXLEN-1;MAKE A COPY WE CAN SCRIBBLE ON
   943	401041'	200 01 0 05 000002 		MOVE	T1,.RBNAM(P1)	;GET THE FILENAME
   944	401042'	202 01 0 00 000447'		MOVEM	T1,OFDB+.FXNAM	;SET IN FDB
   945	401043'	510 02 0 05 000003 		HLLZ	T2,.FXEXT(P1)	;AND THE XTENSION
   946	401044'	522 02 0 00 000451'		HLLOM	T2,OFDB+.FXEXT	;SET IT AND MASK
   947	401045'	476 00 0 00 000450'		SETOM	OFDB+.FXNMM	;SET FILENAME MASK TO ALL ONES
   948	401046'	201 01 0 00 000446'		MOVEI	T1,OFDB		;POINT AT FDB FOR OPENIO
   949	401047'	260 17 0 00 403022'		CALL	OPENIO		;OPEN FILE FOR READING
   950	401050'	300 02 0 14 000644'		 CAI	INPC,IBHR(.IOBIN)
   951	401051'	254 00 0 00 401126'		 JRST	DLRP.8		;??? IT DISSAPPEARED
   952	401052'	337 02 0 00 000657'		SKIPG	T2,S.LSUP	;PICKUP/CHECK LSUPERSEDE ARG IF GIVEN...
   953	401053'	200 02 0 00 000660'		MOVE	T2,S.SUPR	;GET SUPERSEDE ARGUMENT
   954	401054'	337 00 0 00 000002 		SKIPG	T2		;DID WE GET A /SUPERSEDE?
   955	401055'	201 02 0 00 000002 		 MOVEI	T2,SUPDEF	;NO--SUPPLY THE DEFAULT
   956	401056'	332 00 0 05 000035 		SKIPE	.RBTIM(P1)	;WAS CREATE DATE 0 (IE FROM UFLIP)?
   957	401057'	306 02 0 00 000001 		CAIN	T2,SUPALW	;/SUPERSEDE:ALWAYS?
   958	401060'	254 00 0 00 401076'		 JRST	DLRP.6		;YES--GO DO IT
   959	401061'	200 01 0 00 000601'		MOVE	T1,LKPBLK+.RBTIM;NO--GET DISK FILE CREATION DATE/TIME
   960	401062'	313 01 0 05 000035 		CAMLE	T1,.RBTIM(P1)	;SEE IF NEWER THAN ONE IN LIBRARY
   961	401063'	254 00 0 00 401076'		 JRST	DLRP.6		;YES--GO REPLACE IT
   962	401064'	261 17 0 00 000002 		PUSH	P,T2		;NO--SAVE SUPXXX
   963	401065'	201 01 0 00 000541'		MOVEI	T1,OPNBLK	;POINT AT OPEN BLOCK
   964	401066'	201 02 0 00 000544'		MOVEI	T2,LKPBLK
   965	401067'	350 00 0 00 000444'		AOS	NOFILR		;COUNT A REJECTED FILE
   966	401070'	260 17 0 00 403234'		WARN.	EF$NCR!EF$LEB,FNR,<FILE NOT REPLACED: >
   967	401071'	300247	403510'
   968	401072'	200 02 0 17 000000 		MOVE	T2,(P)		;GET /SUPERSEDE VALUE
   969	401073'	260 17 0 00 400733'		CALL	TSUPSW		;TYPE /SUPERSEDE:XXX AND NEW LINE
   970	401074'	262 17 0 00 000002 	X$$FNR:	POP	P,T2		;KEEP STACK STRAIGHT
   971	401075'	254 00 0 00 401125'		JRST	DLRP8A		;GO IGNORE THIS FILE

LIBMAN -- LIBRARY FILE MANIPULATION PROGRAM %3(21)	MACRO %50A(441)-2 13:45 23-FEB-77 PAGE 22
LIBMAN	MAC	17-JAN-77 14:47		PROCESS DELETE COMMAND

   972	401076'	260 17 0 00 403117'	DLRP.6:	CALL	GETNBF		;FIND # BUFFERS TO SETUP
   973	401077'	200 02 0 00 403411'		MOVE	T2,[XWD OPNBLK,IBHR] ;...
   974	401100'	260 17 0 00 401001*		CALL	.ALCBF##
   975	401101'	205 01 0 00 000543'		MOVSI	T1,LKPBLK-1
   976	401102'	540 01 0 00 000650'		HRR	T1,OBHR+.BFPTR	;COPY LKPBLK TO NEW LIBRARY
   977	401103'	252 01 0 00 401104'		AOBJP	T1,.+1		;...
   978	401104'	201 02 0 01 000036 		MOVEI	T2,.RBTIM+1(T1)	;SET END OF BLT
   979	401105'	505 05 0 11 000000 		HRLI	P1,(B)		;SAVE OLD B
   980	401106'	260 17 0 00 400401'		CALL	DCPY.1		;REPLACE THE FILE
   981	401107'	260 17 0 00 402760'		CALL	DSKICL		;CLOSE OUT DISK INPUT FILE
   982	401110'	554 11 0 00 000005 		HLRZ	B,P1		;GET B BACK

LIBMAN -- LIBRARY FILE MANIPULATION PROGRAM %3(21)	MACRO %50A(441)-2 13:45 23-FEB-77 PAGE 23
LIBMAN	MAC	17-JAN-77 14:47		PROCESS DELETE COMMAND

   983	401111'	200 01 0 05 000002 	DLRP.7:	MOVE	T1,.RBNAM(P1)	;GET FILENAME WE ARE DELETING OR REPLACING
   984	401112'	260 17 0 00 400736*		CALL	.TSIXN##
   985	401113'	260 17 0 00 403346'		CALL	.TDOT
   986	401114'	510 01 0 05 000003 		HLLZ	T1,.RBEXT(P1)
   987	401115'	260 17 0 00 401112*		CALL	.TSIXN##
   988	401116'	260 17 0 00 400737*		CALL	.TCRLF##
   989	401117'	550 01 0 00 000652'		HRRZ	T1,LBHR+.BFADR	;SETUP TO CLEAR USE BITS
   990	401120'	260 17 0 00 403162'		CALL	CLRUSE
   991	401121'	047 04 0 00 000010 		 WAIT	ILIB,		;XCT'D
   992	401122'	271 11 0 06 000001 		ADDI	B,1(P2)		;ADVANCE TO NEXT LKPBLK
   993	401123'	074 04 0 11 000000 		USETI	ILIB,(B)	;...
   994	401124'	254 00 0 00 401014'		JRST	DLRP.4		;GO HANDLE NEXT LIBRARY ENTRY
   995
   996					;HERE TO JUST COPY FROM INPUT LIBRARY TO OUTPUT LIBRARY
   997
   998	401125'	071 02 0 00 000000 	DLRP8A:	RELEASE	INPC,		;CLOSE OUT INPUT CHANNEL
   999	401126'	205 01 0 05 777777 	DLRP.8:	MOVSI	T1,-1(P1)	;SETUP BLT
  1000	401127'	344 06 0 00 401134'		AOJA	P2,DLRP10	;COUNT LKPBLK AND GO DO IT
  1001	401130'	260 17 0 00 403205'	DLRP.9:	CALL	XCTIO		;GET NEXT BLOCK FOR THIS FILE IN LIB
  1002	401131'	056 04 0 00 000000 		 IN	ILIB,		;XCT'D
  1003	401132'	254 00 0 00 401162'		  JRST	DLRIFL		;SNH
  1004	401133'	514 01 0 00 000653'		HRLZ	T1,LBHR+.BFPTR	;BEGIN CTL WORD
  1005	401134'	540 01 0 00 000650'	DLRP10:	HRR	T1,OBHR+.BFPTR
  1006	401135'	252 01 0 00 401136'		AOBJP	T1,.+1
  1007	401136'	201 02 0 01 000200 		MOVEI	T2,200(T1)	;END OF BLT
  1008	401137'	251 01 0 02 777777 		BLT	T1,-1(T2)	;MOVE IT
  1009	401140'	200 01 0 00 000651'		MOVE	T1,OBHR+.BFCTR	;GET THE COUNT
  1010	401141'	272 01 0 00 000650'		ADDM	T1,OBHR+.BFPTR	;ADJUST PTR
  1011	401142'	402 00 0 00 000651'		SETZM	OBHR+.BFCTR	;AND COUNTER
  1012	401143'	260 17 0 00 403205'		CALL	XCTIO		;WRITE THE BLOCK
  1013	401144'	057 01 0 00 000000 		 OUT	LIBC,		;TO NEW LIBRARY
  1014	401145'	254 04 0 00 000002 		 STOPX$			;SNH
  1015
  1016	401146'	271 11 0 00 000001 		ADDI	B,1		;MOVE TO NEXT BLOCK
  1017	401147'	367 06 0 00 401130'		SOJG	P2,DLRP.9	;GO IF WE NEED TO COPY MORE
  1018	401150'	254 00 0 00 401014'		JRST	DLRP.4		;NO--ALL DONE
  1019
  1020					;HERE WHEN WE ARE ALL DONE
  1021
  1022	401151'	260 17 0 00 402714'	DLRPDN:	CALL	OLBCLS		;CLOSE OUTPUT LIBRARY
  1023	401152'	071 04 0 00 000000 	DLRPD0:	RELEASE	ILIB,		;CLOSE INPUT
  1024	401153'	201 01 0 00 000652'		MOVEI	T1,LBHR		;SETUP TO FREE BUFFERS
  1025	401154'	260 17 0 00 402723'		CALL	TSTBHR		;FREE BUFFERS
  1026	401155'	260 17 0 00 402237'		CALL	ZAPDIR		;ZERO INCORE DIR SO WE WILL REREAD IT
  1027	401156'	200 01 0 00 000336'		MOVE	T1,LSTPTR	;FREE LST
  1028	401157'	260 17 0 00 402575'		CALL	GIVLST
  1029	401160'	402 00 0 00 000336'		SETZM	LSTPTR		;MAKE SURE NO MORE
  1030	401161'	254 00 0 00 402610'		PJRST	GIVIOL		;GIVE BACK I/O LISTS AND EXIT
  1031
  1032					;HERE IF BAD FORMAT IN INPUT LIBRARY
  1033
  1034	401162'	071 01 0 00 000000 	DLRIFL:	RELEASE	LIBC,		;MAKE ALL THE WORK DISSAPPEAR
  1035	401163'	260 17 0 00 402722'		CALL	OLBCL2		;FREE BUFFERS
  1036	401164'	260 17 0 00 401152'		CALL	DLRPD0		;CLOSE INPUT
  1037	401165'	254 00 0 00 402304'		PJRST	E$$IFL		;REPORT BAD FORMAT

LIBMAN -- LIBRARY FILE MANIPULATION PROGRAM %3(21)	MACRO %50A(441)-2 13:45 23-FEB-77 PAGE 23-1
LIBMAN	MAC	17-JAN-77 14:47		PROCESS DELETE COMMAND

  1038
  1039	401166'	254 04 0 00 000003 	DLRPNL:	STOPX$			;NO LIBRARY????
  1040

LIBMAN -- LIBRARY FILE MANIPULATION PROGRAM %3(21)	MACRO %50A(441)-2 13:45 23-FEB-77 PAGE 24
LIBMAN	MAC	17-JAN-77 14:47		PROCESS DELETE COMMAND

  1041					;COROUTINE TO SETUP LST FOR DELETE AND REPLACE
  1042
  1043	401167'	607 00 0 00 100000 	RDLSUB:	TLNN	F,FL$TYP	;ARE WE REPLACING?
  1044	401170'	254 00 0 00 401221'		 JRST	RDLS.2		;NO--JUST ENTER INTO LST
  1045	401171'	205 01 0 10 000000 		MOVSI	T1,(P4)		;SETUP TO COPY FDB
  1046	401172'	541 01 0 00 000446'		HRRI	T1,OFDB		;TO SOMEWHERE WE CAN WRITE ON IT
  1047	401173'	251 01 0 00 000477'		BLT	T1,OFDB+.FXLEN-1;ZIP
  1048	401174'	200 01 0 07 777777 		MOVE	T1,-1(P3)	;GET FILENAME
  1049	401175'	202 01 0 00 000447'		MOVEM	T1,OFDB+.FXNAM
  1050	401176'	476 00 0 00 000450'		SETOM	OFDB+.FXNMM	;SET SO STOPN DOESN'T COMPLAIN
  1051	401177'	510 01 0 07 000000 		HLLZ	T1,(P3)		;GET EXTENSION
  1052	401200'	522 01 0 00 000451'		HLLOM	T1,OFDB+.FXEXT
  1053	401201'	205 01 0 00 000032 		MOVSI	T1,.FXLEN	;CONVERT TO LKPBLK
  1054	401202'	541 01 0 00 000446'		HRRI	T1,OFDB		;...
  1055	401203'	201 02 0 00 000541'		MOVEI	T2,OPNBLK
  1056	401204'	200 03 0 00 403512'		MOVE	T3,[XWD .RBTIM+1,LKPBLK]
  1057	401205'	260 17 0 00 000000*		CALL	.STOPN##	;CONVERT THEM
  1058	401206'	254 04 0 00 000004 		 STOPX$			;SNH
  1059	401207'	201 01 0 00 000017 		MOVEI	T1,.IODMP	;MIGHT AS WELL
  1060	401210'	202 01 0 00 000541'		MOVEM	T1,OPNBLK+.OPMOD
  1061	401211'	402 00 0 00 000543'		SETZM	OPNBLK+.OPBUF	;NO BUFFERS
  1062	401212'	050 02 0 00 000541'		OPEN	INPC,OPNBLK	;GET THE DEVICE
  1063	401213'	254 00 0 00 401230'		 JRST	RDLSOE		;CAN'T OPEN IT!
  1064	401214'	201 01 0 00 000035 		MOVEI	T1,.RBTIM
  1065	401215'	202 01 0 00 000544'		MOVEM	T1,LKPBLK+.RBCNT;SET COUNT
  1066	401216'	076 02 0 00 000544'		LOOKUP	INPC,LKPBLK	;FIND THE FILE
  1067	401217'	254 00 0 00 401235'		 JRST	RDLSLE		;CAN'T
  1068	401220'	071 02 0 00 000000 		RELEASE	INPC,		;DONE FOR NOW
  1069	401221'	200 01 0 07 777777 	RDLS.2:	MOVE	T1,-1(P3)	;GET THE FILENAME
  1070	401222'	510 02 0 07 000000 		HLLZ	T2,(P3)		;AND THE EXTENSION
  1071	401223'	201 03 0 00 000336'		MOVEI	T3,LSTPTR	;AND THE LIST TO ADD IT TO
  1072	401224'	200 11 0 00 000010 		MOVE	B,P4		;SET FDB ADDR IN RH OF EXT WORD
  1073	401225'	260 17 0 00 402471'		CALL	AD2LST		;ADD INTO LST
  1074	401226'	350 00 0 00 000443'		AOS	FILCNT		;COUNT FILE
  1075	401227'	263 17 0 00 000000 		POPJ	P,		;RETURN FOR NEXT FILE
  1076
  1077	401230'	201 01 0 00 000446'	RDLSOE:	MOVEI	T1,OFDB		;POINT AT FDB
  1078	401231'	260 17 0 00 403234'		WARN.	EF$FIL,DOE,<DEVICE OPEN ERROR ON >
  1079	401232'	300206	403520'
  1080	401233'	350 00 0 00 000444'		AOS	NOFILR		;COUNT A REJECTED FILE
  1081	401234'	263 17 0 00 000000 		POPJ	P,
  1082
  1083	401235'	071 02 0 00 000000 	RDLSLE:	RELEASE	INPC,		;CLOSE CHAN
  1084	401236'	350 00 0 00 000444'		AOS	NOFILR		;COUNT REJECTED FILE
  1085	401237'	201 01 0 00 000541'		MOVEI	T1,OPNBLK
  1086	401240'	201 02 0 00 000544'		MOVEI	T2,LKPBLK
  1087			403047'				X$$RLE=$POPJ	;JUST RETURN IF /MESSAGE:PREFIX
  1088	401241'	260 17 0 00 403234'		WARN.	EF$LEB!EF$NCR,RLE,<REPLACE LOOKUP ERROR ON >
  1089	401242'	300247	403526'
  1090	401243'	201 01 0 00 403530'		STRNG$	< - >
  1091	401244'	260 17 0 00 401013*
  1092	401245'	550 01 0 00 000547'		HRRZ	T1,LKPBLK+.RBEXT;GET CODE
  1093	401246'	200 03 0 00 000550'		MOVE	T3,LKPBLK+.RBPRV;AND PRIV BITS
  1094	401247'	260 17 0 00 000000*		CALL	.LKERR##	;REPORT WHY
  1095	401250'	254 00 0 00 401116*		PJRST	.TCRLF##	;NEW LINE AND EXIT

LIBMAN -- LIBRARY FILE MANIPULATION PROGRAM %3(21)	MACRO %50A(441)-2 13:45 23-FEB-77 PAGE 25
LIBMAN	MAC	17-JAN-77 14:47		PROCESS DIRECT COMMAND

  1096					SUBTTL	PROCESS DIRECT COMMAND
  1097
  1098	401251'				$DIREC:
  1099	401251'	325 00 0 00 403344'		JUMPNU	E$$NUC		;MUST HAVE A USE COMMAND
  1100	401252'	603 00 0 00 200000 		JUMPCR	E$$LIE		;ERROR IF CREATE
  1101	401253'	254 00 0 00 400420'
  1102	401254'	260 17 0 00 400747*		CALL	.SAVE2##	;SAVE REGS
  1103	401255'	350 00 0 17 000000 		AOS	(P)		;SET TO SKIP BACK SO SCAN DOESN'T STORE
  1104	401256'	260 17 0 00 402534'		CALL	$GTIOL		;GET I/O LIST
  1105	401257'	260 17 0 00 401434'		 CALL	SETDFD		;SETUP A WILD DUMMY IF NONE GIVEN
  1106	401260'	661 00 0 00 100000 		TLO	F,FL$TYP	;ASSUME TYPING DIRECTORY ON TTY
  1107	401261'	336 01 0 00 000337'		SKIPN	T1,OUTFDB	;WAS OUTPUT SPECIFIED?
  1108	401262'	254 00 0 00 401301'		 JRST	LDIR.0		;NO--WE ARE TYPING
  1109	401263'	621 00 0 00 100000 		  TLZ	F,FL$TYP	;YES--FLAG WE ARE LISTING DIRECTORY TO FILE
  1110	401264'	525 02 0 00 445162 		HRLOI	T2,'DIR'	;SETUP DEFAULT EXTENSION
  1111	401265'	205 03 0 00 200000 		MOVX	T3,FX.NUL	;GET NULL EXTENSION BIT
  1112	401266'	612 03 0 01 000004 		TDNE	T3,.FXMOD(T1)	;WAS AN EXTENSION SPECIFIED?
  1113	401267'	202 02 0 01 000003 		 MOVEM	T2,.FXEXT(T1)	;NO--USE DEFAULT
  1114	401270'	260 17 0 00 403022'		CALL	OPENIO		;OPEN DISK FILE FOR DIRECTORY
  1115	401271'	300 03 1 00 000647'		 CAI	OUTC,@OBHR(.IOASC) ;
  1116	401272'	255 00 0 00 000000 		  JFCL			;OPENIO RETURNS +2
  1117	401273'	260 17 0 00 403117'		CALL	GETNBF		;SETUP # BUFFERS
  1118	401274'	200 02 0 00 403475'		MOVE	T2,[XWD OPNBLK,OBHR];...
  1119	401275'	260 17 0 00 401100*		CALL	.ALCBF##	;ALLOCATE BUFFERS FOR OUTPUT
  1120	401276'	201 01 0 00 402774'		MOVEI	T1,CHROUT	;NO--SETUP CHARACTER OUTPUT ROUTINE
  1121	401277'	260 17 0 00 000000*		CALL	.TYOCH##	;...
  1122						SAVE$	T1		;REMEMBER WHATEVER WAS THERE BEFORE
  1123	401301'	201 01 0 00 403531'	LDIR.0:	STRNG$	<DIRECTORY OF >
  1124	401302'	260 17 0 00 401244*
  1125	401303'	200 01 0 00 000340'		MOVE	T1,LIBFDB	;TELL LIBRARY NAME
  1126	401304'	260 17 0 00 000000*		CALL	.TFBLK##
  1127	401305'	201 01 0 00 403534'		STRNG$	< BY LIBMAN %>
  1128	401306'	260 17 0 00 401302*
  1129	401307'	200 01 0 00 000137 		MOVE	T1,.JBVER	;IDENTIFY MYSELF
  1130	401310'	260 17 0 00 400031*		CALL	.TVERW##
  1131	401311'	603 00 0 00 100000 		TLNE	F,FL$TYP	;OUTPUTTING TO TTY?
  1132	401312'	254 00 0 00 401321'		 JRST	LDIR0A		;YES--DON'T OVERFLOW THE LINE
  1133	401313'	201 01 0 00 403525'		STRNG$	< ON >		;AN EXTRA ADDED BONUS..
  1134	401314'	260 17 0 00 401306*
  1135	401315'	260 17 0 00 000000*		 CALL	.TDATN##	;TELL THE DATE AND TIME
  1136	401316'	201 01 0 00 403537'		STRNG$	< AT >
  1137	401317'	260 17 0 00 401314*
  1138	401320'	260 17 0 00 000000*		CALL	.TTIMN##
  1139	401321'	260 17 0 00 401250*	LDIR0A:	CALL	.TCRLF##
  1140	401322'	260 17 0 00 401321*		CALL	.TCRLF##	;A COUPLE OF LINES
  1141	401323'	403 06 0 00 000443'		SETZB	P2,FILCNT	;CLEAR FILE COUNT (P2 = TOTAL # BLOCKS)
  1142	401324'	201 01 0 00 000001 		MOVEI	T1,1		;USE ONE BUFFER AND..
  1143	401325'	260 17 0 00 402332'		CALL	OLIBIN		;OPEN LIB FOR INPUT
  1144	401326'	254 00 0 00 401405'		 PJRST	DIRDUN		;?? CAN'T
  1145	401327'	201 11 0 00 000001 		MOVEI	B,1		;B=BLOCK COUNTER FOR USETI
  1146	401330'	260 17 0 00 403205'	LDIR.1:	CALL	XCTIO		;READ LIB BLK
  1147	401331'	056 01 0 00 000000 		 IN	LIBC,
  1148	401332'	254 00 0 00 401405'		 PJRST	DIRDUN		;EOF--CLEAN UP AND RETURN
  1149	401333'	550 05 0 00 000645'		HRRZ	P1,IBHR+.BFPTR	;POINT AT LKPBLK IN BUFFER
  1150	401334'	340 05 0 00 000000 		AOJ	P1,		;...

LIBMAN -- LIBRARY FILE MANIPULATION PROGRAM %3(21)	MACRO %50A(441)-2 13:45 23-FEB-77 PAGE 25-1
LIBMAN	MAC	17-JAN-77 14:47		PROCESS DIRECT COMMAND

  1151	401335'	200 01 0 05 000000 		MOVE	T1,.RBCNT(P1)	;GET THE COUNT
  1152	401336'	302 01 0 00 000035 		 CAIE	T1,.RBTIM	;MUST BE THIS
  1153	401337'	254 00 0 00 402304'		 JRST	E$$IFL		;**BAD LIBRARY FORMAT
  1154	401340'	200 01 0 05 000002 		MOVE	T1,.RBNAM(P1)	;SEE IF THIS ONE IN LIST TO DO
  1155	401341'	510 02 0 05 000003 		HLLZ	T2,.RBEXT(P1)
  1156	401342'	260 17 0 00 402375'		CALL	MKLS.F		;LOOK THROUGH INPUT FDBS
  1157	401343'	254 00 0 00 401377'		 JRST	LDIR.X		;NO--ADVANCE TO NEXT FILE
  1158	401344'	350 00 0 00 000443'		AOS	FILCNT		;GOT ONE--COUNT FOR SUMMARY LINE

LIBMAN -- LIBRARY FILE MANIPULATION PROGRAM %3(21)	MACRO %50A(441)-2 13:45 23-FEB-77 PAGE 26
LIBMAN	MAC	17-JAN-77 14:47		PROCESS DIRECT COMMAND

  1159	401345'	200 01 0 05 000002 		MOVE	T1,.RBNAM(P1)	;GET FILENAME
  1160	401346'	260 17 0 00 401115*		CALL	.TSIXN##	;OUTPUT IT
  1161	401347'	260 17 0 00 000000*		CALL	.TTABC##	;TAB BETWEEN THE TWO
  1162	401350'	510 01 0 05 000003 		HLLZ	T1,.RBEXT(P1)	;EXTENSION
  1163	401351'	260 17 0 00 401346*		CALL	.TSIXN##
  1164	401352'	260 17 0 00 401347*		CALL	.TTABC##	;AND A TAB
  1165	401353'	200 01 0 05 000005 		MOVE	T1,.RBSIZ(P1)	;GET FILE SIZE
  1166	401354'	271 01 0 00 000177 		ADDI	T1,177		;ROUND UP
  1167	401355'	242 01 0 00 777771 		LSH	T1,-7		;CVT TO BLOKS
  1168	401356'	270 06 0 00 000001 		ADD	P2,T1		;ACCUMULATE TOTAL BLOCKS
  1169	401357'	260 17 0 00 000000*		CALL	.TDECW##	;TYPE IT
  1170	401360'	260 17 0 00 401352*		CALL	.TTABC##	;SPACE OVER
  1171	401361'	135 01 0 00 403540'		LDB	T1,[POINTR(.RBPRV(P1),RB.PRV)] ;GET PROT
  1172	401362'	260 17 0 00 403143'		CALL	.TPRIV		;SEND IT
  1173	401363'	260 17 0 00 401360*		CALL	.TTABC##	;ANOTHER TAB
  1174	401364'	135 01 0 00 403541'		LDB	T1,[POINTR(.RBPRV(P1),RB.CRD)] ;GET LOW 12 CREATE BITS
  1175	401365'	135 02 0 00 403542'		LDB	T2,[POINTR(.RBEXT(P1),RB.CRX)] ;AND HIGH 3
  1176	401366'	242 02 0 00 000014 		LSH	T2,WID(RB.CRD)	;POSITION HIGH BITS
  1177	401367'	660 01 0 02 000000 		TRO	T1,(T2)		;FORM 15 BIT DATE
  1178	401370'	260 17 0 00 000000*		CALL	.TDATE##	;OUTPUT IT
  1179	401371'	336 00 0 05 000006 		SKIPN	.RBVER(P1)	;IS THERE A VERSION?
  1180	401372'	254 00 0 00 401376'		 JRST	LDIR.9		;NO
  1181	401373'	260 17 0 00 401363*		CALL	.TTABC##	;YES--MAKE ROOM FOR IT
  1182	401374'	200 01 0 05 000006 		MOVE	T1,.RBVER(P1)	;GET THE VERSION
  1183	401375'	260 17 0 00 401310*		CALL	.TVERW##	;OUTPUT IT
  1184	401376'	260 17 0 00 401322*	LDIR.9:	CALL	.TCRLF##	;NEW LINE
  1185	401377'	200 01 0 05 000005 	LDIR.X:	MOVE	T1,.RBSIZ(P1)	;GET SIZE OF FILE
  1186	401400'	275 01 0 00 000001 		SUBI	T1,1		;WORDS-1 SO EVEN BLOCKS WORK RIGHT
  1187	401401'	242 01 0 00 777771 		LSH	T1,-7		;CVT TO BLKS-1
  1188	401402'	271 11 0 01 000002 		ADDI	B,2(T1)		;POSITION TO READ (POSSIBLE) NEXT LKPBLK
  1189	401403'	074 01 0 11 000000 		USETI	LIBC,(B)	;...
  1190	401404'	254 00 0 00 401330'		JRST	LDIR.1		;GO DO IT
  1191
  1192					;HERE WHEN DONE WITH DIRECTORY
  1193
  1194	401405'	260 17 0 00 402770'	DIRDUN:	CALL	ILBCLS		;CLOSE OUT LIBRARY
  1195	401406'	260 17 0 00 402610'		CALL	GIVIOL		;GIVE BACK I/O LISTS
  1196	401407'	337 00 0 00 000443'		SKIPG	FILCNT		;DID WE FIND ANY FILES?
  1197	401410'	254 00 0 00 401427'		 JRST	DIRD.2		;NO--SKIP THE MESSAGE
  1198						STRNG$	<
  1199	401411'	201 01 0 00 403543'	TOTAL OF >
  1200	401412'	260 17 0 00 401317*
  1201	401413'	200 01 0 00 000006 		MOVE	T1,P2		;GET TOTAL # OF BLOCKS
  1202	401414'	260 17 0 00 401357*		CALL	.TDECW##
  1203	401415'	201 01 0 00 403546'		STRNG$	< BLOCKS IN >
  1204	401416'	260 17 0 00 401412*
  1205	401417'	200 01 0 00 000443'		MOVE	T1,FILCNT
  1206	401420'	260 17 0 00 401414*		CALL	.TDECW##
  1207	401421'	201 01 0 00 403551'		MOVEI	T1,[ASCIZ/ FILE/] ;START PART OF FILES MESSAGE
  1208	401422'	260 17 0 00 401416*		CALL	.TSTRG##
  1209	401423'	201 01 0 00 000123 		MOVEI	T1,"S"		;SET IF MULTIPLE FILES
  1210	401424'	372 00 0 00 000443'		SOSE	FILCNT
  1211	401425'	260 17 0 00 400603*		CALL	.TCHAR##	;MULTIPLE FILES--TYPE AN S
  1212	401426'	260 17 0 00 401376*		CALL	.TCRLF##
  1213	401427'	623 00 0 00 100000 	DIRD.2:	TLZE	F,FL$TYP	;WERE WE TYPEING OR LISTING

LIBMAN -- LIBRARY FILE MANIPULATION PROGRAM %3(21)	MACRO %50A(441)-2 13:45 23-FEB-77 PAGE 26-1
LIBMAN	MAC	17-JAN-77 14:47		PROCESS DIRECT COMMAND

  1214	401430'	263 17 0 00 000000 		 POPJ	P,		;TYPEING--WE ARE DONE
  1215	401431'	260 17 0 00 402764'		CALL	DSKOCL		;LISTING--CLOSE DISK FILE
  1216						RESTR$	T1		;GET OLD SCAN TYPEOUT
  1217	401433'	254 00 0 00 401277*		PJRST	.TYOCH##	;RESTORE AND RETURN
  1218
  1219					;SETDFD -- SETUP DUMMY FDB WITH *.* IN IT
  1220
  1221	401434'	260 17 0 00 402617'	SETDFD:	CALL	$GTFDB		;GET AN FDB
  1222	401435'	200 12 0 00 000001 		MOVE	L,T1		;POSITION PTR
  1223	401436'	205 01 0 00 120000 		MOVSI	T1,'*  '	;SETUP *.*
  1224	401437'	512 01 0 12 000001 		HLLZM	T1,.FXNAM(L)
  1225	401440'	512 01 0 12 000003 		HLLZM	T1,.FXEXT(L)	;
  1226	401441'	263 17 0 00 000000 		POPJ	P,

LIBMAN -- LIBRARY FILE MANIPULATION PROGRAM %3(21)	MACRO %50A(441)-2 13:45 23-FEB-77 PAGE 27
LIBMAN	MAC	17-JAN-77 14:47		PROCESS DVERSION COMMAND (CHANGE DISK FILE VERSIONS)

  1227					SUBTTL	PROCESS DVERSION COMMAND (CHANGE DISK FILE VERSIONS)
  1228
  1229	401442'	260 17 0 00 401254*	$DVERS:	CALL	.SAVE2##	;PRESERVE P1-2
  1230	401443'	350 00 0 17 000000 		AOS	(P)		;SO SCAN DOESN'T WIPE REGISTER ZERO
  1231	401444'	260 17 0 00 402523'		CALL	$GTLST		;GET LIST OF DISK FILES
  1232	401445'	254 00 0 00 402133'		 JRST	E$$NFS		;MUST GOTTA HAVE A FILE LIST
  1233	401446'	200 05 0 00 000012 		MOVE	P1,L		;MAKE A DESTRUCTIBLE COPY OF LIST
  1234	401447'	403 06 0 00 000444'		SETZB	P2,NOFILR	;CLEAR COUNT OF FILES RENAMED AND REJECTED
  1235						STRNG$	<DISK FILES RENAMED:
  1236	401450'	201 01 0 00 403553'	>
  1237	401451'	260 17 0 00 401422*
  1238	401452'	402 00 0 00 000442'	DVER.2:	SETZM	WLDPTR		;CLEAR TEMP STORE
  1239	401453'	552 05 0 00 000441'	DVER.4:	HRRZM	P1,WLDFIR	;SET PTR FOR .LKWLD
  1240	401454'	200 01 0 00 400314'		MOVE	T1,LKWLDB	;SETUP FOR .LKWLD
  1241	401455'	260 17 0 00 400252*		CALL	.LKWLD##	;FIND NEXT FILE TO RENAME
  1242	401456'	254 00 0 00 401502'		 JRST	DVER.6		;WILD SAYS NO MORE
  1243	401457'	050 02 0 00 000500'		OPEN	INPC,DSKOPN	;OPEN THE DEVICE
  1244	401460'	254 00 0 00 401510'		 JRST	DVROPE		;CAN'T--IGNORE THIS ONE
  1245	401461'	076 02 0 00 000503'		LOOKUP	INPC,DSKLKP	;FIND THE FILE
  1246	401462'	254 00 0 00 401513'		 JRST	DVRLKE		;CAN'T
  1247	401463'	200 01 0 05 000031 		MOVE	T1,.FXVER(P1)	;GET /VERSION
  1248	401464'	312 01 0 00 403366'		CAME	T1,[EXP -1]	;SEE IF SPECIFIED
  1249	401465'	202 01 0 00 000511'		 MOVEM	T1,DSKLKP+.RBVER;YES--SET FOR RENAME
  1250	401466'	135 01 0 00 403560'		LDB	T1,[POINTR(.FXMOD(P1),FX.PRO)] ;GET /PROTECTION
  1251	401467'	332 00 0 00 000001 		SKIPE	T1		;SEE IF SPECIFIED
  1252	401470'	137 01 0 00 403561'		DPB	T1,[POINTR(DSKLKP+.RBPRV,RB.PRV)] ;YES--SET FOR RENAME
  1253	401471'	055 02 0 00 000503'		RENAME	INPC,DSKLKP	;RENAME THE FILE
  1254	401472'	254 00 0 00 401516'		 JRST	DVRNME		;TELL OF FAILURE
  1255	401473'	201 01 0 00 000500'		MOVEI	T1,DSKOPN	;SETUP TO TYPE FILE SPEC
  1256	401474'	201 02 0 00 000503'		MOVEI	T2,DSKLKP
  1257	401475'	260 17 0 00 403175'		CALL	$TLBVP		;TYPE LOOKUP BLOCK, VERSION AND PROTECTION
  1258	401476'	260 17 0 00 401426*		CALL	.TCRLF##	;KEEP LISTING PRETTY
  1259	401477'	271 06 0 00 000001 		ADDI	P2,1		;COUNT FILE AS DONE
  1260	401500'	071 02 0 00 000000 	DVER.5:	RELEASE	INPC,		;CLOSE CHANNEL
  1261	401501'	254 00 0 00 401453'		JRST	DVER.4		;GET NEXT FILE
  1262
  1263					;WILD SAYS NO MORE IN THIS FDB
  1264
  1265	401502'	550 05 0 05 777777 	DVER.6:	HRRZ	P1,-1(P1)	;LINK TO NEXT FDB
  1266	401503'	326 05 0 00 401452'		JUMPN	P1,DVER.2	;GO IF MORE
  1267	401504'	336 00 0 00 000006 		SKIPN	P2		;DID WE DO ANYTHING?
  1268	401505'	260 17 0 00 400322'		CALL	WRNOFM		;TELL IF DIDN'T FIND ANYTHING
  1269	401506'	200 01 0 00 000012 		MOVE	T1,L		;GIVE UP FDB LIST
  1270	401507'	254 00 0 00 402575'		PJRST	GIVLST		;AND RETURN

LIBMAN -- LIBRARY FILE MANIPULATION PROGRAM %3(21)	MACRO %50A(441)-2 13:45 23-FEB-77 PAGE 28
LIBMAN	MAC	17-JAN-77 14:47		PROCESS DVERSION COMMAND (CHANGE DISK FILE VERSIONS)

  1271					;DVERSION ERRORS
  1272
  1273	401510'	260 17 0 00 000000*	DVROPE:	CALL	E.DFO##		;REPORT OPEN ERROR ON DEVICE
  1274	401511'	350 00 0 00 000444'		AOS	NOFILR		;COUNT REJECTED FILE
  1275	401512'	254 00 0 00 401500'		JRST	DVER.5		;GET NEXT FILE TO DO
  1276
  1277	401513'	260 17 0 00 000000*	DVRLKE:	CALL	E.DFL##		;REPORT LOOKUP ERROR
  1278	401514'	350 00 0 00 000444'		AOS	NOFILR		;COUNT REJECTED FILE
  1279	401515'	254 00 0 00 401500'		 JRST	DVER.5		;GET NEXT FILE
  1280
  1281	401516'	260 17 0 00 403234'	DVRNME:	WARN.	EF$NCR,FRE,<FILE RENAME ERROR ON >
  1282	401517'	300240	403567'
  1283	401520'	201 01 0 00 000500'		MOVEI	T1,DSKOPN	;SET TO TYPE OUT FILE.EXT
  1284	401521'	201 02 0 00 000503'		MOVEI	T2,DSKLKP	;...
  1285	401522'	260 17 0 00 400606*		CALL	.TOLEB##	;TYPE FILE NAME
  1286	401523'	260 17 0 00 000000*		CALL	.TSPAC##	;SEND A SPACE
  1287	401524'	550 01 0 00 000506'		HRRZ	T1,DSKLKP+.RBEXT;GET CODE
  1288	401525'	200 03 0 00 000507'		MOVE	T3,DSKLKP+.RBPRV;AND PROT BITS
  1289	401526'	260 17 0 00 401247*		CALL	.LKERR##	;TELL THE FAILURE
  1290	401527'	260 17 0 00 401476*		CALL	.TCRLF##	;NEW LINE
  1291	401530'	350 00 0 00 000444'	X$$FRE:	AOS	NOFILR		;COUNT REJECTED FILE
  1292	401531'	254 00 0 00 401500'		JRST	DVER.5		;NEXT FILE

LIBMAN -- LIBRARY FILE MANIPULATION PROGRAM %3(21)	MACRO %50A(441)-2 13:45 23-FEB-77 PAGE 29
LIBMAN	MAC	17-JAN-77 14:47		FILDIR COMMAND -- GET A DISK DIRECTORY

  1293					SUBTTL	FILDIR COMMAND -- GET A DISK DIRECTORY
  1294
  1295	401532'	260 17 0 00 401442*	$FILDIR:CALL	.SAVE2##	;PROTECT REGISTERS
  1296	401533'	402 00 0 00 000341'		STORE	T1,DIRECT,DIRECT+LN$DRB-1,0 ;CLEAR BUFFER
  1297	401534'	200 01 0 00 403571'
  1298	401535'	251 01 0 00 000440'
  1299	401536'	200 01 0 00 403572'		MOVE	T1,[ASCIZ/TTY:=/] ;OUTPUT WILL BE TO TTY
  1300	401537'	202 01 0 00 000341'		MOVEM	T1,DIRECT	;START THE TMPFILE
  1301						MOVEI	T1,[IDPB T1,P1	;SETUP ROUTINE FOR SCAN TYPEOUT
  1302	401540'	201 01 0 00 403574'			   POPJ  P,]	;FOR TYPING META-SYMBOLS
  1303	401541'	260 17 0 00 401433*		CALL	.TYOCH##	;SETUP NOW
  1304						SAVE$	T1		;REMEMBER OLD ROUTINE
  1305	401543'	200 05 0 00 403576'		MOVE	P1,[POINT 7,DIRECT+1] ;SETUP TO STORE CHARACTERS
  1306	401544'	323 10 0 00 401556'		JUMPLE	C,FILD.2	;JUMP IF AT EOL ALREADY
  1307	401545'	260 17 0 00 000000*	FILD.0:	CALL	.TIAUC##	;ELSE GET A CHARACTER
  1308	401546'	323 10 0 00 401556'		JUMPLE	C,FILD.2	;JUMP IF EOL
  1309	401547'	305 10 0 00 004000 		CAIGE	C,4000		;SEE IF GUIDE WORD
  1310	401550'	254 00 0 00 401554'		JRST	FILD.1		;NO--JUST STORE IN BUFFER
  1311	401551'	200 01 0 00 000010 		MOVE	T1,C		;YES--POSITION
  1312	401552'	260 17 0 00 000000*		CALL	.TFCHR##	;TYPE GUIDE WORD INTO BUFFER
  1313	401553'	254 00 0 00 401545'		JRST	FILD.0		;GO GET NEXT THING
  1314	401554'	136 10 0 00 000005 	FILD.1:	IDPB	C,P1		;NO--STORE IN TMPFILE BUFFER
  1315	401555'	254 00 0 00 401545'		JRST	FILD.0		;LOOP TO EOL
  1316
  1317					;HERE AT END OF COMMAND LINE
  1318
  1319	401556'	265 02 0 00 401644'	FILD.2:	JSP	T2,RUNSTR	;ADD REST OF MESSAGE + CRLF
  1320	401557'	057 122 125 116 072 		ASCIZ	./RUN:LIBMAN/RUNOFF:0
  1321	401560'	114 111 102 115 101 
  1322	401561'	116 057 122 125 116 
  1323	401562'	117 106 106 072 060 
  1324	401563'	015 012 000 000 000 	.
  1325						RESTR$	T1		;GET OLD SCAN TYPEOUT BACK
  1326	401565'	260 17 0 00 401541*		CALL	.TYOCH##	;AND SETUP NOW
  1327	401566'	050 05 0 00 403355'		OPEN	TMPC,[EXP .IODMP,'DSK   ',0] ;GET THE DISK IN DUMP MODE
  1328	401567'	254 00 0 00 401640'		 JRST	E$$CWT		;CAN'T??
  1329	401570'	260 17 0 00 401651'		CALL	MAKCCL		;MAKE NNNLIB
  1330	401571'	541 01 0 00 445162 		HRRI	T1,'DIR'	;ONLY WE WANT DIR HERE
  1331	401572'	205 02 0 00 645560 		MOVSI	T2,'TMP'	;NNNDIR.TMP
  1332	401573'	403 03 0 00 000004 		SETZB	T3,T4		;WITH DEFAULT EVERYTHING
  1333	401574'	077 05 0 00 000001 		ENTER	TMPC,T1		;WRITE THE FILE
  1334	401575'	254 00 0 00 401640'		 JRST	E$$CWT		;CAN'T SAY WE DIDN'T TRY!
  1335	401576'	201 01 0 00 000341'		MOVEI	T1,DIRECT	;BEGIN TO FORM IOWD
  1336	401577'	275 01 0 05 000001 		SUBI	T1,1(P1)	;THIS GETS NEGATIVE # WORDS TO WRITE
  1337	401600'	517 00 0 00 000001 		HRLZS	T1		;TO LH
  1338	401601'	541 01 0 00 000340'		HRRI	T1,DIRECT-1	;IOWD IS COMPLETE
  1339	401602'	400 02 0 00 000000 		SETZ	T2,		;TERMINATE I/O LIST
  1340	401603'	067 05 0 00 000001 		OUTPUT	TMPC,T1		;WRITE THE TMPFILE NOW
  1341	401604'	070 05 0 00 000000 		CLOSE	TMPC,		;CLOSE CHANNEL
  1342	401605'	063 05 0 00 740000 		STATZ	TMPC,IO.ERR	;CHECK FOR ERRORS
  1343	401606'	254 00 0 00 401640'		 JRST	E$$CWT		;SO NEAR AND YET SO FAR
  1344	401607'	071 05 0 00 000000 		RELEASE	TMPC,		;FREE UP CHANNEL

LIBMAN -- LIBRARY FILE MANIPULATION PROGRAM %3(21)	MACRO %50A(441)-2 13:45 23-FEB-77 PAGE 30
LIBMAN	MAC	17-JAN-77 14:47		FILDIR COMMAND -- GET A DISK DIRECTORY

  1345	401610'	332 00 0 00 000340'		SKIPE	LIBFDB		;DO WE HAVE A LIBRARY FDB?
  1346	401611'	333 00 0 00 000661'		 SKIPLE	S.REML		;YES AND WAS IT /NOREMEMBER?
  1347	401612'	334 00 0 00 000000 		  SKIPA			;NO LIBRARY FDB OR /REMEMBER
  1348	401613'	260 17 0 00 402201'		    CALL SAVF.0		;NEED TO REMEMBER LIBRARY FDB
  1349	401614'	200 01 0 00 403577'		MOVE	T1,[XWD FW$RNL,DIRECT] ;SETUP TO BLT CODE TO LOWSEG
  1350	401615'	251 01 0 00 000362'		BLT	T1,DIRECT+LN$RNL;MOVE IT ALL
  1351	401616'	254 00 0 00 000341'		JRST	DIRECT		;GO DO THE RUN
  1352
  1353	401617'				FW$RNL:	;CODE BLT'D TO LOWSEG STARTS HERE
  1354	401617'	205 01 0 00 000001 		MOVSI	T1,1		;SETUP TO REMOVE HIGH SEGMENT
  1355	401620'	047 01 0 00 000011 		CORE	T1,		;TELL MON
  1356	401621'	255 00 0 00 000000 		 JFCL			; (IGNORE ERROR)
  1357	401622'	334 03 0 00 000345'		SKIPA	T3,DIRECT+.-FW$RNL+1 ;SETUP PGM NAME TO RUN
  1358	401623'	44 51 62 45 43 64 		 SIXBIT	/DIRECT/
  1359			000005		RNLRUN==.-FW$RNL
  1360	401624'	403 04 0 00 000005 		SETZB	T4,P1		;CLEAR REST OF BLOCK
  1361	401625'	403 06 0 00 000007 		SETZB	P2,P3		;...
  1362	401626'	205 01 0 00 000001 		MOVSI	T1,1		;RUN AT CCL ENTRY
  1363	401627'	541 01 0 00 000002 		HRRI	T1,T2		;POINT AT ARGBLOCK
  1364	401630'	205 02 0 00 637163 		MOVSI	T2,'SYS'	;SETUP DEVICE
  1365	401631'	047 01 0 00 000035 		 RUN	T1,		;GO TO OTHER PROGRAM
  1366	401632'	352 00 0 00 000361'		  AOSE	DIRECT+RUNFLG	;CAN'T FIND IT--SEE IF DIRECT OR LIBMAN
  1367	401633'	047 00 0 00 000012 		   EXIT			;LIBMAN!!!--JUST EXIT
  1368	401634'	334 03 0 00 000357'		SKIPA	T3,DIRECT+.-FW$RNL+1	;DIRECT--LOAD UP TO RUN LIBMAN
  1369	401635'	54 51 42 55 41 56 		 SIXBIT	/LIBMAN/
  1370	401636'	254 00 0 00 000346'		JRST	DIRECT+RNLRUN
  1371			000020		RUNFLG==.-FW$RNL		;OFFSET FOR FLAG
  1372	401637'	777777	777777			EXP	-1		;WILL GET SET TO 0 IN LOWSEG IF CAN'T FIND DIRECT
  1373			000021		LN$RNL==.-FW$RNL
  1374
  1375					;HERE IF WE CAN'T WRITE TMPFILE
  1376
  1377	401640'	260 17 0 00 403234'	E$$CWT:	ERROR.	EF$ERR,CWT,<CAN'T WRITE TMPFILE FOR DIRECT>
  1378	401641'	300000	403607'
  1379	401642'	071 05 0 00 000000 		RELEASE	TMPC,		;NEVER KNOW WHERE WE WERE IN PROCESS
  1380	401643'	254 00 0 00 403046'		JRST	$POPJ1		;SKIP BACK SO SCAN DOESN'T ZAP FLAG REGISTER
  1381
  1382					;RUNSTR -- SET STRING INTO BUFFER
  1383					;CALL:	MOVE	P1,BYTPTR
  1384					;	JSP	T2,RUNSTR
  1385					;	ASCIZ	/MES/
  1386
  1387	401644'	505 02 0 00 440700 	RUNSTR:	HRLI	T2,(POINT 7)	;MAKE A PTR
  1388	401645'	134 01 0 00 000002 	RUNS.0:	ILDB	T1,T2		;GET NEXT CHAR
  1389	401646'	322 01 0 02 000001 		JUMPE	T1,1(T2)	;RETURN IF END
  1390	401647'	136 01 0 00 000005 		IDPB	T1,P1		;NO--STORE IN BUFFER
  1391	401650'	254 00 0 00 401645'		JRST	RUNS.0		;AND LOOP
  1392
  1393					;MAKCCL -- RETURN NNNLIB IN T1
  1394					;CALL:	CALL	MAKCCL
  1395					;	*HERE WITH NNNLIB IN T1*
  1396
  1397	401651'	332 01 0 00 000004'	MAKCCL:	SKIPE	T1,CCLNAM	;DO WE HAVE IT ALREADY?
  1398	401652'	263 17 0 00 000000 		 POPJ	P,		;YES--GIVE IT TO THEM
  1399	401653'	047 01 0 00 000030 		PJOB	T1,		;NO--MAKE IT NOW

LIBMAN -- LIBRARY FILE MANIPULATION PROGRAM %3(21)	MACRO %50A(441)-2 13:45 23-FEB-77 PAGE 30-1
LIBMAN	MAC	17-JAN-77 14:47		FILDIR COMMAND -- GET A DISK DIRECTORY

  1400	401654'	260 17 0 00 000000*		CALL	.MKPJN##
  1401	401655'	514 01 0 00 000001 		HRLZ	T1,T1		;POSITION NNN TO LH
  1402	401656'	541 01 0 00 545142 		HRRI	T1,MY$PFX	;ADD IN THE PREFIX
  1403	401657'	202 01 0 00 000004'		MOVEM	T1,CCLNAM	;SAVE IN CASE WE NEED IT AGAIN
  1404	401660'	263 17 0 00 000000 		POPJ	P,		;RETURN

LIBMAN -- LIBRARY FILE MANIPULATION PROGRAM %3(21)	MACRO %50A(441)-2 13:45 23-FEB-77 PAGE 31
LIBMAN	MAC	17-JAN-77 14:47		PROCESS ONEOUT COMMAND

  1405					SUBTTL	PROCESS ONEOUT COMMAND
  1406
  1407	401661'				$ONEOU:
  1408	401661'	325 00 0 00 403344'		JUMPNU	E$$NUC		;NEED A LIBRARY
  1409	401662'	603 00 0 00 200000 		JUMPCR	E$$LIE		;WHICH ALREADY EXISTS
  1410	401663'	254 00 0 00 400420'
  1411	401664'	260 17 0 00 401532*		CALL	.SAVE2##	;PRESERVE P1-2
  1412	401665'	350 00 0 17 000000 		AOS	(P)		;SKIP BACK
  1413	401666'	661 00 0 00 020000 		TLO	F,FL$ONE	;FLAG THIS IS ONEOUT COMMAND
  1414	401667'	621 00 0 00 100000 		TLZ	F,FL$TYP	;AND NOT TYPE (COULD HAVE BEEN ON)
  1415	401670'	260 17 0 00 402534'		CALL	$GTIOL		;GET THE I/O LIST
  1416	401671'	254 00 0 00 402133'		 JRST	E$$NFS		;NO FILES SPECIFIED
  1417	401672'	260 17 0 00 402455'		CALL	CKOFDB		;MAKE SURE WE HAVE AN OUTPUT SPEC
  1418	401673'	200 02 0 01 000000 		MOVE	T2,.FXDEV(T1)	;SEE WHAT THE THING IS
  1419	401674'	047 02 0 00 000004 		DEVCHR	T2,
  1420	401675'	606 02 0 00 004000 		TRNN	T2,DV.M13	;CAN IT DO BINARY I/O?
  1421	401676'	254 00 0 00 401725'		 JRST	ONECDB		;NO--QUIT BEFORE ILL DATA MODE
  1422	401677'	260 17 0 00 402243'		CALL	$GTDIR		;MAKE SURE WE HAVE AN INCORE DIR
  1423	401700'	260 17 0 00 403117'		CALL	GETNBF		;SETUP # BUFFERS
  1424	401701'	207 00 0 00 000001 		MOVSS	T1		;POSITION
  1425	401702'	260 17 0 00 402332'		CALL	OLIBIN		;OPEN IT
  1426						 JRST	[ERROR. (EF$ERR,CFL,<CAN'T FIND LIBRARY>) ;???
  1427	401703'	254 00 0 00 403610'			PJRST ONEO.X]	;CLEAN UP AND GET OUT
  1428	401704'	200 01 0 00 000337'		MOVE	T1,OUTFDB	;SETUP TO OPEN OUTPUT FILE
  1429	401705'	260 17 0 00 403022'		CALL	OPENIO		;DO IT NOW
  1430	401706'	300 03 1 14 000647'		CAI	OUTC,@OBHR(.IOBIN) ;IN BINARY, OK?
  1431	401707'	255 00 0 00 000000 		JFCL			;OPENIO RETURNS CPOPJ2
  1432	401710'	260 17 0 00 403117'		CALL	GETNBF		;SETUP # BUFFERS
  1433	401711'	200 02 0 00 403475'		MOVE	T2,[XWD OPNBLK,OBHR] ;
  1434	401712'	260 17 0 00 401275*		CALL	.ALCBF##	;ALLOCATE THE BUFFERS
  1435	401713'	067 03 0 00 000000 		OUTPUT	OUTC,		;DO A DUMMY OUTPUT TO SETUP OBHR
  1436	401714'	402 00 0 00 000443'		SETZM	FILCNT		;CLEAR THE COUNT
  1437	401715'	402 00 0 00 000444'		SETZM	NOFILR		;CLEAR REJECTED FILE COUNT
  1438	401716'	260 17 0 00 402344'		CALL	$MKLST		;DO THE THING ON EACH FILE IN LIST
  1439	401717'	260 17 0 00 400454'		 CALL	CPYTYF		;XCT'D BY $MKLST
  1440	401720'	336 00 0 00 000443'		SKIPN	FILCNT		;DO ANYTHING?
  1441	401721'	260 17 0 00 400322'		 CALL	WRNOFM		;NO FILES MATCH
  1442	401722'	260 17 0 00 402610'	ONEO.X:	CALL	GIVIOL		;GIVE BACK LISTS
  1443	401723'	260 17 0 00 402764'		CALL	DSKOCL		;CLOSE OUTPUT FILE
  1444	401724'	254 00 0 00 402770'		PJRST	ILBCLS		;CLOSE LIB AND RETURN
  1445
  1446	401725'	260 17 0 00 403234'	ONECDB:	ERROR.	EF$FIL,CDB,<CAN'T DO BINARY I/O TO >
  1447	401726'	300006	403461'
  1448	401727'	254 00 0 00 402610'		PJRST	GIVIOL		;EXIT

LIBMAN -- LIBRARY FILE MANIPULATION PROGRAM %3(21)	MACRO %50A(441)-2 13:45 23-FEB-77 PAGE 32
LIBMAN	MAC	17-JAN-77 14:47		PROCESS RENAME COMMAND

  1449					SUBTTL	PROCESS RENAME COMMAND
  1450
  1451	401730'				$RENAM:
  1452	401730'	325 00 0 00 403344'		JUMPNU	E$$NUC		;JUMP IF NO USE COMMAND
  1453	401731'	603 00 0 00 040000 		JMPRDO	E$$IRO		;CAN'T DO THIS IF READ ONLY
  1454	401732'	254 00 0 00 400411'
  1455	401733'	603 00 0 00 200000 		JUMPCR	E$$LIE		;MUST HAVE A FILE IN THE LIBRARY!
  1456	401734'	254 00 0 00 400420'
  1457	401735'	260 17 0 00 400422*		CALL	.SAVE1##	;PRESERVE REGS
  1458	401736'	350 00 0 17 000000 		AOS	(P)		;SET TO SKIP SO SCAN DOESN'T STORE
  1459	401737'	260 17 0 00 402534'		CALL	$GTIOL		;GET I/O LIST
  1460	401740'	254 00 0 00 402133'		 JRST	E$$NFS		;NULL LIST
  1461	401741'	322 12 0 00 402133'		JUMPE	L,E$$NFS	;NEED INPUT SIDE
  1462	401742'	260 17 0 00 402455'		CALL	CKOFDB		;MAKE SURE OUTPUT FDB IS PRESENT
  1463	401743'	260 17 0 00 402243'		CALL	$GTDIR		;ENSURE WE HAVE A DIRECTORY IN CORE
  1464	401744'	474 01 0 00 000000 		SETO	T1,		;FLAG TO UPDATE, NOT APPEND
  1465	401745'	260 17 0 00 402635'		CALL	OLIBUP		;...
  1466	401746'	402 00 0 00 000443'		SETZM	FILCNT		;CLEAR FLAG OF FILES DONE
  1467	401747'	402 00 0 00 000444'		SETZM	NOFILR		;CLEAR COUNT OF REJECTED FILES
  1468						STRNG$	<FILES RENAMED:
  1469	401750'	201 01 0 00 403554'	>
  1470	401751'	260 17 0 00 401451*
  1471	401752'	260 17 0 00 402344'		CALL	$MKLST		;WHIP THROUGH THE DIR AND CHANGE THE FILES
  1472	401753'	260 17 0 00 401762'		 CALL	RENSUB		;BY EXECUTING THIS INSTR
  1473	401754'	260 17 0 00 402714'		CALL	OLBCLS		;ALL DONE--CLOSE OUT THE LIBRARY
  1474	401755'	201 01 0 00 000644'		MOVEI	T1,IBHR		;WE SHOULD FREE UP INPUT BUFFER ALSO
  1475	401756'	260 17 0 00 402723'		CALL	TSTBHR		;...
  1476	401757'	336 00 0 00 000443'		SKIPN	FILCNT		;SEE IF WE DID ANYTHING
  1477	401760'	260 17 0 00 400322'		CALL	WRNOFM		;NO FILES MATCHED
  1478	401761'	254 00 0 00 402610'		PJRST	GIVIOL		;FREE I/O FDBS AND RETURN

LIBMAN -- LIBRARY FILE MANIPULATION PROGRAM %3(21)	MACRO %50A(441)-2 13:45 23-FEB-77 PAGE 33
LIBMAN	MAC	17-JAN-77 14:47		PROCESS RENAME COMMAND

  1479					;ROUTINE CALLED BY $MKLST FOR EACH ITEM IN DICT THAT MATCHES INPUT
  1480					;SPEC.
  1481
  1482	401762'	260 17 0 00 401664*	RENSUB:	CALL	.SAVE2##	;PRESERVE P1-2
  1483	401763'	200 04 0 00 000337'		MOVE	T4,OUTFDB	;POINT T4 AT OUTPUT FDB
  1484	401764'	550 11 0 07 000000 		HRRZ	B,(P3)		;GET BLOCK # OF LKPBLK IN FILE
  1485	401765'	074 01 0 11 000000 		USETI	LIBC,(B)	;SET TO READ IT
  1486	401766'	260 17 0 00 403205'		CALL	XCTIO		;READ THE LKPBLK
  1487	401767'	056 01 0 00 000000 		 IN	LIBC,
  1488	401770'	263 17 0 00 000000 		 POPJ	P,		;QUIT EARLY IF BAD (SHOULD HAVE BEEN CAUGHT)
  1489	401771'	550 05 0 00 000645'		HRRZ	P1,IBHR+.BFPTR	;GET INPUT BUFFER PTR
  1490	401772'	205 01 0 05 000000 		MOVSI	T1,(P1)		;BEGIN TO FORM BLT WORD AT SAME TIME
  1491	401773'	340 05 0 00 000000 		AOJ	P1,		;NOW POINT AT LKPBLK
  1492	401774'	540 01 0 00 000650'		HRR	T1,OBHR+.BFPTR	;WORK ON CTL WORD SOME MORE
  1493	401775'	252 01 0 00 401776'		AOBJP	T1,.+1		;...
  1494	401776'	550 06 0 00 000001 		HRRZ	P2,T1		;POINT AT OUTPUT BUFFER
  1495	401777'	201 02 0 01 000177 		MOVEI	T2,177(T1)	;SETUP TO COPY LKPBLK TO OUTPUT BUFFER
  1496	402000'	251 01 0 02 000000 		BLT	T1,(T2)		;THERE IT GOES
  1497	402001'	200 03 0 05 000002 		MOVE	T3,.RBNAM(P1)	;GET INPUT NAME
  1498	402002'	630 03 0 04 000002 		TDZ	T3,.FXNMM(T4)	;CLEAR WHAT WAS SPECIFIED IN OUTPUT
  1499	402003'	200 02 0 04 000001 		MOVE	T2,.FXNAM(T4)	;GET OUTPUT NAME
  1500	402004'	404 02 0 04 000002 		AND	T2,.FXNMM(T4)	;ELIMINATE WILD CARDS
  1501	402005'	430 03 0 00 000002 		XOR	T3,T2		;MAKE NEW FILENAME
  1502	402006'	202 03 0 06 000002 		MOVEM	T3,.RBNAM(P2)	;STORE IN NEW LKPBLK
  1503	402007'	510 03 0 05 000003 		HLLZ	T3,.RBEXT(P1)	;GET INPUT EXTENSION
  1504	402010'	200 02 0 04 000003 		MOVE	T2,.FXEXT(T4)	;AND GET OUTPUT EXTENSION,,MASK
  1505	402011'	621 03 0 02 000000 		TLZ	T3,(T2)		;CLEAR WHAT SHOULD BE CLEARED
  1506	402012'	207 00 0 00 000002 		MOVSS	T2		;SWAP HALVES
  1507	402013'	554 01 0 00 000002 		HLRZ	T1,T2		;GET EXT MASK
  1508	402014'	405 02 0 01 000000 		ANDI	T2,(T1)		;ELIMINATE WILD CARDS
  1509	402015'	661 03 0 02 000000 		TLO	T3,(T2)		;AND SET WHAT SHOULD BE SET
  1510	402016'	205 01 0 00 200000 		MOVX	T1,FX.NUL	;GET THE NULL EXTENSION FLAG
  1511	402017'	612 01 0 04 000004 		TDNE	T1,.FXMOD(T4)	;SEE IF EXPLICITLY NULL EXTENSION
  1512	402020'	400 03 0 00 000000 		 SETZ	T3,		;YES--MAKE IT SO
  1513	402021'	502 03 0 06 000003 		HLLM	T3,.FXEXT(P2)	;IMPROVE OUTPUT LKPBLK
  1514	402022'	200 01 0 06 000002 		MOVE	T1,.RBNAM(P2)	;GET FILENAME WE WILL USE
  1515	402023'	510 02 0 06 000003 		HLLZ	T2,.RBEXT(P2)	;AND EXTENSION
  1516	402024'	260 17 0 00 402432'		CALL	IFNDIR		;SEE IF IN DIRECTORY
  1517	402025'	254 00 0 00 402030'		 JRST	RENPRO		;NOT IN DIR
  1518	402026'	302 03 0 07 000000 		CAIE	T3,(P3)		;THERE--ARE WE RENAMING TO SELF?
  1519	402027'	254 00 0 00 402107'		 JRST	E$$RFE		;NO--RENAME FILE ALREADY EXISTS
  1520	402030'	200 01 0 06 000002 	RENPRO:	MOVE	T1,.RBNAM(P2)	;OK--UPDATE INCORE DIR
  1521	402031'	202 01 0 07 777777 		MOVEM	T1,-1(P3)	;...
  1522	402032'	510 01 0 06 000003 		HLLZ	T1,.RBEXT(P2)	;...
  1523	402033'	502 01 0 07 000000 		HLLM	T1,(P3)		;...
  1524	402034'	200 04 0 00 000337'		MOVE	T4,OUTFDB	;RESET T4 TO POINT AT OUTFDB
  1525	402035'	135 01 0 00 403613'		LDB	T1,[POINTR(.FXMOD(T4),FX.PRO)] ;GET /PROT VALUE
  1526	402036'	332 00 0 00 000001 		 SKIPE	T1		;UNLESS NOT GIVEN
  1527	402037'	137 01 0 00 403614'		DPB	T1,[POINTR(.RBPRV(P2),RB.PRV)] ;AND SET IN

LIBMAN -- LIBRARY FILE MANIPULATION PROGRAM %3(21)	MACRO %50A(441)-2 13:45 23-FEB-77 PAGE 34
LIBMAN	MAC	17-JAN-77 14:47		PROCESS RENAME COMMAND

  1528	402040'	200 01 0 04 000031 	RENVER:	MOVE	T1,.FXVER(T4)	;GET /VERSION FROM OUTPUT FDB
  1529	402041'	312 01 0 00 403366'		CAME	T1,[EXP -1]	;WAS IT DEFAULT?
  1530	402042'	202 01 0 06 000006 		 MOVEM	T1,.RBVER(P2)	;NO--SET IN LKPBLK
  1531	402043'	261 17 0 06 000006 		PUSH	P,.RBVER(P2)	;SAVE NEW VERSION ON PDL
  1532	402044'	261 17 0 06 000004 		PUSH	P,.RBPRV(P2)	;AND NEW PRIV WORD
  1533	402045'	261 17 0 06 000003 		PUSH	P,.RBEXT(P2)	;SAVE NEW EXT ON PDL
  1534	402046'	261 17 0 06 000002 		PUSH	P,.RBNAM(P2)	;AND NEW FILENAME ALSO
  1535	402047'	200 01 0 00 000651'		MOVE	T1,OBHR+.BFCTR	;GET THE COUNTER
  1536	402050'	402 00 0 00 000651'		SETZM	OBHR+.BFCTR	;AND ZERO IT
  1537	402051'	272 01 0 00 000650'		ADDM	T1,OBHR+.BFPTR	;AND UPDATE PTR SO MON WILL WRITE BUF
  1538	402052'	075 01 0 11 000000 		USETO	LIBC,(B)	;PREPARE TO WRITE THE BLOCK
  1539	402053'	260 17 0 00 403205'		CALL	XCTIO		;WRITE THE NEW LKPBLK TO LIBRARY
  1540	402054'	057 01 0 00 000000 		 OUT	LIBC,		;XCT'D
  1541	402055'	254 04 0 00 000005 		 STOPX$			;***
  1542	402056'	350 00 0 00 000443'		AOS	FILCNT		;COUNT THE THING AS DONE
  1543	402057'	200 01 0 05 000002 		MOVE	T1,.RBNAM(P1)	;GET OLD NAME
  1544	402060'	260 17 0 00 401351*		CALL	.TSIXN##	;TYPE IT
  1545	402061'	260 17 0 00 403346'		CALL	.TDOT
  1546	402062'	510 01 0 05 000003 		HLLZ	T1,.RBEXT(P1)	;GET EXTENSION
  1547	402063'	260 17 0 00 402060*		CALL	.TSIXN##
  1548	402064'	135 01 0 00 403540'		LDB	T1,[POINTR(.RBPRV(P1),RB.PRV)] ;GET PROT BITS
  1549	402065'	260 17 0 00 402417'		CALL	$TPROT		;TYPE /PROTECT:OOO
  1550	402066'	200 01 0 05 000006 		MOVE	T1,.RBVER(P1)	;GET VERSION
  1551	402067'	260 17 0 00 402424'		CALL	$TVRSN		;TYPE /VERSION:V
  1552	402070'	205 01 0 00 353600 		MOVSI	T1,'=> '	;POINT TO NEW NAME
  1553	402071'	260 17 0 00 402063*		CALL	.TSIXN##
  1554	402072'	262 17 0 00 000001 		POP	P,T1		;GET NEW NAME BACK
  1555	402073'	260 17 0 00 402071*		CALL	.TSIXN##
  1556	402074'	260 17 0 00 403346'		CALL	.TDOT
  1557	402075'	262 17 0 00 000001 		POP	P,T1		;GET EXTENSION BACK
  1558	402076'	513 00 0 00 000001 		HLLZS	T1		;CLEAR ANY RH STUFF
  1559	402077'	260 17 0 00 402073*		CALL	.TSIXN##
  1560	402100'	262 17 0 00 000001 		POP	P,T1		;GET PRIV WORD BACK
  1561	402101'	135 01 0 00 403615'		LDB	T1,[POINTR(T1,RB.PRV)] ;GET PRIV BITS
  1562	402102'	260 17 0 00 402417'		CALL	$TPROT		;TYPE /PROT
  1563	402103'	262 17 0 00 000001 		POP	P,T1		;GET VERSION BACK
  1564	402104'	260 17 0 00 402424'		CALL	$TVRSN		;AND TYPE IT
  1565	402105'	260 17 0 00 401527*		CALL	.TCRLF##	;NEW LINE
  1566	402106'	263 17 0 00 000000 		POPJ	P,		;RETURN TO GET NEXT FILE
  1567	402107'	260 17 0 00 403234'	E$$RFE:	WARN.	EF$SIX!EF$NCR,RFE,<RENAME FILE EXISTS - >
  1568	402110'	300243	403623'
  1569	402111'	201 01 0 00 000056 		MOVEI	T1,"."		;GET A DOT
  1570	402112'	260 17 0 00 401425*		CALL	.TCHAR##
  1571	402113'	510 01 0 00 000002 		HLLZ	T1,T2		;AND EXTENSION
  1572	402114'	260 17 0 00 402077*		CALL	.TSIXN##	;SEND IT
  1573						STRNG$	< - IGNORING
  1574	402115'	201 01 0 00 403377'	>
  1575	402116'	260 17 0 00 401751*
  1576	402117'	350 00 0 00 000444'	X$$RFE:	AOS	NOFILR		;COUNT REJECTED FILE
  1577	402120'	263 17 0 00 000000 		POPJ	P,

LIBMAN -- LIBRARY FILE MANIPULATION PROGRAM %3(21)	MACRO %50A(441)-2 13:45 23-FEB-77 PAGE 35
LIBMAN	MAC	17-JAN-77 14:47		PROCESS USE COMMAND

  1578					SUBTTL	PROCESS USE COMMAND
  1579
  1580	402121'	661 00 0 00 140000 	$READ:	TLO	F,FL$TYP!FL$RDO	;FLAG USE AND READ ONLY
  1581	402122'	254 00 0 00 402126'		JRST	USE.0		;SKIP AHEAD
  1582	402123'	625 00 0 00 100000 	$CREATE:TLZA	F,FL$TYP	;FLAG CREATE
  1583	402124'	661 00 0 00 100000 	$USE:	TLO	F,FL$TYP	;FLAG USE
  1584	402125'	621 00 0 00 040000 		TLZ	F,FL$RDO	;NOT READ-ONLY
  1585	402126'	260 17 0 00 402233'	USE.0:	CALL	CRUCLN		;CLEAN UP FROM LAST LIB
  1586	402127'	323 10 0 00 402133'		JUMPLE	C,E$$NFS	;NEED A SPEC
  1587	402130'	260 17 0 00 401762*		CALL	.SAVE2##	;PRESERVE REGS
  1588	402131'	350 00 0 17 000000 		AOS	(P)		;SKIP BACK SO SCAN DOESN'T STORE
  1589	402132'	260 17 0 00 402546'		CALL	$GTSPC		;GET A FILE SPEC FOR LIB FILE
  1590	402133'	260 17 0 00 403234'	E$$NFS:	FATAL.	0,NFS,<NO FILE SPECIFIED IN COMMAND>
  1591	402134'	300400	403633'
  1592	402135'	202 01 0 00 000340'		MOVEM	T1,LIBFDB	;REMEMBER WHERE IT IS
  1593	402136'	525 02 0 00 545142 		HRLOI	T2,DF$EXT	;IN CASE NO EXT TYPED
  1594	402137'	336 00 0 01 000003 		SKIPN	.FXEXT(T1)	;WAS ONE SPECIFIED?
  1595	402140'	202 02 0 01 000003 		 MOVEM	T2,.FXEXT(T1)	;NO--USE THIS ONE
  1596	402141'	200 02 0 01 000000 		MOVE	T2,.FXDEV(T1)	;GET DEV NAME
  1597	402142'	047 02 0 00 000004 		DEVCHR	T2,		;SEE WHAT IT IS
  1598	402143'	607 02 0 00 200000 		TLNN	T2,(DV.DSK)	;MUST BE DISK
  1599					;	 TLNE	F,FL$RDO	;UNLESS READ ONLY
  1600					;	  SKIPA			;DISK OR READ ONLY ON NON-DISK
  1601	402144'	254 00 0 00 402231'		  JRST	E$$BDL		;**BAD DEV FOR LIBRARY
  1602	402145'	260 17 0 00 403022'		CALL	OPENIO		;OPEN LIB TO SEE IF IT LIVES
  1603	402146'	300 01 0 14 000000 		CAI	LIBC,0(.IOBIN)	;DON'T BOTHER WITH BUFFERS
  1604	402147'	254 00 0 00 402221'		 JRST	CRECHK		;NOT THERE--ONLY COMPLAIN IF NOT CREATE
  1605	402150'	200 01 0 00 000340'		MOVE	T1,LIBFDB	;IT LIVES--SETUP IN CASE CREATE AND NOT USE
  1606	402151'	607 00 0 00 100000 		TLNN	F,FL$TYP	;CREATE?
  1607	402152'	260 17 0 00 403234'		 WARN.	EF$FIL,LAE,<LIBRARY ALREADY EXISTS >
  1608	402153'	300206	403641'
  1609	402154'	665 00 0 00 400000 		TLOA	F,FL$LIB	;FLAG WE HAVE A LIBRARY
  1610	402155'	661 00 0 00 600000 	USE.1:	TLO	F,FL$LIB!FL$CRE	;FLAG LIBRARY BEING  CREATED
  1611	402156'	603 00 0 00 040000 		TLNE	F,FL$RDO	;IS THIS READ ONLY?
  1612	402157'	263 17 0 00 000000 		 POPJ	P,		;YES--DON'T CHECK WRITE PRIVS
  1613	402160'	205 02 0 00 000002 		MOVSI	T2,.ACWRI	;CHECK PRIVS TO SEE IF WE CAN WRITE LIB
  1614	402161'	135 01 0 00 403642'		LDB	T1,[POINTR(LKPBLK+.RBPRV,RB.PRV)] ;GET PROT OF FILE
  1615	402162'	336 00 0 00 000001 		SKIPN	T1		;GET A PROT?
  1616	402163'	201 01 0 00 000155 		 MOVEI	T1,155		;NO--USE THIS
  1617	402164'	434 02 0 00 000001 		OR	T2,T1		;FOR CHKACC
  1618	402165'	200 03 0 00 000545'		MOVE	T3,LKPBLK+.RBPPN;PPN WHERE FILE WAS FOUND
  1619	402166'	200 04 0 00 400343*		MOVE	T4,.MYPPN##	;AND MY PPN
  1620	402167'	201 01 0 00 000002 		MOVEI	T1,T2		;POINT FOR TONY
  1621	402170'	047 01 0 00 000100 		CHKACC	T1,		;SEE WHAT THE SCOOP IS
  1622	402171'	254 00 0 00 402177'		 JRST	SAVFDU		;ASSUME OK IF NOT IMPLEMENTED
  1623	402172'	322 01 0 00 402177'		JUMPE	T1,SAVFDU	;JUMP IF CAN WRITE IT
  1624	402173'	200 01 0 00 000340'	E$$CWL:	MOVE	T1,LIBFDB	;CAN'T--GET FDB ADDR
  1625	402174'	260 17 0 00 403234'		ERROR.	EF$ERR!EF$FIL,CWL,<CAN'T WRITE LIBRARY >
  1626	402175'	300006	403650'
  1627	402176'	254 00 0 00 402233'		PJRST	CRUCLN		;CLEAN UP AND RETURN
  1628
  1629					;HERE TO SAVE LIBFDB ON DISK IF USE OR CREATE COMMAND
  1630
  1631	402177'	337 00 0 00 000661'	SAVFDU:	SKIPG	S.REML		;ARE WE TO REMEMBER LIBRARY?
  1632	402200'	263 17 0 00 000000 		 POPJ	P,		;NO--SAID SPECIFICALLY NOREMEMBER

LIBMAN -- LIBRARY FILE MANIPULATION PROGRAM %3(21)	MACRO %50A(441)-2 13:45 23-FEB-77 PAGE 35-1
LIBMAN	MAC	17-JAN-77 14:47		PROCESS USE COMMAND

  1633	402201'	050 05 0 00 403355'	SAVF.0:	OPEN	TMPC,[EXP .IODMP,'DSK   ',0] ;GET DISK IN DUMP MODE
  1634	402202'	263 17 0 00 000000 		 POPJ	P,		;GIVE UP EARLY IF CAN'T
  1635	402203'	260 17 0 00 401651'		CALL	MAKCCL		;GET NNNLIB
  1636	402204'	541 01 0 00 546254 		HRRI	T1,'LRL'	;LIBMAN REMEMBER LIBRARY FILE
  1637	402205'	205 02 0 00 645560 		MOVSI	T2,'TMP'	;EXT
  1638	402206'	403 03 0 00 000004 		SETZB	T3,T4		;CLEAR REST
  1639	402207'	077 05 0 00 000001 		ENTER	TMPC,T1		;PREPARE TO WRT
  1640	402210'	254 00 0 00 402217'		 JRST	SAVF.X		;CAN'T--GO QUIT
  1641	402211'	205 01 0 00 777746 		MOVSI	T1,-.FXLEN	;START IOWD
  1642	402212'	540 01 0 00 000340'		HRR	T1,LIBFDB	;COMPLETE IT
  1643	402213'	541 01 0 01 777777 		HRRI	T1,-1(T1)	;IOWDS GO TO N,,LOC-1
  1644	402214'	400 02 0 00 000000 		SETZ	T2,		;TERMINATE I/O LIST
  1645	402215'	067 05 0 00 000001 		OUTPUT	TMPC,T1		;WRITE THE FDB OUT
  1646	402216'	070 05 0 00 000000 		CLOSE	TMPC,		;CLOSE FILE
  1647	402217'	071 05 0 00 000000 	SAVF.X:	RELEASE	TMPC,		;FREE CHANNEL
  1648	402220'	263 17 0 00 000000 		POPJ	P,		;DONE

LIBMAN -- LIBRARY FILE MANIPULATION PROGRAM %3(21)	MACRO %50A(441)-2 13:45 23-FEB-77 PAGE 36
LIBMAN	MAC	17-JAN-77 14:47		PROCESS USE COMMAND

  1649					;HERE IF FILE NOT FOUND
  1650
  1651	402221'	607 00 0 00 100000 	CRECHK:	TLNN	F,FL$TYP	;SEE IF CREATE OR USE
  1652	402222'	254 00 0 00 402155'		 JRST	USE.1		;CREATE--DON'T MOAN
  1653	402223'	200 01 0 00 000340'		MOVE	T1,LIBFDB	;GET FDB
  1654	402224'	603 00 0 00 040000 		TLNE	F,FL$RDO	;IS THIS READ ONLY?
  1655						 JRST	[HRLZ	P1,LIBFDB ;YES--SETUP
  1656	402225'	254 00 0 00 403651'			PJRST	LKENER]	;AND GO DIE
  1657	402226'	260 17 0 00 403234'		WARN.	EF$FIL,CRE,<FILE NOT FOUND - ASSUME CREATING >
  1658	402227'	300206	403662'
  1659	402230'	254 00 0 00 402155'		JRST	USE.1		;GO SEE IF WE CAN WRITE IT
  1660	402231'	260 17 0 00 403234'	E$$BDL:	ERROR.	EF$ERR,BDL,<BAD DEVICE FOR LIBRARY OR NOT READING>
  1661	402232'	300000	403673'
  1662					;	PJRST	CRUCLN		;CLEAN UP AND RETURN
  1663
  1664					;CRUCLN -- CLEAN UP FROM LAST LIBRARY
  1665
  1666	402233'	621 00 0 00 600000 	CRUCLN:	TLZ	F,FL$LIB!FL$CRE	;ZERO THE FLAGS THAT A LIB EXISTS
  1667	402234'	332 01 0 00 000340'		SKIPE	T1,LIBFDB	;WAS THERE AN FDB?
  1668	402235'	260 17 0 00 000000*		 CALL	.DECOR##	;YES--MAKE IT GO AWAY
  1669	402236'	402 00 0 00 000340'		SETZM	LIBFDB		;MAKE SURE NOT THERE ANY MORE
  1670	402237'	332 01 0 00 000335'	ZAPDIR:	SKIPE	T1,DIRPTR	;WAS THERE A DIRECTORY?
  1671	402240'	260 17 0 00 402575'		CALL	GIVLST		;YES--GIVE IT UP
  1672	402241'	402 00 0 00 000335'		SETZM	DIRPTR		;NOT ANYMORE
  1673	402242'	263 17 0 00 000000 		POPJ	P,		;DONE

LIBMAN -- LIBRARY FILE MANIPULATION PROGRAM %3(21)	MACRO %50A(441)-2 13:45 23-FEB-77 PAGE 37
LIBMAN	MAC	17-JAN-77 14:47		SUBROUTINES--READ LIBRARY FILE AND CREATE INCORE DIRECTORY

  1674					SUBTTL	SUBROUTINES--READ LIBRARY FILE AND CREATE INCORE DIRECTORY
  1675
  1676					;$GTDIR -- CREATE IN-CORE DIRECTORY
  1677					;CALL:	CALL	$GTDIR
  1678					;	*ONLY RETURN--DIR SETUP IF POSSIBLE*
  1679
  1680	402243'	603 00 0 00 200000 	$GTDIR:	JUMPCR	$POPJ		;JUMP IF CREATE
  1681	402244'	254 00 0 00 403047'
  1682	402245'	332 00 0 00 000335'		SKIPE	DIRPTR		;ALREADY HAVE A DIR?
  1683	402246'	263 17 0 00 000000 		 POPJ	P,		;YES--DON'T READ IT AGAIN
  1684	402247'	260 17 0 00 000000*		CALL	.SAVE3##
  1685	402250'	201 01 0 00 000001 		MOVEI	T1,1		;USE ONE BUFFER
  1686	402251'	260 17 0 00 402332'		CALL	OLIBIN		;OPEN LIB FOR INPUT
  1687	402252'	263 17 0 00 000000 		 POPJ	P,		;NO LIB--NO DIR
  1688	402253'	260 17 0 00 402320'		CALL	GDIR.8		;INITIALIZE
  1689	402254'	201 06 0 00 000035 		MOVEI	P2,.RBTIM	;FOR CHECKING LIBRARY CORRECTNESS
  1690	402255'	201 11 0 00 000001 		MOVEI	B,1		;B IS THE BLOCK PTR FOR USETIS
  1691	402256'	260 17 0 00 403205'	GDIR.0:	CALL	XCTIO		;READ BLOCK
  1692	402257'	056 01 0 00 000000 		 IN	LIBC,
  1693	402260'	254 00 0 00 402326'		  JRST	GDIR.9		;DONE
  1694	402261'	200 07 0 00 000645'		MOVE	P3,IBHR+.BFPTR	;POINT TO DIR IN BUFFER (LOOKUP BLOCK)
  1695	402262'	340 07 0 00 000000 		AOJ	P3,		;REALLY POINT AT IT
  1696	402263'	312 06 0 07 000000 		CAME	P2,.RBCNT(P3)	;IS THIS REALLY A RIB?
  1697	402264'	254 00 0 00 402304'		 JRST	E$$IFL		;NO--GO DIE
  1698	402265'	252 05 0 00 402302'	GDIR.1:	AOBJP	P1,GDIR.5	;NEXT ENTRY IN DIR BLOCK--JUMP IF FULL
  1699	402266'	200 01 0 07 000002 		MOVE	T1,.RBNAM(P3)	;GET FILENXME
  1700	402267'	202 01 0 05 000000 		MOVEM	T1,(P1)		;STORE IT
  1701	402270'	252 05 0 00 402271'		AOBJP	P1,.+1		;ADVANCE
  1702	402271'	510 01 0 07 000003 		HLLZ	T1,.RBEXT(P3)	;GET EXTENSION
  1703	402272'	541 01 0 11 000000 		HRRI	T1,(B)		;SET BLOCK # IN RH
  1704	402273'	202 01 0 05 000000 		MOVEM	T1,(P1)		;STORE IN DIR
  1705	402274'	200 01 0 07 000005 		MOVE	T1,.RBSIZ(P3)	;FILE SIZE IN WORDS
  1706	402275'	275 01 0 00 000001 		SUBI	T1,1		;SO ALL WILL BE WELL
  1707	402276'	242 01 0 00 777771 		LSH	T1,-7		;CONVERT TO BLOCKS-1
  1708	402277'	271 11 0 01 000002 		ADDI	B,2(T1)		;POSITION TO NEXT LKPBLK IN LIBRARY
  1709	402300'	074 01 0 11 000000 		USETI	LIBC,(B)	;...
  1710	402301'	254 00 0 00 402256'		JRST	GDIR.0		;GO READ NEXT FILE IN LIBRARY
  1711
  1712					;HERE WHEN WE NEED ANOTHER BLOCK--THIS ONE IS FULL
  1713
  1714	402302'	260 17 0 00 402311'	GDIR.5:	CALL	GDIR.6		;GET IT
  1715	402303'	254 00 0 00 402265'		JRST	GDIR.1		;CONTINUE
  1716
  1717					;HERE IF LIBRARY IS NOT REALLY A LIBRARY
  1718
  1719	402304'	260 17 0 00 402233'	E$$IFL:	CALL	CRUCLN		;ENSURE NO LIBRARY
  1720	402305'	260 17 0 00 402770'		CALL	ILBCLS		;CLOSE OUT NON-LIBRARY FILE
  1721	402306'	200 01 0 00 000011 		MOVE	T1,B		;GET BLOCK #
  1722	402307'	260 17 0 00 403234'		FATAL.	EF$DEC,IFL,<INCORRECTLY FORMATTED LIBRARY AT BLOCK >
  1723	402310'	300401	403704'

LIBMAN -- LIBRARY FILE MANIPULATION PROGRAM %3(21)	MACRO %50A(441)-2 13:45 23-FEB-77 PAGE 38
LIBMAN	MAC	17-JAN-77 14:47		SUBROUTINES--READ LIBRARY FILE AND CREATE INCORE DIRECTORY

  1724					;CALL HERE TO COPY DIRECT OUT TO CORE BLOCKS
  1725
  1726	402311'	201 01 0 00 000100 	GDIR.6:	MOVEI	T1,LN$DRB	;SIZE OF BLOCK
  1727	402312'	260 17 0 00 000000*		CALL	.ALCOR##	;GET IT
  1728	402313'	205 02 0 00 000341'		MOVSI	T2,DIRECT	;FORM CTL WORD
  1729	402314'	541 02 0 01 000000 		HRRI	T2,(T1)		;...
  1730	402315'	251 02 0 01 000077 		BLT	T2,LN$DRB-1(T1)	;ZIP DIR OUT TO IT
  1731	402316'	201 02 0 00 000335'		MOVEI	T2,DIRPTR	;SETUP TO LINK
  1732	402317'	260 17 0 00 402563'		CALL	LNKATN		;DO THE LINKING
  1733	402320'	402 00 0 00 000341'	GDIR.8:	STORE	T1,DIRECT,DIRECT+LN$DRB-1,0 ;ZERO DIRECT
  1734	402321'	200 01 0 00 403571'
  1735	402322'	251 01 0 00 000440'
  1736	402323'	205 05 0 00 777700 		MOVSI	P1,-LN$DRB	;FORM AOBJ WORD
  1737	402324'	541 05 0 00 000340'		HRRI	P1,DIRECT-1	;...
  1738	402325'	263 17 0 00 000000 		POPJ	P,
  1739
  1740					;HERE WHEN WE HAVE READ THE WHOLE LIBRARY
  1741
  1742	402326'	260 17 0 00 402770'	GDIR.9:	CALL	ILBCLS		;CLOSE OUT LIBRARY
  1743	402327'	336 00 0 00 000341'		SKIPN	DIRECT		;ANY NAMES LEFT OVER HERE?
  1744	402330'	263 17 0 00 000000 		 POPJ	P,		;NO--ALL DONE
  1745	402331'	254 00 0 00 402311'		PJRST	GDIR.6		;YES--COPY OUT AND RETURN
  1746
  1747					;OLIBIN -- OPEN LIB FOR INPUT
  1748					;CALL:	MOVEI	T1,<# BUFFERS>
  1749					;	CALL	OLIBIN
  1750					;	*FILE NOT FOUND*
  1751					;	*ALL IS WELL, BUFFERS SET UP*
  1752
  1753	402332'				OLIBIN:	SAVE$	T1		;REMEMBER # BUFFERS
  1754	402333'	200 01 0 00 000340'		MOVE	T1,LIBFDB	;GET PTR TO FDB
  1755	402334'	260 17 0 00 403022'		CALL	OPENIO		;LOOKUP DIR
  1756	402335'	300 01 0 14 000644'		CAI	LIBC,IBHR(.IOBIN) ;
  1757	402336'	254 00 0 00 403232'		 PJRST	TPOPJ		;NO LIB--NO DIR
  1758						RESTR$	T1		;GET # BUFFERS BACK
  1759	402340'	205 01 0 01 000000 		MOVSI	T1,(T1)		;SETUP # BUFFERS, DEFAULT SIZE
  1760	402341'	200 02 0 00 403411'		MOVE	T2,[XWD OPNBLK,IBHR] ;
  1761	402342'	350 00 0 17 000000 		AOS	(P)		;SET TO SKIP BACK
  1762	402343'	254 00 0 00 401712*		PJRST	.ALCBF##	;ALLOCATE BUFFERS AND RETURN

LIBMAN -- LIBRARY FILE MANIPULATION PROGRAM %3(21)	MACRO %50A(441)-2 13:45 23-FEB-77 PAGE 39
LIBMAN	MAC	17-JAN-77 14:47		SUBROUTINES--MAKE LST FROM FILE LIST AND LIBRARY DIRECTORY

  1763					SUBTTL	SUBROUTINES--MAKE LST FROM FILE LIST AND LIBRARY DIRECTORY
  1764
  1765					;$MKLST -- MAKE LST FROM USER'S LIST (INPUT) AND LIBRARY DIRECTORY
  1766					;CALL:	MOVEI	L,<FDBLST--USER'S LIST>
  1767					;	CALL	$MKLST
  1768					;	**ADDRESS OF ROUTINE TO CALL FOR EACH ITEM IN LST (I.E. COROUTINE)**
  1769					;	*RETURN*
  1770					;THE COROUTINE WILL BE CALLED WITH P3=PTR TO ENTRY IN INCORE DIR (EXT WORD)
  1771					;				   P4=PTR TO FDB WHICH MATCHES DIR ENTRY
  1772					;THE COROUTINE MUST NOT DESTROY P1-3; THE COROUTINE MAY USE P4
  1773
  1774	402344'	200 01 0 17 000000 	$MKLST:	MOVE	T1,0(P)		;REMEMBER WHERE INSTR IS
  1775	402345'	260 17 0 00 000000*		CALL	.SAVE4##	;PRESERVE ACS
  1776	402346'	350 00 0 17 000000 		AOS	0(P)		;SETUP TO SKIP BACK OVER INSTR AT END
  1777	402347'	200 05 0 00 000001 		MOVE	P1,T1		;POINT AT LIST
  1778	402350'	336 06 0 00 000335'		SKIPN	P2,DIRPTR	;GET DIR PTR
  1779	402351'	254 00 0 00 402367'		JRST	E$$LDE		;WHAT CAN YOU DO IF NO DIR?
  1780
  1781	402352'	201 07 0 06 777777 	MKLS.0:	MOVEI	P3,-1(P2)	;POINT AT THE DIR BLK
  1782	402353'	505 07 0 00 777700 		HRLI	P3,-LN$DRB	;...
  1783	402354'	252 07 0 00 402372'	MKLS.1:	AOBJP	P3,MKLS.3	;JUMP IF DONE WITH DIR BLK
  1784	402355'	200 01 0 07 000000 		MOVE	T1,(P3)		;NO--GET A FILENAME
  1785	402356'	252 07 0 00 402357'		AOBJP	P3,.+1		;INC TO EXT
  1786	402357'	510 02 0 07 000000 		HLLZ	T2,(P3)		;AND PICK IT UP
  1787	402360'	336 00 0 00 000001 		SKIPN	T1		;SEE IF NULL
  1788	402361'	322 02 0 00 402354'		JUMPE	T2,MKLS.1	;YES--GET NEXT ENTRY (MAY HAVE BEEN DELETED)
  1789	402362'	260 17 0 00 402375'		CALL	MKLS.F		;LOOK THRU FDBS FOR A MATCH
  1790	402363'	254 00 0 00 402354'		 JRST	MKLS.1		;NONE HERE
  1791	402364'	200 10 0 00 000004 		MOVE	P4,T4		;POSITION FDB ADDR
  1792	402365'	260 17 1 05 000000 		PUSHJ	P,@(P1)		;CALL THE COROUTINE
  1793	402366'	254 00 0 00 402354'		JRST	MKLS.1		;GET MORE LST ENTRIES
  1794	402367'	260 17 0 00 403234'	E$$LDE:	ERROR.	EF$ERR,LDE,<LIBRARY DIR EMPTY>
  1795	402370'	300000	403711'
  1796	402371'	263 17 0 00 000000 		POPJ	P,
  1797					;HERE AT END OF A DIR BLK
  1798
  1799	402372'	550 06 0 06 777777 	MKLS.3:	HRRZ	P2,-1(P2)	;LINK TO NEXT
  1800	402373'	326 06 0 00 402352'		JUMPN	P2,MKLS.0	;GO IF MORE DIRS
  1801	402374'	263 17 0 00 000000 		POPJ	P,		;NO--ALL DONE

LIBMAN -- LIBRARY FILE MANIPULATION PROGRAM %3(21)	MACRO %50A(441)-2 13:45 23-FEB-77 PAGE 40
LIBMAN	MAC	17-JAN-77 14:47		SUBROUTINES--MAKE LST FROM FILE LIST AND LIBRARY DIRECTORY

  1802					;CALL HERE WITH FNAM.EXT IN T1.T2 AND L POINTING AT FDB CHAIN
  1803					;RETURN $POPJ1 IF WIN WITH T4 PTING AT FDB WHICH MATCHES
  1804					;RETURN $POPJ  IF LOOSE
  1805
  1806	402375'	336 00 0 00 000001 	MKLS.F:	SKIPN	T1		;DEFEND AGAINST DELETED FILES
  1807	402376'	322 02 0 00 403047'		JUMPE	T2,$POPJ	;..
  1808						SAVE$	<T1,T2>		;SAVE FNAM.EXT
  1809	402401'	200 04 0 00 000012 		MOVE	T4,L		;GET PTR TO FDBS
  1810	402402'	200 02 0 17 777777 	MLSF.0:	MOVE	T2,-1(P)	;GET FILENAME
  1811	402403'	510 03 0 17 000000 		HLLZ	T3,0(P)		;AND EXTENSION
  1812	402404'	430 02 0 04 000001 		XOR	T2,.FXNAM(T4)	;COMPARE NAMES
  1813	402405'	430 03 0 04 000003 		XOR	T3,.FXEXT(T4)	;AND EXTENSION + PICK UP EXT MASK
  1814	402406'	616 02 0 04 000002 		TDNN	T2,.FXNMM(T4)	;CHECK NAME WITH MASK
  1815	402407'	603 03 0 03 000000 		TLNE	T3,(T3)		;AND EXTENSION
  1816	402410'	334 04 0 04 777777 		  SKIPA	T4,-1(T4)	;FAIL--ADVANCE TO NEXT FDB
  1817						   JRST	[RESTR$	<T2,T1>	;WIN--RESTORE REGS
  1818	402411'	254 00 0 00 403712'			JRST	$POPJ1]	;AND SKIP BACK
  1819	402412'	553 00 0 00 000004 		HRRZS	T4		;CLEAR WORD COUNT
  1820	402413'	326 04 0 00 402402'		JUMPN	T4,MLSF.0	;JUMP IF MORE FDBS
  1821						RESTR$	<T2,T1>		;NO--RESTORE FILE.EXT
  1822	402416'	263 17 0 00 000000 		POPJ	P,		;FAIL BACK
  1823
  1824					;$TPROT -- TYPE /PROTECT:OOO
  1825					;CALL:	MOVE	T1,<PROT BITS>
  1826					;	CALL	$TPROT
  1827					;ACS:T1-4
  1828
  1829	402417'	261 17 0 00 000001 	$TPROT:	PUSH	P,T1		;SAVE PROT
  1830	402420'	201 01 0 00 403715'		STRNG$	</PROTECT:>
  1831	402421'	260 17 0 00 402116*
  1832	402422'	262 17 0 00 000002 		POP	P,T2		;GET PROT BACK
  1833	402423'	254 00 0 00 403151'		PJRST	TPRIV0		;GO TYPE PROTECTION AND RETURN
  1834
  1835					;$TVRSN -- TYPE /VESION:V
  1836					;CALL:	MOVE	T1,<VERSION>
  1837					;	CALL	$TVRSN
  1838					;WILL TYPE ONLY IF NON-ZERO
  1839
  1840	402424'	322 01 0 00 403047'	$TVRSN:	JUMPE	T1,$POPJ	;DON'T BOTHER IF ZERO
  1841	402425'	261 17 0 00 000001 		PUSH	P,T1		;SAVE VERSION
  1842	402426'	201 01 0 00 403717'		STRNG$	</VERSION:>
  1843	402427'	260 17 0 00 402421*
  1844	402430'	262 17 0 00 000001 		POP	P,T1		;GET IT AGAIN
  1845	402431'	254 00 0 00 401375*		PJRST	.TVERW##	;TYPE AND RETRN

LIBMAN -- LIBRARY FILE MANIPULATION PROGRAM %3(21)	MACRO %50A(441)-2 13:45 23-FEB-77 PAGE 41
LIBMAN	MAC	17-JAN-77 14:47		SUBROUTINES--SEE IF FILE IS IN LIBRARY

  1846					SUBTTL	SUBROUTINES--SEE IF FILE IS IN LIBRARY
  1847
  1848					;IFNDIR -- SEE IF FILE IS IN LIBRARY
  1849					;CALL:	MOVE	T1,FILNAM
  1850					;	MOVE	T2,EXTNSN
  1851					;	CALL	IFNDIR
  1852					;	*NOT THERE*
  1853					;	*THERE--T3 POINTS AT EXTENSION OF ENTRY*
  1854					;ACS:	T1-2 INTACT; USES T3-4
  1855					;
  1856					;IFNLST -- SEE IF FILE IS IN A LIST
  1857					;CALL:	MOVE	T1,FILNAM
  1858					;	MOVE	T2,EXTNSN
  1859					;	MOVE	T3,<LIST HEAD ADDR>
  1860					;	CALL	IFNLST
  1861					;	*NOT IN LST*
  1862					;	*IN LST--T3 POINTS AT EXTENSION OF ENTRY*
  1863
  1864	402432'	336 03 0 00 000335'	IFNDIR:	SKIPN	T3,DIRPTR	;IS THERE A DIR?
  1865	402433'	263 17 0 00 000000 		 POPJ	P,		;NO DIR--NOT IN FILE THEN
  1866	402434'	260 17 0 00 402130*	IFNLST:	CALL	.SAVE2##	;PRESERVE
  1867	402435'	336 05 0 00 000003 		SKIPN	P1,T3		;COPY LST ADDR
  1868	402436'	263 17 0 00 000000 		 POPJ	P,		;NO LST--CAN'T BE IN IT
  1869	402437'	201 06 0 05 000000 	IFND.0:	MOVEI	P2,(P1)		;POINT AT DIR
  1870	402440'	505 06 0 00 777700 		HRLI	P2,-LN$DRB	;GET AN AOBJ WORD
  1871	402441'	336 03 0 06 000000 	IFND.1:	SKIPN	T3,(P2)		;CHECK END/PICK UP FILENAME
  1872	402442'	254 00 0 00 402450'		 JRST	IFND.2		;COULD BE A DELETED FILE
  1873	402443'	510 04 0 06 000001 		HLLZ	T4,1(P2)	;PICKUP EXTENSION (IGNORE RH)
  1874	402444'	316 01 0 00 000003 		CAMN	T1,T3		;FILENAMES THE SAME?
  1875	402445'	312 02 0 00 000004 		 CAME	T2,T4		;AND EXTENSIONS ALSO?
  1876	402446'	334 00 0 00 000000 		  SKIPA			;NOT THE SAME
  1877						 JRST	[MOVEI	T3,1(P2);YES--POSITION
  1878	402447'	254 00 0 00 403721'			JRST	$POPJ1]	;AND SKIP BACK
  1879	402450'	252 06 0 00 402451'	IFND.2:	AOBJP	P2,.+1		;INC BY TWOS
  1880	402451'	253 06 0 00 402441'		AOBJN	P2,IFND.1	;GO IF MORE IN THIS BLOCK
  1881	402452'	550 05 0 05 777777 		HRRZ	P1,-1(P1)	;NO--LINK TO NEXT DIR BLOCK
  1882	402453'	326 05 0 00 402437'		JUMPN	P1,IFND.0	;JUMP IF MORE
  1883	402454'	263 17 0 00 000000 		POPJ	P,		;NO--NOT IN DIR
  1884
  1885					;CKOFDB -- SEE IF OUTFDB SETUP AND DO SO IF NOT
  1886					;CALL:	SETUP L,OUTFDB AS APPROPRIATE
  1887					;	CALL	CKOFDB
  1888					;	*RETURN--OUTFDB SETUP--T1 PTS AT OUTFDB ALSO*
  1889					;ACS: T1-2
  1890
  1891	402455'	332 01 0 00 000337'	CKOFDB:	SKIPE	T1,OUTFDB	;SEE IF ALREADY SET UP
  1892	402456'	665 00 0 00 010000 		 TLOA	F,FL$OFG	;YES--FLAG AND SKIP
  1893	402457'	625 00 0 00 010000 		  TLZA	F,FL$OFG	;NO--FLAG AND SKIP
  1894	402460'	263 17 0 00 000000 		   POPJ	P,		;ALREADY SETUP--RETURN NOW
  1895	402461'	201 01 0 00 000032 		MOVEI	T1,.FXLEN	;NO--GET CORE
  1896	402462'	260 17 0 00 402312*		CALL	.ALCOR##	;
  1897	402463'	205 02 0 12 000000 		MOVSI	T2,(L)		;COPY INPUT SPEC FOR OUTPUT
  1898	402464'	541 02 0 01 000000 		HRRI	T2,(T1)		;....
  1899	402465'	251 02 0 01 000031 		BLT	T2,.FXLEN-1(T1)	;MOVE SPEC OVER
  1900	402466'	202 01 0 00 000337'		MOVEM	T1,OUTFDB	;SETUP OUTFDB

LIBMAN -- LIBRARY FILE MANIPULATION PROGRAM %3(21)	MACRO %50A(441)-2 13:45 23-FEB-77 PAGE 41-1
LIBMAN	MAC	17-JAN-77 14:47		SUBROUTINES--SEE IF FILE IS IN LIBRARY

  1901	402467'	263 17 0 00 000000 		POPJ	P,		;RETURN

LIBMAN -- LIBRARY FILE MANIPULATION PROGRAM %3(21)	MACRO %50A(441)-2 13:45 23-FEB-77 PAGE 42
LIBMAN	MAC	17-JAN-77 14:47		SUBROUTINES--SEE IF FILE IS IN LIBRARY

  1902					;AD2DIR -- ADD FILE TO INCORE DIRECTORY
  1903					;CALL:	MOVE	T1,FILNAM
  1904					;	MOVE	T2,EXTNSN
  1905					;	MOVEI	B,<BLK # IN LIB>
  1906					;	CALL	AD2DIR
  1907					;ACS:	T1-4
  1908					;AD2LST -- ADD FILE TO A LIST
  1909					;CALL:	MOVE	T1,FILNAM
  1910					;	MOVE	T2,EXTNSN
  1911					;	MOVEI	T3,<LIST HEAD ADDR>
  1912					;	HRRZ	B,<INFO FOR RH OF EXTENSION WORD>
  1913					;	CALL	AD2LST
  1914
  1915	402470'	201 03 0 00 000335'	AD2DIR:	MOVEI	T3,DIRPTR	;POINT AT DIR LST
  1916	402471'	260 17 0 00 402434*	AD2LST:	 CALL	.SAVE2##	;PRESERVE
  1917	402472'	336 05 0 03 000000 		SKIPN	P1,(T3)		;IS THERE A LST?
  1918	402473'	254 00 0 00 402506'		 JRST	AD2D.3		;NO--GO START IT
  1919	402474'	550 06 0 05 777777 	AD2D.0:	HRRZ	P2,-1(P1)	;GET LINK TO NEXT DIR BLK OR 0
  1920	402475'	326 06 0 00 402504'		JUMPN	P2,AD2D.2	;IF THERE IS ONE THEN SAVE SOME TIME
  1921	402476'	201 06 0 05 000000 		MOVEI	P2,(P1)		;GET PTR
  1922	402477'	505 06 0 00 777700 		HRLI	P2,-LN$DRB	;FORM AOBJ PTR
  1923	402500'	336 00 0 06 000000 	AD2D.1:	SKIPN	(P2)		;END OF DIR?
  1924	402501'	254 00 0 00 402517'		 JRST	AD2D.4		;YES--GO PLUNK IN NAME
  1925	402502'	252 06 0 00 402503'		AOBJP	P2,.+1		;BUMP PTR
  1926	402503'	253 06 0 00 402500'		AOBJN	P2,AD2D.1	;BY TWOS
  1927	402504'	550 05 0 05 777777 	AD2D.2:	HRRZ	P1,-1(P1)	;MOVE TO NEXT DIR BLK
  1928	402505'	326 05 0 00 402474'		JUMPN	P1,AD2D.0	;CHECK IT OUT
  1929
  1930					;HERE WHEN WE MUST GET ANOTHER BLOCK
  1931
  1932	402506'				AD2D.3:	SAVE$	<T2,T1>		;SAVE FILENAME.EXT
  1933	402510'	201 01 0 00 000100 		MOVEI	T1,LN$DRB	;SIZE OF BLOCK
  1934	402511'	260 17 0 00 402462*		CALL	.ALCOR##	;ALLOCATE A BLOCK
  1935						RESTR$	<(T1)>		;PUT NAME IN
  1936						RESTR$	<1(T1)>		;AND EXTENSION
  1937	402514'	542 11 0 01 000001 		HRRM	B,1(T1)		;SET BLOCK # IN ALSO
  1938	402515'	201 02 0 03 000000 		MOVEI	T2,(T3)		;SETUP 
  1939	402516'	254 00 0 00 402563'		PJRST	LNKATN		;AND LINK AT END OF LIST
  1940
  1941					;HERE WHEN WE FOUND A FREE SLOT IN THIS DIR BLOCK
  1942
  1943	402517'	202 01 0 06 000000 	AD2D.4:	MOVEM	T1,(P2)		;STORE FILENAME
  1944	402520'	202 02 0 06 000001 		MOVEM	T2,1(P2)	;AND EXTENSION
  1945	402521'	542 11 0 06 000001 		HRRM	B,1(P2)		;SET BLOCK # IN
  1946	402522'	263 17 0 00 000000 		POPJ	P,		;DONE

LIBMAN -- LIBRARY FILE MANIPULATION PROGRAM %3(21)	MACRO %50A(441)-2 13:45 23-FEB-77 PAGE 43
LIBMAN	MAC	17-JAN-77 14:47		SUBROUTINES--GET A FILE LIST

  1947					SUBTTL	SUBROUTINES--GET A FILE LIST
  1948
  1949					;$GTLST -- GET A FILE LIST INTO CORE BLOCKS
  1950					;CALL:	CALL	$GTLST
  1951					;	*RETURN IF NO FILES PRESENT*
  1952					;	*RETURN WITH L POINTING AT FDB CHAIN*
  1953
  1954	402523'	321 10 0 00 403047'	$GTLST:	PJUMPLE	C,$POPJ		;JUMP IF AT EOL
  1955	402524'	400 12 0 00 000000 		SETZ	L,		;CLEAR LIST
  1956	402525'	260 17 0 00 402546'	GLST.0:	CALL	$GTSPC		;GET A SPEC
  1957						 PJRST	[PJUMPN L,$POPJ1 ;NO MORE--POPJ1 IF GOT AT LEAST ONE
  1958	402526'	254 00 0 00 403723'			POPJ	P,]	;NO--RETURN CPOPJ
  1959	402527'	201 02 0 00 000012 	GLST.1:	MOVEI	T2,L		;POINT T2 AT THE LIST HEAD
  1960	402530'	260 17 0 00 402563'		CALL	LNKATN		;LINK THIS BLOCK AT END OF LIST
  1961	402531'	327 10 0 00 402525'		JUMPG	C,GLST.0	;JUMP IF MORE FILES POSSIBLE
  1962	402532'	326 12 0 00 403046'		JUMPN	L,$POPJ1	;JUMP IF WE FOUND A SPEC
  1963	402533'	263 17 0 00 000000 		POPJ	P,		;ELSE POPJ BACK
  1964
  1965					;$GTIOL -- GET I/O LIST -- OUTPUT AND INPUT
  1966					;CALL:	CALL	$GTIOL
  1967					;	 *RETURN--NO FILESPECS PRESENT*
  1968					;	*RETURN--OUTFDB IS 0 OR POINTS AT FDB, L POINTS AT INPUT FDBS*
  1969
  1970	402534'	321 10 0 00 403047'	$GTIOL:	PJUMPLE	C,$POPJ		;JUMP IF AT EOL
  1971	402535'	332 01 0 00 000337'		SKIPE	T1,OUTFDB	;IF THERE IS AN FDB
  1972	402536'	260 17 0 00 402235*		CALL	.DECOR##	;FREE IT UP
  1973	402537'	403 12 0 00 000337'		SETZB	L,OUTFDB	;ZERO A FEW THINGYS
  1974	402540'	260 17 0 00 402546'		CALL	$GTSPC		;READ ONE SPECIFCATION
  1975	402541'	263 17 0 00 000000 		 POPJ	P,		;WEREN'T ANY
  1976	402542'	302 10 0 00 000075 		CAIE	C,"="		;WAS THIS OUTPUT SPEC?
  1977	402543'	254 00 0 00 402527'		 JRST	GLST.1		;NO--DO INPUT
  1978	402544'	202 01 0 00 000337'		MOVEM	T1,OUTFDB	;YES--STORE IT THERE
  1979	402545'	254 00 0 00 402525'		JRST	GLST.0		;GO DO INPUT
  1980
  1981					;$GTSPC -- READ ONE ONE FILE SPEC INTO CORE
  1982					;CALL:	CALL	$GTSPC
  1983					;	*NO FILE GIVEN*
  1984					;	*RETURN, FDB ADDR IN T1*
  1985
  1986	402546'	260 17 0 00 000000*	$GTSPC:	CALL	.FILIN##	;READ THE SPEC
  1987	402547'	336 00 0 00 000000*		SKIPN	F.NAM##		;CHECK FOR NULL SPEC
  1988	402550'	332 00 0 00 777777*		 SKIPE	F.NAM##-1	;THIS IS REALLY F.DEV
  1989	402551'	354 00 0 17 000000 		 AOSA	(P)		;GOT SOMETHING--SET TO SKIP BACK
  1990	402552'	263 17 0 00 000000 		   POPJ	P,		;NO WE DIDN'T
  1991	402553'	260 17 0 00 402617'		CALL	$GTFDB		;GET AN FDB
  1992						SAVE$	T1		;SAVE ADDRESS
  1993	402555'	201 02 0 00 000032 		MOVEI	T2,.FXLEN	;AND SIZE FOR .GTSPC
  1994	402556'	260 17 0 00 000000*		CALL	.GTSPC##	;COPY SPEC OVER
  1995	402557'	262 17 0 00 000001 		POP	P,T1		;GET ADDRESS BACK
  1996	402560'	337 00 0 01 000027 		SKIPG	.FXFLM(T1)	;WAS FILE MAX LENGTH SET?
  1997	402561'	476 00 0 01 000027 		 SETOM	.FXFLM(T1)	;NO--MAKE IT -1 SO .CHKTM IS HAPPY
  1998	402562'	263 17 0 00 000000 		POPJ	P,		;SKIP BACK

LIBMAN -- LIBRARY FILE MANIPULATION PROGRAM %3(21)	MACRO %50A(441)-2 13:45 23-FEB-77 PAGE 44
LIBMAN	MAC	17-JAN-77 14:47		SUBROUTINES--GET A FILE LIST

  1999					;LNKATN -- LINK A BLOCK AT THE END OF A LINKED LIST
  2000					;CALL:	MOVEI	T1,<NEW BLOCK ADDR--1ST WORD (NOT LINK WORD)>
  2001					;	MOVEI	T2,<LIST HEAD ADDR>
  2002					;	CALL	LNKATN
  2003					;	*RETURN, NO ACS WIPED*
  2004
  2005	402563'	336 00 0 02 000000 	LNKATN:	SKIPN	(T2)		;IS THERE A LIST?
  2006						 JRST	[MOVEM	T1,(T2)	;NO--START IT NOW
  2007	402564'	254 00 0 00 403725'			JRST	MRKEND]	;BE SURE THE NEW BLOCK IS THE END OF THE LIST
  2008	402565'	260 17 0 00 402471*		CALL	.SAVE2##	;NEED TWO REGISTERS
  2009	402566'	200 05 0 02 000000 		MOVE	P1,(T2)		;COPY LIST ADDRESS
  2010	402567'	200 06 0 00 000005 		MOVE	P2,P1		;REMEMBER FROM WHENCE WE CAME
  2011	402570'	550 05 0 05 777777 		HRRZ	P1,-1(P1)	;LOOKY FOR THE END
  2012	402571'	326 05 0 00 402567'		JUMPN	P1,.-2		;HAVE TO GET THERE EVENTUALLY
  2013	402572'	542 01 0 06 777777 		HRRM	T1,-1(P2)	;PUT THIS ONE ON THE END
  2014	402573'	513 00 0 01 777777 	MRKEND:	HLLZS	-1(T1)		;MAKE SURE THIS IS REALLY THE END
  2015	402574'	263 17 0 00 000000 		POPJ	P,		;DONE
  2016
  2017					;GIVLST -- GIVE BACK A LIST OF LINKED BLOCKS
  2018					;CALL:	MOVEI	T1,<ADDR OF FIRST BLK>
  2019					;	CALL	GIVLST
  2020
  2021	402575'	322 01 0 00 403047'	GIVLST:	JUMPE	T1,$POPJ	;JUMP IF NULL LIST
  2022	402576'	260 17 0 00 401735*		CALL	.SAVE1##	;NO--SAVE P1
  2023	402577'	200 05 0 00 000001 		MOVE	P1,T1		;COPY PTR
  2024	402600'	550 01 0 00 000005 	GIVL.0:	HRRZ	T1,P1		;COPY ADDR
  2025	402601'	550 05 0 05 777777 		HRRZ	P1,-1(P1)	;CHAIN TO POSSIBLE NEXT BLOK
  2026	402602'	260 17 0 00 402536*		CALL	.DECOR##	;FREE A BLOCK
  2027	402603'	326 05 0 00 402600'		JUMPN	P1,GIVL.0	;JUMP IF MORE
  2028	402604'	263 17 0 00 000000 		POPJ	P,		;DONE

LIBMAN -- LIBRARY FILE MANIPULATION PROGRAM %3(21)	MACRO %50A(441)-2 13:45 23-FEB-77 PAGE 45
LIBMAN	MAC	17-JAN-77 14:47		SUBROUTINES--GET A FILE LIST

  2029					;$EATLN -- SKIP TO EOL
  2030
  2031	402605'	323 10 0 00 403047'	$EATLN:	JUMPLE	C,$POPJ		;GO IF DONE
  2032	402606'	260 17 0 00 401545*		CALL	.TIAUC##	;NO--NEXT CHARACTER
  2033	402607'	254 00 0 00 402605'		JRST	$EATLN		;CHECK IT OUT
  2034
  2035					;GIVIOL -- GIVE BACK OUTFDB AND FDB CHAIN THAT L POINTS AT
  2036
  2037	402610'	332 01 0 00 000337'	GIVIOL:	SKIPE	T1,OUTFDB	;DO WE HAVE AN FDB?
  2038	402611'	260 17 0 00 402602*		 CALL	.DECOR##	;YES--BUT NOW WE DON'T
  2039	402612'	402 00 0 00 000337'		SETZM	OUTFDB
  2040	402613'	336 01 0 00 000012 		SKIPN	T1,L		;IS THERE AN INPUT LIST?
  2041	402614'	263 17 0 00 000000 		 POPJ	P,		;NO--RETURN
  2042	402615'	400 12 0 00 000000 		SETZ	L,		;YES--MAKE SURE NOT ANY MORE
  2043	402616'	254 00 0 00 402575'		PJRST	GIVLST		;AND FREE IT UP AND RETURN
  2044
  2045					;$GTFDB -- GET AN FDB
  2046					;CALL:	CALL	$GTFDB
  2047					;	*T1 PTS AT FDB*
  2048					;USE THIS SO .FXFLM GETS SET TO -1 AND .CHKTM IS HAPPY
  2049
  2050	402617'	201 01 0 00 000032 	$GTFDB:	MOVEI	T1,.FXLEN	;SIZE OF BLOCK TO GET
  2051	402620'	260 17 0 00 402511*		CALL	.ALCOR##	;GET FROM CORE GIVER
  2052	402621'	476 00 0 01 000027 		SETOM	.FXFLM(T1)	;ONES TO THE SIZE IN CASE NOT GIVEN
  2053	402622'	263 17 0 00 000000 		POPJ	P,		;BACK WITH FDB ADDR IN T1
  2054
  2055					;TYPE FDB LIST POINTED TO BY L
  2056
  2057	402623'	322 12 0 00 403047'	$TYIOL:	JUMPE	L,$POPJ		;SKIP EMPTY LISTS
  2058	402624'	260 17 0 00 402576*		CALL	.SAVE1##	;GET P1 FREE
  2059	402625'	550 05 0 00 000012 		HRRZ	P1,L		;GET A COPY OF L
  2060	402626'	200 01 0 00 000005 	TYIO.2:	MOVE	T1,P1		;POINT AT SCAN BLOCK
  2061	402627'	260 17 0 00 401304*		CALL	.TFBLK##	;TYPE ONE
  2062	402630'	550 05 0 05 777777 		HRRZ	P1,-1(P1)	;CHAIN TO (POSSIBLE) NEXT
  2063	402631'	322 05 0 00 403047'		JUMPE	P1,$POPJ	;JUMP IF ALL DONE
  2064	402632'	201 01 0 00 000054 		MOVEI	T1,","		;NO--GET A COMMA
  2065	402633'	260 17 0 00 402112*		CALL	.TCHAR##	;TYPE IT
  2066	402634'	254 00 0 00 402626'		JRST	TYIO.2		;GO TYPE THE NAME NOW

LIBMAN -- LIBRARY FILE MANIPULATION PROGRAM %3(21)	MACRO %50A(441)-2 13:45 23-FEB-77 PAGE 46
LIBMAN	MAC	17-JAN-77 14:47		OPEN LIBRARY IN UPDATE MODE

  2067					SUBTTL	OPEN LIBRARY IN UPDATE MODE
  2068
  2069					;OLIBUP -- OPEN LIBRARY IN UPDATE MODE
  2070					;CALL:	MOVEI	T1,FLGVAL	;T1=0 TO APPEND, T1=-1 TO UPDATE
  2071					;	CALL	OLIBUP
  2072
  2073	402635'	260 17 0 00 402624*	OLIBUP:	CALL	.SAVE1##	;PRESERVE P1
  2074	402636'	204 05 0 00 000340'		MOVS	P1,LIBFDB	;IN CASE OF CATASTROPHIC ERROR
  2075	402637'	544 05 0 00 000001 		HLR	P1,T1		;REMEMBER THE FLAG VALUE
  2076	402640'	205 01 0 00 000032 		MOVSI	T1,.FXLEN	;SETUP FOR .STOPB
  2077	402641'	540 01 0 00 000340'		HRR	T1,LIBFDB	;...
  2078	402642'	201 02 0 00 000541'		MOVEI	T2,OPNBLK	;...
  2079	402643'	200 03 0 00 403512'		MOVE	T3,[XWD .RBTIM+1,LKPBLK]
  2080	402644'	260 17 0 00 401205*		CALL	.STOPN##	;FORM OPEN/LOOKUP BLOCKS
  2081	402645'	254 00 0 00 403127'		 JRST	WLDERR		;NO WILDCARDING OF LIBS
  2082	402646'	201 01 0 00 000035 		MOVEI	T1,.RBTIM	;SET SIZE
  2083	402647'	202 01 0 00 000544'		MOVEM	T1,LKPBLK+.RBCNT;FOR MON
  2084	402650'	201 01 0 00 000014 		MOVEI	T1,.IOBIN	;BINARY
  2085	402651'	202 01 0 00 000541'		MOVEM	T1,OPNBLK+.OPMOD
  2086	402652'	205 01 0 00 000647'		MOVSI	T1,OBHR		;FOR OUTPUT
  2087	402653'	602 05 0 00 777777 		TRNE	P1,-1		;SEE IF UPDATING
  2088	402654'	541 01 0 00 000644'		 HRRI	T1,IBHR		;YES--NEED INPUT BUFFER HEADER ALSO
  2089	402655'	202 01 0 00 000543'		MOVEM	T1,OPNBLK+.OPBUF
  2090	402656'	050 01 0 00 000541'		OPEN	LIBC,OPNBLK	;OPEN THE CHAN
  2091	402657'	254 00 0 00 403124'		 JRST	OPENER		;CANT
  2092	402660'	474 01 0 00 000000 		SETO	T1,		;T1=-1 UNLESS CREATING FILE
  2093	402661'	076 01 0 00 000544'		LOOKUP	LIBC,LKPBLK	;FIND THE FILE
  2094						 JRST	[HRRZ	T1,LKPBLK+.RBEXT ;CAN'T--GET FAIL CODE
  2095							JUMPN	T1,LKENER ;ALL ARE FATAL EXCEPT FILE NOT FOUND
  2096	402662'	254 00 0 00 403727'			JRST	.+1]	;DO THE ENTER NOW
  2097	402663'	077 01 0 00 000544'		ENTER	LIBC,LKPBLK	;ENTER TO DO  UPDATE
  2098	402664'	254 00 0 00 402173'		 JRST	E$$CWL		;**CAN'T WRITE LIB
  2099	402665'	537 00 0 00 000005 		HRLES	P1		;GET FLAG OUT TO FULL WORD NOW
  2100	402666'	321 05 0 00 402703'		JUMPL	P1,LIBUPE	;JUMP IF UPDATE NOT APPEND
  2101	402667'	332 00 0 00 000001 		SKIPE	T1		;DON'T USETI IF JUST CREATING THE FILE
  2102	402670'	074 01 0 00 777777 		USETI	LIBC,-1		;THIS APPENDS
  2103	402671'	200 05 0 00 000001 		MOVE	P1,T1		;COPY CREATE/APPEND FLAG
  2104	402672'	260 17 0 00 403117'		CALL	GETNBF		;# BUFFERS
  2105	402673'	200 02 0 00 403475'		MOVE	T2,[XWD OPNBLK,OBHR] ;
  2106	402674'	260 17 0 00 402343*		CALL	.ALCBF##	;ALLOCATE BUFFERS
  2107	402675'	067 01 0 00 000000 		OUTPUT	LIBC,		;DUMMY OUTPUT
  2108	402676'	332 02 0 00 000005 		SKIPE	T2,P1		;GET FILE SIZE OR 0 IF JUST  CREATING
  2109	402677'	200 02 0 00 000551'		 MOVE	T2,LKPBLK+.RBSIZ;IT EXISTS--GET SIZE
  2110	402700'	242 02 0 00 777771 		LSH	T2,-7		;CONVT TO BLOCKS
  2111	402701'	201 11 0 02 000001 		MOVEI	B,1(T2)		;SETUP B TO WHERE WE WILL APPEND
  2112	402702'	263 17 0 00 000000 		POPJ	P,		;ALL DONE
  2113	402703'	336 00 0 00 000001 	LIBUPE:	SKIPN	T1		;FILE MUST EXIST
  2114	402704'	254 04 0 00 000006 		 STOPX$			;OR THERE IS A BUG
  2115	402705'	205 01 0 00 000001 		MOVSI	T1,1		;USE ONE BUFFER
  2116	402706'	200 02 0 00 403475'		MOVE	T2,[XWD OPNBLK,OBHR] ;FOR OUTPUT
  2117	402707'	260 17 0 00 402674*		CALL	.ALCBF##	;...
  2118	402710'	067 01 0 00 000000 		OUTPUT	LIBC,		;DUMMY OUTPUT
  2119	402711'	205 01 0 00 000001 		MOVSI	T1,1		;AND ONE FOR INPUT TOO
  2120	402712'	200 02 0 00 403411'		MOVE	T2,[XWD OPNBLK,IBHR]
  2121	402713'	254 00 0 00 402707*		PJRST	.ALCBF##	;ALLOCATE INPUT BUFFERS AND RETURN

LIBMAN -- LIBRARY FILE MANIPULATION PROGRAM %3(21)	MACRO %50A(441)-2 13:45 23-FEB-77 PAGE 46-1
LIBMAN	MAC	17-JAN-77 14:47		OPEN LIBRARY IN UPDATE MODE

  2122
  2123					;HERE TO CLOSE LIB WHICH WAS OPENED FOR OUTPUT
  2124
  2125	402714'	070 01 0 00 000000 	OLBCLS:	CLOSE	LIBC,		;CLOSE CHAN
  2126	402715'	062 01 0 00 000001 		GETSTS	LIBC,T1		;CHECK FOR CLOSE ERRORS
  2127	402716'	602 01 0 00 740000 		TRNE	T1,IO.ERR	;WERE THERE ANY?
  2128	402717'	260 17 0 00 403234'		 WARN.	EF$OCT,ECL,<I/O ERROR CLOSING LIBRARY - >
  2129	402720'	300202	403740'
  2130	402721'	071 01 0 00 000000 		RELEASE	LIBC,		;GIVE IT ALL UP
  2131	402722'	201 01 0 00 000647'	OLBCL2:MOVEI	T1,OBHR		;GET BHR ADDR
  2132
  2133					;HERE TO FREE BUFFERS -- T1 POINTS AT FIRST WORD OF BUFFER HEADER
  2134
  2135	402723'	336 00 0 01 000000 	TSTBHR:	SKIPN	.BFADR(T1)	;BUFFERS USED?
  2136	402724'	263 17 0 00 000000 		 POPJ	P,		;NO--ALL DONE
  2137						SAVE$	T1		;YES--REMEMBER ADDR
  2138	402726'	260 17 0 00 000000*		CALL	.FREBF##	;FREE BUFFERS
  2139						RESTR$	T1		;GET PTR BACK
  2140	402730'	402 00 0 01 000000 		SETZM	.BFADR(T1)	;CLEAR IT OUT
  2141	402731'	402 00 0 01 000001 		SETZM	.BFPTR(T1)
  2142	402732'	402 00 0 01 000002 		SETZM	.BFCTR(T1)
  2143	402733'	263 17 0 00 000000 		POPJ	P,
  2144
  2145					;HERE TO OPEN DISK FOR INPUT -- STUFF SETUP BY WILD
  2146					;CPOPJ IF NOT FOUND--CPOPJ1 IF OK
  2147
  2148	402734'	265 02 0 00 403050'	DSKOPI:	JSP	T2,$SAVE3	;SAVE P1-3
  2149	402735'	200 06 0 00 403741'		MOVE	P2,[Z INPC,IBHR(.IOBIN)] ;ARG FOR OPENIO
  2150	402736'	260 17 0 00 403064'	DSKIO0:	CALL	ZERLKP		;ZERO ANY OLD LKPBLK STUFF
  2151	402737'	200 01 0 00 403742'		MOVE	T1,[XWD DSKBGN,IOXBGN] ;BLT STUFF TO OPNBLK/LKPBLK
  2152	402740'	251 01 0 00 000601'		BLT	T1,IOXEND
  2153	402741'	200 01 0 00 000441'		MOVE	T1,WLDFIR	;POINT TO SCAN BLOCK
  2154	402742'	200 02 0 00 000542'		MOVE	T2,OPNBLK+.OPDEV;GET THE DEVICE
  2155	402743'	047 02 0 00 000004 		DEVCHR	T2,		;SEE IF IT CAN
  2156	402744'	606 02 0 00 004000 		TRNN	T2,DV.M13	;DO BINARY I/O
  2157						 JRST	[ERROR.	(EF$ERR!EF$FIL,CDB,<CAN'T DO BINARY I/O TO >)
  2158	402745'	254 00 0 00 403743'			POPJ	P,]	;NO--SO DON'T TRY IT
  2159	402746'	260 17 0 00 403070'		CALL	FNDFIL		;LOOKUP/ENTER THE FILE
  2160	402747'	254 00 0 00 402754'		 JRST	DSKIOF		;OPEN FAILURE
  2161	402750'	254 00 0 00 402754'		 JRST	DSKIOF		;LOOKUP/ENTER FAILURE
  2162	402751'	204 01 0 00 403742'		MOVS	T1,[XWD DSKBGN,IOXBGN] ;SETUP TO COPY LKPBLK TO DSKLKP
  2163	402752'	251 01 0 00 000540'		BLT	T1,DSKLKP+.RBTIM ;IN CASE ANYONE EXPECTS IT TO BE THERE
  2164	402753'	254 00 0 00 403046'		JRST	$POPJ1		;CPOPJ1 BACK
  2165	402754'	201 01 0 00 000544'	DSKIOF:	MOVEI	T1,LKPBLK	;POINT AT LKPBLK
  2166	402755'	201 02 0 00 000035 		MOVEI	T2,.RBTIM	;THE SIZE OF THE BLOCK
  2167	402756'	200 03 0 00 000441'		MOVE	T3,WLDFIR	;AND THE SCAN SPEC INVOLVED
  2168	402757'	254 00 0 00 000000*		PJRST	E.LKEN##	;REPORT ERROR AND RETURN CPOPJ
  2169
  2170					REPEAT 0,<
  2171					;HERE TO OPEN DISK FOR OUTPUT -- STUFF SETUP BY WILD
  2172					;ALWAYS CPOPJ BACK
  2173					
  2174					DSKOPO:	JSP	T2,$SAVE3	;SAVE P1-3
  2175						MOVE	P2,[Z OUTC,@OBHR(.IOBIN)]
  2176						PJRST	DSKIO0		;JOINT INPUT

LIBMAN -- LIBRARY FILE MANIPULATION PROGRAM %3(21)	MACRO %50A(441)-2 13:45 23-FEB-77 PAGE 46-2
LIBMAN	MAC	17-JAN-77 14:47		OPEN LIBRARY IN UPDATE MODE

  2177					>;END REPEAT 0
  2178
  2179					;HERE TO CLOSE DSK INPUT
  2180
  2181	402760'	070 02 0 00 000000 	DSKICL:	CLOSE	INPC,
  2182	402761'	071 02 0 00 000000 		RELEASE	INPC,
  2183	402762'	201 01 0 00 000644'		MOVEI	T1,IBHR
  2184	402763'	254 00 0 00 402723'		PJRST	TSTBHR		;FREE BUFFERS
  2185
  2186					;HERE TO CLOSE DSK OUTPUT
  2187
  2188	402764'	070 03 0 00 000000 	DSKOCL:	CLOSE	OUTC,
  2189	402765'	071 03 0 00 000000 		RELEASE	OUTC,
  2190	402766'	201 01 0 00 000647'		MOVEI	T1,OBHR
  2191	402767'	254 00 0 00 402723'		PJRST	TSTBHR
  2192
  2193					;HERE TO CLOSE LIBRARY INPUT
  2194
  2195	402770'	070 01 0 00 000000 	ILBCLS:	CLOSE	LIBC,
  2196	402771'	071 01 0 00 000000 		RELEASE	LIBC,
  2197	402772'	201 01 0 00 000644'		MOVEI	T1,IBHR
  2198	402773'	254 00 0 00 402723'		PJRST	TSTBHR		;GIVE BUFFERS AND RETURN
  2199
  2200					;CHROUT -- SEND CHARACTER IN T1 TO OUTPUT FILE (ASCII MODE)
  2201
  2202	402774'	377 00 0 00 000651'	CHROUT:	SOSG	OBHR+.BFCTR	;ROOM IN DA BUFFER?
  2203	402775'	254 00 0 00 403000'		 JRST	CHRBFO		;NO--DUMP A BUFFER
  2204	402776'	136 01 0 00 000650'	CHRO.1:	IDPB	T1,OBHR+.BFPTR	;STORE THE CHARACTER
  2205	402777'	263 17 0 00 000000 		POPJ	P,
  2206	403000'	260 17 0 00 403205'	CHRBFO:	CALL	XCTIO		;DUMP A BUFFER
  2207	403001'	057 03 0 00 000000 		 OUT	OUTC,		;...
  2208	403002'	254 04 0 00 000007 		 STOPX$			;***
  2209	403003'	254 00 0 00 402776'		JRST	CHRO.1		;GO STORE THE CHARACTER

LIBMAN -- LIBRARY FILE MANIPULATION PROGRAM %3(21)	MACRO %50A(441)-2 13:45 23-FEB-77 PAGE 47
LIBMAN	MAC	17-JAN-77 14:47		TTY OUTPUT OPEN/CLOSE ROUTINES

  2210					SUBTTL	TTY OUTPUT OPEN/CLOSE ROUTINES
  2211
  2212					;CALL HERE TO OPEN TTY IN BUFFERED OUTPUT ONLY
  2213
  2214	403004'	201 01 0 00 000000 	OPNTTO:	MOVEI	T1,.IOASC	;MODE
  2215	403005'	661 01 0 00 400000 		TXO	T1,UU.PHS	;PHYSICAL TTY PLEASE
  2216	403006'	202 01 0 00 000541'		MOVEM	T1,OPNBLK+.OPMOD;...
  2217	403007'	205 01 0 00 646471 		MOVSI	T1,'TTY'	;THE DEVICE
  2218	403010'	202 01 0 00 000542'		MOVEM	T1,OPNBLK+.OPDEV
  2219	403011'	205 01 0 00 000647'		MOVSI	T1,OBHR		;BUFFER HEADER
  2220	403012'	202 01 0 00 000543'		MOVEM	T1,OPNBLK+.OPBUF
  2221	403013'	050 03 0 00 000541'		OPEN	OUTC,OPNBLK	;OPEN THE TTY FOR OUTPUT
  2222	403014'	254 04 0 00 000010 		 STOPX$			;SHOULD NEVER GET HERE!
  2223	403015'	205 01 0 00 000006 		MOVSI	T1,6		;USE LOTS OF BUFFERS
  2224	403016'	200 02 0 00 403475'		MOVE	T2,[XWD OPNBLK,OBHR]
  2225	403017'	260 17 0 00 402713*		CALL	.ALCBF##	;ALLOCATE BUFFERS
  2226	403020'	067 03 0 00 000000 		OUTPUT	OUTC,		;DUMMY OUTPUT
  2227	403021'	263 17 0 00 000000 		POPJ	P,
  2228
  2229			402764'		CLSTTO=DSKOCL			;CAN USE SAME ROUTINE AS DISK

LIBMAN -- LIBRARY FILE MANIPULATION PROGRAM %3(21)	MACRO %50A(441)-2 13:45 23-FEB-77 PAGE 48
LIBMAN	MAC	17-JAN-77 14:47		OPEN I/O CHANNELS

  2230					SUBTTL	OPEN I/O CHANNELS
  2231					;OPENIO
  2232					;CALL:	MOVEI	T1,<FDB ADDR>
  2233					;	CALL	OPENIO
  2234					;	CAI	CHANNEL,BUFADR	;@ IF OUTPUT, (MODE)
  2235					;	*FILE NOT FOUND ON LOOKUP*	;ABORT IF OPEN OR ENTER FAILS
  2236					;	*ALL IS WELL*
  2237
  2238	403022'	504 01 0 17 000000 	OPENIO:	HRL	T1,0(P)		;REMEMBER CALLER
  2239	403023'	265 02 0 00 403050'		JSP	T2,$SAVE3	;PRESERVE REGISTERS
  2240	403024'	204 05 0 00 000001 		MOVS	P1,T1		;COPY ARGUMENTS
  2241	403025'	200 06 0 05 000000 		MOVE	P2,(P1)		;GET REST OF THEM
  2242	403026'	260 17 0 00 403064'		CALL	ZERLKP		;CLEAR LKPBLK
  2243	403027'	205 01 0 00 000032 		MOVSI	T1,.FXLEN	;SETUP FOR .STOPB
  2244	403030'	544 01 0 00 000005 		HLR	T1,P1		;...
  2245	403031'	201 02 0 00 000541'		MOVEI	T2,OPNBLK	;
  2246	403032'	200 03 0 00 403512'		MOVE	T3,[XWD .RBTIM+1,LKPBLK] ;
  2247	403033'	260 17 0 00 402644*		CALL	.STOPN##	;CONVERT TO OPEN/LOOKUP BLOCKS
  2248	403034'	254 00 0 00 403127'		 JRST	WLDERR		;NO WILDCARDING!
  2249	403035'	260 17 0 00 403070'		 CALL	FNDFIL		;LOOKUP/ENTER THE FILE
  2250	403036'	254 00 0 00 403124'		  JRST	OPENER		;CAN'T OPEN DEVICE
  2251	403037'	334 01 0 00 000547'		 SKIPA	T1,LKPBLK+.RBEXT ;CAN'T FIND/WRITE--GET CODE AND SKIP
  2252	403040'	254 00 0 00 403045'		JRST	$POPJ2		;OK--SKIP 2
  2253	403041'	607 06 0 00 000020 		TLNN	P2,ATSIGN	;IF WRITING
  2254	403042'	602 01 0 00 777777 		TRNE	T1,-1		;OR OTHER THAN FILE NOT FOUND
  2255	403043'	254 00 0 00 403132'		 JRST	LKENER		;GO BARF
  2256	403044'	263 17 0 00 000000 		POPJ	P,		;NO--FILE NOT FOUND ON LOOKUP--RETURN CPOPJ
  2257	403045'	350 00 0 17 000000 	$POPJ2:	AOS	(P)		;SKIP 2
  2258	403046'	350 00 0 17 000000 	$POPJ1:	AOS	(P)		;SKIP 1
  2259	403047'	263 17 0 00 000000 	$POPJ:	POPJ	P,		;SKIP 0
  2260
  2261					;$SAVE3 -- SAVE P1-3 WITH ALLOWANCE FOR DOUBLE SKIP RETURNS
  2262
  2263	403050'				$SAVE3:	SAVE$	<P1,P2,P3>	;SAVE P1-3 ON PDL
  2264	403053'	260 17 0 02 000000 		PUSHJ	P,(T2)		;CALL THE ROUTINE
  2265	403054'	254 00 0 00 403060'		JRST	$RET3		;NO SKIP BACK
  2266	403055'	334 00 0 00 000000 		SKIPA			;ONE SKIP BACK
  2267	403056'	350 00 0 17 777775 		AOS	-3(P)		;TWO SKIPS BACK
  2268	403057'	350 00 0 17 777775 		AOS	-3(P)		;AND ANOTHER
  2269	403060'				$RET3:	RESTR$	<P3,P2,P1>	;GET REGISTERS BACK
  2270	403063'	263 17 0 00 000000 		POPJ	P,		;SKIP ONCE, TWICE, OR NOT AT ALL
  2271
  2272					;CALL HERE TO ZERO LKPBLK
  2273
  2274	403064'	402 00 0 00 000544'	ZERLKP:	STORE	T1,LKPBLK,LKPBLK+.RBTIM,0
  2275	403065'	200 01 0 00 403746'
  2276	403066'	251 01 0 00 000601'
  2277	403067'	263 17 0 00 000000 		POPJ	P,		;THAT WAS EASY

LIBMAN -- LIBRARY FILE MANIPULATION PROGRAM %3(21)	MACRO %50A(441)-2 13:45 23-FEB-77 PAGE 49
LIBMAN	MAC	17-JAN-77 14:47		OPEN I/O CHANNELS

  2278					;FNDFIL -- DO OPEN-LOOKUP/ENTER ON FILE
  2279					;CALL:	OPNBLK/LKPBLK SETUP
  2280					;	MOVE	P2,<Z CHAN,@BHDR(MODE)> ;@ IF WRITING
  2281					;	CALL	FNDFIL
  2282					;	 *OPEN FAILED*
  2283					;	 *LOOKUP/ENTER FAILED*
  2284					;	*OK*
  2285					;ACS:T1,P3
  2286
  2287	403070'	201 01 0 00 000035 	FNDFIL:	MOVEI	T1,.RBTIM	;SETUP COUNT
  2288	403071'	202 01 0 00 000544'		MOVEM	T1,LKPBLK+.RBCNT
  2289	403072'	135 01 0 00 403747'		LDB	T1,[POINT 4,P2,17] ;GET MODE
  2290	403073'	202 01 0 00 000541'		MOVEM	T1,OPNBLK	;STORE IN OPEN BLOCK
  2291	403074'	550 01 0 00 000006 		HRRZ	T1,P2		;BUFFER HEADER ADDRESS
  2292	403075'	603 06 0 00 000020 		TLNE	P2,ATSIGN	;READ OR WRITE?
  2293	403076'	207 00 0 00 000001 		MOVSS	T1		;WRITING, POSITON FOR IT
  2294	403077'	202 01 0 00 000543'		MOVEM	T1,OPNBLK+.OPBUF;STORE
  2295	403100'	135 07 0 00 403750'		LDB	P3,[POINT 4,P2,12] ;GET I/O CHANNEL
  2296	403101'	242 07 0 00 000005 		LSH	P3,5		;POSITION
  2297	403102'	207 00 0 00 000007 		MOVSS	P3		;IN CHANNEL POSITION
  2298	403103'	200 01 0 00 403751'		MOVE	T1,[OPEN OPNBLK];FORM INSTR
  2299	403104'	434 01 0 00 000007 		OR	T1,P3		;FINISH
  2300	403105'	256 00 0 00 000001 		XCT	T1		;TRY TO OPEN DEVICE
  2301	403106'	263 17 0 00 000000 		 POPJ	P,		;CAN'T--QUIT NOW
  2302	403107'	200 01 0 00 000007 		MOVE	T1,P3		;REGET I/O CHANNEL
  2303	403110'	603 06 0 00 000020 		TLNE	P2,ATSIGN	;READ/WRITE?
  2304	403111'	665 01 0 00 077000 		 TLOA	T1,(ENTER)	;WRITE
  2305	403112'	661 01 0 00 076000 		  TLO	T1,(LOOKUP)	;READ
  2306	403113'	541 01 0 00 000544'		HRRI	T1,LKPBLK	;COMPLETE INSTR
  2307	403114'	256 00 0 00 000001 		XCT	T1		;FIND/WRITE THE FILE
  2308	403115'	254 00 0 00 403046'		 JRST	$POPJ1		;CAN'T--SKIP 1
  2309	403116'	254 00 0 00 403045'		JRST	$POPJ2		;ALL IS WELL--SKIP 2
  2310
  2311					;GETNBF -- GET VALUE OF /BUFFER
  2312					;CALL:	CALL	GETNBF
  2313					;	*T1=#BUFFERS,,0*
  2314
  2315	403117'	337 01 0 00 000655'	GETNBF:	SKIPG	T1,S.BUFR
  2316	403120'	201 01 0 00 000006 		 MOVEI	T1,DF$BUF	;NO--USE DEFAULT
  2317	403121'	202 01 0 00 000655'		MOVEM	T1,S.BUFR	;SET FOR LATER
  2318	403122'	205 01 0 01 000000 		MOVSI	T1,(T1)		;MOVE TO LH AND ZERO RH
  2319	403123'	263 17 0 00 000000 		POPJ	P,		;RETURN

LIBMAN -- LIBRARY FILE MANIPULATION PROGRAM %3(21)	MACRO %50A(441)-2 13:45 23-FEB-77 PAGE 51
LIBMAN	MAC	17-JAN-77 14:47		OPEN I/O CHANNELS

  2320					;OPENIO ERRORS
  2321
  2322	403124'	554 01 0 00 000005 	OPENER:	HLRZ	T1,P1		;COPY FDB ADDR
  2323	403125'	260 17 0 00 403234'		FATAL.	EF$FIL,COD,<CAN'T OPEN DEVICE, FILE >
  2324	403126'	300406	403756'
  2325
  2326	403127'	554 01 0 00 000005 	WLDERR:	HLRZ	T1,P1		;GET FDB
  2327	403130'	260 17 0 00 403234'		FATAL.	EF$FIL,WFI,<WILDCARD FILESPEC ILLEGAL, FILE >
  2328	403131'	300406	403765'
  2329
  2330	403132'	550 01 0 00 000547'	LKENER:	HRRZ	T1,LKPBLK+.RBEXT;GET FAIL CODE
  2331	403133'	260 17 0 00 403234'		ERROR.	EF$ERR!EF$OCT!EF$NCR,LER,<LOOKUP/ENTER ERROR(>
  2332	403134'	300042	403772'
  2333	403135'	201 01 0 00 403774'		STRNG$	<) FILE >
  2334	403136'	260 17 0 00 402427*
  2335	403137'	554 01 0 00 000005 		HLRZ	T1,P1
  2336	403140'	260 17 0 00 402627*		CALL	.TFBLK##	;TYPE SCAN BLOCK
  2337	403141'	260 17 0 00 402105*		CALL	.TCRLF##	;NEW LINE
  2338	403142'	254 00 0 00 403331'	X$$LER:	JRST	ERRFTL		;GO DIE
  2339
  2340					;.TPRIV -- TYPE PRIV WORD IN T1
  2341					;CALL:	MOVE	T1,9BIT PRIV WORD
  2342					;	CALL	.TPRIV
  2343
  2344
  2345	403143'	200 02 0 00 000001 	.TPRIV:	MOVE	T2,T1		;POSITION PROT
  2346	403144'	201 01 0 00 000074 		MOVEI	T1,"<"		;GET AN ANGLE BRACKET
  2347	403145'	260 17 0 00 402633*		CALL	.TCHAR##	;SEND IT
  2348	403146'	260 17 0 00 403151'		CALL	TPRIV0		;TYPE PROTECTION
  2349	403147'	201 01 0 00 000076 		MOVEI	T1,">"		;CLOSE PROTECTION
  2350	403150'	254 00 0 00 403145*		PJRST	.TCHAR##	;AND RETURN
  2351
  2352					;HERE WITH T2 CONTAINING PROT IN LOW ORDER 9 BITS TO TYPE
  2353
  2354	403151'	405 02 0 00 000777 	TPRIV0:	ANDI	T2,777		;TRIM TO PROT
  2355	403152'	241 02 0 00 777767 		ROT	T2,-^D9		;POSITION
  2356	403153'	201 03 0 00 000003 		MOVEI	T3,3		;SET TO TYPE 3 DIGITS
  2357	403154'	400 01 0 00 000000 	TPRVLP:	SETZ	T1,		;CLEAR JUNK
  2358	403155'	246 01 0 00 000003 		LSHC	T1,3		;GET AN OCTAL DIGIT
  2359	403156'	201 01 0 01 000060 		MOVEI	T1,"0"(T1)	;MAKE IT ASCII
  2360	403157'	260 17 0 00 403150*		CALL	.TCHAR##	;SEND THE CHARACTER
  2361	403160'	367 03 0 00 403154'		SOJG	T3,TPRVLP	;DO ALL 3
  2362	403161'	263 17 0 00 000000 		POPJ	P,		;DONE
  2363
  2364					;CLRUSE -- CLEAR USE BITS
  2365					;CALL:	HRRZ	T1,BHDR+.BFADR	;**THIS INSTR USED BY THIS ROUTINE
  2366					;	CALL	CLRUSE
  2367					;	 WAIT	CHAN,		;XCT'D FIRST
  2368					;	*USE BITS CLEARED*
  2369
  2370	403162'	256 00 1 17 000000 	CLRUSE:	XCT	@0(P)		;WAIT FOR IDLENESS
  2371	403163'	205 03 0 00 400000 		MOVSI	T3,(BF.IOU)	;THE BIT TO CLEAR
  2372	403164'	550 02 0 00 000001 		HRRZ	T2,T1		;COPY ADDR
  2373	403165'	412 03 0 02 000000 	CLRU.1:	ANDCAM	T3,0(T2)	;CLEAR ONE
  2374	403166'	550 02 0 02 000000 		HRRZ	T2,(T2)		;CHAIN TO NEXT

LIBMAN -- LIBRARY FILE MANIPULATION PROGRAM %3(21)	MACRO %50A(441)-2 13:45 23-FEB-77 PAGE 51-1
LIBMAN	MAC	17-JAN-77 14:47		OPEN I/O CHANNELS

  2375	403167'	312 01 0 00 000002 		CAME	T1,T2		;THIS IS DONENESS
  2376	403170'	254 00 0 00 403165'		JRST	CLRU.1		;NOT YET
  2377	403171'	205 03 0 00 400000 		MOVSI	T3,(BF.VBR)	;MAKE IT A VIRGIN RING
  2378	403172'	200 02 0 17 000000 		MOVE	T2,(P)		;GET RETURN
  2379	403173'	436 03 1 02 777776 		IORM	T3,@-2(T2)	;SET VIRGIN BIT INTO BUFFER HEADER
  2380	403174'	254 00 0 00 403046'		JRST	$POPJ1		;SKIP INSTR ON WAY BACK
  2381
  2382					;HERE WITH T1 PTS TO OPEN BLOCK
  2383					;T2 PTS AT LOOKUP BLOCK
  2384					;WILL TYPE FILESPEC/VERSION/PROT
  2385
  2386	403175'	261 17 0 00 000002 	$TLBVP:	PUSH	P,T2		;SAVE LOOKUP BLOCK ADDRESS
  2387	403176'	260 17 0 00 401522*		CALL	.TOLEB##	;TYPE THE FILE SPEC
  2388	403177'	200 01 0 17 000000 		MOVE	T1,(P)		;GET LOOKUP BLOCK ADDRESS
  2389	403200'	135 01 0 00 403776'		LDB	T1,[POINTR(.RBPRV(T1),RB.PRV)] ;GET PRIV BITS
  2390	403201'	260 17 0 00 402417'		CALL	$TPROT		;TYPE /PROTECT:P
  2391	403202'	262 17 0 00 000001 		POP	P,T1		;GET LOOKUP BLOCK ADDRESS
  2392	403203'	200 01 0 01 000006 		MOVE	T1,.RBVER(T1)	;GET THE VERSION
  2393	403204'	254 00 0 00 402424'		PJRST	$TVRSN		;TYPE AND RETURN

LIBMAN -- LIBRARY FILE MANIPULATION PROGRAM %3(21)	MACRO %50A(441)-2 13:45 23-FEB-77 PAGE 53
LIBMAN	MAC	17-JAN-77 14:47		XCTIO EXECUTES IN/OUT UUO WITH ERROR HANDLING

  2394					SUBTTL	XCTIO EXECUTES IN/OUT UUO WITH ERROR HANDLING
  2395
  2396					;XCTIO
  2397					;CALL:	CALL	XCTIO
  2398					;	<INSTR TO XCT>	;IN/OUT UUO
  2399					;	*EOF/EOT RETURN*
  2400					;	*NORMAL RETURN*
  2401
  2402	403205'	256 00 1 17 000000 	XCTIO:	XCT	@0(P)		;DO THE INSTR
  2403	403206'	254 00 0 00 403045'		 JRST	$POPJ2		;OK--SKIP 2 AND RETURN
  2404						SAVE$	T1		;OOPS--SAVE T1
  2405	403210'	200 01 1 17 777777 		MOVE	T1,@-1(P)	;GET INSTR WE FAILED ON
  2406	403211'	350 00 0 17 777777 		AOS	-1(P)		;SKIP INSTR ON WAY BACK
  2407	403212'	404 01 0 00 403777'		AND	T1,[17B12]	;ERROR--GET THE CHANNEL
  2408	403213'	434 01 0 00 404000'		OR	T1,[GETSTS T2]	;GET ERRROR BITS
  2409	403214'	256 00 0 00 000001 		XCT	T1
  2410	403215'	602 02 0 00 022000 		TRNE	T2,IO.EOF!IO.EOT;END OF SOMETHING?
  2411	403216'	254 00 0 00 403232'		JRST	TPOPJ		;YES
  2412	403217'	250 01 0 00 000002 		EXCH	T1,T2		;NO--GET BITS IN RIGHT PLACE, SAVE I/O INSTR
  2413	403220'	540 02 0 00 000001 		HRR	T2,T1		;PUT BITS IN THE INSTR
  2414						SAVE$	T2		;SAVE I/O INSTR A SEC
  2415	403222'	260 17 0 00 403234'		WARN.	EF$OCT,IOE,<I/O ERROR - STATUS=>
  2416	403223'	300202	404005'
  2417						RESTR$	T1		;GET INSTR BACK
  2418	403225'	620 01 0 00 740000 		TRZ	T1,IO.ERR	;CLEAR ERROR BITS
  2419	403226'	621 01 0 00 002000 		TLZ	T1,002000	;GETSTS BECOMES SETSTS
  2420	403227'	256 00 0 00 000001 		XCT	T1
  2421	403230'				TPOPJ1:	RESTR$	T1		;GET T1 AGAIN
  2422	403231'	354 00 0 17 000000 		AOSA	(P)
  2423	403232'				TPOPJ:	RESTR$	T1
  2424	403233'	263 17 0 00 000000 		POPJ	P,

LIBMAN -- LIBRARY FILE MANIPULATION PROGRAM %3(21)	MACRO %50A(441)-2 13:45 23-FEB-77 PAGE 54
LIBMAN	MAC	17-JAN-77 14:47		ERROR HANDLER

  2425					SUBTTL	ERROR HANDLER
  2426
  2427					;EHNDLR -- HANDLE ALL ERRORS
  2428					;THE ONLY CALL IS THRU THE ERR$ MACRO
  2429
  2430	403234'	260 17 0 00 403337'	EHNDLR:	CALL	SAVACS		;SAVE THE ACS
  2431	403235'	200 05 1 17 000000 		MOVE	P1,@0(P)	;GET FLAGS AND ADDRESSES
  2432	403236'	336 00 1 00 401565*		SKIPN	@.TYOCH##	;IS SCAN TTCALLING?
  2433						 JRST	[SETZM	ERRTYX	;YES--CLEAR FLAG
  2434	403237'	254 00 0 00 404006'			JRST	EHND.0]	;AND SKIP ON
  2435	403240'	400 01 0 00 000000 		SETZ	T1,		;NO--SO MAKE IT
  2436	403241'	260 17 0 00 403236*		CALL	.TYOCH##	;TELL SCAN
  2437	403242'	202 01 0 00 000643'		MOVEM	T1,ERRTYX	;REMEMBER/SET FLAG
  2438	403243'	201 01 0 00 000077 	EHND.0:	MOVEI	T1,"?"		;ASSUME AN ERROR
  2439	403244'	603 05 0 00 000200 		TLNE	P1,EF$WRN	;CHECK WARNING
  2440	403245'	201 01 0 00 000045 		MOVEI	T1,"%"		;YES
  2441	403246'	603 05 0 00 000100 		TLNE	P1,EF$INF	;IF BOTH OFF NOW THEN INFO
  2442	403247'	201 01 0 00 000133 		MOVEI	T1,"["		;GOOD THING WE CHECKED
  2443	403250'	260 17 0 00 403157*		CALL	.TCHAR##	;OUTPUT THE START OF MESSAGE
  2444	403251'	205 01 0 00 545142 		MOVSI	T1,MY$PFX	;SET UP MY PREFIX
  2445	403252'	544 01 0 05 000000 		HLR	T1,(P1)		;GET MESSAGE PREFIX
  2446	403253'	260 17 0 00 402114*		CALL	.TSIXN##	;OUTPUT THE PREFIXES
  2447	403254'	260 17 0 00 000000*		CALL	.VERBO##	;GET MESSAGE BITS
  2448	403255'	606 01 0 00 000002 		TXNN	T1,JWW.FL	;SEE IF FIRST LINE
  2449	403256'	254 00 0 00 403306'		 JRST	EHNDSH		;NO--FINISH SHORTLY
  2450	403257'	260 17 0 00 401523*		CALL	.TSPAC##	;AND A SPACE
  2451	403260'	550 01 0 05 000000 		HRRZ	T1,(P1)		;GET STRING ADDRESS
  2452	403261'	260 17 0 00 403136*		CALL	.TSTRG##	;SEND IT
  2453	403262'	200 01 0 00 000316'		MOVE	T1,SAVAC+T1	;GET ORIGINAL T1 IN CASE TYPEOUT DESIRED
  2454	403263'	200 02 0 00 000317'		MOVE	T2,SAVAC+T2	;AND ORIGINAL T2 IN CASE .TOLEB REQUESTED
  2455	403264'	135 03 0 00 404010'		LDB	T3,[POINT 5,P1,17] ;GET TYPED OUT DESIRED
  2456	403265'	303 03 0 00 000007 		CAILE	T3,EF$MAX	;CHECK LEGAL
  2457	403266'	201 03 0 00 000000 		 MOVEI	T3,0		;NOOOP
  2458	403267'	260 17 1 03 403321'		CALL	@ERRTAB(T3)	;CALL THE ROUTINE
  2459	403270'	603 05 0 00 000040 		TLNE	P1,EF$NCR	;IF NO CRLF THEN DON'T CLOSE INFO
  2460	403271'	254 00 0 00 403277'		 JRST	EHND.1		;NO--DON'T CHECK
  2461	403272'	201 01 0 00 000135 		MOVEI	T1,"]"		;PREPARE TO CLOSE INFO
  2462	403273'	603 05 0 00 000100 		TLNE	P1,EF$INF	;CHECK FOR INFO
  2463	403274'	260 17 0 00 403250*		CALL	.TCHAR##	;SEND INFO CLOSE
  2464	403275'	607 05 0 00 000040 		TLNN	P1,EF$NCR	;NO CARRIAGE RETURN?
  2465	403276'	260 17 0 00 403141*		CALL	.TCRLF##	;YES--SEND ONE
  2466	403277'	336 01 0 00 000643'	EHND.1:	SKIPN	T1,ERRTYX	;DID WE RESET SCAN?
  2467	403300'	254 00 0 00 403303'		 JRST	EHND.2		;NO
  2468	403301'	260 17 0 00 403241*		CALL	.TYOCH##	;AND RESTORE IT
  2469	403302'	402 00 0 00 000643'		SETZM	ERRTYX		;CLEAR FLAG
  2470	403303'	603 05 0 00 000400 	EHND.2:	TLNE	P1,EF$FTL	;NOW CHECK FATAL
  2471	403304'	254 00 0 00 403331'		 JRST	ERRFTL		;YES--GO DIE
  2472	403305'	254 00 0 00 403315'		PJRST	RESACS		;RESTORE ACS AND RETURN
  2473
  2474					;HERE IF /MESSAGE:PREFIX ONLY
  2475
  2476	403306'	603 05 0 00 000400 	EHNDSH:	TLNE	P1,EF$FTL	;IS THIS FATAL?
  2477	403307'	254 00 0 00 403331'		JRST	ERRFTL		;YES--GO DIE
  2478	403310'	260 17 0 00 403276*		CALL	.TCRLF##	;NEW LINE
  2479	403311'	607 05 0 00 000040 		TLNN	P1,EF$NCR	;SEE IF /NOCRLF FROM ERROR MACRO

LIBMAN -- LIBRARY FILE MANIPULATION PROGRAM %3(21)	MACRO %50A(441)-2 13:45 23-FEB-77 PAGE 54-1
LIBMAN	MAC	17-JAN-77 14:47		ERROR HANDLER

  2480	403312'	254 00 0 00 403315'		 JRST	RESACS		;NO--JUST GO RETURN
  2481	403313'	200 01 0 05 000001 		MOVE	T1,1(P1)	;YES--GET X$$PFX ADDRESS
  2482	403314'	542 01 0 17 000000 		HRRM	T1,(P)		;SET FOR RETURN TO THERE

LIBMAN -- LIBRARY FILE MANIPULATION PROGRAM %3(21)	MACRO %50A(441)-2 13:45 23-FEB-77 PAGE 55
LIBMAN	MAC	17-JAN-77 14:47		ERROR HANDLER

  2483					;RESACS -- RESTORE ALL ACS FROM SAVAC AREA
  2484					;	CALL	RESACS
  2485					;	*ACS RESTORED FROM SAVAC*
  2486
  2487	403315'	202 17 0 00 000334'	RESACS:	MOVEM	17,SAVAC+17	;SAVE 17 TO RESTORE INTO IT
  2488	403316'	205 17 0 00 000315'		MOVSI	17,SAVAC
  2489	403317'	251 17 0 00 000017 		BLT	17,17		;REGISTERS ARE RESTORED
  2490	403320'	263 17 0 00 000000 		POPJ	P,		;RETURN
  2491
  2492	403321'	000000	000000*		ERRTAB:	.POPJ##			;CODE 0 -- NO ACTION
  2493	403322'	000000	401420*			.TDECW##		;CODE 1 -- TYPE T1 IN DECIMAL
  2494	403323'	000000	000000*			.TOCTW##		;CODE 2 -- TYPE T1 IN OCTAL
  2495	403324'	000000	403253*			.TSIXN##		;CODE 3 -- TYPE T1 IN SIXBIT
  2496	403325'	000000	000000*			.TPPNW##		;CODE 4 -- TYPE T1 AS PPN
  2497	403326'	000000	403261*			.TSTRG##		;CODE 5 -- T1 POINTS TO ASCIZ STRING
  2498	403327'	000000	403140*			.TFBLK##		;CODE 6 -- T1 POINTS AT FDB
  2499	403330'	000000	403176*			.TOLEB##		;CODE 7 -- T1 POINTS AT OPEN BLOCK
  2500									;	-- T2 POINTS AT LOOKUP BLOCK
  2501
  2502					;HERE TO DIE--
  2503
  2504	403331'	260 17 0 00 000000*	ERRFTL:	CALL	.CLRBF##	;EAT ANY TYPEAHEAD OR WHATEVER
  2505						SAVE$	.JBFF		;SAVE JBFF OVER RESET
  2506	403333'	047 00 0 00 000000 		RESET			;KILL ALL FILES
  2507						RESTR$	.JBFF		;GET JOBFF BACK
  2508	403335'	200 17 0 00 400016'		MOVE	P,INIPDP	;RESET PDL
  2509	403336'	254 00 0 00 000000*		PJRST	.FMSGE##	;GO FINISH UP
  2510
  2511					;SAVAC -- SAVE ALL ACS
  2512					;CALL -- PUSHJ P,SAVACS
  2513					;	*ACS SAVED IN SAVAC*	BEWARE!!
  2514
  2515	403337'	202 17 0 00 000334'	SAVACS:	MOVEM	17,SAVAC+17	;SAVE ONE
  2516	403340'	201 17 0 00 000315'		MOVEI	17,SAVAC
  2517	403341'	251 17 0 00 000333'		BLT	17,SAVAC+16
  2518	403342'	200 17 0 00 000334'		MOVE	17,SAVAC+17
  2519	403343'	263 17 0 00 000000 		POPJ	P,		;ACS ARE SAVED
  2520
  2521	403344'	260 17 0 00 403234'	E$$NUC:	FATAL.	0,NUC,<NO 'USE' OR 'CREATE' COMMAND>
  2522	403345'	300400	404017'
  2523
  2524					;.TDOT -- TYPE A DOT
  2525
  2526	403346'	201 01 0 00 000056 	.TDOT:	MOVEI	T1,"."		;GET ONE
  2527	403347'	254 00 0 00 403274*		PJRST	.TCHAR##	;AND TYPE IT

LIBMAN -- LIBRARY FILE MANIPULATION PROGRAM %3(21)	MACRO %50A(441)-2 13:45 23-FEB-77 PAGE 56
LIBMAN	MAC	17-JAN-77 14:47		STORAGE

  2528					SUBTTL	STORAGE
  2529
  2530	000000'					RELOC	0		;STORAGE ALL IN LOW SEGMENT
  2531
  2532					;STORAGE THAT REMAINS BETWEEN RUNS
  2533
  2534	000000'				U (ISCNVL)		;VALUE FROM .ISCAN
  2535	000001'				U (TLDVER)		;-1 WHEN TYPED VERSION TO TTY
  2536	000002'				U (OFFSET)		;STARTING OFFSET
  2537	000003'				U (FLTMPC)		;FLAG THAT WE HAVE TRIED TO READ NNNLRL.TMP
  2538
  2539			000004'		FW$ZER==.	;FIRST WORD ZEROED
  2540	000004'				U (CCLNAM)		;NNNLIB
  2541	000005'				U (PDLIST,LN$PDL)	;PUSHDOWN LIST
  2542	000315'				U (SAVAC,20)		;SAVE ACS HERE
  2543	000335'				U (DIRPTR)		;PTR TO DIR BLOCKS
  2544	000336'				U (LSTPTR)		;PTR TO LST BLOCKS
  2545	000337'				U (OUTFDB)		;PTR TO FDB FOR OUTPUT SPEC
  2546	000340'				U (LIBFDB)		;PTR TO LIB FDB
  2547	000341'				U (DIRECT,LN$DRB)	;INTERMEDIATE DIRECT BLOCK
  2548	000441'				U (WLDFIR)		;PTR TO FDB FOR .LKWLD
  2549	000442'				U (WLDPTR)		;.LKWLD STORES CURRENT FDB HERE
  2550	000443'				U (FILCNT)		;COUNT OF FILES PROCESSED
  2551	000444'				U (NOFILR)		;COUNT OF FILES REJECTED FOR ONE REASON OR ANOTHER
  2552	000445'				U (IFDBAD)		;ADDR OF INPUT FDB
  2553	000446'				U (OFDB,.FXLEN)		;OUTPUT FDB FOR .SCWLD
  2554						;**DO NOT SEPARATE
  2555	000500'				U (DSKOPN,3)		;OPEN BLOCK FOR DISK
  2556			000500'			DSKBGN=DSKOPN	;FOR A BLT
  2557	000503'				U (DSKLKP,.RBTIM+1)	;DISK LOOKUP BLOCK
  2558	000541'				U (OPNBLK,3)		;OPEN BLOCK
  2559			000541'			IOXBGN=OPNBLK	;FOR A BLT
  2560	000544'				U (LKPBLK,.RBTIM+1)	;LOOKUP/ENTER BLOCK
  2561			000601'			IOXEND=.-1	;END OF BLT
  2562	000602'				U (TMPOPN,3)		;TEMP OPEN BLOCK
  2563	000605'				U (TMPLKP,.RBTIM+1)	;TEMP LOOKUP/ENTER BLOCK
  2564			000642'			TMPXEN==.-1	;END OF BLT FOR TEMP BLOCK
  2565						;**END DO NOT SEPARATE
  2566	000643'				U (ERRTYX)		;FLAG FOR EHNDLR
  2567	000644'				U (IBHR,3)		;INPUT BUFFER HEADER
  2568	000647'				U (OBHR,3)		;OUTPUT BUFFER HEADER
  2569	000652'				U (LBHR,3)		;LIBRARY BUFFER HEADER
  2570			000655'		SCN$FZ==.	;FIRST WORD ZEROED AT CLRANS
  2571			000654'		SCN$LZ==.-1	;LAST WORD ZEROED AT CLRANS
  2572			000655'		SCN$FO==.	;FIRST WORD MINUS ONNED AT CLRANS
  2573	000655'				U (S.BUFR)		;/BUFFER:N ARG
  2574	000656'				U (S.DSUP)		;/DSUPERSEDE ARG
  2575	000657'				U (S.LSUP)		;/LSUPERSEDE ARG
  2576	000660'				U (S.SUPR)		;/SUPERSEDE ARG
  2577	000661'				U (S.REML)		;/REMEMBER ARG
  2578			000661'		SCN$LO==.-1	;LAST WORD ONNED AT CLRANS
  2579			000661'		LW$ZER==.-1	;LAST WORD ZEROED AT STARTUP
  2580	403350'					RELOC			;LITERALS GO IN HIGHSEGMENT
  2581						XLIST			;FORCE OUT LITERALS
  2582						LIST

LIBMAN -- LIBRARY FILE MANIPULATION PROGRAM %3(21)	MACRO %50A(441)-2 13:45 23-FEB-77 PAGE 56-1
LIBMAN	MAC	17-JAN-77 14:47		STORAGE

  2583			400000'		LIBEND::END	LIBMAN

NO ERRORS DETECTED

HI-SEG. BREAK IS 404037
PROGRAM BREAK IS 000662
CPU TIME USED 01:02.511

14K CORE USED

LIBMAN -- LIBRARY FILE MANIPULATION PROGRAM %3(21)	MACRO %50A(441)-2 13:45 23-FEB-77 PAGE S-1
LIBMAN	MAC	17-JAN-77 14:47		SYMBOL TABLE

AD.BUF		000006	SPD	DIRECT		000341'		EF$NCR		000040	SPD	IFND.1		402441'		
AD2D.0		402474'		DIRPTR		000335'		EF$OCT		000002	SPD	IFND.2		402450'		
AD2D.1		402500'		DLRIFL		401162'		EF$PPN		000004	SPD	IFNDIR		402432'		
AD2D.2		402504'		DLRP.2		400764'		EF$SIX		000003	SPD	IFNLST		402434'		
AD2D.3		402506'		DLRP.4		401014'		EF$STR		000005	SPD	ILBCLS		402770'		
AD2D.4		402517'		DLRP.6		401076'		EF$WRN		000200	SPD	ILIB		000004	SPD	
AD2DIR		402470'		DLRP.7		401111'		EHND.0		403243'		IN	056000	000000		
AD2LST		402471'		DLRP.8		401126'		EHND.1		403277'		INIPDP		400016'		
ADDL.0		400250'		DLRP.9		401130'		EHND.2		403303'		INPC		000002	SPD	
ADDL.5		400306'		DLRP10		401134'		EHNDLR		403234'		INPUT	066000	000000		
ADDL.A		400330'		DLRP8A		401125'		EHNDSH		403306'		IO.EOF		020000	SPD	
ADDL.L		400247'		DLRPD0		401152'		ENTER	077000	000000		IO.EOT		002000	SPD	
ADDL.X		400370'		DLRPDN		401151'		ERRFTL		403331'		IO.ERR		740000	SPD	
ATSIGN		000020	SPD	DLRPNL		401166'		ERRTAB		403321'		IOXBGN		000541'		
B		000011		DOCOPY		400372'		ERRTYX		000643'		IOXEND		000601'		
BF.IOU	400000	000000	SPD	DOPRMP		400111'		EXIT	047000	000012		ISCNBL		400073'		
BF.VBR	400000	000000	SPD	DSKBGN		000500'		F		000000		ISCNVL		000000'		
C		000010	SPD	DSKICL		402760'		F.NAM		402547'	EXT	JUMPNU	325000	000000		
CALL	260740	000000		DSKIO0		402736'		FILCNT		000443'		JUMPU	321000	000000		
CCLNAM		000004'		DSKIOF		402754'		FILD.0		401545'		JWW.FL		000002	SPD	
CHKACC	047000	000100		DSKLKP		000503'		FILD.1		401554'		L		000012		
CHRBFO		403000'		DSKOCL		402764'		FILD.2		401556'		LBHR		000652'		
CHRO.1		402776'		DSKOPI		402734'		FL$CRE		200000	SPD	LDIR.0		401301'		
CHROUT		402774'		DSKOPN		000500'		FL$LIB		400000	SPD	LDIR.1		401330'		
CKOFDB		402455'		DV.DSK	200000	000000	SPD	FL$OFG		010000	SPD	LDIR.9		401376'		
CLOSE	070000	000000		DV.M13		004000	SPD	FL$ONE		020000	SPD	LDIR.X		401377'		
CLRU.1		403165'		DVER.2		401452'		FL$RDO		040000	SPD	LDIR0A		401321'		
CLRUSE		403162'		DVER.4		401453'		FL$TYP		100000	SPD	LIBC		000001	SPD	
CLSTTO		402764'		DVER.5		401500'		FLTMPC		000003'		LIBEDT		000021	SPD	
CMDLST		400116'		DVER.6		401502'		FNDFIL		403070'		LIBEND		404037'	INT	
CORE	047000	000011		DVRLKE		401513'		FS.LRG	200000	000000	SPD	LIBFDB		000340'		
CPTF.3		400465'		DVRNME		401516'		FS.NOS	010000	000000	SPD	LIBM.0		400034'		
CPTF.4		400602'		DVROPE		401510'		FS.NUE	100000	000000	SPD	LIBM.1		400067'		
CPTF.5		400611'		E$$BDL		402231'		FT$DDT		000000	SPD	LIBM0A		400065'		
CPTF.6		400617'		E$$CWL		402173'		FW$RNL		401617'		LIBMAN		400000'		
CPTF.8		400626'		E$$CWT		401640'		FW$ZER		000004'	SPD	LIBMIN		000000	SPD	
CPTF.X		400660'		E$$IFL		402304'		FX.NUL	200000	000000	SPD	LIBUPE		402703'		
CPTFX2		400675'		E$$IRO		400411'		FX.PRO		000777	SPD	LIBVER		000003	SPD	
CPTLER		400713'		E$$LDE		402367'		GDIR.0		402256'		LIBWHO		000000	SPD	
CPTOLD		400730'		E$$LIE		400420'		GDIR.1		402265'		LKENER		403132'		
CPTYCS		400563'		E$$NFS		402133'		GDIR.5		402302'		LKPBLK		000544'		
CPTYEN		400570'		E$$NUC		403344'		GDIR.6		402311'		LKWLDB		400314'		
CPYIFL		400704'		E$$RFE		402107'		GDIR.8		402320'		LN$DRB		000100	SPD	
CPYN13		400677'		E.DFL		401513'	EXT	GDIR.9		402326'		LN$PDL		000310	SPD	
CPYTYF		400454'		E.DFO		401510'	EXT	GETNBF		403117'		LN$RNL		000021	SPD	
CRECHK		402221'		E.LKEN		402757'	EXT	GETSTS	062000	000000		LNKATN		402563'		
CRUCLN		402233'		E.SCL		400571'	EXT	GIVIOL		402610'		LOOKUP	076000	000000		
CTYP.0		400422'		E.SCO		400527'	EXT	GIVL.0		402600'		LSTPTR		000336'		
CTYP.X		400450'		EF$DEC		000001	SPD	GIVLST		402575'		LW$ZER		000661'	SPD	
DCPY.1		400401'		EF$ERR		000000	SPD	GLST.0		402525'		MAKCCL		401651'		
DEVCHR	047000	000004		EF$FIL		000006	SPD	GLST.1		402527'		MKLS.0		402352'		
DF$BUF		000006	SPD	EF$FTL		000400	SPD	HALT	254200	000000		MKLS.1		402354'		
DF$EXT		545142	SPD	EF$INF		000100	SPD	IBHR		000644'		MKLS.3		402372'		
DIRD.2		401427'		EF$LEB		000007	SPD	IFDBAD		000445'		MKLS.F		402375'		
DIRDUN		401405'		EF$MAX		000007	SPD	IFND.0		402437'		MLSF.0		402402'		

LIBMAN -- LIBRARY FILE MANIPULATION PROGRAM %3(21)	MACRO %50A(441)-2 13:45 23-FEB-77 PAGE S-2
LIBMAN	MAC	17-JAN-77 14:47		SYMBOL TABLE

MRKEND		402573'		RESET	047000	000000		VSWTL		000022	SPD	%%UUOS	101100	000225	SIN	
MX$DIR		000040	SPD	RESTRT		400034'		VSWTM		400166'		.ACWRI		000002	SPD	
MX.		000000	SPD	RNLRUN		000005	SPD	VSWTN		400122'		.ALCBF		403017'	EXT	
MX.BUF		000144	SPD	RUN	047000	000035		VSWTP		400144'		.ALCOR		402620'	EXT	
MY$NAM	545142	554156	SPD	RUNFLG		000020	SPD	WAIT	047000	000010		.BFADR		000000	SPD	
MY$PFX		545142	SIN	RUNS.0		401645'		WLDERR		403127'		.BFCTR		000002	SPD	
N		000007	SPD	RUNSTR		401644'		WLDFIR		000441'		.BFPTR		000001	SPD	
N$CMDS		000001	SPD	S.BUFR		000655'		WLDPTR		000442'		.CHKTM		400332'	EXT	
NOFILR		000444'		S.DSUP		000656'		WRNFNC		400717'		.CLRBF		403331'	EXT	
NOOP		300000	SPD	S.LSUP		000657'		WRNOFM		400322'		.DECOR		402611'	EXT	
OBHR		000647'		S.REML		000661'		X$$FAL		400305'		.FILIN		402546'	EXT	
OFDB		000446'		S.SUPR		000660'		X$$FNC		400727'		.FMSGE		403336'	EXT	
OFFSET		000002'		SAVAC		000315'		X$$FNR		401074'		.FREBF		402726'	EXT	
OLBCL2		402722'		SAVACS		403337'		X$$FRE		401530'		.FXDEV		000000	SPD	
OLBCLS		402714'		SAVF.0		402201'		X$$LER		403142'		.FXEXT		000003	SPD	
OLIBIN		402332'		SAVF.X		402217'		X$$NFM		403047'		.FXFLM		000027	SPD	
OLIBUP		402635'		SAVFDU		402177'		X$$RFE		402117'		.FXLEN		000032	SPD	
ONECDB		401725'		SCN$FO		000655'	SPD	X$$RLE		403047'		.FXMOD		000004	SPD	
ONEO.X		401722'		SCN$FZ		000655'	SPD	XCTIO		403205'		.FXNAM		000001	SPD	
OPEN	050000	000000		SCN$LO		000661'	SPD	ZAPDIR		402237'		.FXNMM		000002	SPD	
OPENER		403124'		SCN$LZ		000654'	SPD	ZERLKP		403064'		.FXVER		000031	SPD	
OPENIO		403022'		SCWABL		400706'		ZZ		000007	SPD	.GTSPC		402556'	EXT	
OPNBLK		000541'		SETDFD		401434'		$ADD		400232'		.IOASC		000000	SPD	
OPNTTO		403004'		SETSTS	060000	000000		$COPY		400413'		.IOBIN		000014	SPD	
OUT	057000	000000		STATZ	063000	000000		$CREAT		402123'		.IODMP		000017	SPD	
OUTC		000003	SPD	STOP$N		000011	SPD	$DELET		400740'		.ISCAN		400021'	EXT	
OUTFDB		000337'		SUP.L		000003	SPD	$DIREC		401251'		.JBFF		000121		
OUTPUT	067000	000000		SUP.T		400117'		$DVERS		401442'		.JBVER		000137		
P		000017		SUPALW		000001	SPD	$EATLN		402605'		.LKERR		401526'	EXT	
P1		000005		SUPDEF		000002	SPD	$FILDI		401532'		.LKWLD		401455'	EXT	
P2		000006		SUPNEV		000003	SPD	$GTDIR		402243'		.MKPJN		401654'	EXT	
P3		000007		SUPOLD		000002	SPD	$GTFDB		402617'		.MONRT		400071'	EXT	
P4		000010		T1		000001		$GTIOL		402534'		.MYPPN		402166'	EXT	
PD.		000000	SPD	T2		000002		$GTLST		402523'		.OPBUF		000002	SPD	
PD.BUF		000006	SPD	T3		000003		$GTSPC		402546'		.OPDEV		000001	SPD	
PDLIST		000005'		T4		000004		$MKLST		402344'		.OPMOD		000000	SPD	
PJOB	047000	000030		TLDVER		000001'		$ONEOU		401661'		.POPJ		403321'	EXT	
PJRST	254000	000000		TMPC		000005	SPD	$POPJ		403047'		.RBALC		000011	SPD	
PJUMPL	321000	000000		TMPLKP		000605'		$POPJ1		403046'		.RBCNT		000000	SPD	
PJUMPN	326000	000000		TMPOPN		000602'		$POPJ2		403045'		.RBEXT		000003	SPD	
PRMPTM		400115'		TMPXEN		000642'	SPD	$READ		402121'		.RBNAM		000002	SPD	
RB.CRD		007777	SPD	TPOPJ		403232'		$RENAM		401730'		.RBNCA		000014	SPD	
RB.CRX		700000	SPD	TPOPJ1		403230'		$REPLA		400741'		.RBPPN		000001	SPD	
RB.MOD	000740	000000	SPD	TPRIV0		403151'		$RET3		403060'		.RBPRV		000004	SPD	
RB.PRV	777000	000000	SPD	TPRVLP		403154'		$SAVE3		403050'		.RBSIZ		000005	SPD	
RDLS.2		401221'		TSTBHR		402723'		$TLBVP		403175'		.RBSPL		000007	SPD	
RDLSLE		401235'		TSUPSW		400733'		$TPROT		402417'		.RBTIM		000035	SPD	
RDLSOE		401230'		TYIO.2		402626'		$TVRSN		402424'		.RBVER		000006	SPD	
RDLSUB		401167'		USE.0		402126'		$TYIOL		402623'		.RECOR		400017'	EXT	
RELEAS	071000	000000		USE.1		402155'		$TYPE		400414'		.SAVE1		402635'	EXT	
RENAME	055000	000000		USETI	074000	000000		$USE		402124'		.SAVE2		402565'	EXT	
RENPRO		402030'		USETO	075000	000000		%%JOBD	043000	000443	SIN	.SAVE3		402247'	EXT	
RENSUB		401762'		UU.PHS	400000	000000	SPD	%%LIBM	000300	000021	SIN	.SAVE4		402345'	EXT	
RENVER		402040'		VSCNBL		400101'		%%MACT	000100	000024	SIN	.SCWLD		400514'	EXT	
RESACS		403315'		VSWTD		400210'		%%SCNM	000700	000203	SIN	.STOPN		403033'	EXT	

LIBMAN -- LIBRARY FILE MANIPULATION PROGRAM %3(21)	MACRO %50A(441)-2 13:45 23-FEB-77 PAGE S-3
LIBMAN	MAC	17-JAN-77 14:47		SYMBOL TABLE

.SWDEC		400167'	EXT	
.TCHAR		403347'	EXT	
.TCRLF		403310'	EXT	
.TDATE		401370'	EXT	
.TDATN		401315'	EXT	
.TDECW		403322'	EXT	
.TDOT		403346'		
.TFBLK		403327'	EXT	
.TFCHR		401552'	EXT	
.TIAUC		402606'	EXT	
.TOCTW		403323'	EXT	
.TOLEB		403330'	EXT	
.TPPNW		403325'	EXT	
.TPRIV		403143'		
.TSIXN		403324'	EXT	
.TSPAC		403257'	EXT	
.TSTRG		403326'	EXT	
.TTABC		401373'	EXT	
.TTIMN		401320'	EXT	
.TVERW		402431'	EXT	
.TYOCH		403301'	EXT	
.VERBO		403254'	EXT	
.VSCAN		400070'	EXT	
AD.BUF	   410
AD2D.0	  1919#	  1928
AD2D.1	  1923#	  1926
AD2D.2	  1920	  1927#
AD2D.3	  1918	  1932#
AD2D.4	  1924	  1943#
AD2DIR	   591	  1915#
AD2LST	  1073	  1916#
ADDL.0	   507#	   518	   525	   528	   537	   598	   601
ADDL.5	   510	   541#
ADDL.A	   520	   564#
ADDL.L	   506#	   542
ADDL.X	   565	   567	   600#
ATSIGN	   164#	  2253	  2292	  2303
B	   124#	   124	   573	   590	   619	   676	   677	   765	   802	   910	   979	   982	   992	   993
	  1016	  1072	  1145	  1188	  1189	  1484	  1485	  1538	  1690	  1703	  1708	  1709	  1721	  1937
	  1945	  2111
BF.IOU	  2371
BF.VBR	  2377
C	   127#	  1306	  1308	  1309	  1311	  1314	  1586	  1954	  1961	  1970	  1976	  2031
CCLNAM	  1397	  1403	  2540#
CHRBFO	  2203	  2206#
CHRO.1	  2204#	  2209
CHROUT	  1120	  2202#
CKOFDB	   639	  1417	  1462	  1891#
CLRU.1	  2373#	  2376
CLRUSE	   674	   990	  2370#
CLSTTO	   658	  2229#
CMDLST	   345	   371#	   372
CPTF.3	   667	   673#
CPTF.4	   688	   752#
CPTF.5	   690	   751	   760#
CPTF.6	   768#	   802
CPTF.8	   776#	   801
CPTF.X	   768	   795	   803#
CPTFX2	   804	   816#
CPTLER	   736	   841#
CPTOLD	   860#
CPTYCS	   737#	   844
CPTYEN	   730	   734	   742#	   843
CPYIFL	   680	   686	   772	   828#
CPYN13	   701	   821#
CPYTYF	   653	   664#	  1439
CRECHK	  1604	  1651#
CRUCLN	  1585	  1627	  1666#	  1719
CTYP.0	   629	   632#
CTYP.X	   645	   656#	   828
DCPY.1	   581	   612#	   980
DF$BUF	   103	  2316
DF$EXT	   102	  1593
DIRD.2	  1197	  1213#
DIRDUN	  1144	  1148	  1194#
DIRECT	  1296	  1297	  1298	  1300	  1305	  1335	  1338	  1349	  1350	  1351	  1357	  1366	  1368	  1370
	  1728	  1733	  1734	  1735	  1737	  1743	  2547#
DIRPTR	  1670	  1672	  1682	  1731	  1778	  1864	  1915	  2543#
DLRIFL	   929	  1003	  1034#
DLRP.2	   891	   895#
DLRP.4	   922#	   994	  1018
DLRP.6	   958	   961	   972#
DLRP.7	   939	   983#
DLRP.8	   937	   951	   999#
DLRP.9	  1001#	  1017
DLRP10	  1000	  1005#
DLRP8A	   971	   998#
DLRPD0	  1023#	  1036
DLRPDN	   924	  1022#
DLRPNL	   898	  1039#
DOCOPY	   605#	   619
DOPRMP	   349	   364#
DSKBGN	  2151	  2162	  2556#
DSKICL	   587	   600	   981	  2181#
DSKIO0	  2150#
DSKIOF	  2160	  2161	  2165#
DSKLKP	   511	   512	   531	   550	   574	   576	   577	   582	   588	   589	   595	   709	   712	   714
	   716	   720	   722	   723	   742	   812	   822	   836	  1245	  1249	  1252	  1253	  1256	  1284
	  1287	  1288	  2163	  2557#
DSKOCL	   771	   815	  1215	  1443	  2188#	  2229
DSKOPI	   564	  2148#
DSKOPN	   530	   550	   594	   698	   703	   705	   706	   731	   746	   748	   811	   835	  1243	  1255
	  1283	  2555#	  2556
DV.DSK	  1598
DV.M13	   700	  1420	  2156
DVER.2	  1238#	  1266
DVER.4	  1239#	  1261
DVER.5	  1260#	  1275	  1279	  1292
DVER.6	  1242	  1265#
DVRLKE	  1246	  1277#
DVRNME	  1254	  1281#
DVROPE	  1244	  1273#
E$$BDL	  1601	  1660#
E$$CWL	  1624#	  2098
E$$CWT	  1328	  1334	  1343	  1377#
E$$IFL	   829	  1037	  1153	  1697	  1719#
E$$IRO	   494	   621#	   880	  1454
E$$LDE	  1779	  1794#
E$$LIE	   630#	   878	  1101	  1410	  1456
E$$NFS	   498	   636	   884	  1232	  1416	  1460	  1461	  1586	  1590#
E$$NUC	   492	   627	   876	  1099	  1408	  1452	  2521#
E$$RFE	  1519	  1567#
E.DFL	  1277
E.DFO	  1273
E.LKEN	  2168
E.SCL	   743
E.SCO	   707
EF$DEC	   183#	  1723
EF$ERR	   171#	  1378	  1426	  1626	  1661	  1795	  2157	  2332
EF$FIL	   188#	  1079	  1447	  1608	  1626	  1658	  2157	  2324	  2328
EF$FTL	   172#	   622	   631	   644	  1591	  1723	  2324	  2328	  2470	  2476	  2522
EF$INF	   174#	  2441	  2462
EF$LEB	   189#	   533	   824	   853	   967	  1089
EF$MAX	   190#	  2456
EF$NCR	   175#	   533	   559	   622	   631	   644	   824	   853	   967	  1079	  1089	  1282	  1378	  1426
	  1447	  1568	  1591	  1608	  1626	  1658	  1661	  1723	  1795	  2129	  2157	  2324	  2328	  2332
	  2416	  2459	  2464	  2479	  2522
EF$OCT	   184#	  2129	  2332	  2416
EF$PPN	   186#
EF$SIX	   185#	  1568
EF$STR	   187#
EF$WRN	   173#	   533	   559	   853	   967	  1079	  1089	  1282	  1568	  1608	  1658	  2129	  2416	  2439
EHND.0	  2434	  2438#
EHND.1	  2460	  2466#
EHND.2	  2467	  2470#
EHNDLR	   532	   558	   621	   630	   644	   823	   852	   966	  1078	  1088	  1281	  1377	  1426	  1446
	  1567	  1590	  1607	  1625	  1657	  1660	  1722	  1794	  2128	  2157	  2323	  2327	  2331	  2415
	  2430#	  2521
EHNDSH	  2449	  2476#
ERRFTL	  2338	  2471	  2477	  2504#
ERRTAB	  2458	  2492#
ERRTYX	  2433	  2437	  2466	  2469	  2566#
F	   115#	   115	   159	   160	   335	   493	   592	   625	   626	   628	   634	   638	   650	   657
	   666	   669	   687	   689	   777	   783	   792	   803	   874	   875	   877	   879	   914	   938
	  1043	  1100	  1106	  1109	  1131	  1213	  1409	  1413	  1414	  1453	  1455	  1580	  1582	  1583
	  1584	  1606	  1609	  1610	  1611	  1651	  1654	  1666	  1680	  1892	  1893
F.NAM	  1987	  1988
FILCNT	   501	   543	   593	   646	   654	   816	   886	   890	  1074	  1141	  1158	  1196	  1205	  1210
	  1436	  1440	  1466	  1476	  1542	  2550#
FILD.0	  1307#	  1313	  1315
FILD.1	  1310	  1314#
FILD.2	  1306	  1308	  1319#
FL$CRE	   141#	   141	   592	   628	   877	  1100	  1409	  1455	  1610	  1666	  1680
FL$LIB	   140#	   140	   335	  1609	  1610	  1666
FL$OFG	   145#	   145	   669	  1892	  1893
FL$ONE	   144#	   144	   634	   666	   689	   792	   803	  1413
FL$RDO	   143#	   143	   493	   879	  1453	  1580	  1584	  1611	  1654
FL$TYP	   142#	   142	   625	   626	   638	   650	   657	   666	   687	   777	   783	   803	   874	   875
	   914	   938	  1043	  1106	  1109	  1131	  1213	  1414	  1580	  1582	  1583	  1606	  1651
FLTMPC	   311	   313	  2537#
FNDFIL	  2159	  2249	  2287#
FS.LRG	   453	   454	   455	   456	   457	   458	   459	   460	   461	   462	   463	   464	   465	   466
	   467	   468	   469	   470	   471	   472	   473	   474	   475	   476	   477	   478	   479	   480
	   481	   482	   483	   484	   485	   486	   487	   488
FS.NOS	   465	   483
FS.NUE	   454	   459	   462	   465	   468	   472	   477	   480	   483	   486
FT$DDT	   104	   376	   421	   439	   457	   475
FW$RNL	  1349	  1353#	  1357	  1359	  1368	  1371	  1373
FW$ZER	   288	   289	  2539#
FX.NUL	  1111	  1510
FX.PRO	  1250	  1525
GDIR.0	  1691#	  1710
GDIR.1	  1698#	  1715
GDIR.5	  1698	  1714#
GDIR.6	  1714	  1726#	  1745
GDIR.8	  1688	  1733#
GDIR.9	  1693	  1742#
GETNBF	   568	   747	   899	   906	   972	  1117	  1423	  1432	  2104	  2315#
GIVIOL	   656	   893	  1030	  1195	  1442	  1448	  1478	  2037#
GIVL.0	  2024#	  2027
GIVLST	   546	  1028	  1270	  1671	  2021#	  2043
GLST.0	  1956#	  1961	  1979
GLST.1	  1959#	  1977
IBHR	   569	   608	   673	   681	   774	   775	   782	   786	   789	   800	   950	   973	  1149	  1474
	  1489	  1694	  1756	  1760	  2088	  2120	  2149	  2183	  2197	  2567#
IFDBAD	   665	   834	  2552#
IFND.0	  1869#	  1882
IFND.1	  1871#	  1880
IFND.2	  1872	  1879#
IFNDIR	   519	  1516	  1864#
IFNLST	   936	  1866#
ILBCLS	   659	  1194	  1444	  1720	  1742	  2195#
ILIB	   153#	   897	   923	   991	   993	  1002	  1023
INIPDP	   296#	  2508
INPC	   151#	   606	   950	   998	  1062	  1066	  1068	  1083	  1243	  1245	  1253	  1260	  2149	  2181
	  2182
IO.EOF	   328	  2410
IO.EOT	  2410
IO.ERR	   328	  1342	  2127	  2418
IOXBGN	  2151	  2162	  2559#
IOXEND	  2152	  2561#
ISCNBL	   298	   344#
ISCNVL	   300	  2534#
JWW.FL	  2448
L	   125#	   125	   499	   545	  1222	  1224	  1225	  1233	  1269	  1461	  1809	  1897	  1955	  1957
	  1959	  1962	  1973	  2040	  2042	  2057	  2059
LBHR	   897	   900	   925	   989	  1004	  1024	  2569#
LDIR.0	  1108	  1123#
LDIR.1	  1146#	  1190
LDIR.9	  1180	  1184#
LDIR.X	  1157	  1185#
LDIR0A	  1132	  1139#
LIBC	   150#	   333	   337	   617	   675	   677	   679	   770	   904	   909	  1013	  1034	  1147	  1189
	  1485	  1487	  1538	  1540	  1603	  1692	  1709	  1756	  2090	  2093	  2097	  2102	  2107	  2118
	  2125	  2126	  2130	  2195	  2196
LIBEDT	    10#	    17	    20
LIBEND	  2583#
LIBFDB	   323	   331	   513	   895	   902	  1125	  1345	  1592	  1605	  1624	  1642	  1653	  1655	  1667
	  1669	  1754	  2074	  2077	  2546#
LIBM.0	   303	   311#
LIBM.1	   312	   315	   338#
LIBM0A	   321	   329	   334	   336#
LIBMAN	   281#	  2583
LIBMIN	    11#	    20
LIBUPE	  2100	  2113#
LIBVER	     9#	    17	    20
LIBWHO	    12#	    20
LKENER	  1656	  2095	  2255	  2330#
LKPBLK	   691	   692	   836	   959	   964	   975	  1056	  1065	  1066	  1086	  1092	  1093	  1614	  1618
	  2079	  2083	  2093	  2094	  2097	  2109	  2165	  2246	  2251	  2274	  2275	  2276	  2288	  2306
	  2330	  2560#
LKWLDB	   508	   548#	  1240
LN$DRB	    98#	  1298	  1726	  1730	  1735	  1736	  1782	  1870	  1922	  1933	  2547
LN$PDL	    96	   296	  2541
LN$RNL	  1350	  1373#
LNKATN	  1732	  1939	  1960	  2005#
LSTPTR	   935	  1027	  1029	  1071	  2544#
LW$ZER	   290	  2579#
MAKCCL	   316	  1329	  1397#	  1635
MKLS.0	  1781#	  1800
MKLS.1	  1783#	  1788	  1790	  1793
MKLS.3	  1783	  1799#
MKLS.F	  1156	  1789	  1806#
MLSF.0	  1810#	  1820
MRKEND	  2007	  2014#
MX$DIR	    97	    98
MX.	   453#	   453	   455	   456	   457	   458	   460	   461	   463	   464	   466	   467	   469	   470
MX.BUF	   410	   454
MY$NAM	    99	   371
MY$PFX	   100	   101	   346	   369	  1402	  2444
N	   126#
N$CMDS	   345	   372#
NOFILR	   502	   529	   556	   647	   848	   887	   965	  1080	  1084	  1234	  1274	  1278	  1291	  1437
	  1467	  1576	  2551#
NOOP	   197#	   533	   559	   622	   631	   644	   824	   853	   967	  1079	  1089	  1282	  1378	  1426
	  1447	  1568	  1591	  1608	  1626	  1658	  1661	  1723	  1795	  2129	  2157	  2324	  2328	  2332
	  2416	  2522
OBHR	   578	   609	   614	   615	   704	   748	   776	   785	   787	   790	   793	   904	   907	   976
	  1005	  1009	  1010	  1011	  1115	  1118	  1430	  1433	  1492	  1535	  1536	  1537	  2086	  2105
	  2116	  2131	  2190	  2202	  2204	  2219	  2224	  2568#
OFDB	   671	   672	   834	   941	   942	   944	   946	   947	   948	  1046	  1047	  1049	  1050	  1052
	  1054	  1077	  2553#
OFFSET	   283	   301	   346	  2536#
OLBCL2	  1035	  2131#
OLBCLS	   586	  1022	  1473	  2125#
OLIBIN	   643	  1143	  1425	  1686	  1753#
OLIBUP	   572	  1465	  2073#
ONECDB	  1421	  1446#
ONEO.X	  1427	  1442#
OPENER	  2091	  2250	  2322#
OPENIO	   332	   896	   903	   949	  1114	  1429	  1602	  1755	  2238#
OPNBLK	   569	   694	   821	   835	   900	   907	   963	   973	  1055	  1060	  1061	  1062	  1085	  1118
	  1433	  1760	  2078	  2085	  2089	  2090	  2105	  2116	  2120	  2154	  2216	  2218	  2220	  2221
	  2224	  2245	  2290	  2294	  2298	  2558#	  2559
OPNTTO	   637	  2214#
OUTC	   152#	   706	   742	   744	   750	   798	   861	  1115	  1430	  1435	  2188	  2189	  2207	  2221
	  2226
OUTFDB	   668	  1107	  1428	  1483	  1524	  1891	  1900	  1971	  1973	  1978	  2037	  2039	  2545#
P	   128#	   158	   295	   496	   557	   574	   582	   607	   633	   697	   817	   825	   850	   854
	   856	   862	   882	   962	   968	   970	  1075	  1081	  1103	  1123	  1214	  1217	  1226	  1230
	  1302	  1305	  1326	  1398	  1404	  1412	  1458	  1488	  1531	  1532	  1533	  1534	  1554	  1557
	  1560	  1563	  1566	  1577	  1588	  1612	  1632	  1634	  1648	  1673	  1683	  1687	  1738	  1744
	  1754	  1759	  1761	  1774	  1776	  1792	  1796	  1801	  1809	  1810	  1811	  1817	  1822	  1829
	  1832	  1841	  1844	  1865	  1868	  1883	  1894	  1901	  1933	  1936	  1937	  1946	  1958	  1963
	  1975	  1989	  1990	  1993	  1995	  1998	  2015	  2028	  2041	  2053	  2112	  2136	  2138	  2140
	  2143	  2158	  2205	  2227	  2238	  2256	  2257	  2258	  2259	  2264	  2267	  2268	  2270	  2277
	  2301	  2319	  2362	  2370	  2378	  2386	  2388	  2391	  2402	  2405	  2406	  2415	  2418	  2422
	  2424	  2431	  2482	  2490	  2506	  2508	  2519
P1	   120#	   120	   499	   507	   523	   526	   541	   542	   573	   590	   683	   685	   702	   708
	   710	   713	   715	   719	   721	   728	   740	   755	   760	   761	   762	   768	   773	   795
	   925	   926	   927	   930	   933	   934	   943	   945	   956	   960	   979	   982	   983	   986
	   999	  1149	  1150	  1151	  1154	  1155	  1159	  1162	  1165	  1171	  1174	  1175	  1179	  1182
	  1185	  1233	  1239	  1247	  1250	  1265	  1266	  1301	  1305	  1314	  1336	  1360	  1390	  1489
	  1490	  1491	  1497	  1503	  1543	  1546	  1548	  1550	  1655	  1698	  1700	  1701	  1704	  1736
	  1737	  1777	  1792	  1867	  1869	  1881	  1882	  1917	  1919	  1921	  1927	  1928	  2009	  2010
	  2011	  2012	  2023	  2024	  2025	  2027	  2059	  2060	  2062	  2063	  2074	  2075	  2087	  2099
	  2100	  2103	  2108	  2240	  2241	  2244	  2264	  2270	  2322	  2326	  2335	  2431	  2439	  2441
	  2445	  2451	  2455	  2459	  2462	  2464	  2470	  2476	  2479	  2481
P2	   121#	   121	   763	   764	   774	   930	   931	   932	   992	  1000	  1017	  1141	  1168	  1201
	  1234	  1259	  1267	  1361	  1494	  1502	  1513	  1514	  1515	  1520	  1522	  1527	  1530	  1531
	  1532	  1533	  1534	  1689	  1696	  1778	  1781	  1799	  1800	  1869	  1870	  1871	  1873	  1877
	  1879	  1880	  1919	  1920	  1921	  1922	  1923	  1925	  1926	  1943	  1944	  1945	  2010	  2013
	  2149	  2241	  2253	  2264	  2270	  2289	  2291	  2292	  2295	  2303
P3	   122#	   122	   126	   676	   805	   808	  1048	  1051	  1069	  1070	  1361	  1484	  1518	  1521
	  1523	  1694	  1695	  1696	  1699	  1702	  1705	  1781	  1782	  1783	  1784	  1785	  1786	  2264
	  2270	  2295	  2296	  2297	  2299	  2302
P4	   123#	   123	   127	   665	   670	  1045	  1072	  1791
PD.	   471#	   471	   473	   474	   475	   476	   478	   479	   481	   482	   484	   485	   487	   488
PD.BUF	   410	   472
PDLIST	   296	  2541#
PRMPTM	   365	   369#
RB.CRD	  1174	  1176
RB.CRX	  1175
RB.MOD	   702
RB.PRV	  1171	  1252	  1527	  1548	  1561	  1614	  2389
RDLS.2	  1044	  1069#
RDLSLE	  1067	  1083#
RDLSOE	  1063	  1077#
RDLSUB	   889	  1043#
RENPRO	  1517	  1520#
RENSUB	  1472	  1482#
RENVER	  1528#
RESACS	  2472	  2480	  2487#
RESTRT	   310#	   341
RNLRUN	  1359#	  1370
RUNFLG	  1366	  1371#
RUNS.0	  1388#	  1391
RUNSTR	  1319	  1387#
S.BUFR	   436	  2315	  2317	  2573#
S.DSUP	   441	   724	  2574#
S.LSUP	   444	   952	  2575#
S.REML	   447	  1346	  1631	  2577#
S.SUPR	   450	   725	   953	  2576#
SAVAC	  2453	  2454	  2487	  2488	  2515	  2516	  2517	  2518	  2542#
SAVACS	  2430	  2515#
SAVF.0	  1348	  1633#
SAVF.X	  1640	  1647#
SAVFDU	  1622	  1623	  1631#
SCN$FO	   291	   292	  2572#
SCN$FZ	  2570#
SCN$LO	   293	  2578#
SCN$LZ	  2571#
SCWABL	   695	   833#
SETDFD	  1105	  1221#
STOP$N	   279#	   618	   619	   619#	   799	   800	   800#	  1014	  1015	  1015#	  1039	  1040	  1040#	  1058
	  1059	  1059#	  1541	  1542	  1542#	  2114	  2115	  2115#	  2208	  2209	  2209#	  2222	  2223	  2223#
SUP.L	   411#	   412	   412#	   413	   413#	   414	   414#	   459	   462	   468
SUP.T	   411#	   459	   462	   468	   869
SUPALW	   412#	   729	   957
SUPDEF	   414	   727	   955
SUPNEV	   414#	   737
SUPOLD	   413#	   477	   480	   486
T1	   116#	   116	   281	   282	   283	   292	   293	   298	   300	   304	   306	   317	   320	   323
	   324	   325	   327	   331	   338	   364	   365	   366	   504	   508	   511	   515	   521	   523
	   524	   530	   535	   545	   571	   575	   576	   577	   578	   579	   580	   588	   594	   608
	   609	   610	   611	   612	   613	   614	   637	   639	   640	   642	   648	   668	   670	   671
	   672	   673	   681	   682	   683	   691	   692	   693	   694	   695	   698	   699	   700	   702
	   703	   704	   705	   708	   709	   710	   711	   712	   713	   714	   715	   716	   719	   720
	   721	   723	   731	   732	   739	   740	   745	   746	   752	   754	   758	   775	   779	   780
	   781	   789	   790	   791	   800	   805	   808	   809	   811	   821	   842	   843	   850	   867
	   869	   895	   902	   911	   913	   915	   918	   927	   928	   933	   940	   941	   942	   943
	   944	   948	   959	   960	   963	   975	   976	   977	   978	   983	   986	   989	   999	  1004
	  1005	  1006	  1007	  1008	  1009	  1010	  1024	  1027	  1045	  1046	  1047	  1048	  1049	  1051
	  1052	  1053	  1054	  1059	  1060	  1064	  1065	  1069	  1077	  1085	  1090	  1092	  1107	  1112
	  1113	  1120	  1123	  1125	  1127	  1129	  1133	  1136	  1142	  1151	  1152	  1154	  1159	  1162
	  1165	  1166	  1167	  1168	  1171	  1174	  1177	  1182	  1185	  1186	  1187	  1188	  1199	  1201
	  1203	  1205	  1207	  1209	  1217	  1222	  1223	  1224	  1225	  1236	  1240	  1247	  1248	  1249
	  1250	  1251	  1252	  1255	  1269	  1283	  1287	  1297	  1298	  1299	  1300	  1301	  1305	  1311
	  1326	  1330	  1333	  1335	  1336	  1337	  1338	  1340	  1349	  1350	  1354	  1355	  1362	  1363
	  1365	  1388	  1389	  1390	  1397	  1399	  1401	  1402	  1403	  1418	  1424	  1428	  1464	  1469
	  1474	  1490	  1492	  1493	  1494	  1495	  1496	  1507	  1508	  1510	  1511	  1514	  1520	  1521
	  1522	  1523	  1525	  1526	  1527	  1528	  1529	  1530	  1535	  1537	  1543	  1546	  1548	  1550
	  1552	  1554	  1557	  1558	  1560	  1561	  1563	  1569	  1571	  1574	  1592	  1594	  1595	  1596
	  1605	  1614	  1615	  1616	  1617	  1620	  1621	  1623	  1624	  1636	  1639	  1641	  1642	  1643
	  1645	  1653	  1667	  1670	  1685	  1699	  1700	  1702	  1703	  1704	  1705	  1706	  1707	  1708
	  1721	  1726	  1729	  1730	  1734	  1735	  1754	  1759	  1774	  1777	  1784	  1787	  1806	  1809
	  1817	  1822	  1829	  1830	  1840	  1841	  1842	  1844	  1874	  1891	  1895	  1898	  1899	  1900
	  1933	  1936	  1937	  1943	  1971	  1978	  1993	  1995	  1996	  1997	  2006	  2013	  2014	  2021
	  2023	  2024	  2037	  2040	  2050	  2052	  2060	  2064	  2075	  2076	  2077	  2082	  2083	  2084
	  2085	  2086	  2088	  2089	  2092	  2094	  2095	  2101	  2103	  2113	  2115	  2119	  2126	  2127
	  2131	  2135	  2138	  2140	  2141	  2142	  2151	  2152	  2153	  2162	  2163	  2165	  2183	  2190
	  2197	  2204	  2214	  2215	  2216	  2217	  2218	  2219	  2220	  2223	  2238	  2240	  2243	  2244
	  2251	  2254	  2275	  2276	  2287	  2288	  2289	  2290	  2291	  2293	  2294	  2298	  2299	  2300
	  2302	  2304	  2305	  2306	  2307	  2315	  2316	  2317	  2318	  2322	  2326	  2330	  2333	  2335
	  2345	  2346	  2349	  2357	  2358	  2359	  2372	  2375	  2388	  2389	  2391	  2392	  2405	  2407
	  2408	  2409	  2412	  2413	  2418	  2419	  2420	  2422	  2424	  2435	  2437	  2438	  2440	  2442
	  2444	  2445	  2448	  2451	  2453	  2461	  2466	  2481	  2482	  2526
T2	   117#	   117	   318	   326	   512	   516	   522	   526	   527	   531	   569	   580	   589	   595
	   611	   612	   684	   685	   724	   725	   726	   727	   729	   737	   748	   755	   776	   778
	   779	   780	   781	   782	   784	   785	   786	   787	   788	   791	   812	   822	   850	   851
	   854	   856	   869	   900	   907	   934	   945	   946	   952	   953	   954	   955	   957	   962
	   964	   968	   970	   973	   978	  1007	  1008	  1055	  1070	  1086	  1110	  1113	  1118	  1155
	  1175	  1176	  1177	  1256	  1284	  1319	  1331	  1339	  1363	  1364	  1387	  1388	  1389	  1418
	  1419	  1420	  1433	  1495	  1496	  1499	  1500	  1501	  1504	  1505	  1506	  1507	  1508	  1509
	  1515	  1571	  1593	  1595	  1596	  1597	  1598	  1613	  1617	  1620	  1637	  1644	  1728	  1729
	  1730	  1731	  1760	  1786	  1788	  1807	  1809	  1810	  1812	  1814	  1817	  1822	  1832	  1875
	  1897	  1898	  1899	  1933	  1938	  1944	  1959	  1993	  2005	  2006	  2009	  2078	  2105	  2108
	  2109	  2110	  2111	  2116	  2120	  2148	  2154	  2155	  2156	  2166	  2224	  2239	  2245	  2264
	  2345	  2354	  2355	  2372	  2373	  2374	  2375	  2378	  2379	  2386	  2408	  2410	  2412	  2413
	  2415	  2454
T3	   118#	   118	   319	   513	   514	   515	   935	   940	  1056	  1071	  1093	  1111	  1112	  1288
	  1332	  1357	  1368	  1497	  1498	  1501	  1502	  1503	  1505	  1509	  1512	  1513	  1518	  1618
	  1638	  1811	  1813	  1815	  1864	  1867	  1871	  1874	  1877	  1915	  1917	  1938	  2079	  2167
	  2246	  2356	  2361	  2371	  2373	  2377	  2379	  2455	  2456	  2457	  2458
T4	   119#	   119	   319	   514	   516	  1332	  1360	  1483	  1498	  1499	  1500	  1504	  1511	  1524
	  1525	  1528	  1619	  1638	  1791	  1809	  1812	  1813	  1814	  1816	  1819	  1820	  1873	  1875
TLDVER	   302	   309	  2535#
TMPC	   154#	   314	   320	   327	   328	   330	   336	   733	   735	   841	   860	  1327	  1333	  1340
	  1341	  1342	  1344	  1379	  1633	  1639	  1645	  1646	  1647
TMPLKP	   735	   739	   842	   851	  2563#
TMPOPN	   731	   733	   850	  2562#
TMPXEN	   732	  2564#
TPOPJ	  1757	  2411	  2423#
TPOPJ1	  2421#
TPRIV0	  1833	  2348	  2354#
TPRVLP	  2357#	  2361
TSTBHR	  1025	  1475	  2135#	  2184	  2191	  2198
TSUPSW	   855	   867#	   969
TYIO.2	  2060#	  2066
USE.0	  1581	  1585#
USE.1	  1610#	  1652	  1659
UU.PHS	  2215
VSCNBL	   338	   353#
VSWTD	   355	   471#
VSWTL	   354	   435#
VSWTM	   355	   453#
VSWTN	   354	   417#	   435
VSWTP	   356	   435#
WLDERR	  2081	  2248	  2326#
WLDFIR	   507	   549	  1239	  2153	  2167	  2548#
WLDPTR	   506	   552	  1238	  2549#
WRNFNC	   738	   741	   848#
WRNOFM	   544	   556#	   655	   892	  1268	  1441	  1477
X$$FAL	   533	   537#
X$$FNC	   853	   856#
X$$FNR	   967	   970#
X$$FRE	  1282	  1291#
X$$LER	  2332	  2338#
X$$NFM	   555#	   559
X$$RFE	  1568	  1576#
X$$RLE	  1087#	  1089
XCTIO	   605	   616	   678	   769	   797	   922	  1001	  1012	  1146	  1486	  1539	  1691	  2206	  2402#
ZAPDIR	  1026	  1670#
ZERLKP	  2150	  2242	  2274#
ZZ	   113#	   115	   115#	   116	   116#	   117	   117#	   118	   118#	   119	   119#	   120	   120#	   121
	   121#	   122	   122#	   123	   123#	   124	   124#	   125	   125#	   138#	   140	   140#	   141	   141#
	   142	   142#	   143	   143#	   144	   144#	   145	   145#	   181#	   183	   183#	   184	   184#	   185
	   185#	   186	   186#	   187	   187#	   188	   188#	   189	   189#	   190	   192
$ADD	   453	   492#
$COPY	   456	   625#
$CREAT	   455	  1582#
$DELET	   457	   874#
$DIREC	   458	  1098#
$DVERS	   460	  1229#
$EATLN	  2031#	  2033
$FILDI	   461	  1295#
$GTDIR	   500	   641	   885	  1422	  1463	  1680#
$GTFDB	   322	  1221	  1991	  2050#
$GTIOL	   635	  1104	  1415	  1459	  1970#
$GTLST	   497	   883	  1231	  1954#
$GTSPC	  1589	  1956	  1974	  1986#
$MKLST	   652	   888	  1438	  1471	  1774#
$ONEOU	   463	  1407#
$POPJ	   555	  1087	  1681	  1807	  1840	  1954	  1970	  2021	  2031	  2057	  2063	  2259#
$POPJ1	  1380	  1818	  1878	  1957	  1962	  2164	  2258#	  2308	  2380
$POPJ2	  2252	  2257#	  2309	  2403
$READ	   464	  1580#
$RENAM	   466	  1451#
$REPLA	   467	   875#
$RET3	  2265	  2269#
$SAVE3	  2148	  2239	  2263#
$TLBVP	   813	  1257	  2386#
$TPROT	  1549	  1562	  1829#	  2390
$TVRSN	  1551	  1564	  1840#	  2393
$TYIOL	   560	  2057#
$TYPE	   469	   626#
$USE	   470	  1583#
%%JOBD	    25	    25#
%%LIBM	    20#	    21
%%MACT	    27	    27#
%%SCNM	    28	    28#
%%UUOS	    26	    26#
..TEMP	   412#	   412	   413#	   413	   414#	   414	   435#	   436#	   436	   437#	   438#	   439#	   440#	   441#
	   441	   442#	   443#	   444#	   444	   445#	   446#	   447#	   447	   448#	   449#	   450#	   450	   451#
	   452#	   453#	   453	   454	   454#	   455	   455#	   456	   456#	   457	   457#	   458	   458#	   459
	   459#	   460	   460#	   461	   461#	   462	   462#	   463	   463#	   464	   464#	   465	   465#	   466
	   466#	   467	   467#	   468	   468#	   469	   469#	   470	   470#	   471	   471#	   472	   472#	   473
	   473#	   474	   474#	   475	   475#	   476	   476#	   477	   477#	   478	   478#	   479	   479#	   480
	   480#	   481	   481#	   482	   482#	   483	   483#	   484	   484#	   485	   485#	   486	   486#	   487
	   487#	   488	   488#	   489
..TEMR	   471#	   471	   472#	   472	   473#	   473	   474#	   474	   475#	   475	   476#	   476	   477#	   477
	   478#	   478	   479#	   479	   480#	   480	   481#	   481	   482#	   482	   483#	   483	   484#	   484
	   485#	   485	   486#	   486	   487#	   487	   488#	   488	   489
.ACWRI	  1613
.ALCBF	   570	   749	   901	   908	   974	  1119	  1434	  1762	  2106	  2117	  2121	  2225
.ALCOR	  1727	  1896	  1934	  2051
.BFADR	   673	   989	  2135	  2140
.BFCTR	   615	   774	   775	   776	   782	   785	   793	   800	  1009	  1011	  1535	  1536	  2142	  2202
.BFPTR	   578	   608	   609	   614	   681	   786	   787	   789	   790	   925	   976	  1004	  1005	  1010
	  1149	  1489	  1492	  1537	  1694	  2141	  2204
.CHKTM	   566
.CLRBF	  2504
.DECOR	  1668	  1972	  2026	  2038
.FILIN	  1986
.FMSGE	  2509
.FREBF	  2138
.FXDEV	  1418	  1596
.FXEXT	   514	   526	   945	   946	  1052	  1113	  1225	  1504	  1513	  1594	  1595	  1813
.FXFLM	  1996	  1997	  2052
.FXLEN	   324	   551	   672	   942	  1047	  1053	  1641	  1895	  1899	  1993	  2050	  2076	  2243	  2553
.FXMOD	  1112	  1250	  1511	  1525
.FXNAM	   515	   944	  1049	  1224	  1499	  1812
.FXNMM	   523	   947	  1050	  1498	  1500	  1814
.FXVER	  1247	  1528
.GTSPC	  1994
.IOASC	  1115	  2214
.IOBIN	   333	   744	   745	   897	   904	   950	  1430	  1603	  1756	  2084	  2149
.IODMP	   314	   754	  1059	  1327	  1633
.ISCAN	   299
.JBFF	  2506	  2508
.JBVER	    19	   306	  1129
.LKERR	  1094	  1289
.LKWLD	   509	  1241
.MKPJN	  1400
.MONRT	   340
.MYPPN	   575	  1619
.OPBUF	   705	  1061	  2089	  2220	  2294
.OPDEV	   694	   698	  2154	  2218
.OPMOD	   703	   746	  1060	  2085	  2216
.POPJ	  2492
.RBALC	   715	   716
.RBCNT	   685	   927	  1065	  1151	  1696	  2083	  2288
.RBEXT	   512	   589	   708	   709	   842	   934	   986	  1092	  1155	  1162	  1175	  1287	  1503	  1515
	  1522	  1533	  1546	  1702	  2094	  2251	  2330
.RBNAM	   511	   588	   933	   943	   983	  1154	  1159	  1497	  1502	  1514	  1520	  1534	  1543	  1699
.RBNCA	   719	   720
.RBPPN	   574	   576	   582	  1618
.RBPRV	   702	   710	   712	  1093	  1171	  1174	  1252	  1288	  1527	  1532	  1548	  1614	  2389
.RBSIZ	   760	   930	  1165	  1185	  1705	  2109
.RBSPL	   713	   714
.RBTIM	   551	   580	   684	   692	   728	   739	   740	   837	   928	   956	   959	   960	   978	  1056
	  1064	  1152	  1689	  2079	  2082	  2163	  2166	  2246	  2276	  2287	  2557	  2560	  2563
.RBVER	   721	   722	   723	  1179	  1182	  1249	  1530	  1531	  1550	  2392
.RECOR	   297
.SAVE1	   495	   632	  1457	  2022	  2058	  2073
.SAVE2	   664	   881	  1102	  1229	  1295	  1411	  1482	  1587	  1866	  1916	  2008
.SAVE3	  1684
.SAVE4	  1775
.SCWLD	   696
.STOPN	  1057	  2080	  2247
.SWDEC	   454
.TCHAR	   753	  1211	  1570	  2065	  2347	  2350	  2360	  2443	  2463	  2527
.TCRLF	   308	   561	   597	   814	   871	   988	  1095	  1139	  1140	  1184	  1212	  1258	  1290	  1565
	  2337	  2465	  2478
.TDATE	  1178
.TDATN	  1135
.TDECW	  1169	  1202	  1206	  2493
.TDOT	   807	   985	  1545	  1556	  2526#
.TFBLK	  1126	  2061	  2336	  2498
.TFCHR	  1312
.TIAUC	  1307	  2032
.TOCTW	  2494
.TOLEB	   596	   756	  1285	  2387	  2499
.TPPNW	  2496
.TPRIV	  1172	  2345#
.TSIXN	   367	   806	   810	   870	   984	   987	  1160	  1163	  1544	  1547	  1553	  1555	  1559	  1572
	  2446	  2495
.TSPAC	  1286	  2450
.TSTRG	   305	   505	   536	   651	   759	   868	   912	   916	   919	  1091	  1124	  1128	  1134	  1137
	  1200	  1204	  1208	  1237	  1470	  1575	  1831	  1843	  2334	  2452	  2497
.TTABC	  1161	  1164	  1170	  1173	  1181
.TTIMN	  1138
.TVERW	   307	  1130	  1183	  1845
.TYOCH	  1121	  1217	  1303	  1326	  2432	  2436	  2468
.VERBO	  2447
.VSCAN	   339
AC$	   109#	   115	   116	   117	   118	   119	   120	   121	   122	   123	   124	   125
ASCIZ$	   254#
CALL	   158#	   297	   299	   305	   307	   308	   316	   322	   332	   339	   340	   495	   497	   500
	   505	   509	   519	   532	   536	   544	   558	   560	   564	   566	   568	   570	   572	   581
	   586	   587	   591	   596	   597	   600	   605	   616	   621	   630	   632	   635	   640	   641
	   643	   644	   651	   652	   653	   655	   656	   658	   664	   674	   678	   696	   747	   749
	   753	   756	   759	   769	   771	   797	   806	   807	   810	   813	   814	   815	   823	   828
	   852	   855	   868	   870	   881	   883	   885	   888	   889	   892	   896	   899	   901	   903
	   906	   908	   912	   916	   919	   922	   936	   949	   966	   969	   972	   974	   980	   981
	   984	   985	   987	   988	   990	  1001	  1012	  1022	  1025	  1026	  1028	  1035	  1036	  1057
	  1073	  1078	  1088	  1091	  1094	  1102	  1104	  1105	  1114	  1117	  1119	  1121	  1124	  1126
	  1128	  1130	  1134	  1135	  1137	  1138	  1139	  1140	  1143	  1146	  1156	  1160	  1161	  1163
	  1164	  1169	  1170	  1172	  1173	  1178	  1181	  1183	  1184	  1194	  1195	  1200	  1202	  1204
	  1206	  1208	  1211	  1212	  1215	  1221	  1229	  1231	  1237	  1241	  1257	  1258	  1268	  1273
	  1277	  1281	  1285	  1286	  1289	  1290	  1295	  1303	  1307	  1312	  1326	  1329	  1348	  1377
	  1400	  1411	  1415	  1417	  1422	  1423	  1425	  1426	  1429	  1432	  1434	  1438	  1439	  1441
	  1442	  1443	  1446	  1457	  1459	  1462	  1463	  1465	  1470	  1471	  1472	  1473	  1475	  1477
	  1482	  1486	  1516	  1539	  1544	  1545	  1547	  1549	  1551	  1553	  1555	  1556	  1559	  1562
	  1564	  1565	  1567	  1570	  1572	  1575	  1585	  1587	  1589	  1590	  1602	  1607	  1625	  1635
	  1657	  1660	  1668	  1671	  1684	  1686	  1688	  1691	  1714	  1719	  1720	  1722	  1727	  1732
	  1742	  1755	  1775	  1789	  1794	  1831	  1843	  1866	  1896	  1916	  1934	  1956	  1960	  1972
	  1974	  1986	  1991	  1994	  2008	  2022	  2026	  2032	  2038	  2051	  2058	  2061	  2065	  2073
	  2080	  2104	  2106	  2117	  2128	  2138	  2150	  2157	  2159	  2206	  2225	  2242	  2247	  2249
	  2323	  2327	  2331	  2334	  2336	  2337	  2347	  2348	  2360	  2387	  2390	  2415	  2430	  2436
	  2443	  2446	  2447	  2450	  2452	  2458	  2463	  2465	  2468	  2478	  2504	  2521
CHKACC	  1621
CLOSE	   330	  1341	  1646	  2125	  2181	  2188	  2195
CORE	  1355
CTITLE	    15#	    17
DEVCHR	   699	  1419	  1597	  2155
DM	   410
DOSCAN	   416
ENTER	   742	  1333	  1639	  2097	  2304
ERROR.	   200#	   532	   558	   621	   630	   644	   823	   852	   966	  1078	  1088	  1281	  1377	  1426
	  1446	  1567	  1590	  1607	  1625	  1657	  1660	  1722	  1794	  2128	  2157	  2323	  2327	  2331
	  2415	  2521
ETYP	   178#	   183	   184	   185	   186	   187	   188	   189
EXIT	  1367
FATAL.	   208#	   621	   630	   644	  1590	  1722	  2323	  2327	  2521
FLAG$	   134#	   140	   141	   142	   143	   144	   145
GETSTS	  2126	  2408
HALT	   618	   799	  1014	  1039	  1058	  1541	  2114	  2208	  2222
IN	   606	   679	   770	   923	  1002	  1147	  1487	  1692
INFO.	   218#
INPUT	   327
JMPRDO	   273#	   493	   879	  1453
JUMPCR	   261#	   877	  1100	  1409	  1455	  1680
JUMPNC	   267#	   628
JUMPNU	   160#	   492	   627	   876	  1099	  1408	  1452
JUMPU	   159#
KEYS	   411
LOOKUP	   320	   735	  1066	  1245	  2093	  2305
MOVX	  1111	  1510
ND	    96	    97	    99	   101	   102	   103	   104	   410	   414
OPEN	   314	   706	   733	  1062	  1243	  1327	  1633	  2090	  2221	  2298
OUT	   617	   798	  1013	  1540	  2207
OUTPUT	   750	   909	  1340	  1435	  1645	  2107	  2118	  2226
PJOB	  1399
PJRST	   367	   546	   561	   645	   659	   707	   738	   741	   743	   829	   871	   893	  1030	  1037
	  1095	  1144	  1148	  1217	  1270	  1427	  1444	  1448	  1478	  1627	  1656	  1745	  1757	  1762
	  1833	  1845	  1939	  1957	  2043	  2121	  2168	  2184	  2191	  2198	  2350	  2393	  2472	  2509
	  2527
PJUMPL	  1954	  1970
PJUMPN	  1957
POINTR	   702	  1171	  1174	  1175	  1250	  1252	  1525	  1527	  1548	  1561	  1614	  2389
POS	   702	  1171	  1174	  1175	  1250	  1252	  1525	  1527	  1548	  1561	  1614	  2389
RELEAS	   336	   337	   841	   860	   861	   998	  1023	  1034	  1068	  1083	  1260	  1344	  1379	  1647
	  2130	  2182	  2189	  2196
RENAME	  1253
RESET	   294	  2506
RESTR$	   236#	  1216	  1325	  1758	  1817	  1821	  1935	  1936	  2139	  2269	  2417	  2421	  2423	  2507
RUN	  1365
SAVE$	   229#	   849	  1122	  1304	  1753	  1808	  1932	  1992	  2137	  2263	  2404	  2414	  2505
SETSTS	   744
SL	   423	   426	   432	   441	   444	   450	   459	   462	   468	   477	   480	   486
SN	   429	   447	   465	   483
SP	   417	   418	   419	   420	   421	   422	   424	   425	   427	   428	   430	   431	   433	   434
	   435	   436	   437	   438	   439	   440	   442	   443	   445	   446	   448	   449	   451	   452
	   453	   454	   455	   456	   457	   458	   460	   461	   463	   464	   466	   467	   469	   470
	   471	   472	   473	   474	   475	   476	   478	   479	   481	   482	   484	   485	   487	   488
STATZ	   328	  1342
STOPX$	   223#	   618	   799	  1014	  1039	  1058	  1541	  2114	  2208	  2222
STORE	   285	   288	   291	  1296	  1733	  2274
STRNG$	   248#	   304	   503	   534	   757	   867	   911	   917	  1090	  1123	  1127	  1133	  1136	  1198
	  1203	  1235	  1468	  1573	  1830	  1842	  2333
SWTCHS	   388#	   417	   435	   453	   471
TXNN	   700	  2448
TXO	  2215
U	   243#	  2534	  2535	  2536	  2537	  2540	  2541	  2542	  2543	  2544	  2545	  2546	  2547	  2548
	  2549	  2550	  2551	  2552	  2553	  2555	  2557	  2558	  2560	  2562	  2563	  2566	  2567	  2568
	  2569	  2573	  2574	  2575	  2576	  2577
USETI	   677	   993	  1189	  1485	  1709	  2102
USETO	  1538
VRSN.	    20
WAIT	   675	   991
WARN.	   213#	   532	   558	   852	   966	  1078	  1088	  1281	  1567	  1607	  1657	  2128	  2415
WID	   702	  1171	  1174	  1175	  1176	  1250	  1252	  1525	  1527	  1548	  1561	  1614	  2389
X	   417#	   417	   418	   419	   420	   421	   422	   423	   424	   425	   426	   427	   428	   429
	   430	   431	   432	   433	   434	   435#	   435	   436	   437	   438	   439	   440	   441	   442
	   443	   444	   445	   446	   447	   448	   449	   450	   451	   452	   453#	   453	   454	   455
	   456	   457	   458	   459	   460	   461	   462	   463	   464	   465	   466	   467	   468	   469
	   470	   471#	   471	   472	   473	   474	   475	   476	   477	   478	   479	   480	   481	   482
	   483	   484	   485	   486	   487	   488