SJOPEN863

(George Source)

Macros used: ACROSS, BACKWAIT, BC, BS, CHANGEFILE, CLOSE, CLOSETOP, COOR1, COOR4, CREATEB, ERASE, FILECOUNT, FINDACTX, FON, FPUT, GEOERR, GETACT, HUNT, HUNTANY, JBC, JBS, LINK, LINKSET, MBC, MENDAREA, MFREE, MHUNTW, MONOUT, NAMEX, NOBITS, OPEN, OPENDIR, OUTPACK, POINTACT, READAGAIN, SEG, SEGENTRY, SETNCORE, STEP, STRINGS, SUICIDE, SWITCHES, TABDRIVE, TABLSET, TABRET, TESTREP2, TESTRPN2, TOPFCB2, TRACEIF, WHATBACK, WRITEAUTO

SJOPEN863.txt
22FL          SEG   SJOPEN,,MIKE PUTNAM,FILESTORE   
22^=
23DW    # THIS CHAPTER DOES ALL THE OPENING AND CLOSING OF THE SYSTEM JOURNAL   
23YG    # FILE  :JOURNAL.SJFILE(N/B1)   
24D6
24XQ    # ENTRY POINTS  
25CB    # K1 AUTONOMOUS OPEN OF FILE.   
25X2    # K2 NON-AUTONOMOUS OPEN, RESERVED ENTRY POINT. 
26BL    # K3 CLOSE PRESENT GENERATION OF FILE.  
26W=    # K4 ENTRY POINT FOR AUTONOMOUS ACTIVITY
27*W
27TG          SEGENTRY K1SJOPEN,SJOPEN1 
28*6          SEGENTRY K2SJOPEN,SJOPEN2    [GEOERR  
28SQ          SEGENTRY K3SJOPEN,SJOPEN3 
29#B          SEGENTRY K4SJOPEN,SJOPEN4 
29S2    XMIN           +JOURMIN 
2=?L    XJSJSIZE       +JSJSIZE 
2=R=          SEGENTRY  BSJSIZE            [ALLOWS MENDING OF PREV 2 LINES  
2?=W    XLINK LINK     SJOPEN,4 
2?QG
2#=6          STRINGS  0,XA,XB,XC,XD,XE 
2#PQ    SWITCHK1
2*9B          SWITCHES SWITCHK1,XA,XB,XC,XD,XE  
2*P2
2B8L    #DEF           T1BITS=3 
2BN=    #DEF           XLEN=10             [LENGTH OF DATA IN FABSNB
2C7W    #DEF           XRES=A1+1           [RES LOC IN BSTB/FULLB   
2CMG    #DEF           XBLK=A1+2           [START OF LIST OF BLOCKS IN FULLB
2D76    #DEF           XFABSDATA=A1        [START OF DATA IN FILE/FABSNB
2DLQ    #DEF           XGEN=A1+8           [GENERATION NO LOCATION IN FABSNB
2F6B
2FL2    V4096          +4096
2G5L    XFILE          [SKELETON FILE/FASNB FOR :JOURNAL/SJFILE 
2GK=                   +XLEN
2H4W                    36HJOURNAL     SJFILE      0001    B1   
2HJG
2J46    XCREATB 
2JHQ                   +0   
2K3B                   #40000012       [GRAPHIC TR  
2KH2                   #600:0          [CEINF1 = SERIAL, LAST REEL  
2L2L                   #40002002       [CEINF2 = TO BE DUMPED, IN DIRECT DUMP,  
2LG=                                   [AND REVERED 
2L^W    #DEF           XCREATM=0?-XCREATB   
2MFG    XTRAPREC       +XTRAPSIZE   
2M^6                   12HJOURNAL   
2N?H ...               #200:CWRITE+CERASET+CAPPEND+CEXECUTE 
2NKY ...                                   [TS ALLBUT READ TO JOURNAL   
2NYB                   +XTRAPSIZE   
2PD2                   12HMANAGER   
2PXL                   +CREAD   
2QC=    #DEF           XTRAPSIZE=ETRAPMODES-ETRAPRH+1   
2QWW    #DEF           NOTRAPS=0?-XTRAPREC/5
2RBG    #DEF           XTRAPNAME=1         [DISTANCE INTO FTRAP BLOCK OF NAME.  
2RW6    XFILETRAP   
2S*Q    #HAL           FILE+FTRAP,0 
2STB
2T*2    #              DECISION TABLE SWITCHES. 
2TSL    #              THIS TABLE IS THE SWITCH FOR ENTRY POINT 1   
2W#=    #   
2WRW          NOBITS   1,T1BITS 
2X?G    TABK1   
2XR6          TABLSET  XA,XB
2Y=Q          TABLSET  XC   
2YQB          TABLSET  XB   
2^=2          TABLSET  XC   
2^PL          TABLSET  XA,XE
329=          TABLSET  XE   
32NW          TABLSET  XD   
338G          TABLSET  XD   
33N6    XAL                                [START AUTO OPEN 
347Q          BS    2,BJFILINIT            [SET 'FILE INITIALISING' BIT 
34MB          GETACT   BSA,JOUROPEN 
3572          LDN   4  JGEN(2)  
35LL          TRACEIF  K6SJOPEN,199,299,4,SJO1A 
366=          LDX   2  BPTR(2)             [NEW ACTIVITY
36KW          LDN   5  JGEN(2)  
375G          MOVE  4  JOUROPENLEN  
37K6          LINKSET  2,XLINK(1)   
384Q          FPUT  
38JB          TABRET   1
3942
39HL    XBL                                [COORDINATE ENTRY
39J* ...#UNS  ILOGACC   
39K4 ...(   
39KR ...      LDN   7  JLTIMEOUT      [TIME OUT PERIOD FOR WAIT 
39LG ...XCOOR   
39M9 ...      COOR4    JLWAIT         [WAIT FOR NEW FILE TO BE SET UP   
39MY ...      JBC      XREADY,2,BJFILINIT  [J IF NEW FILE READY 
39NM ...      SBN   7  FONINTP  
39PB ...      BPZ   7  XCOOR          [CONT WAITING UNLESS TIMED OUT
39Q5 ...      HUNTANY  3,GMON,JRNAL,BSJC,XBL,REENT  
39QS ...[                             [HUNT BLOCKS ON SJ CHAIN FOR...   
39RH ...      LDX   6  JWAITER(3)     [NON-AUTONOMOUS OUTPUT... 
39S= ...      BZE   6  REENT          [AND MAKE THEM AUTONOMOUS...  
39S^ ...      STOZ     JWAITER(3)     [IN CASE THEIR ACTIVITY IS... 
39TN ...      FINDACTX 2,6            [IS LOCKING OUT SJ OPENING
39WC ...      FPUT  
39X6 ...      BRN      REENT
39XT ...XREADY  
39YJ ...)   
39^? ...#UNS  ILOGACC   
3=22 ...#SKI
3=3=          COOR1 
3=GW          TRACEIF  K6SJOPEN,199,299,JSWITCH1(2),SJO1B   
3?2G    XCL 
3?G6          BS    2,BJFILOPEN            [SET 'FILE IN USE' BIT   
3?^Q          FILECOUNT 0   
3#FB          TRACEIF  K6SJOPEN,199,299,0,SJO1C 
3#^2          SBN   0  2
3*DL          BPZ   0  XC1  
3*Y=          BC    2,BJFILREADY         [CLEAR 'FILE READY' BIT
3BCW    XC1 
3BXG          LDX   7  JGEN(2)             [GET GEN NO  
3CC6          STO   7  CJGEN(2)            [PUT WHERE OTHERS CAN GET IT 
3CWQ          TRACEIF  K6SJOPEN,199,299,7,SJO1CJG   
3DBB          OUTPACK  7,1,GENNUM          [OUTPUT IT AS A PARAM
3DW2          MONOUT   JOURNALGEN          [MESSAGE [GEN. %A OF JOURNAL STARTED[
3F*L    XEL                                [RESTART APPENDING   
3FT=          TRACEIF  K6SJOPEN,199,299,JSWITCH1(2),SJO1E   
3G#W          ACROSS   SJLOOP,1 
3GSG    XDL 
3H#6          GEOERR   1,SJLOGIC
3HRQ
3J?B    #              PLEASE OPEN ENTRY POINT  
3JR2
3K=L    SJOPEN1 
3KQ=    #  SINCE BJFILOPEN,BJFILINIT, AND BJFILREADY FORM AN INDEX FOR  
3L9W    #  THE FOLLOWING TABLE DRIVE, THEY SHOULD BE ALTERED WITH CARE  
3LPG          LDX   3  JSWITCH1(2)  
3M96          SRL   3  21                  [MANUFACTUR& INDEX   
3MNQ          TRACEIF  K6SJOPEN,199,299,3,SJO1  
3N8B          TABDRIVE 3,TABK1,T1BITS,SWITCHK1,1
3NN2          GEOERR   1,SJLOGIC
3P7L
3PM=
3Q6W    #              CLOSE TOP LEVEL FILE ENTRY POINT 
3QLG    SJOPEN3 
3R66          TRACEIF  K6SJOPEN,199,299,CJGEN(2),SJO3FC 
3RKQ          JBS   XK3L1,2,BJFILOPEN      [J IF FILE IN USE
3S5B    SJOPEN2 
3SK2          GEOERR   1,SJOPNER1          [LOGICAL ERROR NO TOP LEVEL FILE 
3T4L    XK3L1   
3T7Q ...      TOPFCB2  3
3T=W ...      LDN   0  FILESIZE            [BEFORE WE CLOSE THE FILE WE RESET   
3TB2 ...      STO   0  FSIZE(3)            [THE ARTIFICIALLY LOW MAXSIZE TO 
3TF6 ...                                   [THE STANDARD FOR SERIAL FILES.  
3TJ=          CLOSE 
3W3W          BC    2,BJFILOPEN          [CLEAR FILE IN USE BIT 
3WHG          BRN      K1SJOPEN 
3X36    XGETTRAP                           [ROUTINE TO OBTAIN OLD TRAP RECORDS. 
3XGQ          LDX   7  JGEN(2)             [GENERATION NO OF OLD FILE   
3Y2B          BZE   7  XFREEFABSNB         [1ST TIME OF SETTING UP. 
3YG2          LDN   2  XFILE(1) 
3Y^L          ADN   3  XFABSDATA
3^F=          MOVE  2  XLEN                [MOVE IN ABSOLUTE NAME   
3^YW          STO   7  XGEN-XFABSDATA(3)   [GEN. NO.
42DG          OPENDIR  XK4L5,READ,ERASING,QUERY 
42Y6          TESTREP2 OK,XK3L2,MAG,XK3L2   
43CQ          BRN      XFREEFABSNB  
43XB    XK3L2   
44C2    [     NOTE WE CANNOT GET HERE UNLESS THERE IS A NAME RECORD FOR THE FILE
44WL    XTRAPSTEP   
45B=          STEP  
45TW          BZE   3  XFREEENT            [EOF.
46*G          LDX   0  EDESCRIBE(3) 
46T6          BZE   0  XFREEENT 
47#Q          BPZ   0  XTRAPSTEP
47SB    READIT  
48#2          READAGAIN 
48RL          MHUNTW   3,FILE,FRB   
49?=          LDX   0  XFILETRAP(1) 
49QW          NAMEX    3
4==G          BRN      XTRAPSTEP           [LOOP TO NEXT TRAP RECORD.   
4=Q6    XFREEENT
4?9Q          MFREE    FILE,ENT 
4?PB          CLOSETOP  
4#92    XFREEFABSNB 
4#NL          MFREE    FILE,FABSNB  
4*8=          BRN      XFABSLOOP
4*MW
4B7G
4BM6    #              AUTONOMOUS OPEN ACTIVITY ENTRY POINT 
4C6Q    SJOPEN4 
4CLB          LDX   7  XJSJSIZE(1)       [USUAL SIZE OF FILE
4D62
4DKL    #     ATTEMPT TO GRAB REQUIRED NO OF B.S. BLOCKS
4F5=
4FJW    XGRAB   
4FMF ...#     DO NOT ALLOCATE ENHANCEMENT, DS8416.  
4FQ4 ...#UNS  ANOTALLOC 
4FSM ...      WHATBACK 4,7,NOTENUFF,,VSF
4FX= ...#UNS  ANOTALLOC 
4F^T ...#SKI
4G4G          WHATBACK 4,7,NOTENUFF 
4GJ6    XGOTBS  
4H3Q          TRACEIF  K6SJOPEN,199,299,7,SJO4SFS   
4HHB          STO   7  AWORK2(2)
4J32    #     INITIALISE THE B.S. BLOCKS BY SETTING WORD 0 OF BLOCK TO ZERO 
4JGL
4K2=          LDN   5  GZERO               [FIXED CORE WORD CONTAING 0  
4KFW          LDN   6  GSBS 
4K^G          HUNT     3,BSTB,FULLB        [ADDRESS OF LIST OF BLOCKS   
4LF6          LDX   4  XRES(3)             [BS. RESIDENCE NUMBER
4LYQ    XINITLOOP   
4MDB          HUNT     3,BSTB,FULLB 
4MY2          SMO      7
4NCL          LDX   3  XBLK-1(3)
4NX=
4PBW    # NOTE  
4PWG    # 3=BLOCK BEING INITIALISED 
4QB6    # 4=RESIDENCE NO
4QTQ    # 5=ADDRESS OF 1ST WORD 
4R*B    [ 6=NO OF WORDS TO BE TRANSFERED.   
4RT2    # 7=NO OF BLOCKS REMAINING  
4S#L
4SS=    # NOTE ALSO THAT IS THERE IS A B.S. FAILURE THEN THE BS. TRANSFER SYSTEM
4T?W    # WILL REPLACE THE FAILED BLOCK.
4TRG
4W?6          WRITEAUTO BSET+FAIL,EX6,,EX4,3,EX5
4WQQ          BCT   7  XINITLOOP
4X=B
4XQ2    # SET UP THE FILE/FABSNB
4Y9L    [              ONE TO FIND THE TRAPS & THE 2ND TO CREATE THE FILE   
4YP=          LDN   6  2                   [2 FABSNBS   
4^8W
4^NG    XFABSLOOP   
5286          SETNCORE XLEN,3,FILE,FABSNB   
52MQ          BCT   6  XGETTRAP 
537B          LDN   7  1
53M2          ADS   7  JVERSION(2)         [VERSION NUMBER INCREASED
546L          ADX   7  JGEN(2)  
54L=          TXU   7  V4096(1) 
555W          BCS      XK4L3
55KG          LDN   7  1
5656    XK4L3   
56JQ          STO   7  JGEN(2)             [GENERATION NO UPDATED   
574B          LDN   2  XFILE(1) 
57J2          ADN   3  XFABSDATA
583L          MOVE  2  XLEN                [MOVE IN ABSOLUTE NAME   
58H=          STO   7  XGEN-XFABSDATA(3)   [STORE GENERATION NUMBER 
592W
59GG    # FILE/FABSNB IS NOW SET UP 
5=26    # NOW CREATE THE FILE/CREATE BLOCK  
5=FQ
5=^B          CREATEB   
5?F2          HUNT     3,FILE,CREATE
5?YL          BPZ   3  XK4L4
5#D=    XK4L5   
5#XW          GEOERR   1,SJCREATE   
5*CG    XK4L4   
5*X6          LDN   0  CERET(3) 
5BBQ          LDN   7  XCREATB(1)   
5BWB          MOVE  7  XCREATM             [MOVE SKELETON IN.   
5CB2
5CTL          LDX   7  JVERSION(2)  
5D*=          STO   7  CEVERSION(3)        [VERSION NO  
5DSW          LDX   7  AWORK2(2)
5F#G          STO   7  CEINF3(3)           [NO OF GSBS BLOCKS   
5FS6    [     NOW SET UP THE FILE/FTRAP BLOCKS  
5G?Q          LDN   4  NOTRAPS  
5GRB         LDN   3  XTRAPSIZE 
5H?2    NEXTRAP 
5HQL          SETNCORE XTRAPSIZE,2,FILE,FTRAP   
5J==          ADN   2  ETRAPRH  
5JPW          LDX   7  4
5K9G          SBN   7  1
5KP6          MPY   7  XTRAPREC(1)  
5L8Q          ADN   1  XTRAPREC 
5LNB          ADX   1  0
5M82          MOVE  1  0(3) 
5MML          BCT   4  NEXTRAP  
5N7=    [   
5NLW    [              MOVE IN POSSIBLE PSEUDO USER JOURNAL'S REAL USER NAME
5P6G          LDX   1  FX2  
5PL6          ADN   1  JNLUSER  
5Q5Q          ADN   2  XTRAPNAME
5QKB          MOVE  1  3                   [MOVE IN REAL USER   
5R52    [   
5RJL          BACKWAIT                     [UNTIL BS INITIALISED
5TH6    # THE FILE IS NOW OPENED
5W2Q
5W7Y ...RETRYOPEN   
5W*6 ...      OPEN     XK4L5,CREATE,APPEND,COMMUNE,QUERY
5WG# ...      TESTREP2 ALREADY,XALREADY    [IF FILE ALREADY EXISTS TKE  
5WMG ...                                   [EMERGENCY RECOVERY ACTION   
5WSN ...      TESTRPN2 OK,XOPENERR        [BREAK FOR OTHER REPLIES  
5X22          POINTACT SJ,3 
5XFL          CHANGEFILE 3,-1   
5X^=    # CODE BETWEEN ****S MUST BE OBEYED IN 1 CO-ORDINATION  
5YDW
5YYG    #              ************ 
5^D6          LDX   7  JGEN(2)  
5^XQ          STO   7  JGEN(3)  
62CB          LDX   7  JVERSION(2)  
62X2          STO   7  JVERSION(3)  
639C ...      MBC   3,BJFILINIT,BJFILSWITCH[CLEAR 'FILE INITIALISING' AND   
63HS ...                                   ['FORCE FILE SWITCH NOW' BITS
63W=          JBS   XSUICIDE,3,BJFILOPEN   [J IF FILE IN USE
64*W          LDX   2  3
64TG    #              ******** 
64YL ...#UNS  ILOGACC   
653Q ...      FON      JLWAIT              [RESTART ACTIVITY
656W ...#UNS  ILOGACC   
65=2 ...#SKI
65*6          FPUT                         [RESTART ACTIVITY
65SQ          BRN      XSUI 
66#B    XSUICIDE
66S2          BS    3,BJFILREADY            [SET FILE READY BIT 
67?L    XSUI
67R=          SUICIDE   
68=W    #              ******** 
68QG
69=6
69PQ
6=9B    #   
6=P2    NOTENUFF                           [TAKE 75% AS NEXT ATTEMPT
6?8L          LDX   0  7
6?N=          SRL   0  2
6#7W          SBX   7  0                   [75% 
6#MG          TXL   7  XMIN(1)  
6*76          BCC      XGRAB               [NOT BELOW MIN   
6*LQ          LDX   7  XMIN(1)  
6B6B          LDCT  6  #200                [BIT 1   
6BL2          ORS   6  CLONG1(2)
6BNK ...#     DO NOT ALLOCATE ENHANCEMENT, DS8416   
6BR8 ...#UNS  ANOTALLOC 
6BTR ...      WHATBACK 4,7,,,VSF
6BYB ...#UNS  ANOTALLOC 
6C2^ ...#SKI
6C5L          WHATBACK 4,7  
6CK=          ORS   6  CLONG1(2)
6D4W          ERS   6  CLONG1(2)
6DJG          BRN      XGOTBS   
6F46    #   
6F5C ...XOPENERR
6F6N ...      GEOERR   BRIEFPM,SJOPENER 
6F7^ ...#   
6F9= ...XALREADY
6F=H ...      OUTPACK  JGEN(2),1,GENNUM 
6F?S ...      MONOUT   JOURCLASH           [INFORM OPS OF CLASH 
6F*5 ...      MONOUT   JOURERASE           [TELL THEM FILE IS BEING ERASED  
6FBB ...      ERASE 
6FCM ...      BRN      RETRYOPEN
6FDY ...#   
6FG9 ...#   
6FHQ          MENDAREA   30,K99SJOPEN   
6G3B    #   
6GH2    #END
^^^^ ...12465507000200000000