›Module› Set 14 = $7000› Set $491 = $7000›››Define String = "BYTE ARRAY",› Disk1 = "1",› Disk2 = "2",› Repeat = "Do",› End = "Od",› Endif = "Fi",› Ef = "Elseif"››››Byte array jmp = [0 0 0 $10 5 1 88]››Card Array EndOfPgm(1)›› Include "D1:>action>sys.act"››Module›› Include "D1:>action>routines.bbs"››Module›› Include "D1:>action>actequ.ata"››Module›››Byte array Fn (20),› DestName(100)››Byte CurSig,› CError››Card Total_Files,› SrchDate›››Proc MyError(Byte Ecd)› CError = Ecd›Return››››Proc Fatal_Error (String S)› MIOsuspend()› Close (Disk1)› Close (Disk2)› MIOresume()› CR_LF()› EchoSE (S)› Aborted = 1›Return›› ›› ››Proc Show_Dir (String Fm)›› String Instr (50)› Byte M,D,Y› Card Fd›› MIOsuspend()› Close(Disk1)› CError = 0› File_Stat(Fm) › Open (Disk1, Fm, 6, 128) ;open long directory› If CError > 0 then› Fatal_Error ("Missing subdirectory!") ;should NEVER happen!› Return› Endif› While EOF (Disk1) = 0 do› MIOsuspend()› CError = 0› InputSD (Disk1, Instr)› MIOresume()› If (CError > 0) or (Aborted > 0) then› Exit› Endif› If (Instr(0) > 34) and› (Instr(14) # '<) then ;don't show the "volume", etc› M = 0› If Instr(21)>32 then› M=(Instr(21)-'0)*10› Endif› M =M+(Instr(22)-'0)› D =(Instr(24)-'0)*10 › D =D+(Instr(25)-'0)› Y =(Instr(27)-'0)*10 › Y =Y+(Instr(28)-'0)› Fd = (Y-85)*365› Fd = Fd + (M*30)› Fd = Fd + D› If Fd >= SrchDate then› EchoS(" Sig #")› If CurSIG < 10 then› Echo(32)› Endif› EchoB(CurSIG)› EchoS(" - ")› Instr(0)=19› EchoSE(Instr)› Total_Files == +1› Endif› Endif› End› MIOsuspend()› Close (Disk1)› MIOresume()›Return››››››Proc FindFile()›› Byte X›› SCopy(DestName,"Dx:>PRO>FILES_xx>Fxxx>")›› DestName(2)=S_SIGdr(Cursig-1)› DestName(15)=(CurSIG/10)+'0› DestName(16)=(CurSIG MOD 10)+'0›› Concat(Fn, Destname)›››; try to find the "Fxxx" subdirectory›; with this file in it.›; ---------------------------------›› For X = 1 to 127 do ;can be 127 subdirs› DestName(19)=(X/100)+'0› DestName(20)=((X MOD 100)/10)+'0› DestName(21)=((X MOD 100) MOD 10)+'0› File_Stat(DestName)› MIOsuspend()› Carrier()› Close(Disk2)› CError = 0› XIO(Disk2,0,36,0,0,DestName)› If CError = 0 then› Show_Dir (DestName)› Ef CError = 150 then› Return› Ef CError # 170 then› Fatal_Error ("Disk error!")› Return› Endif› If Aborted then› Return› Endif› End› MIOsuspend()› Close(Disk2)› MIOresume()›Return›››››Proc Title()› Echo(125)› Cr_LF()› Cr_LF()› EchoSE("     ÂÂÓ Åøðòåóó¡ Ðòï    ")› EchoSE(" ­­­­­­­­­­­­­­­­­­­­­­­­")› EchoSE("   Æéìå Ìïãáôïò Õôéìéôù  ")› Cr_LF()› Cr_LF()› EchoSE(" This routine will search ÁÌÌ file")› EchoSE(" SIG areas looking for matches on")› EchoSE(" the filemask that you enter. It's")› EchoSE(" extremely handy for getting a full")› EchoSE(" list of all files available on this")› EchoSE(" system (you might want to turn on")› EchoSE(" your capture buffer).")› CR_LF()› EchoSE(" If you want to see only NEW files")› EchoSE(" since your last call, enter the ")› EchoSE(" word NEW as a filemask.")› CR_LF()› EchoS (" Mask to search on -> ")› Get_String (Fn,12,0,1)› If Fn(0) = 0 then› SCopy(Fn,"*.*")› Ef Cmp_Str(Fn,"NEW") = 0 then› SCopy(Fn,"*.*")› SrchDate=0› If U_lastyy > 84 then› SrchDate = (U_lastyy-85)*365› Endif› Srchdate = SrchDate+(U_lastmm*30)› SrchDate = SrchDate+ U_lastdd› If SrchDate=0 then› SrchDate=1› Endif› Endif›Return›››››Proc Main()› Byte X›› Error=MyError› SrchDate = 0› Title()› Total_Files = 0› CR_LF()› EchoSE("Searching - be patient..")› CR_LF()› Aborted = 0› For X = 1 to 32 do› If Aborted then› Exit› Endif› If S_SIGdr(X-1) > 0 then› If (BBS_Active=0) or› (Sec_Lvl(u_SigRead,X) > 0) then› CurSig = X› FindFile ()› Endif› Endif› Od› Cr_LF()› EchoC(Total_Files)› EchoSE(" match(es) found")›Return›››