{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: FREEBUFF860)}}
====== FREEBUFF860 ======
(George Source)
**Macros used:** [[george:macro:ADDSKIP|ADDSKIP]], [[george:macro:CHANGEACT|CHANGEACT]], [[george:macro:COOR3|COOR3]], [[george:macro:FCAPCA|FCAPCA]], [[george:macro:FJOCA|FJOCA]], [[george:macro:FPCAJO|FPCAJO]], [[george:macro:FRITE|FRITE]], [[george:macro:JBSS|JBSS]], [[george:macro:LINK|LINK]], [[george:macro:LINKSET|LINKSET]], [[george:macro:SEG|SEG]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:TESTCOR|TESTCOR]], [[george:macro:TRACEIF|TRACEIF]], [[george:macro:UP|UP]], [[george:macro:VOP|VOP]]
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