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