(George Source)
Macros used: ACROSS, BBS, BBUS, BRUSEN, BXGE, CLOSETOP, DOWN, FINDCORE, FJOCA, FREECORE, FREETAB, GEOERR, GETCORE, HUNT2, KEEPREP, LOGACCESS, MENDAREA, MFREE, MFREEW, MHUNT, MHUNTW, NAME, OPENCREX, PICKREP2, PREP, PUTREP2, READ, READAGAIN, SEG, SEGENTRY, SETNCORE, TABULATE, TESTMODE, TESTREP2, TESTRPN2, TOPFCB2, TRACE, UP, UPPLUS
22FL SEG USERLIB,,C DONG,USEROPES 22^= [ 2394 ...[ (C) COPYRIGHT INTERNATIONAL COMPUTERS LTD 1983 23DW [ 23YG SEGENTRY K1USERLIB,ZENTRY 24D6 [ 24XQ [ 25CB READ +AREAD 25X2 NDIR 1,1,4HC1 26BL TWO 2 26W= TRAP +CREAD 27*W +CWRITE 27TG [ 28#6 ...[ 28*6 [ AWORK3-B0 SET IF TEMP DIRECTORY HAS BEEN SEARCHED 28SQ [ B23 SET IF GLIST BLOCK SET UP 29#B [ 29S2 [ ENTRY FROM USEROPEN-ENTRANT APPEARS TO BE A MAG TAPE 2=?L [ MAIN MODESIN X5,SUBSIDIARY MODES IN AWORK1 2=R= [ 2?=W [ 2?QG [ ENTRY POINT K1 2#=6 [ 2#PQ [ 2*9B ZENTRY 2*P2 #SKI K6USERLIB>99-99 2B8L ( 2BN= TRACE 5,USERLIB 2C7W MHUNT 2,FILE,FABSNB 2CMG BBUS 13,ATYPE(2),PR2 [J IF NO TSN GIVEN 2D76 SMO A1(2) 2DLQ LDX 0 A1+1(2) 2F6B BPZ 0 PR2 2FL2 GEOERR 1,XENOTAPE 2G5L PR2 2GK= ) 2H4W LDN 6 0 [MARKS NO GLIST BLK 2HJG TESTMODE 5,ULIB,,CREATE [IF CREATE MODE GIVEN,DIR.ENTRY TO BE 2J46 [ SET UP-DONT BOTHER TO LOOK IN TEMPORARY DIRECTORY 2JHQ MHUNT 2,FILE,FABSNB 2K3B BBS 16,ATYPE(2),ULIB [J IF NAMED WORKTAPE-DONT INSPECT THE 2KH2 [TEMP.DIR. 2L2L [ 2LG= [ IF TSN GIVEN,LOOK IN TEMPORARY DIRECTORY FIRST -BUG 3816 2L^W [ 2MFG BBS 13,ATYPE(2),TSNGIVN 2M^6 BBUS 14,ATYPE(2),PR2A [J IF NOT LOCAL NAME 2NDQ TSNGIVN [LOOK IN JOB'S TEMPORARY DIRECTORY 2NYB #SKI ANOUSER 2PD2 BRUSEN NOJOB [J IF NO JOB BLOCK 2PXL FJOCA 1,FX2 2QC= LDCT 0 #002 [THIS BIT SHOULD BE SET IF AND ONLY I 2QWW ANDX 0 JMISC(1) [THE TEMP DIR EXISTS. 2RBG BZE 0 P2 [BIT UNSET IN ERASE 2RW6 [ 2S*Q [ SET UP FABSNB FOR TEMP.DIR AND INSERT LOCAL NAME OF MT 2STB [ 2T*2 MHUNT 2,FILE,FABSNB 2TSL LDX 4 ALOGLEN(2) 2W#= SBX 4 A1(2) 2WRW LDX 7 4 2X?G ADN 7 16 2XR6 GETCORE 7,1 [SET UP NEW FABSNB 2Y=Q FINDCORE 3 2YQB SBX 7 4 2^=2 STO 7 A1(3) 2^PL MHUNT 2,FILE,FABSNB 329= LDX 7 ATYPE(2) 32NW STO 7 ATYPE(3) [NAME SAME AS THE OTHER 338G SMO A1(2) 33N6 ADN 2 A1-6 347Q ADN 3 A1+10 34MB SMO 4 3572 MOVE 2 6 [MOVE WHOLE OF LOCAL NAME 35LL FJOCA 2,FX2 366= SBN 3 6 36KW ADN 2 JNAME 375G MOVE 2 3 [TEMPORARY DIRECTORY 37K6 SBN 3 3 384Q ADN 2 JUSER-JNAME 38JB MOVE 2 3 [PROPER USER 3942 ADN 3 6 39HL LDN 2 NDIR(1) 3=3= MOVE 2 3 3=GW [ POSSIBLY MANY ENTRANTS WILL SUIT DESCRIPTION-LIST ALL IN GLIST 3?2G CALL 4 SLIST 3?G6 [ ENTER USERDIR IN ATTEMPT TO FIND ENTRANT IN TEMP.DIR-NO CREATE MOD 3?^Q DOWN USERDIR,1 3#FB BRN XBR [BREAK -IN 3#^2 BRN PR2B [ERROR 3*DL LDX 0 GSIGN [MARK SYS.SERIAL OPEN 3*Y= ORS 0 AWORK3(2) 3BCW TESTRPN2 OK,PFND [IF REPLY NOT OK,SHD BE NOFILE IF UP2 3BXG [ OTHERWISE ENTRANT FOUND IN TEMP.DIR. 3CC6 MHUNT 1,FILE,FABSNB 3CWQ HUNT2 1,FILE,FABSNB [FREE GIVEN FABSNB 3DBB FREECORE 1 [LEAVING ONE APPROPRIATE TO ENTRANT 3DW2 [IN TEMP.DIR. 3F*L BRN PR1 3FT= PFND 3G#W MFREE FILE,FABSNB [FREE FABSNB FOR TEMP.DIR 3GSG P2 3H#6 MHUNT 2,FILE,FABSNB 3HRQ PR2A 3J?B [ REMEMBER REL AND ZERO GEN 3JR2 SMO A1(2) [NUMBER MARKERS FOR USE IF REPLY IS 3K=L LDX 3 A1-2(2) [NOFILE AND THERE IS NO CREATE MODE 3KQ= BNZ 6 ULIB [J IF GLIST ALREADY SET UP 3L9W CALL 4 SLIST 3LPG ULIB 3M96 DOWN USERDIR,1 3MNQ BRN XBR 3N8B BRN UDREP 3NN2 LDN 4 ACREATE 3P7L ANDX 4 5 3PM= TESTREP2 NOFILE,PREP 3Q6W BNZ 4 RALR 3QLG PR1 3R66 BZE 6 NOLIST [J IF NO GLIST 3RKQ [ OTHERWISE MARK TSNS IN GLIST.SET B0 OF TSN IF WRITE TRAP GIVEN,AND 3S5B [ ZEROISE TSN IF NO TRAP GIVEN 3SK2 MHUNTW 2,AONBS,GLIST 3T4L LDX 6 A1(2) [NO OF TAPES OF THIS NAME 3TJ= TABULATE 3W3W LDN 3 1 [POS IN GLIST BLK 3WHG BXGE 6 TWO(1),TLIST [IF MORE THAN ONE TSN IN LIST,CHECK 3X36 [ALL 3XGQ NOLIST 3Y2B CALL 7 TC 3YG2 BRN NOTR [ERROR EXIT 3Y^L MHUNTW 2,CPAR,GPERCON [CHECK WPR QUALIFIERS 3^F= LDX 0 A1+2(2) 3^YW ANDN 0 7 42DG BZE 0 NOQUAL [NO QUAL GIVEN 42Y6 LDX 0 A1+1(2) 43CQ ANDN 0 1 [SEE DOC. FOR CPAR/GPERCON 43XB SMO 0 44C2 ANDX 4 TRAP(1) [CHECK TRAP APPROP TO QUALIFIER 44WL BZE 4 NOTR 45B= TCD 45TW BZE 6 NOLIST1 [ORDINARY CASE 46*G [ CONVERT GLIST CASE TO SINGLE ENTRANT CASE IF GLIST CONTAINS ONLY ONE 46T6 TABULATE 47#Q READAGAIN 47SB MHUNTW 2,FILE,FRB 48#2 NAME 2,FILE,ENT 48RL MFREEW AONBS,GLIST 49?= LDN 0 1 49QW ERS 0 AWORK3(2) 4==G YLIST 4=Q6 FREETAB 4?9Q NOLIST1 4?PB MFREE FILE,FLOCNB 4#92 CLOSETOP [DIRECTORY 4#NL [ 4*8= [ PUT USEROPEN'S MAIN,SUB MODES IN ACOMMUNE1,2 FOR LIBRARIAN 4*MW [ 4B7G STO 5 ACOMMUNE1(2) 4BM6 LDX 0 AWORK1(2) 4C6Q STO 0 ACOMMUNE2(2) 4CLB LDEX 0 AWORK3(2) 4D62 BNZ 0 MANY 4DKL [ ENTER LIBSEC IF ONLY ONE USEABLE MT 4F5= ACROSS LIBSEC,1 4FJW 4G4G 4GJ6 NOQUAL 4H3Q ANDN 4 CWRITE 4HHB BNZ 4 TCD [DO WHAT YOU WANT IF WRITE TRAP 4J32 LDN 0 1 4JGL ORS 0 A1+2(2) [PRETEND USER SET READ QUALIFIER 4K2= BRN TCD 4KFW 4K^G 4LF6 [ ENTER LIBMANY IF MORE THAN ONE USEABLE MT 4LYQ MANY 4MDB ACROSS LIBMANY,1 4MY2 4NCL 4NX= TLIST1 4PBW ADN 3 1 4PWG TABULATE ,1 4QB6 TLIST 4QTQ [ GLIST CONTAINING ENTRANTS-CHECK TRAPS 4R*B CALL 7 TC 4RT2 BRN TLISTA [ERROR EXIT 4S#L ANDN 4 CWRITE 4SS= BZE 4 TLISTB [NO WRITE TRAP 4T?W MHUNTW 2,AONBS,GLIST 4TRG LDCT 0 #400 4W?6 SMO 3 4WQQ ORS 0 A1(2) [SET B0 OF TSN FOR WRITE TRAP 4X=B TLISTB 4XQ2 #SKI K6USERLIB>99-99 4Y9L ( 4YP= SMO 3 4^8W LDX 0 A1(2) 4^NG TRACE 0,LIST TSN 5286 ) 52MQ BCT 6 TLIST1 537B BRN YLIST 53M2 TLISTA 546L MHUNTW 2,AONBS,GLIST 54L= #SKI K6USERLIB>99-99 555W ( 55KG SMO 3 5656 LDX 0 A1(2) 56JQ TRACE 0,TSNXTRAP 574B ) 57J2 SMO 3 583L STOZ A1(2) [REMOVE TSN WITHOUT TRAPS 58H= LDN 0 1 592W SBS 0 A1(2) [DECR.CT.OF USEFUL TAPES 59GG BCT 6 TLIST1 5=26 LDX 0 A1(2) 5=FQ BNZ 0 YLIST 5=^B BRN NOTR [NO TAPES WITH CORRECT TRAPS 5?F2 5?YL 5#D= PR3 5#XW LDX 2 FX2 5*CG STO 5 ACOMMUNE1(2) 5*X6 LDX 0 AWORK1(2) 5BBQ STO 0 ACOMMUNE2(2) 5BWB [ ONLY ENTER LIBTSN IF TSN ONLY GIVEN 5CB2 ACROSS LIBTSN,1 5CTL 5D*= 5DSW [ FREE GLIST IF SET UP 5F#G PREP 5FS6 BZE 6 PREP1 5G?Q MFREEW AONBS,GLIST 5GRB PREP1 5H?2 BZE 4 PR4 [J IF NO CREATE MODE GIVEN 5HQL MHUNT 3,FILE,FLOCNB 5J== LDX 0 A1+4(3) [CHECK GEN.NO.NOT OUT OF RANGE 5JPW BNG 0 WRGEN 5K9G [ LIBRARIAN REQUIRES AN ADICT IN CREATE CASE 5KP6 SETNCORE 3,3,FILE,ADICT 5L8Q TOPFCB2 2 5LNB ADN 2 FME1 5M82 ADN 3 A1 5MML MOVE 2 3 5N7= OPENCREX XBRC,5 5NLW TESTRPN2 OK,OREP 5P6G #SKI K6USERLIB>99-99 5PL6 TRACE EXEC3(2),USERREP 5Q5Q MFREE FILE,FLOCNB [FREED HERE COS DIRCLOSE REPLY GOES 5QKB BRN UP 5R52 [BACK TO USEROPEN AND REQUIRES A 5RJL [FLOCNB TO FREE THERE. 5S4= [ 5SHW [ ENTER LIBINSEC IF TSN + NAME,OR NAME,GIVEN 5T3G [ IF TSN ONLY,ENTER LIBTSN 5TH6 [ 5W2Q PR4 5WGB BNZ 6 NOFLOC [IF GLIST,THEN NO FLOCNB 5X22 MFREE FILE,FLOCNB 5XFL NOFLOC 5X^= LDX 6 3 5YDW MHUNT 3,FILE,FABSNB 5YYG LDN 0 #200 5^D6 ANDX 0 ATYPE(3) [NAMED WORK TAPE 5^XQ BNZ 0 PRX 62CB LDN 2 #2000 62X2 ANDX 2 ATYPE(3) [X2 NON-ZERO IF TSN GIVEN 63BL ADX 3 A1(3) 63W= LDX 0 A1-6(3) [FIRST WORD OF LAST LOCAL NAME 64*W BNZ 0 PRZN [[J IF NAEE NON-ZERO-NOT NEC ALPHABETIC 64TG BNZ 2 PR3 [J IF TSN BUT ZERO NAME-BUG 7245 65*6 PRZN 65SQ STO 6 A1-2(3) [RESET RELATIVE AND NULL GENERATION 66#B LDX 2 FX2 66S2 STO 5 ACOMMUNE1(2) 67?L LDX 0 AWORK1(2) 67R= STO 0 ACOMMUNE2(2) 68=W ACROSS LIBINSEC,1 68QG 69=6 PRX PICKREP2 7 69PQ CLOSETOP [SERIAL 6=9B PUTREP2 7 6=P2 UP UPPLUS 1 6?8L 6?N= TC 6#7W LDN 4 CREAD+CWRITE 6#MG TESTMODE 5,TCOUTA,,UNTRAP 6*76 SBX 7 FX1 6*LQ CHECKTRAPS 6B6B ANDX 4 EXEC1(2) 6BL2 ADX 7 FX1 6C5L BNZ 4 TCOUTA [ SOME TRAPS THERE 6CK= EXIT 7 0 6D4W TCOUTA 6DJG EXIT 7 1 6F46 6FHQ 6G3B SLIST 6GH2 MHUNT 2,FILE,FABSNB 6H2L LDX 0 ATYPE(2) 6HG= ANDN 0 #2000 6H^W BNZ 0 SLEX [NO GLIST SET UP IF TSN GIVEN 6JFG SBX 4 FX1 6J^6 SETNCORE 1,1,AONBS,GLIST 6KDQ STOZ A1(1) 6KYB LDN 6 1 6LD2 ORS 6 AWORK3(2) [MARKER USED IN USERDIR 6LXL ADX 4 FX1 6MC= SLEX 6MWW EXIT 4 0 6NBG 6NW6 6P*Q PR2B 6PTB TESTRPN2 NOFILE,RE 6Q*2 BRN PFND [SERIAL CLOSED AGAIN 6QSL UDREP 6R#= TESTREP2 NOFILE,UDREP1 6RRW BRN RE 6S?G WRGEN KEEPREP 6,WRGEN 6SR6 BRN RE4FREE 6T=Q RALR 6TQB KEEPREP 6,ALREADY 6W=2 BRN NOGLIST 6WPL UDREP1 6X9= MHUNT 2,FILE,FABSNB 6XNW BBS 16,ATYPE(2),UP [UP+1 IF NOFILE ON NAMED WORKTAPE 6Y8G KEEPREP 6,NAME 6YN6 BRN RE4 6^7Q NOTR 6^8H ...#UNS ILOGACC 6^9# ...( 6^=5 ... SMO FX2 6^=W ... LDEX 0 AWORK3 6^?M ... BZE 0 XLOG [NO GLIST THEREFORE THERE IS AN ENT 6^#D ... TABULATE 6^*9 ... READAGAIN [GET ENT FOR ANY TAPE IN GLIST 6^B2 ... MHUNTW 1,FILE,FRB 6^BR ... NAME 1,FILE,ENT 6^CJ ...XLOG 6^D* ... LDX 0 5 6^F6 ... ANDN 0 #7000 6^FX ... SBN 0 #3000 6^GN ... LDN 1 CREAD 6^HF ... BNG 0 XLOG1 6^J= ... LDN 1 CWRITE 6^K3 ...XLOG1 6^KS ... LOGACCESS 7,1 6^LK ...) 6^MB CLOSETOP [DIR 7272 CLOSETOP [SERIAL 72LL KEEPREP 6,NOTRAP 736= LDEX 0 AWORK3(2) 73KW BZE 0 NOGLIST 745G MFREEW AONBS,GLIST [FREE EITHER GLIST 74=N ...#UNS ILOGACC 74CW ...#SKI 74K6 BRN RE4FREE [OR 754Q NOGLIST 75JB MFREEW FILE,ENT [ENT 7642 RE4FREE 76HL MFREE FILE,FLOCNB 773= RE4 77GW ACROSS REPERR,4 782G 78G6 [ BREAK-IN EXIT SECTION 78^Q XBRC MFREEW FILE,ADICT 79FB MFREE FILE,FLOCNB 79^2 XBR 7=DL LDEX 0 AWORK3(2) 7=Y= BZE 0 XUP 7?CW MFREEW AONBS,GLIST [FREE GLIST IF SET UP 7?XG XUP 7#C6 UP 7#WQ 7*BB 7*W2 [ MAIN ERROR SECTION 7B*L OREP [REPLY FROM OPENCREX IS NOT OK 7BT= MFREEW FILE,ADICT 7C#W TESTREP2 DIRCLOSE,TAGN 7CSG MFREE FILE,FLOCNB 7D#6 RE 7DRQ ACROSS REPERR,2 7F?B TAGN 7FR2 ACROSS USERONE,2 7G=L NOJOB GEOERR 1,NOJOB 7GQ= [ 7H9W [ 7HPG ... MENDAREA 20,K99USERLIB 7JNQ #END ^^^^ ...43032536000100000000