15 22FL ... SEG FREEBUFF,,P.R. CRUICKSHANK,FILESTORE 11 22_= ... SEGENTRY K1FREEBUFF,ZFBALL 12 23DW ... SEGENTRY K2FREEBUFF,ZFBAOLPTS 12 23YG ... SEGENTRY K3FREEBUFF,ZFBCACT 12 24D6 ... SEGENTRY K4FREEBUFF,ZFBFILE 21 24XQ ...[ THIS SEGMENT WRITES AWAY FUWBS AND FURWBS(USING THE FRITE 21 25CB ...[ ASSOCIATED WITH EITHER A WHOLE JOB , A SINGLE ACTIVITY, 17 25X2 ...[ ALL THE AOLPTS OF A JOB OR A SINGLE FILE. 4 26BL ...[ 11 26W= ...[ ENTRY POINTS :- 20 27*W ...[ 1 FREEBUFF ALL ACTIVITIES TO A JOB 19 27TG ...[ 2 FREEBUFF ALL AOLPTS TO A JOB 18 28*6 ...[ 3 FREEBUFF CURRENT ACTIVITY 21 28SQ ...[ 4 FREEBUFF A FILE CHAINED TO THE CURREN 14 29#B ...[ ACTIVITY 4 29S2 ...[ 21 2=?L ...[ 1 AND 2 THE CALLING ACTIVITY SHOULD BE A CPAT OR AN APET 16 2=R= ...[ FOR 4 X3 MUST CONTAIN THE FILE DEPTH 4 2?=W ...[ 12 2?GN ...[ FOR TESTING PURPOSES ONLY : 13 2?QG ...[ SET K6FREEBUFF TO 200 FOR TRACES 15 2#2# ...[ 500 TO TEST SEMAPHORES 14 2#=6 ...[ 1000 FOR TRACEVERS 4 2#FY ...[ 5 2#PQ ...XLINK 19 2#_J ... LINK FREEBUFF,1 [ FOR LINKSET MACRO AFTER CHANGEACTS 18 2*9B ...[ THIS ROUTINE GETS A POINTER IN X2 TO THE CALLING ACTIVITY 17 2*P2 ...[ ( IT USES THE INDICATOR IN X7 TO TELL IT WHETHER THE 13 2B8L ...[ CALLING ACTIVITY IS A CPAT OR APET). 6 2BN= ...[ LINK X5 5 2C7W ...XPTRS 9 2CMG ... LDCH 0 ATYPE(2) 9 2D76 ... SBN 0 AOLPT/64 16 2DLQ ... BNZ 0 XPTR1 [ NOT AN AOLPT 10 2F6B ... LDX 2 ACTRG+BPTR(2) 17 2FL2 ... SBN 2 ACTRG [ PREVIOUS ACTIVITY 8 2G5L ... BRN XPTRS 5 2GK= ...XPTR1 9 2H4W ... ADN 0 AOLPT/64 9 2HJG ... SBN 0 CPAT/64 15 2J46 ... BZE 0 XITPTRS [ J IF CPAT 16 2JHQ ... BZE 7 XITPTRS [ APET AND X7=0 15 2K3B ... FCAPCA 2 [ X2 -> CPAT 5 2KH2 ...XITPTRS 7 2L2L ... EXIT 5 0 3 2LG= ... 3 2L_W ... 18 2MFG ...[ THIS ROUTINE WRITES AWAY BUFFERS OF THE CURRENT ACTIVITY 6 2M_6 ...[ LINK X7 5 2NDQ ...XFBCACT 8 2NYB ... SBX 7 FX1 14 2PD2 ... TRACEIF K6FREEBUFF,199,999,7,FB CACT 18 2PXL ...[ CALL THE FIXED CORE ROUTINES TO SEE WHETHER IT IS WORTH 17 2QC= ...[ COORDINATING TO WRITE BUFFERS AWAY (SETS OVERFLOW). 16 2QWW ... BVCR XACTCLEAR [ CLEAR OVERFLOW 6 2RBG ...XACTCLEAR 17 2RW6 ... LDX 4 FX2 [ ACTIVITY POINTER 9 2S*Q ... CALL 6 (FBACT) 20 2STB ... BVCR XITFBACT [ J IF NO FUWBS OR FURWBS PRESENT 9 2T*2 ...#SKI K6FREEBUFF>199-199 18 2TSL ... LDX 2 FX2 [ FOR TRACEIF MACRO ONLY 16 2W#= ... TRACEIF K6FREEBUFF,199,999,ACTNUM(2),FRITEACT 15 2WJ4 ... ADDSKIP K6FREEBUFF>199-199,INSTPARAM+1 17 2WRW ... FRITE ALL,AUT [ WRITE BUFFERS AWAY 5 2X?G ...XITFBACT 8 2XR6 ... ADX 7 FX1 7 2Y=Q ... EXIT 7 0 3 2YQB ... 3 2_=2 ... 19 2_PL ...[ THIS ROUTINE WRITES AWAY BUFFERS OF ALL THE AOLPTS OF A JOB. 20 329= ...[ IT MAY BE ISSUED FROM A CPAT OR AN APET AND WILL ONLY COORDINATE 15 32NW ...[ IF THERE ARE ANY FUWBS OR FURWBS TO WRITE AWAY 21 338G ...[ LINK X7 (STORED IN AWORK1 OF CALLING ACTIVITY), APET/CPAT INDICATOR X7 6 33N6 ...XFBAOLPTS 8 347Q ... SBX 7 FX1 15 34MB ... STO 7 AWORK1(2) [ STORE LINK 14 3572 ... TRACEIF K6FREEBUFF,199,999,7,FB AOLPT 16 35LL ... LDN 7 0 [ X7=0 FOR APET 9 366= ... LDCH 0 ATYPE(2) 9 36KW ... SBN 0 CPAT/64 15 375G ... BNZ 0 XNCPAT [ NOT A CPAT 18 37K6 ... LDCT 7 #400 [ X7 NEGATIVE FOR CPAT 16 384Q ... FJOCA 2 [ -> JOB BLOCK 16 38JB ... TESTCOR 2,YCORIMG [ J IF CORE IMAGE 16 3942 ... BRN XITFBAPT [ NO CORE IMAGE 5 39HL ...YCORIMG 14 3=3= ... FPCAJO 2 [ -> PCA 9 3=GW ... BRN XFBAPTLP 9 3=JK ...#SKI K6FREEBUFF>199-199 4 3=L# ...( 6 3=N3 ...XFBAPTLP1 17 3=PQ ... TRACEIF K6FREEBUFF,199,499,BFSTATE(2),SEMAPHOR 17 3=RF ... TRACEIF K6FREEBUFF,199,499,ALINK1(2),ACT LINK 15 3=T8 ... ADDSKIP K6FREEBUFF>199-199,INSTPARAM+4 9 3=WX ... BRN XFBAPTLP 4 3=YL ...) 5 3?2G ...XNCPAT 9 3?G6 ... LDCH 0 ATYPE(2) 9 3?_Q ... SBN 0 APET/64 15 3#FB ... BNZ 0 XITFBAPT [ NOT AN APET 9 3#_2 ...[ POINTER TO PCA IN X2 5 3*DL ...XFBAPTLP 19 3*Y= ... LDX 2 ACTRG+FPTR(2) [ NEXT ACTIVITY ON ACT RING 16 3BCW ... SBN 2 ACTRG [ X2-> ACTIVITY 9 3BXG ... LDCH 1 ATYPE(2) 9 3CC6 ... SBN 1 AOLPT/64 16 3CWQ ... BNZ 1 XFBAPTRESET [ NOT AN AOLPT 9 3DBB ... LDX 0 ATMARK(2) 17 3DW2 ... BZE 0 XFBAPT [ J - IF OFFLINE PERI 7 3F*L ... SBN 0 3 9 3FT= ... BNZ 0 XFBAPTLP 14 3G#W ...[ EITHER A) OFFLINE RESULTING FROM AN ASSIGN 9 3GSG ...[ OR ASSILO 17 3H#6 ...[ (INCLUDING ANTICIPATED BUDGET EXTRACODES) 20 3HRQ ...[ OR B) ONLINE WITHOUT DOCUMENT NAME OR ACCESS, OR HLS EXTRACODES 3 3J?B ... 5 3JR2 ...XFBAPT 17 3K=L ... LDX 4 2 [ ACTIVITY POINTER 18 3KQ= ...[ CALL THE FIXED CORE ROUTINES TO SEE WHETHER IT IS WORTH 16 3L9W ...[ COORDINATING TO WRITE BUFFERS AWAY (SETS OVERFLOW) 16 3LPG ... BVCR XFBAPTCOV [ CLEAR OVERFLOW 6 3M96 ...XFBAPTCOV 21 3MNQ ... CALL 6 (FBACT) [ SETS OVERFLOW IF ANY FUWBS OR FURWB 7 3N8B ... LDX 2 4 20 3NN2 ... BVCR XFBAPTLP [ J IF NO BLOCKS TO WRITE AWAY 16 3P7L ...[ WE HAVE AT LEAST ONE BUFFER BLOCK TO WRITE AWAY 4 3P8M ...[ 17 3P9N ...[ ENSURE THAT NO ONE ELSE IS RUNNING UNDER THIS AOLPT. 16 3P=P ...[ SINCE WE DO NOT WISH TO WAIT IF SOMEONE IS RUNNING 16 3P?Q ...[ UNDER THIS AOLPT (IE SEMAPHORE LOCK BIT SET) WE DO 16 3P#R ...[ NOT USE THE ^POP^ MACRO TO SEIZE THE SEMAPHORE ! 4 3P*S ...[ 9 3PBT ...#SKI K6FREEBUFF>199-199 4 3PCW ...#SKI 18 3PDX ... JBSS XFBAPTLP,2,FBOFFLKB [ J-IF BIT SET ELSE SET IT 9 3PFY ...#SKI K6FREEBUFF>199-199 18 3PG_ ... JBSS XFBAPTLP1,2,FBOFFLKB [ FOR TESTING ONLY !!!! 4 3PJ2 ...[ 10 3PK3 ...[ INTERLOCK BIT IS NOW SET 4 3PL4 ...[ 9 3PM= ... LDN 1 ACC3(2) 19 3Q6W ... CALL 5 XPTRS [ DUMP ACC3 THRU7 TO ALINK1 18 3QLG ... ADN 2 ACOMMUNE1 [ IN ACOM1 TO ACOM6 IN 17 3R66 ... MOVE 1 6 [ CALLING ACTIVITY 17 3RKQ ... CHANGEACT 4 [ TO AOLPT ACTIVITY 15 3S5B ... LINKSET 2,XLINK(1) [ FOR COORDINATIONS 16 3SK2 ... TRACEIF K6FREEBUFF,199,999,ACTNUM(2),FRITEAPT 15 3SSS ... ADDSKIP K6FREEBUFF>199-199,INSTPARAM+2 17 3T4L ... FRITE ALL,AUT [ WRITE AWAY BLOCKS 8 3T6* ...#SKI K6FREEBUFF-500 4 3T84 ...#SKI 20 3T9R ... COOR3 #62 [ FRIG TO WAIT HOLDING SEMAPHORE 4 3T?G ...[ 16 3T*9 ...[ WE NOW WAKE UP ANYONE WAITING ON THE SEMAPHORE. 4 3TBY ...[ 9 3TDM ... VOP 2,FBOFFWAIT 16 3TGB ... LDX 2 FX2 [ VOP CORRUPTS X2 18 3TJ= ... LDN 3 ACC3(2) [ RESET ACC3 TO ALINK1 8 3W3W ... CALL 5 XPTRS 18 3WHG ... ADN 2 ACOMMUNE1 [ FROM ACOM1 TO 6 FROM 17 3X36 ... MOVE 2 6 [ CALLING ACTIVITY 8 3XGQ ... LDX 2 FX2 19 3Y2B ... BRN XFBAPTLP [ LOOP ROUND FOR NEXT AOLPT 3 3YG2 ... 14 3Y_L ...[ RESET ACTIVITY POINTERS AFTER CHANGEACT 6 3_F= ...XFBAPTRESET 17 3_YW ... LDX 2 ACTRG+BPTR(2) [ PREVIOUS ACTIVITY 15 42DG ... SBN 2 ACTRG [ FOR RESET 18 42Y6 ... CALL 5 XPTRS [ X2-> CALLING ACTIVITY 15 43CQ ... CHANGEACT 2 [ RESET FX2 16 43XB ... LINKSET 2,XLINK(1) [ FOR COORDINATIONS 5 44C2 ...XITFBAPT 8 44WL ... LDX 2 FX2 16 45B= ... LDX 7 AWORK1(2) [ RESTORE LINK 8 45TW ... ADX 7 FX1 7 46*G ... EXIT 7 0 4 46T6 ...[ 4 47#Q ...[ 4 47SB ...[ 11 48#2 ...[ ENTRY POINTS 4 48RL ...[ 4 49?= ...[ 3 49QW ... 8 4==G ...[ FREEBUFF WHOLE JOB 3 4=Q6 ... 5 4?9Q ...ZFBALL 18 4?PB ... CALL 7 XFBAOLPTS [ AOLPTS FIRST (IF ANY) 3 4#92 ... 10 4#NL ...[ FREEBUFF CURRENT ACTIVITY 3 4*8= ... 5 4*MW ...ZFBCACT 9 4B7G ... CALL 7 XFBCACT 8 4BM6 ... BRN XUP 3 4C6Q ... 12 4CLB ...[ FREEBUFF AOLPTS TO THE JOB ONLY 6 4D62 ...ZFBAOLPTS 9 4DKL ... CALL 7 XFBAOLPTS 8 4F5= ... BRN XUP 3 4FJW ... 11 4G4G ...[ FREEBUFF A FILE AT DEPTH X3 5 4GJ6 ...ZFBFILE 14 4H3Q ... TRACEIF K6FREEBUFF,199,999,3,FB FILE 15 4H?J ... ADDSKIP K6FREEBUFF>199-199,INSTPARAM+3 9 4HHB ... FRITE 0(3),AUT 3 4J32 ... 4 4JGL ...XUP 5 4K2= ... UP 3 4KFW ... 4 4XQ2 #END 6 ____ ...142264740023