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