0 'Club 100 Library, Modem 415-939-1246 1 'COPYFL.BA by Joel Dinda, version 1.3 revised by Robert Benson (6/8/89) 10 CLS:IFPEEK(1)=171THENZ=-6556ELSEZ=-3239 11 IFPEEK(Z)=229ANDPEEK(Z+1)=94ANDPEEK(Z+239)=4ANDPEEK(Z+240)=195THENPRINT@92,"COPYFL.TD2 Ver1.2"TAB(91)"Copyright 1986,1988"TAB(94)"Joel A. Dinda"ELSE64 12 MAXFILES=1:OPENCHR$(146)FOROUTPUTAS1:PRINT#1,HIMEM:CLEAR3000,HIMEM-FRE(0)+4000:ONERRORGOTO61:OPENCHR$(146)FORINPUTAS1:INPUT#1,Z:KILLCHR$(146)+".do":DEFSNGA-Y:DEFSTRC-T:DEFINTH-O:P=" Press any key " 13 NB=(Z-HIMEM)\1284-1:IFNB<3THENERROR7ELSEDIMB(NB),F(1,39),H(2),HD(1),N(1),P(1):FORI=0TONB:B(I)=HIMEM+I*1284-65536:NEXT:K=0:MK=1:NF=0:IFPEEK(1)=171THENKB=-738:KD=-6556ELSEKB=-86:KD=-3239 14 C="Checking...":D="Directory...":DS=" Diskette ":E=CHR$(27):ER=" Error":ES="ape to Menu":F="":P(0)="SOURCE":P(1)="TARGET":Q="Buffer":R="ename & Copy":RD="Reading":S="":SK="kip -- Don't Copy":SR="Sector":V=VARPTR(F) 15 FORJ=1TO0STEP-1:H2=1:GOSUB55:GOSUB57:NEXT:FORI=0TO39:F=LEFT$(F(0,I),9):IFASC(F)THEN49ELSE22 16 PRINT@81+X,C:X=0:FORJ=0TO39:IFF=LEFT$(F(1,J),9)OR(F=LEFT$(F(0,J),9)ANDMID$(F(0,J),25,1)="M")THEN51ELSENEXT 17 A=ASC(MID$(F(0,I),26))*256+ASC(MID$(F(0,I),27)):N=A/1280:A=A/1280:IFA>NTHENN=N+1 18 IFNS+N<160THENNS=NS+NELSE53 19 IFNF+1<41THENNF=NF+1ELSE53 20 MID$(F(0,I),25)="M":MK=0 21 NEXT 22 IFMKTHEN63ELSECLS:PRINT@41,"Finding Start...":L=-1:GOSUB45:N0=-1:FORI=0TO39:F0=F(0,I):IFMID$(F0,25,1)="M"THENN(0)=ASC(MID$(F0,30,1)):GOSUB32ELSEF(0,I)=STRING$(31,0) 23 NEXT:IFNWTHENGOSUB35 24 CLS:SOUND1000,8:PRINT@41,"Rewriting"DS;D:FORI=0TO1:H(0)=B(I):H(1)=I:H(2)=3:GOSUB60:NEXT:FORI=0TO39:IFASC(F(1,I))THENNEXTELSEFORJ=0TO39:IFASC(F(0,J))THENF(1,I)=F(0,J):I=I+1 25 NEXT:FORN=0TO39:IFASC(F(1,N))THENMID$(F(1,N),25)="F":NEXT 26 M=N 27 M=M\2:IFM=0THEN31ELSEJ=1:K=N-M 28 I=J 29 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<1THENELSE29 30 J=J+1:IFJ>KTHEN27ELSE28 31 POKEV,31:FORI=0TO39:M=B(HD(1))+31*I+4:GOSUB59:MID$(F,1)=F(1,I):NEXT:POKEV,20:FORK=0TO1:M=B(K)+1244:GOSUB59:MID$(F,1)=S:M=M+20:POKEM,NS:H(0)=B(K):H(1)=K:H(2)=4:GOSUB60:NEXT:GOTO63 32 N0=N0+1:IFN0>NBTHENN0=NB:GOSUB35:N0=0:J=0:GOSUB55 33 CLS:PRINT@41,RD": "LEFT$(F0,9):PRINT@176,Q;N0:PRINT@216,SR;N(0);:SOUND10000,1:H(0)=B(N0):H(1)=N(0):H(2)=3:GOSUB60:PRINT@81,C:NW=1:N(0)=PEEK(B(N0)+1):IFN(0)<255THEN32 34 RETURN 35 J=1:GOSUB55:GOSUB40:IFN9THENMID$(F(0,L),30)=CHR$(O):N9=0 36 FORN1=0TON0:N(1)=O:NE=PEEK(B(N1)+1):MID$(S,K+1)=CHR$(N):GOSUB40:IFNE<160THENPOKEB(N1)+1,O 37 CLS:PRINT@41,"Writing: "LEFT$(F1,9):PRINT@176,Q;N1:PRINT@216,SR;N(1);:SOUND5000,1:H(0)=B(N1):H(1)=N(1):H(2)=4:GOSUB60:PRINT@81,C:NW=0:IFN9THENMID$(F(0,L),30)=CHR$(N(1)):N9=0 38 IFNE=255THENGOSUB44 39 NEXT:RETURN 40 IFK>19THENRETURN 41 N=ASC(MID$(S,K+1,1)):IFN=255THENK=K+1:GOTO40 42 IFN<128THENN=N+128:O=0ELSEIFN<192THENN=N+64:O=1ELSEIFN<224THENN=N+32:O=2ELSEIFN<240THENN=N+16:O=3ELSEIFN<248THENN=N+8:O=4ELSEIFN<252THENN=N+4:O=5ELSEIFN<254THENN=N+2:O=6ELSEIFN<255THENN=255:O=7 43 O=K*8+O:RETURN 44 MID$(F(0,L),31)=CHR$(N(1)) 45 L=L+1:IFL>39THENRETURNELSEF1=F(0,L):IFMID$(F1,25,1)="M"THENN9=1:RETURNELSE45 46 CLS:PRINT@41,"File: "F," New Name";:INPUTF:IFINSTR(F,".")THENF=LEFT$(F,INSTR(F,".")-1) 47 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) 48 NEXT:MID$(F(0,I),1)=F:F=LEFT$(F(0,I),9):X=40:GOTO16 49 CLS:PRINT@41,"File: "F:PRINTTAB(54)"ark for Copying",,R,,SK,,"inished -- Make Copies",,ES;:SOUND800,3:POKEKB,0 50 T=INKEY$:IFT=""THEN50ELSEONINSTR(" sSmMrRfF"+E,T)/2GOTO21,16,46,22,63:SOUND600,3:GOTO50 51 CLS:PRINT@41,"File: "F," Already Exists!":PRINTTAB(54)R,,SK,,ES:SOUND600,12:J=39:NEXT:POKEKB,0 52 T=INKEY$:IFT=""THEN52ELSEONINSTR(" rRsS"+E,T)/2GOTO46,21,63:SOUND600,3:GOTO52 53 CLS:PRINT@81,"Target"DS"Full!":PRINTTAB(54)ES,,"opy Marked Files":SOUND600,12:POKEKB,0 54 T=INKEY$:IFT=""THEN54ELSEONINSTR("cC"+E,T)GOTO22,22,63:SOUND600,3:GOTO54 55 CLS:PRINT@129,"Insert "P(J)DS:IFH2THENPRINT@169,"Select Bank 0 - Bank 1 ";:GOSUB56:IFT="1"ORT="0"THENHD(J)=VAL(T):H2=0:RETURNELSEBEEP:BEEP:GOTO55ELSEPRINT@168,P"to start ";:GOSUB56:RETURN 56 SOUND800,5:POKEKB,0:T=INPUT$(1):IFT=ETHEN63ELSERETURN 57 CLS:PRINT@41,RD" ";D:H(0)=B(J):H(1)=HD(J):H(2)=3:GOSUB60:POKEV,31:FORI=0TO39:F(J,I)="":M=B(J)+I*31+4:GOSUB59:F(J,I)=F:IFJTHENIFASC(F(J,I))THENNF=NF+1 58 NEXT:NS=PEEK(B(1)+1264):M=B(1)+1244:POKEV,20:GOSUB59:S=F:RETURN 59 H=256:POKEV+1,(MMODH+H)AND255:POKEV+2,M/H+H:RETURN 60 CALLKD,H(2),VARPTR(H(0)):IFH(0)<2THENRETURNELSEIFH(0)=3THENERROR59ELSEIFH(0)=5THENERROR61ELSEIFH(0)=6THENERROR63ELSEIFH(0)=8THENERROR65ELSEIFH(0)=9THENERROR66ELSEIFH(0)=12THENERROR60ELSEERROR99 61 CLS:PRINT@41,;:IFERR=7THENPRINT"Memory Full"ELSEIFERR>62ANDERR<66THENPRINT"Disk"ERELSEIFERR>58ANDERR<67THENPRINT"Drive"ERELSEPRINTERERR"in line"ERL 62 PRINTP;:BEEP:BEEP:POKEKB,0:T=INPUT$(1) 63 SOUND600,22:CLOSE1:CLEAR0,Z:MENU 64 CLS:PRINT"No FLOPPY":BEEP:END