{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: FBUFF860)}}
====== FBUFF860 ======
(George Source)
**Macros used:** [[george:macro:ADDSKIP|ADDSKIP]], [[george:macro:BFCBX|BFCBX]], [[george:macro:BXE|BXE]], [[george:macro:BXU|BXU]], [[george:macro:FIXTRA|FIXTRA]], [[george:macro:FREECORE|FREECORE]], [[george:macro:LABFIX|LABFIX]], [[george:macro:PSTAC|PSTAC]], [[george:macro:TRACEIF|TRACEIF]]
22FL ...#OPT K6FREEBUFF=100
22^= ...#OPT K0FBUFF=0
23DW ...#LIS K0FBUFF>K0FILE>K0KERNEL>K0ALLGEO
23YG ...[ SKIP IDENTIFIER K6FREEBUFF CAN BE USED FOR TESTING BOTH
24D6 ...[ FBUFF AND FREEBUFF CHAPTER.
24XQ ...[ WHEN SET TO 200 IP MANAGER'S WILL BE INCREMENTED WITH EACH
25CB ...[ TYPE OF FREEBUFF:-
25X2 ...[ MANAGER0 = FURBS AND FURRBS FREED BY FREEBUFF (FBUFF)
26W= ...[ OTHER IPS ARE INCREMENTED BY OTHER EVENTS IN FREEBUFF
27*W ...[ SEE INTERNAL COMMENTS FOR MORE DETAILS.
27TG ...[
28*6 ...#SEG FBUFF [P.R.CRUICKSHANK FILE
28SQ ...[ THIS SEGMENT TOGETHER WITH THE SEGMENT FREEBUFF IMPLEMENT
29#B ...[ THE "FREEING FILESTORE BUFFERS" ENHANCEMENT.
29S2 ...[ THE ROUTINES HERE SHOULD BE CALLED BY THE MACRO FREEBUFF.
2=?L ...[ THEY FREE FURBS AND SET OVERFLOW IF THERE ARE ANY FUWBS.
2=R= ...[
2?=W ...[ ROUTINES TO STORE AWAY ACCUMULATORS
2?QG ... FIXTRA AFBSTACC
2#=6 ... LABFIX FBSTACC
2#PQ ... SMO FX2
2*9B ... LDN 2 ACC3
2*P2 ... LDN 1 3
2B8L ... MOVE 1 5
2BN= ... LDX 2 FX2
2C7W ... EXIT 0 1
2CMG ... FIXTRA AFBRVACC
2D76 ... LABFIX FBRVACC
2DLQ ... SMO FX2
2F6B ... LDN 1 ACC3
2FL2 ... LDN 2 3
2G5L ... MOVE 1 5
2GK= ... LDX 2 FX2
2H4W ... LDX 1 FX1
2HJG ... EXIT 0 0
2J46 ...[ THIS ROUTINE FREES THE FURBS OF A FILE
2JHQ ...[ GIVEN A PTR TO THE FCA IN X3
2K3B ...[ IF ANY FUWBS ARE PRESENT OVERFLOW IS SET
2KH2 ...[ X3->FCA, X5=LINK, X0-2 DESTROYED
2L2L ... FIXTRA AFBFCA
2LG= ... LABFIX FBFCA
2L^W ... PSTAC 1,3 [ X1-> FSTACK BLOCK
2MFG ... TRACEIF K6FREEBUFF,199,999,ARINGNO(1), FB FILE
2NYB ... LDEX 0 ARINGNO(1)
2PD2 ... BCT 0 XITFCA [ FILE IS OPEN MORE THAN ONCE SO EXIT
2PXL ... BFCBX 2,1 [ X2->FCB
2QC= ... LDX 0 FCOMM(2)
2QWW ... ANDN 0 #2000 [ FILE OPEN IN COPY MODE
2RBG ... BNZ 0 XITFCA
2RW6 ... TRACEIF K6FREEBUFF,199,999,BACK2(2),FCB NO
2STB ...XFCALOOP
2T*2 ... LDX 1 FPTR(1) [ NEXT BUFFER BLK
2TSL ...#SKI IFS<1$1
2W#= ... BXE 1 CXFI,XITFCA
2WRW ... LDX 0 ATYPE(1)
2X?G ... BXE 0 FILEPLUSFCB,XITFCA [-> FCB SO EXIT
2XR6 ... BVS XNFUWB [ FUWB ALREADY FOUND
2Y43 ... BXE 0 FFSFUWB,XWRITE [ J-IF FUWB
2Y#Y ... BXU 0 FFSFURWB,XNFUWB [ J-IF NOT A FURWB
2YKT ...[ HAVE FOUND EITHER A FUWB OR A FURWB
2YWQ ...
2^7M ...XWRITE
2^DJ ... TRACEIF K6FREEBUFF,199,999,BACK2(1),FND FUWB
2^PL ... BVCI XFCALOOP [ SET OVERFLOW
329= ...XNFUWB
32LX ... BXE 0 FFSFURB,XREAD [ J-IF FURB
334J ... BXU 0 FFSFURRB,XFCALOOP [ NOT A FURRB
33G9 ...[ HAVE FOUND EITHER A FURB OR A FURRB
33XW ...
34*H ...XREAD
34R8 ... TRACEIF K6FREEBUFF,199,999,BACK2(1),FREEFURB
358T ... ADDSKIP K6FREEBUFF>199-199,INSTPARAM [ FREEING A FURB
35LL ...
384Q ... FREECORE 1 [ FREE FURB
38JB ... BRN AFBFCA [ START AGAIN FROM BEGINNING
3?^Q ...XITFCA
3#FB ... ADDSKIP K6FREEBUFF>199-199,INSTPARAM+5 [ FILE COUNT
3BXG ... EXIT 5 0
3CC6 ...[ THIS ROUTINE GOES ROUND THE FILE RING
3CWQ ...[ OF AN ACTIVITY FREEING FURBS BY CALLING FBFCA
3DBB ...[ X4->ACTIVITY, X6=LINK, GEN0-> FILE RING BASE
3DW2 ... FIXTRA AFBACT
3F*L ... LABFIX FBACT
3FT= ...#SKI K6FREEBUFF>199-199
3G#W ... LDX 1 4 [ -> ACTIVITY (FOR TRACEIF)
3GSG ... ADDSKIP K6FREEBUFF>199-199,INSTPARAM+6 [ ACTIVITY COUNT
3H#6 ... TRACEIF K6FREEBUFF,199,999,ACTNUM(1),FB ACTIV
3LPG ... SMO 4
3M96 ... LDN 3 FILERING
3MNQ ... STO 3 GEN0 [ PTR TO FILERING BASE
3N8B ...XACTLOOP
3NN2 ... LDX 3 FPTR(3) [ NEXT FCA ?
3P7L ... BXE 3 GEN0,XITACT [ GONE ROUND RING
3PM= ... CALL 5 AFBFCA [ FREEBUFF FCA
3Q6W ... BRN XACTLOOP
3QLG ...XITACT
3R66 ... EXIT 6 0
3RKQ ...[ THIS ROUTINE HAS TWO ENTRY POINTS
3S5B ...[ CPAT AND APET.
3SK2 ...[ IT WILL FREEBUFF THE AOLPTS OF THE JOB
3T4L ...[ X2->CPAT OR APET ON ENTRY.
3TJ= ...[ X7=LINK
3W3W ... FIXTRA AFBCPAT
3WHG ... LABFIX FBCPAT
3X36 ... LDX 2 JOBRING(2)
3XGQ ... LDEX 0 JMISC-AJBRING(2)
3Y2B ... BZE 0 XITAPT [ NO CORE IMAGE TO FREEBUFF
3YG2 ... LDX 2 FPTR(2)
3Y^L ... SBN 2 JOBRING [ X2-> PCA
3^F= ... FIXTRA AFBAPET
3^YW ... LABFIX FBAPET
42DG ... LDX 2 ACTRG(2) [ NEXT ACTIVITY
42Y6 ... SBN 2 ACTRG [ -> ACTIVITY
43CQ ... LDCH 0 ATYPE(2)
43XB ... SBN 0 AOLPT/64
44C2 ... BNZ 0 XITAPT [ NOT AN AOLPT SO FINISH
44DC ... LDX 0 ATMARK(2)
44FS ... BZE 0 XFBAPT [ J - IF OFFLINE PERI
44H9 ... SBN 0 3
44JL ... BNZ 0 AFBAPET
44L3 ...[ EITHER A) OFFLINE RESULTING FROM AN ASSIGN
44MD ...[ OR ASSILO
44NT ...[ (INCLUDING ANTICIPATED BUDGET EXTRACODES)
44Q= ...[ OR B) ONLINE WITHOUT DOCUMENT NAME OR ACCESS, OR HLS EXTRACODES
44RM ...
44T4 ...XFBAPT
44WL ... STO 2 4 [ X4-> AOLPT
45B= ... TRACEIF K6FREEBUFF,199,999,ACTNUM(2),FB AOLPT
46*G ... CALL 6 AFBACT [ FREEBUFF AOLPT
46T6 ... LDX 2 4
47#Q ... ADDSKIP K6FREEBUFF>199-199,INSTPARAM+7 [ AOLPT COUNT
49QW ... BRN AFBAPET [ NEXT ONE
4==G ...XITAPT
4=Q6 ... EXIT 7 0
4?9Q ...#END
^^^^ ...346430040007