----> CREDITS <----"%,SC24E(215)128SC4:&z""(14)SC)"#SC)" RACK 1, ECTOR 0, ELOCATOR (SC)"-SC)" IND AND MOVE THE SECTOR THAT*2SC)" OCCUPIES THE SECTOR.V7SC)";SC)" RITTEN BY : IKE ONNELLY <SC)" ODIFIED BY: OBERT SSENTJUKASC)""F----> SETUP <---- K N$(144):TD18:SD1PZ$(0)#UK07/ZFT$(K)H_FT$(K)"...."FT$(K)NdsiDEL,SEQ,PRG,USR,REL,*?*,*?*,*?*n----> GET OPERATOR RUN CONDITIONS <----sSC1)"ISK DRIVE DEVICE NUMBER (8/9)";x"8";DV}DV8DV9DV8+SC1)"NSERT ISK INTO RIVE (DEVICE #"DV")QSC5)"IT Β WHEN READY.\CK$""eCK$yCK$(13)140SC1)"EARCH COMPLETE DISKETTE (Y/N)";"Y";CD$CD$"Y"190SC1)"ILENAME ";F$WC. (F$,1)"*"F$(F$,(F$)1):WC1D SC1)"ISPLAY FILE CHAIN (Y/N)";W "Y";FC$` FC1r FC$"N"FC. SC1)"CREEN OR RINTER (S/P)"; "S";SP$ ----> INITIALIZE PERPHERIAL DEVICES <---- D3 SP$"P"D4!6,D,7!15,DV,15,"I0"!785,!1,DV,4,"#"5!785E!2,DV,5,"#"N! 785d!15,"U1:4 0 18 1"m!DP.!NF.:CD$"Y"6:6,SC1)"EARCHING DIRECTORY FOR "(34)F$(34):6!----> MAIN LOOP <----!"345!'----> TRACE NEXT ENTRY <---- ",FX12902"1----> EXIT/RE-RUN PROGRAM <----`"6"EARCH FOR UTO OOT SECTOR COMPLETED.i";755"@"ERFORM ANOTHER SEARCH (Y/N)";"E"Y";SA$"JSA$"Y""O"T----> FIND NEXT FILE IN DIRECTORY <----"Y15,"B-P:4"232DP#^#1,A$#cFT135(A$Z$)+#hFT127375>#mTR.SE.565G#r550S#wNFNF1a#|#1,A$,B$q#TR(A$Z$)#SE(B$Z$)#K18##1,A$,B$#A$""A$Z$#(A$)160A$""#B$""B$Z$#(B$)160B$""#N$(NF)N$(NF)A$B$$$CD$"Y"4505$WC(N$(NF),(F$))F$550N$WC0N$(NF)F$550$TR1SE.6,"TRACK-1, SECTOR-0 IS FIRST TRACK OF "N$(NF):TQ1:825$6$6,"RACING: "N$(NF)FT$(7FT);$((215)128SP$"S")FC16%----> TRACE MAIN FILE <----%635 %FT132525I%----> TRACE SIDE SECTOR FILE <----P%6m%6,"SIDE SECTOR FILE: ";{%#1,A$,B$%TR(A$Z$)%SE(B$Z$)%645%---> PRINT NUMBER OF BLOCKS IN FILE <----% ((215)128SP$"S")FC16&6," -->"BLK"BLOCKS TRACED."F&---> IF SINGLE FILE, SEARCH DONE! <----a&F$""CD$"Y"1170&!----> CHECK NUMBER OF ENTRIES IN DIRECTORY SECTOR <----&&DPDP1&+DP8620&0----> GET LINK TO NEXT SECTOR <----&5DP.&:15,"B-P:4 0" '?#1,A$,B$'DTD(A$Z$),'ISD(B$Z$)O'N----> IF NO LINK, DONE <----_'STD.1170'X----> READ NEW DIRECTORY SECTOR <----']15,"U1:4 0"TD;SD'b785'g----> IF NO FILE FOUND, TRY AGAIN <----'lFX1'q (v----> TRACE FILE BY LINKS <----({BLK. (ZX..(BLKBLK1<(FC.695a(TR$("0"((TR),((TR))1),2)(SE$("0"((SE),((SE))1),2)(6,TR$"/"SE$" ";(ZXZX1((215)128SP$"P"690(ZX6ZX.:6(695(ZX13ZX.:6')TR1SE.6,"TR-1,SE-0 PART OF "N$(NF):8251)OTTR;)OSSER)15,"U1:5 0 "TR;SE[)785m)15,"B-P:5 0"{)#2,A$,B$)TR(A$Z$))SE(B$Z$))TR0TR71645))----> CLOSE ALL FILES <----)1)2)6)15)* ----> DISK STATUS <----)*15,E,E$,T,S5*E20R*"DISK ERROR: "E;E$;T;S* "IX DISK ERROR THEN HIT Β TO CONTINUE."*%A$**A$(13)805*/1170*4----> FIND A FREE SECTOR <----+96,"HECKING FOR NEXT AVAILABLE SECTOR FOR RELOCATION"+>6/+C15,"U1:4 0 18 0"8+H785I+MBAM42844+RBAM1446,"O AVAILABLE BLOCKS ON SIDE 1, CHECKING SIDE 2+WBAM2846,"O AVAILABLE BLOCKS ON THIS DISKETTE":1170+\BAM143BXBAM:BX(185(BAM4))+a15,"B-P";4;BX ,f#1,A$,kT%(A$Z$)*,pBF(BAM4)=,uBF18BF53p,zT%.6,"O FREE BLOCKS IN TRACK ";BF:"":,6:6,"OUND ";T%;" BLOCKS FREE IN TRACK ";BF,6:6,"OW LOCATING FIRST AVAILABLE BLOCK-BX22015,"U1";4;0;53;0:BX((BX221)31):B1.-B1B119-B146," DOESN'T VERIFY":1170O-15,"B-P";4;BXB1Z-#1,A$j-T%(A$Z$)x-T%.920-----> DEC TO BINARY <-----B(B)2(B(B8)8)T%-B701-BNB(B)-BN0BN1-BN$(BN)-BM$(BN$,1).BQ$BQ$BM$.#.TX8117.BX$(BQ$,TX,1)F.BX$"0"].BX$"1"SX(8TX)r.B2((B11)8)SX.----> TRANSFER TR1/SE0 TO FREE SECTOR <----.6:6,"OUND FIRST AVAILABLE BLOCK AT TRACK ";BF;" SECTOR ";B2/6:6,"EADING TRACK-1, SECTOR-0"#/ 15,"U1";4;0;1;0S/6:6,"RITING TO TRACK ";BF;" SECTOR ";B2j/15,"U2";4;0;BF;B2s/785/6:6,"LLOCATING NEW BLOCK"/$15,"B-A";0;BF;B2/)785/.6:6,"EALLOCATE TRACK-1, SECTOR-0"/315,"B-F";0;1;0/8785=0=TQ16:6,"E-WRITING DIRECTORY TO SHOW NEW FIRST LINK":1135{0B----> FIX PREVIOUS LINK TO POINT TO RELO'ED TRACK <----0G6:6,"E-WRITING PREVIOUS TRACK ";OT;" SECTOR ";OS;" TO SHOW NEW FORWARD LINK0L15,"U1";5;0;OT;OS0Q15,"B-P";5;0 1V2,(BF)(B2);"1[15,"U2";5;0;OT;OS+1`78551e1170q1j----> REWRITE DIRECTORY FOR NEW FIRST FILE LINK <----1o15,"U1";5;0;TD;SD1y15,"B-P";5;332DP1~2,(BF)(B2);115,"U2";5;0;TD;SD111201----> PREPARE TO FINISH <----2FX.: