{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: USERLIB867)}}
====== USERLIB867 ======
(George Source)
**Macros used:** [[george:macro:ACROSS|ACROSS]], [[george:macro:BBS|BBS]], [[george:macro:BBUS|BBUS]], [[george:macro:BRUSEN|BRUSEN]], [[george:macro:BXGE|BXGE]], [[george:macro:CLOSETOP|CLOSETOP]], [[george:macro:DOWN|DOWN]], [[george:macro:FINDCORE|FINDCORE]], [[george:macro:FJOCA|FJOCA]], [[george:macro:FREECORE|FREECORE]], [[george:macro:FREETAB|FREETAB]], [[george:macro:GEOERR|GEOERR]], [[george:macro:GETCORE|GETCORE]], [[george:macro:HUNT2|HUNT2]], [[george:macro:KEEPREP|KEEPREP]], [[george:macro:LOGACCESS|LOGACCESS]], [[george:macro:MENDAREA|MENDAREA]], [[george:macro:MFREE|MFREE]], [[george:macro:MFREEW|MFREEW]], [[george:macro:MHUNT|MHUNT]], [[george:macro:MHUNTW|MHUNTW]], [[george:macro:NAME|NAME]], [[george:macro:OPENCREX|OPENCREX]], [[george:macro:PICKREP2|PICKREP2]], [[george:macro:PREP|PREP]], [[george:macro:PUTREP2|PUTREP2]], [[george:macro:READ|READ]], [[george:macro:READAGAIN|READAGAIN]], [[george:macro:SEG|SEG]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:SETNCORE|SETNCORE]], [[george:macro:TABULATE|TABULATE]], [[george:macro:TESTMODE|TESTMODE]], [[george:macro:TESTREP2|TESTREP2]], [[george:macro:TESTRPN2|TESTRPN2]], [[george:macro:TOPFCB2|TOPFCB2]], [[george:macro:TRACE|TRACE]], [[george:macro:UP|UP]], [[george:macro:UPPLUS|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