; Dir2File V.0.0 January 6, 1995›; By Bill Kendrick New Breed Software››; Limitations:›; You need to specify drive device ›; Works with one drive (saves where›; the subdirectory is)›; No disk swapping›; Only works one directory deep››INCLUDE"D:RUNTIME.ACT"››Byte Array Buffer(1024)››Card OldError›Card Size=40,Amount,Total›Byte CIO_status,QQQ,K,DONE,Files›Byte F,A,B,XX›Char Array File(200),File2(200),Path(200)››CHAR FUNC CIO=*(BYTE dev, CARD addr,› size, BYTE cmd, aux1, aux2)›[$29$F$85$A0$86$A1$A$A$A$A$AA$A5$A5›$9D$342$A5$A3$9D$348$A5$A4$9D$349›$A5$A6$F0$8$9D$34A$A5$A7$9D$34B$98›$9D$345$A5$A1$9D$344$20$E456›$8C CIO_status$C0$88$D0$6$98$A4$A0›$99 EOF$A085$60]››CARD FUNC BGet=*(BYTE dev, CARD addr, size)›[$48$A9$7$85$A5$A9$0$85$A6$A5$A3$5$A4›$D0$6$85$A0$85$A1$68$60$68$20 CIO›$BD$348$85$A0$BD$349$85$A1$60]››PROC BPut=*(BYTE dev, CARD addr, size)›[$48$A9$B$85$A5$A9$0$85$A6$A5$A3$5$A4›$D0$2$68$60$68$4C CIO]››Proc Dir()› Char Array File(120)› Byte Z›› PrintE("Filemask?")› InputS(File)› Close(1)› Open(1,File,6,0)› Do› InputSD(1,File)› PrintE(File)› Until EOF(1)<>0 Od› Close(1)›Return››Proc Dir2()› PutE()› PrintE("Dir to convert?")› InputS(File)› If File(0)=0 Then Return Fi› PutE()› SCopy(File2,File)› F=File2(0)+1› For A=1 To File2(0) Do› If File2(A)='. Then F=A Fi› Od›› File2(F)='.› File2(F+1)='D› File2(F+2)='I› File2(F+3)='R› File2(0)=F+3› Print("Saving to: ")› PrintE(File2)›› F=File(0)› SCopy(Path,File)› Path(F+1)=':› Path(0)=F+1› File(F+1)=':› File(F+2)='*› File(F+3)='.› File(F+4)='*› File(0)=F+4› Close(1)› Open(1,File,6,0)› Print("Scanning: ")› PrintE(File)›› Close(2)› Open(2,File2,8,0)› PrintDE(2,"DIR2FILE00") ; Header› Path(0)==-1› PrintDE(2,Path)› Path(0)==+1›› Files=0› DONE=0› Do› InputSD(1,File)› If File(1)>='0 And File(1)<='9 Then› DONE=1› Else› If File(2)<>': Then› Print("Adding: ")› SCopy(File2,Path) B=File2(0)› For A=3 To 10 Do› If File(A)<>32 Then› B==+1› File2(B)=File(A)› Fi› Od› B==+1› File2(B)='.› For A=11 To 13 Do› If File(A)<>32 Then› B==+1› File2(B)=File(A)› Fi› Od› File2(0)=B› PrintE(File2)› PrintD(2,File2)› Close(3) Open(3,File2,4,0)› Total=0› Do› BGet(3,Buffer,1024)› Amount=Size› Total==+Amount› Put('œ)› PrintC(Total)› PutDE(2)› PrintCDE(2,Amount)› BPut(2,Buffer,Amount)› Until EOF(3)<>0 Od› PutDE(2)› PrintCDE(2,65535)› Close(3)› PutE()› Files==+1› Else› Print("Skipping: ")› PrintE(File)› Fi› Fi› Until DONE=1 Od› PrintDE(2,"ÄÏÎÅ")› Close(1)› Close(2)› Close(3)› Print("Processed ") PrintB(Files) PrintE(" files.")› K=GETD(4)›Return››Proc FileOut(Byte Save)››; .DIR format:››; DIR2FILE00›; D:directory.ext›; D:directory.ext:filename.ext›; size›; data.data.data.›; size›; data.data.data.›; 65535›; D:directory.ext:filename.ext›; size›; data.data.data.›; size›; data.data.data.›; 65535›; ÄÏÎÅ›› PutE()› If Save=1 Then PrintE("File to extract from?")› Else PrintE("File to view inside?") Fi› InputS(File)› If File(0)=0 Then Return Fi› PutE()› Close(1)› Open(1,File,4,0)› InputSD(1,File2)› Files=0› If SCompare(File2,"DIR2FILE00")<>0 Then› PrintE("Not a Dir2File (.DIR) file!")› Else› Done=0› InputSD(1,File2)› If Save=1 Then› Print("Creating dir: ")› PrintE(File2)› Close(2)› XIO(2,0,34,0,0,File2)› Close(2)› Else› Print("Dir stored: ")› PrintE(File2)› Fi› Do› InputSD(1,File2)› If SCompare(File2,"ÄÏÎÅ")<>0 Then› If Save=1 Then› Print("Extracting: ")› PrintE(File2)› Close(2)› Open(2,File2,8,0)› Else› Print("Stored: ")› PrintE(File2)› Fi› Total=0› Do› Amount=InputCD(1)› If Amount<>65535 Then› Total==+Amount› BGet(1,Buffer,Amount)› XX=GetD(1)› If Save=1 Then BPut(2,Buffer,Amount) Fi› Put('œ) PrintC(Total)› Fi› Until Amount=65535 Od› Close(2)› Files==+1› PutE()› Else› PrintE("Done")› Done=1› Fi› Until Done=1 Od› Fi› Close(1)› Close(2)› Close(3)› If Save=1 Then Print("Extracted ")› Else Print("Viewed ") Fi› PrintB(Files) PrintE(" files.")› K=GetD(4)›Return››Proc Menu()› PrintE("} Äéò²Æéìå  version 0.0")› PrintE("By Bill Kendrick New Breed Software 1995")› PrintE("")› PrintE("|ÛÄÝir. to File| Store files in a dir")› PrintE("|ÛÆÝile to Dir.| Extract files to a dir")› PrintE("|ÛÖÝ in file | View stored files")› PrintE("|Û¿Ý File List | View disk directory")› PrintE("|ÛÑÝuit to DOS | Exit program")› PrintE("")›Return››Proc Dir2File()› Byte K›› Close(1)› Close(2)› Close(3)› Error=Dir2File› Graphics(0)› PokeC(82,9984)› PokeC(709,8) Poke(712,6)› Close(4)› Open(4,"K:",4,0)› Menu()›› Do› Error=Dir2File› K=GetD(4)› If K='D Then Dir2() Menu()› ElseIf K='F Then FileOut(1) Menu()› ElseIf K='V Then FileOut(0) Menu()› ElseIf K='? Then Dir()› ElseIf K=155 Then Menu()› Elseif K='Q Then K='Q Graphics(0)› Fi› Until K='Q Od› Close(4)› Error=OldError› [$6C$0A$00]›Return››PROC MAIN()› OldError=Error› DIR2FILE()›RETURN››