Show pageBacklinksBack to top This page is read only. You can view the source, but not change it. Ask your administrator if you think this is wrong. {{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]] <code - 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 </code> Last modified: 17/01/2024 11:55by 127.0.0.1 Log In