0 'CopyFL.PDS/joel dinda/nov86/jun88/v1.2A 2 CLS:ONERRORGOTO55:LFILESV:PRINT@126,"CopyFL.PDS/v1.2A",,"Copyright 1986,1988",," Joel A. Dinda" 3 MAXFILES=1:OPENCHR$(146)FOROUTPUTAS1:PRINT#1,HIMEM:CLEAR3000,HIMEM-FRE(0)+4000:ONERRORGOTO52:OPENCHR$(146)FORINPUTAS1:INPUT#1,Z:KILLCHR$(146)+".do":DEFSNGA-Y:DEFSTRC-T:DEFINTH-O:P=" Press " 4 NB=(Z-HIMEM)\1292-1:IFNB<3THENERROR7ELSEDIMB(NB),F(1,39),N(1),P(1):FORI=0TONB:B(I)=HIMEM+I*1292-65536:NEXT:K=0:MK=1:NF=0:KB=-86 5 C="Checking...":D="Directory":DS=" Diskette ":E=CHR$(27):ER=" Error":ES="ape to Menu":F="":P(0)="SOURCE":P(1)="DESTINATION":Q="Buffer":R="ename & Copy":RD="Reading ":S="":SK="kip -- Don't Copy":SR="Sector":V=VARPTR(F) 6 FORJ=1TO0STEP-1:GOSUB46:GOSUB48:NEXT:FORI=0TO39:F=LEFT$(F(0,I),9):IFASC(F)THEN40ELSE13 7 PRINT@202,C:FORJ=0TO39:IFF=LEFT$(F(1,J),9)OR(F=LEFT$(F(0,J),9)ANDMID$(F(0,J),25,1)="M")THEN42ELSENEXT 8 A=ASC(MID$(F(0,I),26))*256+ASC(MID$(F(0,I),27)):N=A/1280:A=A/1280:IFA>NTHENN=N+1 9 IFNS+N<80THENNS=NS+NELSE44 10 IFNF+1<41THENNF=NF+1ELSE44 11 MID$(F(0,I),25)="M":MK=0 12 NEXT 13 IFMKTHEN54ELSECLS:PRINT@121,"Finding Start...":L=-1:GOSUB36:N0=-1:FORI=0TO39:F0=F(0,I):IFMID$(F0,25,1)="M"THENN(0)=ASC(MID$(F0,30,1)):GOSUB23ELSEF(0,I)=STRING$(31,0) 14 NEXT:IFNWTHENGOSUB26 15 CLS:SOUND1000,8:PRINT@121,"Rewriting"DS;D:DSKO$0,0,B(0):FORI=0TO39:IFASC(F(1,I))THENNEXTELSEFORJ=0TO39:IFASC(F(0,J))THENF(1,I)=F(0,J):I=I+1 16 NEXT:FORN=0TO39:IFASC(F(1,N))THENMID$(F(1,N),25)="F":NEXT 17 M=N 18 M=M\2:IFM=0THEN22ELSEJ=1:K=N-M 19 I=J 20 L=I+M:IFF(1,I-1)<=F(1,L-1)THENELSEF=F(1,I-1):F(1,I-1)=F(1,L-1):F(1,L-1)=F:I=I-M:IFI<1THENELSE20 21 J=J+1:IFJ>KTHEN18ELSE19 22 POKEV,31:FORI=0TO39:M=B(0)+31*I:GOSUB50:MID$(F,1)=F(1,I):NEXT:POKEV,20:M=B(0)+1240:GOSUB50:MID$(F,1)=S:M=M+20:POKEM,NS:DSKO$1,0,B(0):GOTO54 23 N0=N0+1:IFN0>NBTHENN0=NB:GOSUB26:N0=0:J=0:GOSUB46 24 CLS:PRINT@121,RDLEFT$(F0,9):PRINT@268,Q;N0:PRINT@308,SR;N(0);:SOUND10000,1:DSKO$0,N(0),B(N0):PRINT@202,C:NW=1:N(0)=PEEK(B(N0)+1280):IFN(0)<255THEN23 25 RETURN 26 J=1:GOSUB46:GOSUB31:IFN9THENMID$(F(0,L),30)=CHR$(O):N9=0 27 FORN1=0TON0:N(1)=O:NE=PEEK(B(N1)+1280):MID$(S,K+1)=CHR$(N):GOSUB31:IFNE<80THENPOKEB(N1)+1280,O 28 CLS:PRINT@121,"Writing "LEFT$(F1,9):PRINT@268,Q;N1:PRINT@308,SR;N(1);:SOUND5000,1:DSKO$1,N(1),B(N1):PRINT@202,C:NW=0:IFN9THENMID$(F(0,L),30)=CHR$(N(1)):N9=0 29 IFNE=255THENGOSUB35 30 NEXT:RETURN 31 IFK>19THENRETURNELSEN=ASC(MID$(S,K+1,1)):IFN=170THENK=K+1:GOTO31ELSEIFN<128THENN=N+128:O=0ELSEIFN<160THENN=N+32:O=1ELSEIFN<168THENN=N+8:O=2ELSEIFN<170THENN=170:O=3 34 O=K*4+O:RETURN 35 MID$(F(0,L),31)=CHR$(N(1)) 36 L=L+1:IFL>39THENRETURNELSEF1=F(0,L):IFMID$(F1,25,1)="M"THENN9=1:RETURNELSE36 37 CLS:PRINT@81,"File: "F," New Name";:INPUTF:IFINSTR(F,".")THENF=LEFT$(F,INSTR(F,".")-1) 38 F=LEFT$(F,6):J=LEN(F):F=F+SPACE$(6-J):FORJ=1TO6:M=ASC(MID$(F,J,1)):IFM>96ANDM<123THENMID$(F,J)=CHR$(M-32) 39 NEXT:MID$(F(0,I),1)=F:F=LEFT$(F(0,I),9):GOTO7 40 CLS:PRINT@81,"File: "F,,"ark for Copying",,R,,SK,,"inished -- Make Copies",,ES;:SOUND800,3:POKEKB,0 41 T=INKEY$:IFT=""THEN41ELSEONINSTR(" sSmMrRfF"+E,T)/2GOTO12,7,37,13,54:SOUND600,3:GOTO41 42 CLS:PRINT@81,"File: "F," Already Exists!",,R,,SK,,ES:SOUND600,12:J=39:NEXT:POKEKB,0 43 T=INKEY$:IFT=""THEN43ELSEONINSTR(" rRsS"+E,T)/2GOTO37,12,54:SOUND600,3:GOTO43 44 CLS:PRINT@81,"Destination"DS"Full!",,ES,,"opy Marked Files":SOUND600,12:POKEKB,0 45 T=INKEY$:IFT=""THEN45ELSEONINSTR("cC"+E,T)GOTO13,13,54:SOUND600,3:GOTO45 46 CLS:PRINT@121,"Insert "P(J)DS,P;:SOUND800,5:POKEKB,0:T=INPUT$(1):IFT=ETHEN54ELSERETURN 48 CLS:PRINT@121,RD;D:DSKO$0,0,B(J):POKEV,31:FORI=0TO39:F(J,I)="":M=B(J)+I*31:GOSUB50:F(J,I)=F:IFJTHENIFASC(F(J,I))THENNF=NF+1 49 NEXT:NS=PEEK(B(1)+1260):M=B(1)+1240:POKEV,20:GOSUB50:S=F:RETURN 50 H=256:POKEV+1,(MMODH+H)AND255:POKEV+2,M/H+H:RETURN 52 CLS:PRINT@121,;:IFERR=7THENPRINT"No Room"ELSEIFERR>62ANDERR<66THENPRINT"Disk"ERELSEIFERR>58ANDERR<67THENPRINT"Drive"ERELSEPRINTERERR"in line"ERL 53 PRINTP;:BEEP:BEEP:POKEKB,0:T=INPUT$(1) 54 SOUND600,22:CLEAR0,Z:MAXFILES=0:LFILESMENU 55 CLS:PRINT"No Powr-DOS":BEEP:END