{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: SJOPEN863)}}
====== SJOPEN863 ======
(George Source)
**Macros used:** [[george:macro:ACROSS|ACROSS]], [[george:macro:BACKWAIT|BACKWAIT]], [[george:macro:BC|BC]], [[george:macro:BS|BS]], [[george:macro:CHANGEFILE|CHANGEFILE]], [[george:macro:CLOSE|CLOSE]], [[george:macro:CLOSETOP|CLOSETOP]], [[george:macro:COOR1|COOR1]], [[george:macro:COOR4|COOR4]], [[george:macro:CREATEB|CREATEB]], [[george:macro:ERASE|ERASE]], [[george:macro:FILECOUNT|FILECOUNT]], [[george:macro:FINDACTX|FINDACTX]], [[george:macro:FON|FON]], [[george:macro:FPUT|FPUT]], [[george:macro:GEOERR|GEOERR]], [[george:macro:GETACT|GETACT]], [[george:macro:HUNT|HUNT]], [[george:macro:HUNTANY|HUNTANY]], [[george:macro:JBC|JBC]], [[george:macro:JBS|JBS]], [[george:macro:LINK|LINK]], [[george:macro:LINKSET|LINKSET]], [[george:macro:MBC|MBC]], [[george:macro:MENDAREA|MENDAREA]], [[george:macro:MFREE|MFREE]], [[george:macro:MHUNTW|MHUNTW]], [[george:macro:MONOUT|MONOUT]], [[george:macro:NAMEX|NAMEX]], [[george:macro:NOBITS|NOBITS]], [[george:macro:OPEN|OPEN]], [[george:macro:OPENDIR|OPENDIR]], [[george:macro:OUTPACK|OUTPACK]], [[george:macro:POINTACT|POINTACT]], [[george:macro:READAGAIN|READAGAIN]], [[george:macro:SEG|SEG]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:SETNCORE|SETNCORE]], [[george:macro:STEP|STEP]], [[george:macro:STRINGS|STRINGS]], [[george:macro:SUICIDE|SUICIDE]], [[george:macro:SWITCHES|SWITCHES]], [[george:macro:TABDRIVE|TABDRIVE]], [[george:macro:TABLSET|TABLSET]], [[george:macro:TABRET|TABRET]], [[george:macro:TESTREP2|TESTREP2]], [[george:macro:TESTRPN2|TESTRPN2]], [[george:macro:TOPFCB2|TOPFCB2]], [[george:macro:TRACEIF|TRACEIF]], [[george:macro:WHATBACK|WHATBACK]], [[george:macro:WRITEAUTO|WRITEAUTO]]
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