{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: USERSTRM867)}}
====== USERSTRM867 ======
(George Source)
**Macros used:** [[george:macro:ACROSS|ACROSS]], [[george:macro:ADDMODE|ADDMODE]], [[george:macro:ANSOK2|ANSOK2]], [[george:macro:BASEFCB|BASEFCB]], [[george:macro:BBS|BBS]], [[george:macro:BBUS|BBUS]], [[george:macro:BS|BS]], [[george:macro:BXE|BXE]], [[george:macro:BXU|BXU]], [[george:macro:CLOSE|CLOSE]], [[george:macro:CLOSEMULT|CLOSEMULT]], [[george:macro:CLOSESET|CLOSESET]], [[george:macro:CLOSETOP|CLOSETOP]], [[george:macro:COOR3|COOR3]], [[george:macro:DOWN|DOWN]], [[george:macro:FREEBAX|FREEBAX]], [[george:macro:FREECORE|FREECORE]], [[george:macro:GEOERR|GEOERR]], [[george:macro:GETDIR|GETDIR]], [[george:macro:HUNT2|HUNT2]], [[george:macro:HUNTW|HUNTW]], [[george:macro:JBC|JBC]], [[george:macro:JBS|JBS]], [[george:macro:LFMULT|LFMULT]], [[george:macro:LOGACCESS|LOGACCESS]], [[george:macro:MASK|MASK]], [[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:NEXTFCB|NEXTFCB]], [[george:macro:OPEN|OPEN]], [[george:macro:OPENCREX|OPENCREX]], [[george:macro:OPENRELX|OPENRELX]], [[george:macro:PICKREP2|PICKREP2]], [[george:macro:PREP2|PREP2]], [[george:macro:PTREP2|PTREP2]], [[george:macro:PUTREP2|PUTREP2]], [[george:macro:REWRITE|REWRITE]], [[george:macro:SEG|SEG]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:SETBIT|SETBIT]], [[george:macro:SETMODE|SETMODE]], [[george:macro:SETNCORE|SETNCORE]], [[george:macro:SETREP|SETREP]], [[george:macro:SETREP2|SETREP2]], [[george:macro:SETUPMODE|SETUPMODE]], [[george:macro:SREP2|SREP2]], [[george:macro:SREPC2|SREPC2]], [[george:macro:TESTMODE|TESTMODE]], [[george:macro:TESTNAMX|TESTNAMX]], [[george:macro:TESTREP2|TESTREP2]], [[george:macro:TESTRPN2|TESTRPN2]], [[george:macro:TOPFCB2|TOPFCB2]], [[george:macro:TRACE|TRACE]], [[george:macro:UPPLUS|UPPLUS]], [[george:macro:USEROPEX|USEROPEX]], [[george:macro:VFREEBAX|VFREEBAX]], [[george:macro:VFREEW|VFREEW]]
22FL ... SEG USERSTRM,860,FILESTORE,USEROPES
22^= [
2394 ...[ (C) COPYRIGHT INTERNATIONAL COMPUTERS LTD 1983
23DW [
23YG SEGENTRY K1USERSTRM,MDFOPEN
24D6 SEGENTRY K2USERSTRM,MDFCREATE
24XQ [
25CB [
25X2 XALLOW +AREPLY+ANOWAIT+ALEAVE
26BL XENSURE +AGENERAL+AQUERY+AREPWAIT+ACREATE
26W= MASK #37777777
27*W OPMOD +AREPWAIT+AQUERY
27TG VERSION #00100001
28*6 [
28SQ [ ENTRY FROM USEROPEN.FILE EXISTS AND IS A MULTIFILE
29#B [ FABSNB,FLOCNB,ENT GIVEN.DIR OPEN AT TOP LEVEL
29S2 [
2=?L [
2=R= MDFOPEN
2?=W LDX 5 AWORK4(2)
2?QG TESTMODE 5,XCOMM,,COMMUNE [ ERROR IF COMMUNE GIVEN FOR A MULTIF
2#=6 TESTMODE 5,NOTER,NOT,ERASE [J IF NOT ERASE MODE
2#PQ CALL 7 SFILE
2*9B BRN MDFHERE [J IF ANOTHER ACT HAS MDF OPEN
2*P2 [ MDF NOT OPEN TO ANYONE; SO OPEN IT
2B8L SMO FX2
2BN= LDX 5 AWORK4
2C7W OPEN
2CMG LDX 1 FX1
2D76 SMO FX2
2DLQ LDX 0 AWORK2
2F6B BNG 0 MDFEMPTY [J IF MULT WAS (PARTIALLY) EMPTIED
2FL2 OPENMDF
2G5L ... LDX 4 5
2GK= ... ANDN 4 #7142 [MAIN,REPLY,NOWAIT,LEAVE
2H4W ... ORX 4 OPMOD(1)
2HJG LDN 1 #7000
2J46 ANDX 1 0
2JHQ SBN 1 #3000
2K3B BNZ 1 NOTAP
2KH2 [ TURN APPEND INTO GENERAL MODE
2L2L ... ADN 4 #2000
2LG= NOTAP
2LJ4 ...#UNS ILOGACC
2LKW ...(
2LLR ... TESTMODE AWORK4(2),XLOG,,ERASE
2LMN ... TESTMODE AWORK4(2),NOLOG,,DIR
2LQT ... LDX 1 AWORK3(2)
2LW2 ... SLC 1 9
2L^7 ... ANDN 1 #37
2M4B ... LOGACCESS 2,1 [LOG IF NECESSARY
2M68 ... BRN NOLOG
2M82 ...XLOG
2M9S ... LOGACCESS 4 [LOG ERASE
2M?L ...NOLOG
2M*D ...)
2MC= ... OPENRELX XBR,4 [OPEN MDF
2MFG TESTREP2 OK,REPOK,DIRCLOSE,TAGN
2M^6 TESTMODE 5,NOTOWN,NOT,ERASE [NON-OK REPLY,NOT ERASE MODE-GO REPER
2NDQ TESTREP2 CANT,XGERR,CLUDGE,XGERR
2NYB BRN NOTOWN
2PD2 XGERR
2PXL GEOERR 1,MDFCLERR
2QC= REPOK
2QWW MHUNT 1,FILE,FLOCNB
2RBG TRACE A1(1),MDFOPEN
2RW6 TOPFCB2 2
2S*Q BBUS 14,FSTREND(2),OPENORD
2STB CLOSE
2T*2 SETREP2 NOFILE
2TSL BRN NOTOWN
2W#= OPENORD
2WRW BS 2,BFMDFOP [MEANS MDF FULLY OPEN
2X?G [THIS BIT IS SET AFTER FILE HAS BEEN OPENED AND IS UNSET IN CLOSEMULT
2XR6 [SO THAT TO BE ERASED AND LIDSTFILE BITS GET PROPER ATTENTION
2Y=Q SMO FX1
2YQB LDX 0 MASK
2^=2 ANDS 0 FSTREND(2)
2^PL LDX 0 CTOPEN(2)
329= ANDX 0 HALFTOP
32NW BZE 0 NWR
338G TESTMODE 5,XEMPT,,EMPTY
33N6 [
347Q [ MULTI TO BE WRITTEN TO.SET FSTRID,BLOCKS ALTERED BIT
34MB [
3572 WRITMDF
35LL SETBIT 0,FSTREND(2)
366= LDX 0 ASTRID
36KW ADN 0 1
375G STO 0 ASTRID
37K6 STO 0 FSTRID(2)
384Q LDCT 0 #100
38JB ORS 0 COMM(2)
3942 TESTMODE 5,ZERMODE,,ERASE
39HL [ FOR AS *FW,MULT(APPE) WHERE MULT IS AN ALREADY EXISTING BASIC
3=3= [ FILE, WE INSURE THAT A NEW ELEMENT IS OF THE SAME TYPE/MODE
3=GW [ AS THE MDF (EVEN IF THE RECORDS ARE TO BE AMORPHOUS).
3?2G MHUNTW 1,FILE,CREATE
3?G6 BNG 1 NWR [J IF NO TYPE/MODE CHANGE TO BE MADE
3?^Q LDX 0 FETM(2) [GET TYPE/MODE OF THE MDF
3#FB STO 0 CETM(1) [PUT IT IN CREATE FOR THE ELEMENT
3#^2 BRN NWR
3*DL [ IN MARK6 MULTIFILES WERE 'OVERWRITTEN' (I.E., EMPTY-ED) BY ERASING
3*Y= [ (VIA CLOSEMULT) & THEN BRN TO 'TAGN' TO CREATE THE NEW MULTIFILE.
3BCW [ BUT BUG 9884--ORIGINAL TRAPS WERE LOST (SINCE DELETED BY ERASE).
3BXG [ SINCE MARK 7: ERASE ALL ELEMENTS EXCEPT MDF, THEN OPEN (EMPTY)
3CC6 [ THE MDF TO RETAIN TRAPS.
3CWQ
3DBB XEMPT
3DW2 TRACE FSTREND(2),EMPTMULT
3F*L
3FT= [ IF MDF HAS NO ELEMENTS, NO NEED TO OPENREL(EMPTY) THE MDF
3G#W LDEX 0 FSTREND(2) [GET NEW HIGHEST GEN. NO.
3GSG SBN 0 2
3H#6 BPZ 0 MULTCLOSE
3HRQ LDCT 0 #377
3J?B ANDX 0 FSTREND(2)
3JR2 SLC 0 9
3K=L SBN 0 2
3KQ= BPZ 0 MULTCLOSE [J IF ELEMENTS TO BE CHOPPED OFF
3L9W [ EVEN IF THE MDF HAS NO ELEMENTS, WE NEED TO INSURE THAT THE
3LPG [ TYPE/MODE CHANGES ARE MADE (E.G., WHEN OVERWRITING A BASIC MULT
3M96 [ BY AS *FW,MULT OR THE CONVERSE). WE ALTER THE FETM OF THE MDF
3MNQ [ BY THE TYPE/MODE OF THE NEW MULTIFILE AND LET CLOSE UPDATE THE ENT
3N8B MHUNTW 1,FILE,CREATE
3NN2 BNG 1 WRITMDF [J IF NO CREATE
3P7L LDX 0 CETM(1) [GET TYPE/MODE OF THE NEW MULTIFILE
3PM= STO 0 FETM(2) [PUT INTO THE UN-OVERWRITTEN MDF
3Q6W BRN WRITMDF
3QLG MULTCLOSE
3R66 LDN 0 1
3RKQ DEX 0 FSTREND(2)
3S5B CLOSEMULT [ERASE EXCESS ELEMENTS
3SK2 LDX 0 GSIGN [SET BIT TO INDICATE THAT A MULT
3T4L ORS 0 AWORK2(2) [HAS BEEN EMPTIED-FOR USERCREA
3TJ= BRN TAGN
3W3W [BRN TAGN BECAUSE NEW MULT MAY HAVE BEEN CREATED AFTER THE CLOSEMULT
3WHG
3X36
3XGQ
3Y2B MDFEMPTY
3YG2 [DESPITE AWORK2 INDICATION THAT THE MULT WAS EMPTIED, IT MAY NOT BE--
3Y^L [A NEW MULT MAY HAVE BEEN CREATED BY ANOTHER JOB AFTER ABOVE
3^F= [CLOSEMULT_ SO CHECK NO. OF ELEMENTS FROM ENT BLOCK.
3^YW
42DG MHUNTW 3,FILE,ENT
42Y6 [ CHEK OHGN SINCE UPDATED AT K2ERASE.
43CQ LDCT 0 #377
43XB ANDX 0 ESTREND(3) [GET OLD HIGHEST GEN. NO.
44C2 SLC 0 9
44WL SBN 0 2
45B= BPZ 0 OPENMDF [J TO OPEN MDF TO CHEK FSTREND
45TW [ OTHERWISE (ACCORDING TO THE ENT) THE MDF IS THE ONLY FILE LEFT
46*G CALL 7 XDUPLICATE [DUPLICATE THE CREATE BLOCK
46T6 LDX 0 5
47#Q ANDN 0 #7146 [MAIN,REPLY,NOWAIT,EMPTY,LEAVE
47SB ORX 0 OPMOD(1)
47W# ... LDN 1 #7000
47Y= ... ANDX 1 0
4828 ... SBN 1 #3000
4846 ... BNZ 1 NOTAP2
4864 ...[ TURN APPEND INTO GENERAL MODE
4882 ... ADN 0 #2000
489Y ...NOTAP2
48#2 OPENRELX XBR,0
48RL TESTREP2 OK,XEMPOK,DIRCLOSE,TAGN,NOFILE,TAGN
49?= BRN NOTOWN [REPORT OTHER ERRORS
49QW XEMPOK
4==G MHUNT 1,FILE,FLOCNB
4=Q6 TRACE A1(1),MDFONLY
4?9Q TOPFCB2 2
4?PB BS 2,BFMDFOP [MDF FULLY OPEN
4#92 BRN WRITMDF
4#NL
4*8= ZERMODE
4*MW SETBIT 14,FSTREND(2) [MARK MDF TO BE ERASED
4B7G CLOSEMULT
4BM6 SETREP2 OK [FABSNB USED BY CLOSEMULT
4C6Q SREPC2 MULTFILE [FOR ERASE'S SAKE
4CBJ ... LDN 4 0 [NO FILE OPENED
4CLB BRN UP1
4D62 [
4DKL [ ROUTINE TO CHECK IF ANYONE ELSE HAS THE MDF OPEN
4F5= [
4FJW SFILE
4G4G STO 7 ACOMMUNE4(2)
4GJ6 TOPFCB2 2
4H3Q ... MHUNT 3,FILE,ENT
4HHB ... LDX 4 ELOC1(3)
4J32 ... BASEFCB 1,FILE,SOL8,6
4JGL ...SOL1
4K2= ... BXE 4 FLOC1-FCBRING(1),SOL3 [COMPARE FCB LOCAAL NAME
4KFW ...SOL2 [NOT EQUAL SO TRY NEXT FCB
4K^G ... NEXTFCB 1,FILE,SOL1,6
4LF6 ... BRN SOL8 [END OF FCB RING
4LYQ ...SOL3
4MDB ... LDX 0 COMM-FCBRING(1) [FORGET DIRECTORIES
4MY2 ... BNG 0 SOL2
4NCL ...[
4NX= ...[ TEST FULL LOCAL NAME AND USER NAME
4PBW ...[
4PWG ... TESTNAMX 3,FUSER1-FCBRING(1),FME1(2),SOL2
4QB6 ... TESTNAMX 4,FLOC2-FCBRING(1),ELOC2(3),SOL2
4QTQ ... LDX 7 ELAN(3)
4R*B ... BXU 7 FLAN-FCBRING(1),SOL2
4RT2 ... SBN 1 FCBRING
53M2 SOL7 LDX 2 FX2
546L LDX 7 ACOMMUNE4(2)
54L= EXIT 7 0
555W SOL8 LDX 2 FX2
55KG LDX 7 ACOMMUNE4(2)
5656 EXIT 7 1
56JQ [
574B [
57J2 [
583L [ ROUTINE TO DUPLICATE THE FILE/CREATE BLOCK BECAUSE OPEN(EMPTY)
58H= [ OPEN(CREATE) CONSUME CREATE BLOCKSFOR THE MDF, NEED TO SET UP
592W [ ACREATE BLOCK FOR THE ELEMENT AS WELL.
59GG [
5=26 XDUPLICATE
5=FQ SBX 7 FX1
5=^B SETNCORE CREALEN,3,FILE,CREATE
5?F2 HUNT2 2,FILE,CREATE,3
5?YL LDCT 0 #460
5#D= ORS 0 CEINF1(2) [SERIAL,MDF,MULTEL
5#XW LDCT 0 #20
5*CG ERS 0 CEINF1(2) [INSURE ONLY MDF IS SET
5*X6 LDX 0 VERSION(1) [NO. OF GENERATIONS IN MULTIFILE
5BBQ STO 0 CEVERSION(2)
5BWB LDX 1 ALOGLEN(2)
5CB2 ADN 2 A1
5CTL ADN 3 A1
5D*= MOVE 2 0(1)
5DSW LDX 1 FX1
5F#G ADX 7 FX1
5FS6 EXIT 7 0
5G?Q [
5GRB [
5H?2 TAGNDIR
5HQL CLOSESET
5J== MFREEW FILE,ENT
5JB7 ... JBC NOWAIT,,ICTSW [J IF NOT ASF
5JG4 ... COOR3 #41 [WAIT TO ALLOW ACTS TO RUN
5JK^ ...NOWAIT
5JPW BRN TAGN
5K9G SER CLOSE
5KP6 SETREP2 NOFILE [MDF ERASED
5L8Q BRN NOTOWNT
5LNB [
5M82 [ ERASE MODE -- MDF OPEN TO ANOTHER ACTIVITY
5MML [ SEE GIM DOCUMENTATION FOR USERSTRM FOR EXPLANATIONS
5N7= [
5NLW MDFHERE
5P6G JBC TAGNDIR,1,BFMDFOP [J IF NOT FULLY OPEN
5PL6 BBS 14,FSTREND(1),SER [J IF ALREADY ERASED
5Q5Q SETBIT 14,FSTREND(1) [MARK TO BE ERASED
5QKB LDEX 7 FVERSION(1)
5R52 SBN 7 2
5RJL BNG 7 NONEOPEN
5S4= [
5SHW [ IF THERE IS AN ELEMENT OPEN FOR WRITING, SET T.B.E. BIT
5T3G [ THEN SET T.B.E. BIT IN THE MDF ENTRY
5TH6 [
5W2Q BBUS 0,CTOPEN(1),NONEOPEN
5WGB ADN 7 2
5X22 SETBIT
5XFL MHUNT 2,FILE,FLOCNB
5X^= STO 7 A1+4(2)
5YDW GETDIR 1
5YYG TESTRPN2 OK,XSETBIT
5^29 ...#UNS ILOGACC
5^3Y ...(
5^5M ... LDX 0 7 [ONLY LOG MDF IE GEN 1
5^7B ... SBN 0 1
5^95 ... BNZ 0 NLOG
5^=S ... LOGACCESS 4
5^#H ...NLOG
5^B= ...)
5^D6 MHUNTW 3,FILE,ENT
5^XQ BS 3,BEERASE [SET 'TO-BE-ERASED' BIT
62CB NAME 3,FILE,FWB
62X2 REWRITE
63BL MFREEW FILE,FWB
63W= XSETBIT
64*W SBN 7 1
64TG BZE 7 NONEXIST
65*6 NONEOPEN
65SQ LDN 7 1
66#B BRN SETBIT
66S2 NONEXIST
67?L CLOSETOP
67R= ANSOK2 OK
68=W SREPC2 MULTFILE
68QG MFREEW FILE,ENT
692# ... LDN 4 0 [NO FILE OPENED
69=6 BRN UP1
69PQ [
6=9B [ NOT ERASE MODE -- TEST WHETHER FREEZE MODE
6=P2 [
6?8L NOTER
6?N= TESTMODE 5,OPEN,NOT,FREEZE [OPEN MDF IF NOT FREEZING
6#7W [
6#MG [ NOW SEE WHETHER MULTIFILE OPEN
6*76 [
6*LQ CALL 7 SFILE
6B6B BRN MDFOUND
6BL2 [
6C5L [ MULTIFILE NOT OPEN-HAVE TO USE ENT TO GIVE LATEST INFO
6CK= [
6D4W MHUNTW 3,FILE,ENT
6DJG JBS TAGNDIR,3,BEUWB [IF UWB SET,TRY AGAIN
6F46 BBS 14,ESTREND(3),SER [J IF MARKED TO BE ERASED
6FHQ LDEX 6 ESTREND(3) [NO. OF EXISTING ELEMENTS
6G3B SBN 6 2
6GH2 BNG 6 NOCOMPS [J IF MULTIFILE EMPTY
6H2L BRN ZERMULTID
6HG= [ REPLY TOO MANY LISTFILES
6H^W Z511
6JFG CLOSETOP
6J^6 SETREP2 LF512
6KDQ BRN NOTOWNT
6KYB [
6LD2 [ THE MULTIFILE IS OPEN TO SOMEONEOR OTHER X1->FCB
6LXL [
6MC= MDFOUND
6MWW JBC TAGNDIR,1,BFMDFOP [J IF NOT FULLY OPEN
6NBG BBS 14,FSTREND(1),SER [J IF MARKED TO BE ERASED
6NW6 LDX 0 FREEZECOUNT(1)
6P5Y ... SEGENTRY K98USERSTRM [USED BY LISTMAX MACRO
6P*Q SBN 0 511
6PTB BPZ 0 Z511 [CHECK NOT MORE THAN 511 FREEZERS
6Q*2 BBS 0,FSTREND(1),OPWR
6QSL LDEX 6 FSTREND(1)
6R#= SBN 6 2
6RRW BNG 6 NOCOMPS
6S?G ZERMULTID
6SR6 ADN 6 2
6T=Q LDN 7 0 [DEFAULT SETTING AMULTID=0
6TQB BRN XFINDACT
6W=2 NOTYETWRIT
6WPL LDN 6 1 [ [X6] = 1 IF NO ELEMENTS
6X9= BRN XFINDACT
6XNW OPWR
6Y8G LDEX 0 FSTREND(1)
6YN6 SBN 0 2
6^7Q BNG 0 TAGNDIR [CANT FREEZE IF NO ELEMENTS
6^MB LDN 0 1
7272 ADS 0 FREEZECOUNT(1) [FREEZE ONCE
72LL LDX 7 FSTRID(1) [ X7=FSTRID IF MULT BEING WRITTENTO
736= LDEX 6 FSTREND(1)
73KW SBN 6 2
745G BNG 6 NOTYETWRIT
74K6 ADN 6 2
754Q XFINDACT
75JB SBN 6 1
7642 STO 6 4 [NO. OF ELEMENTS
76HL STO 7 5 [AMULTID
76L9 ...#UNS ILOGACC
76NS ...(
76RC ... LDN 1 CREAD [LOG LISTFILE
76W2 ... LOGACCESS 2,1
76YK ...)
773= BZE 6 RCLENT [J IF NO ELEMENTS TO FREEZE
77GW SETNCORE 6,3,FILE,FLOCNB
782G MHUNTW 2,FILE,ENT
78G6 ADN 3 A1
78^Q ADN 2 ELOC1
79FB MOVE 2 5
79^2 SBN 2 ELOC1
7=DL LDX 0 ELAN(2)
7=Y= SBN 3 A1
7?CW STO 0 A1+5(3)
7?XG ADN 6 1
7#C6 STO 6 A1+4(3)
7#WQ FREECORE 2
7*BB [
7*W2 [ CHECK THAT EACH ELEMENT EXISTS AND FREEZE IT
7B*L [
7BT= LDN 6 0 [NO. OF ELEMS OPEN FOR WRITING
7C#W XGET
7CSG GETDIR 1
7D#6 ... TESTRPN2 OK,MISSINGELEM
7FR2 DOWN COMPOST,8
7G2S ... TESTREP2 LF512,Z511
7G=L ADX 6 ACOMMUNE1(2) [ADX TO NO. OF ELEMS OPEN UNCLEANLY
7GQ= MFREEW FILE,ENT
7H24 ...MISSINGELEM
7H9W MHUNT 3,FILE,FLOCNB
7HPG LDX 7 A1+4(3)
7J96 SBN 7 1
7JNQ STO 7 A1+4(3)
7K8B SBN 7 1
7KN2 BNZ 7 XGET
7L7L BRN RCLOSE
7LM= RCLENT
7M6W MFREEW FILE,ENT
7MLG RCLOSE
7N66 BZE 5 NOSBX [J IF MDF NOT OPEN
7NKQ SBX 4 6 [SBX NO. OF ELEMS WHICH ARE (WERE)
7P5B NOSBX [OPEN FOR WRITING--HSPACTLF TAKES CAR
7PK2 LFMULT 4,5 [LISTFILING THEM (IF CLOSED)
7Q4L SREPC2 MULTFILE
7QJ= ANSOK2 OK
7QS4 ... LDN 4 0 [NO FILE OPENED
7R3W BRN UP1
7RHG NOCOMPS
7S36 MFREEW FILE,ENT
7SGQ CLOSETOP
7T2B BRN SEND
7TG2 NWR
7T^L HUNTW 2,FILE,CREATE
7WF= BNG 2 NFC
7WYW SAPHERE
7XDG LDCT 0 #460
7XY6 ORS 0 CEINF1(2)
7YCQ LDCT 0 #40
7YXB ERS 0 CEINF1(2)
7^C2 STOZ CEVERSION(2) [SHOULD BE ZERO FOR SERIAL NON-MDFS
7^WL NFC
82B= [
82TW [ TAKE OUT MULT,FILE MODES AND PUT IN MULTEL AND UNTRAP MODES
83*G [ TO INSURE THAT AN ELEMENT WILL BE OPENED AND THAT NO TRAPS
83T6 [ ARE CHECKED SINCE CHECK MUST HAVE BEEN MADE WHEN MDF WAS OPENED
84#Q [
84FY ...#UNS FTS1
84M6 ... SETUPMODE ,3,FROZEN
84SB ADDMODE 5,MULTEL,UNTRAP
85#2 #SKI AMULTUSER
85RL SETMODE 0,MULT,FILE
86?= #SKI AMULTUSER<1$1
86QW SETMODE 0,STREAMS,STREAMONLY
87=G ORX 5 0
87Q6 ERX 5 0 [TAKE OUT MODES
87T= ...#UNS FTS1
87YB ... USEROPEX XBR1,5,3
883G ...#UNS FTS1
886L ...#SKI
889Q USEROPEX XBR1,5
88PB TESTRPN2 OK,NOK1
88^8 ... LDN 4 2 [2 FILES OPENED (MDF+ELEM OR MDF+DIR)
8992 SREP2 MULTFILE [SET SUBSIDIARY REPLY
89NL LDX 0 AWORK2(2)
8=8= BNG 0 XNEW [J IF MULT CREATED BY EMPTYING
8=MW TESTMODE AWORK4(2),TRACEREP,NOT,OFFSET
8?7G [ J IF NEW ELEM NOT BEING APPENDED TO OLD MULT
8?M6 XNEW
8#6Q LDN 0 ANQNEWFILE [TAKE OUT NEWFILE SUBREP
8#LB ORS 0 ACOMMUNE2(2) [IF MULT WAS EMPTIED
8*62 ERS 0 ACOMMUNE2(2)
8*KL TRACEREP
8B5= #SKI K6USERSTRM>199-199
8BJW TRACE ACOMMUNE2(2),REP2
8C4G UP1
8CJ6 VFREEW FILE,FTRAP
8D3Q MFREE FILE,FLOCNB
8DHB HUNTW 1,BSTB,FULLB
8F32 BNG 1 NOFULL
8FGL LDX 2 FX2
8G2= PICKREP2 6
8GFW PREP2 7
8G^G FREEBAX
8HF6 MFREEW BSTB,EMPTYB
8HYQ PUTREP2 6
8JDB PTREP2 7
8JY2 NOFULL
8J^F ... LDN 3 1 ['UPPLUS 1' EXIT
8K2Y ...RETURNUP
8K4C ...#
8K5W ...# ROUTINE TO EXIT, BEARING IN MIND SHARED FILESTORE ENHANCEMENT
8K7* ...# X3=0 => UP, X3=1 => UPPLUS 1
8KTB ... UPPLUS 0(3) ['UP' OR 'UPPLUS 1' EXIT
8KX=
8LBW
8LWG
8MB6 [ ENTRY FOR CREATING MULT
8MTQ [
8N*B [
8NT2 MDFCREATE
8P#L TESTMODE 5,XCOMM,,COMMUNE
8PS= MHUNT 2,FILE,FLOCNB
8Q?W LDX 0 A1+4(2) [GET GENERATION NO.
8QRG SBN 0 1 [IF NOT = 1, CANT CREATE AS MDF
8R?6 BZE 0 TYPECHEK
8RQQ SETREP NAMEFORM [INCORRECT ENTRANT DESCR. FORMAT
8S=B BRN XTYPE
8SQ2 TYPECHEK
8T9L [ BUG 599-*MT & *DA MULTIFILES CREATED. CHECK CETM
8TP= [
8W8W MHUNTW 3,FILE,CREATE
8WNG LDCT 0 #377
8X86 ANDX 0 CETM(3) [GET PERIPHERAL TYPE
8XMQ SLC 0 9
8Y7B SBN 0 5 [SLOW PERIPHERAL TYPES<5
8YM2 BNG 0 OKTYPE
8^6L SETREP PERITYPE
8^L= BRN XTYPE
925W OKTYPE
92KG LDX 4 5
9356 ANDX 4 XALLOW(1)
93JQ ORX 4 XENSURE(1)
944B CALL 7 XDUPLICATE [DUPLICATE CREATE BLOCK
94J2 #SKI K6USERSTRM>99-99
953L TRACE 4,OPINGMDF
95H= OPENCREX XBR,4
962W TESTREP2 OK,OPOK
96GG MFREEW FILE,CREATE [FREE ONE CREATE BLK
9726 BRN NOK
97FQ OPOK
97^B LDX 5 AWORK4(2)
98F2 SETMODE 0,EMPTY [INSURE THAT 'EMPTY' NOT GIVEN
98YL ORS 0 5 [TO AVOID CLOSEMULT BUSINESS ABOVE
99D= ERS 0 5
99XW BRN REPOK
9=CG TAGN
9=X6 SETMODE 0,UNTRAP
9?BQ LDX 2 FX2
9?WB ORS 0 AWORK4(2)
9#B2 ACROSS USERONE,2
9#TL
9**=
9*SW XTYPE
9B#G MFREEW FILE,CREATE
9BS6 BRN NOTOWN
9C?Q NOTOWNT
9CRB ... VFREEW FILE,ENT
9D?2 BRN NOTOWN
9DQL
9F== NOK
9FPW TESTREP2 DIRCLOSE,TAGN
9G9G NOTOWN
9GP6 MFREE FILE,FLOCNB
9H8Q RE2
9HNB ACROSS REPERR,2
9J82 XCOMM
9JML SETREP2 COMMULT
9K7= BRN NOTOWNT
9KLW SEND
9L6G SETREP EMPTMULT [MULT HAS NO ELEMENTS
9LL6 BRN NOTOWN
9M5Q
9MKB
9N52 NOK1
9NJL TESTREP2 ENDMULT,SEND,MULTFULL,NOTOWN
9P4= PICKREP2 4
9PHW CLOSEMULT
9Q3G PUTREP2 4
9QH6 [ PASS OTHER REPLIES UP AS THEY HAVE ALREADY BEEN THROUGH REPERR.
9QQY ... LDN 4 0 [NO FILE OPENED
9R2Q BRN UP1
9RGB
9S22
9SFL XBR1 [BREAK-IN ON ELEMENT
9S^= CLOSEMULT
9TDW XBR [BREAK-IN ON MDF
9TYG VFREEW FILE,FTRAP
9WD6 MFREE FILE,FLOCNB
9WXQ VFREEBAX
9XCB VFREEW FILE,ENT
9XX2 VFREEW FILE,CREATE
9Y9C ... LDN 3 0 ['UP' EXIT
9YHS ... BRN RETURNUP
9YW= [
9^*W [
9^TG ... MENDAREA 20,K99USERSTRM
=2SQ
=3#B
=3S2 #END
^^^^ ...45234361000100000000