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 16 17 CTITLE (TITLE,,\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 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 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 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, 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 ,[''$PFX'',,[ASCIZ @$MSG@ ] 202 IFN $FLGS&EF$NCR,] 203 > 204 205 ;FATAL. FLGS,PFX,MSG 206 207 DEFINE FATAL. ($FLGS,$PFX,$MSG) 208 209 210 ;WARN. FLGS,PFX,MSG 211 212 DEFINE WARN. ($FLGS,$PFX,$MSG) 213 214 215 ;INFO. FLGS,PFX,MSG 216 217 DEFINE INFO. ($FLGS,$PFX,$MSG) 218 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 221 222 DEFINE STOPX$ 223 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 231 LIST> 232 233 ;RESTR$ RESTORES DATA FROM THE STACK 234 235 DEFINE RESTR$ (X) 236 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 250 251 ;ASCIZ$ (STRING) CREATES XLISTED ASCIZ STRING TO KEEP LISTING PRETTY 252 253 DEFINE ASCIZ$ (S) 254 257 258 ;JUMPCR (LOC) JUMPS TO LOC IF CREATE COMMAND 259 260 DEFINE JUMPCR (LOC) 261 263 264 ;JUMPNC (LOC) JUMPS TO LOC IF NOT CREATE COMMAND 265 266 DEFINE JUMPNC (LOC) 267 269 270 ;JMPRDO (LOC) JUMPS TO LOC IF READ ONLY 271 272 DEFINE JMPRDO (LOC) 273 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$ ;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, ;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$ ;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, 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,) 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 ;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 ;DSUPER 442 400153' 000 00 0 00 000000 Z ;DVERSI 443 400154' 000 00 0 00 000000 Z ;FILDIR 444 400155' 000000 000657' EXP ;LSUPER 445 400156' 000 00 0 00 000000 Z ;*ONEOUT 446 400157' 000 00 0 00 000000 Z ;READ 447 400160' 000000 000661' EXP ;REMEMB 448 400161' 000 00 0 00 000000 Z ;RENAME 449 400162' 000 00 0 00 000000 Z ;*REPLAC 450 400163' 000000 000660' EXP ;*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$ 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, 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, 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, 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, ;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,) ;??? 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, 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, 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$ 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$ ;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, 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, 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, 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$ 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$ 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, 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, 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,) ;??? 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, 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$ 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, 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, 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, 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, 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, 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, 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, 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, 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, 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$ ;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$ ;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$ ;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, 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$ 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, 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$ 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, 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, 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, 1912 ; HRRZ B, 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$ ;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, 2001 ; MOVEI T2, 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, 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, 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,) 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, 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$ ;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$ ;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, ;@ 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, 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, 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, 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 ; ;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, 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, 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