FREEBUFF860

(George Source)

Macros used: ADDSKIP, CHANGEACT, COOR3, FCAPCA, FJOCA, FPCAJO, FRITE, JBSS, LINK, LINKSET, SEG, SEGENTRY, TESTCOR, TRACEIF, UP, VOP

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