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