10 REM ARCER (BASIC) 20 REM BY ANDREW BLACK 30 REM VERSION 1.8 40 REM (C) ANDREW SOFT 50 REM"ƒThis program has been placed 60 REM"ƒinto Public Domain. 70 *FX14,6 80 ONERRORPROCa(0) 90 DIMb&20,c&10,d$(70):e$="":MODE7:VDU23;8202;0;0;0;:VDU15:PROCf 100 PROCg:END 110 DEFPROCh:CLS:PRINT"ƒCompressing Mode":PRINT:INPUT" How many files to compress",i%:IFi%>30THENPROCh 120 INPUT" Destination file",j$:e$="!":k=OPENOUT(j$):FORQ=1TOi%:INPUT" Enter file(s) to compress",d$(Q):NEXT:FORW=1TOi%:l=OPENIN(d$(W)):IFl=0THENPROCa(1) 130 m%=EXT#(l):n%=((m%/1024)*9)DIV1 140 PRINT:PRINT" Compressing "d$(W):PRINT" Compression time is ";n%" secs.":PROCo:PRINT#k,d$(W),m%,p%,q%:FORZ=1TOm%:BPUT#k,BGET#l:NEXT:CLOSE#l:NEXT:CLOSE#k:PRINT'"ƒˆTransfer successful‡‰":I$=INKEY$(200):ENDPROC 150 DEFPROCr:$c=d$(W):!b=c:!(b+2)=p%:!(b+6)=q%:X%=bMOD256:Y%=bDIV256:A%=2:CALL&FFDD:X%=bMOD256:Y%=bDIV256:A%=3:CALL&FFDD:ENDPROC 160 DEFPROCs:CLS:PRINT"ƒDecompressing Mode":PRINT:INPUT" Input source file",t$:W=1:e$="!":l=OPENIN(t$):IFl=0THENPROCa(1) 170 u%=EXT#l:n%=((u%/1024)*9)DIV1 180 PRINT:PRINT" Decompress complete file in ";n%" secs.":REPEAT:INPUT#l,d$(W),m%,p%,q%:k=OPENOUT(d$(W)):PRINT:PRINT" Decompressing ";d$(W):FORZ=1TOm%:BPUT#k,BGET#l:NEXT:CLOSE#k:PROCr:W=W+1:UNTILEOF#l:CLOSE#0:PRINT'"ƒˆTransfer successful‡‰":I$=INKEY$(200):ENDPROC 190 DEFPROCo:$c=d$(W):!b=c:X%=bMOD256:Y%=bDIV256:A%=5:CALL&FFDD:p%=!(b+2):q%=!(b+6):ENDPROC 200 DEFPROCg:CLS:IFe$="!"THENPROCv 210 INPUT" Which drive to use (0-3)",w%:IFw%>3THENPROCg 220 $&900="DR."+STR$(w%):X%=&00:Y%=&09:CALL&FFF7:INPUT" Compress or decompress file(s) (C/D)",e$:IFe$="C"THENPROCh 230 IFe$="D"THENPROCs 240 IFe$=""THENPROCgELSEPROCg 250 ENDPROC 260 DEFPROCa(x%):CLOSE#0:IFx%=1THENPRINT"File not found" 270 REPORT:PRINT:ENVELOPE1,1,4,-4,4,10,20,10,127,0,0,-5,126,126:SOUND1,1,100,100:END:ENDPROC 280 DEFPROCf:PRINT"—ppppppppppppppppppppppppppppppppppppppp";:VDU134,157,141:PRINT"„File Compresser by Andrew Black":VDU134,157,141:PRINT"File Compresser by Andrew Black":PRINT"”```````````````````````````````````````":VDU28,0,24,39,4:ENDPROC 290 DEFPROCv:e$="":CLS:INPUT" Exit (Y/N)",y$:IFy$="N"THENGOTO100 300 END:ENDPROC