USERSTRM867

(George Source)

Macros used: ACROSS, ADDMODE, ANSOK2, BASEFCB, BBS, BBUS, BS, BXE, BXU, CLOSE, CLOSEMULT, CLOSESET, CLOSETOP, COOR3, DOWN, FREEBAX, FREECORE, GEOERR, GETDIR, HUNT2, HUNTW, JBC, JBS, LFMULT, LOGACCESS, MASK, MENDAREA, MFREE, MFREEW, MHUNT, MHUNTW, NAME, NEXTFCB, OPEN, OPENCREX, OPENRELX, PICKREP2, PREP2, PTREP2, PUTREP2, REWRITE, SEG, SEGENTRY, SETBIT, SETMODE, SETNCORE, SETREP, SETREP2, SETUPMODE, SREP2, SREPC2, TESTMODE, TESTNAMX, TESTREP2, TESTRPN2, TOPFCB2, TRACE, UPPLUS, USEROPEX, VFREEBAX, VFREEW

USERSTRM867.txt
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