> Archive220  ARCER 1.8 BY ANDREW BLACK # Extended Ver 2 by J.G.Harston (, This program may be freely distributed 2:&87:23;2,53;0;0;0 <8b&1F,c&FF:A$=OS:vr$="2.20":s%=&87:l%=0:k%=0:qt$="" F8I%=A$,"-q"):I%:qt$=A$,1+A$," ",I%)):A$=A$,I%-1) P,e$="":mx%=--2000:mx%>&FFFF:mx%=&10000 Z>zp%3,dt%mx%:f:hp:A$<>"":"Key0 E"+A$+"|M":*FX138,0,192 derr:end:A$=13: n:g:"Exit":end:A$=13: x3end:A$=qt$:qt$="":A$=""A$=42:A$: A$: h(f%):'"Archive Mode":" Destination file "j$:"(B)lack, (C)JR or (Z)ip archive? ";:ar%= &DF:"BCZ",ar%):ar%:ar%=(ar%=67)&40 ((ar%=90)&50) 1f%:ar%=&50:"Extending ZIPs - can't yet": !l%=0:f%:l%=(j$):l%:chk: G13;39;13;:l%:#l%=#l%:"Extend"; l%=(j$):at%=1:"Creat"; Ik%=l%:l%=0:"ing a ";:ar%=&40:"CJR"; ar%=&50:"ZIP"; "Black"; 6k%=0:" - couldn't open file"'"'"j$"'":"Exec": %ar%=&50:iC:#k%,0:#k%:k%=(j$) ;n%=-1:#k%=0ar%=&40:n%=050:#k%,l%::n%=0:end%=#k% -ar%=0#k%=0:#k%,"",&FF000000,0,0:at%=0 3ar%=&40 n%<0:#k%,a%:n%=n%+1:a%=0:end%=#k% ar%=&50:n%=0 k" archive."'"Enter filenames, dir names, *commands, end with RETURN"::::"File: "d$:d$=42:d$ d$<>42 d$<>124:l%=0:d$<>"":11;(d$+7)40+4,9);:d2$=d$:d$=d$,d$+",",",")-1):d2$=d2$,2+d$):l%=(d$):l%=0:'"File not found" Jl%<>0 d$="":d$<>"":o:r0%=2:#l%:l%=0:"DIR "+d$:dir d$<>"":c !:d$="":11:ar%=&50:zc:ze Q#k%:k%=0:d$=j$:o:X%=b:Y%=X%256:$c=d$:A%=X%?2:X%!2=&FFFDDC00+A%:A%=1:&FFDD ""Transfer completed": ,c:d2$<>"":d$=d2$ 6p%=b!2:q%=b!6:m%=#l%:a%=b!14:ar%=&40:#k%=n%*5:#k%,end%:#k%=end%:#k%,d$,p%,q%,m%,a% ar%=&50:zi #k%,d$,m%,p%,q%:at%=0:#k%,a% @`tr(l%,k%,m%,):#l%:l%=0:n%=n%+1:end%=#k%:at%=0:#k%=2:#k%,(end%-17)&FF000000:#k%=end% J0)):#k%=end% T ^zi:zn:wr32(&04034B50):wr32(0):wr32(0):!zp%=a%:?zp%=1+(zp%?2 16)+((zp%?1 &E0)2):wr16((zp%?1 31)+32*(zp%?2 15)+&200*?zp%):cp%=#k%:wr32(0):wr32(m%):wr32(m%) h4wr16(d$):wr16(24):z%=1d$:#k%,d$,z%,1): r\wr16(&4341):wr16(20):wr32(&30435241):wr32(p%):wr32(q%):wr32(a%):wr32(0):crc%=-1: |(zc:ep%=0:cp%=#k%:fp%=0:#k%<30: 9134,9,9,9::ep%=#k%:#k%=fp%:lp%=fp%:pc(lp%,ep%); wz%=029:dt%?z%=#k%::A%=dt%?26:z%=1A%:dt%?(z%+29)=#k%::z%=A%+30A%+53:dt%?z%=#k%::fp%=#k%+dt%!18:#k%=ep% wr32(&02014B50):wr16(0):z%=429:#k%,dt%?z%::wr32(0):wr16(0):wr32(&20):wr32(lp%):z%=30A%+53:#k%,dt%?z%::ep%=#k%:fp%>=cp%: _ze:wr32(&06054B50):wr32(0):wr16(n%):wr16(n%):wr32(ep%-cp%):wr32(cp%):wr16(0):13: iC:cC%=cC%:cC%: ?&FFF7<>&6C: AcC%=dt%:dt%=dt%+90:mx%=mx%-90:ca%=&70:cl%=&72:cc%=&74:tmp=&78 z%=01:P%=cC%:[OPTz%*2 LDY#0:.bl:LDA(ca%),Y:LDX#8 :.rl:RORA:ROLtmp:DEX:BNErl:LDAtmp:cc%+3:STAcc%+3:LDX#8 D.xl:LDAcc%+3:PHP:CLC:ROLcc%:ROLcc%+1:ROLcc%+2:ROLcc%+3:PLP:BPLbc 3LDAcc%+0:#&B7:STAcc%+0:LDAcc%+1:#&1D:STAcc%+1 3LDAcc%+2:#&C1:STAcc%+2:LDAcc%+3:#&04:STAcc%+3 (.bc:DEX:BNExl:INY:BNEdc:INCca%+1:.dc 9LDAcl%:SEC:SBC#1:STAcl%:LDAcl%+1:SBC#0:STAcl%+1:Acl% BNEbl:RTS:]: &: 0aݤr(A%):B%=A%:A%=0:z%=132:A%=A%+A%:A%=A%(B%1):B%=((B%2)&7FFFFFFF)-((B%1)(B%<0))::=A% :BݤR(A%):B%=A%:A%=0:z%=18:A%=A%+A%:A%=A%(B%1):B%=B%2::=A% DOr:$c=out(d$):X%=b:Y%=X%256:!X%=c:X%!2=p%:X%!6=q%:X%!14=a%:A%=1:&FFDD: N#s:'"Dearchive Mode":src: X chk: b&z:n%=0:ptr%=-1:ar%=&40:#l%,ptr% l{i:eof%:f%=0:d$,1)<>".":k%=(out(d$)):'" Extracting ";d$;4;:tr(l%,k%,m%,):#k%:k%=0:r eof%:#l%=#l%+m% v'eof%:ar%=&40:#l%=n%*5:#l%,ptr% ;#l% ptr%=0 eof%:#l%:l%=0:'"Transfer completed": Jo:X%,Y%,A%:$c=d$:!b=c:X%=b:Y%=X%256:A%=5:r0%=&FFDD &FF:fs<>5: `$(c+8)=d$:!c=&12005000:c?1=9+d$:c!4=&40000000:X%=c:Y%=X%256:A%=&14:&FFF1:c?3=0:b!15=c!10  'ݤg:58:e$=:e$>"`" e$=(e$&DF) 5"ACDEGQX?*",e$):127:e$="C" e$="A":h(e$="A") e$="D":s e$="E":x e$="?":hp e$="*":"*"e$:e$ e$="G":g /e$="Q":""qt$:qt$=qt$,qt$," ")+1)::hp  =e$="X" 1ݤerr:s%<>&87:s%=&87:22,s%,23;2,53;0;0;0:f  ):"FX15":"EXEC":l%:A%=l%:l%=0:#A% k%:A%=k%:k%=0:#A%  :=-1-2 *f:""39,"p");:134,157,141:2"Black, CJR & ZIP File Archiver":134,157,141:2"Black, CJR & ZIP File Archiver"'7"Version "vr$" by J.G.Harston"'""39,"`"); 428,0,24,39,5,15::: >$x:'"Examine archive":src: H chk: R ex(): \?ex(F%):ar%=&50:"ZIP"; ar%=&40:"CJR"; "Black"; fF" archive "t$" contains:":ln%=512:n%=0:ptr%=-1:ar%=&40:#l%,ptr% p:i:eof%:ln%=ln%+m%+256-(m%&FF):""d$,14);(15-d$,14));:F%:h0(p%,8);"+";h0(m%,4);" ";h0(q%,8);:f%:" *"8 eof%:F%(n%3)=2:8;8;8 z4eof%:#l%=#l%+m%:ar%=&40:#l%=5*n%:#l%,ptr% '#l% ptr%=0 eof%:F%=0 (n%3): M" Total size: ";ln%1024;"K ";n%;" file""s",n%>1)".":z:F%:#l%:l%=0  0ݤpc(A%,N%):8,8,8:d0(100*A%N%,2)"%";:="" $ݤd0(A%,N%)="000000000"+A%,N%) $ݤh0(A%,N%):="0000000"+~A%,N%) ݤup(a$):b$,n%:a$="":="" En%=1a$:a$,n%,1)>"_":b$=b$+(a$,n%,1)-32) b$=b$+a$,n%,1) :=b$,b$+" "," ")-1) ݤdn(a$):b$,n%:a$="":="" Ln%=1a$:(a$,n%,1)&E0)=&40:b$=b$+(a$,n%,1)+32) b$=b$+a$,n%,1)  :=b$ hp:" (C)reate an archive"21)"(D)earchive files"'" (A)dd to an archive"21)"(G)et single file"'" (E)xamine archive"21)"(*)command"'" e(X)it program"21)"(?)Help": #tr(c1%,c2%,n%,cf%):#c1%=0: (X%=b:Y%=X%256::b%=mx%:n%&04034B50:n%=n%-1:eof%=: 3z%=rd16:z%=rd16:ty%=rd16:mt%=rd16:md%=rd16 6crc%=rd32:m%=rd32:fsz%=rd32:nl%=rd16:el%=rd16 z%=0127 4:dt%!z%=0: /d$="":nl%:z%=1nl%:d$=d$+#l%::zn:zn2 -dt%!16=&33:el%:z%=0el%-1:dt%?z%=#l%: 5p%=dt%!8:q%=dt%!12:a%=dt%!16:m%=m%(ty%*&1000000)  2ݤchk:#l%=0:ar%=#l%:ar%=&40:#l%=5:ar%=#l%  )ar%=&50:ar%=#l%:ar%=&50 (ar%<>&4B) g((ar%=0#l%=1)ar%=&40ar%=1(ar%=&50 #l%=2)):"Not a Black, CJR or ZIP archive":#l%:l%=0:= ;#l%=0:at%=1:ar%=0:at%=#l%+#l%:#l%=0:at%=0:#l%=17 (= 2zn:d$,".")+d$,"/")=0:  Hardwire for the moment, read from external config later xxt$="a":t%=&DDC:xt$="arc" xt$="a":xt$="asm" xt$="ar":xt$="arc" xt$="as":xt$="asm" xt$="b":t%=&1C7:xt$="bbc" xt$="b":t%=&FDA:xt$="bat" xt$="b":xt$="bbc"  xt$="ba":t%=&FDA:xt$="bat" xt$="ba":xt$="bas" xt$="bb":xt$="bbc" xt$="c":t%=&FFD:xt$="crc" xt$="c":t%=&201:xt$="com" xt$="c":t%=&FD8:xt$="com" xt$="c":t%=&FFF:xt$="c"  xt$="c":t%<>&FFF:xt$="com" xt$="co":xt$="com" xt$="d":xt$="doc" "xt$="de":xt$="def" ,xt$="df":xt$="dfs" 6xt$="do":xt$="doc" @xt$="ds":xt$="dsd" Jxt$="e":xt$="exe" Txt$="ex":xt$="exe" ^xt$="f":xt$="fon" hxt$="fn":xt$="fnt" rxt$="fo":xt$="fon" |xt$="g":xt$="gif" xt$="gi":xt$="gif" xt$="h":t%=&FAF:xt$="htm" xt$="ht":xt$="htm" xt$="i":xt$="ini" xt$="in":xt$="ini" xt$="j":xt$="jpg" xt$="jp":xt$="jpg" xt$="l":t%=&FFF:xt$="lst" xt$="l":xt$="lbr" xt$="lb":xt$="lbr" xt$="ls":xt$="lst" xt$="m":xt$="mac" xt$="ma":xt$="mac" xt$="mo":xt$="mod" xt$="o":xt$="ovr" xt$="ov":xt$="ovr" &xt$="p":xt$="pdf" 0xt$="pd":xt$="pdf" :xt$="r":t%=&BBC:xt$="rom" Dxt$="r":t%=&700:xt$="rom" Nxt$="r":t%=&FFF:xt$="reg" Xxt$="r":xt$="rtf" bxt$="ro":xt$="rom" lxt$="rt":xt$="rtf" vxt$="s":t%=&BA1:xt$="sna" xt$="s":t%=&FFF:xt$="src" xt$="s":t%=&FFD:xt$="sys" xt$="s":t%=&B22:xt$="ssd" xt$="s":t%=&702:xt$="ssn" xt$="s":t%=&701:xt$="sta" xt$="s":xt$="src" xt$="sn":xt$="sna" xt$="sp":xt$="spl"  xt$="ss":t%=&B22:xt$="ssd"  xt$="ss":t%=&702:xt$="ssn" xt$="st":xt$="sta" xt$="sr":xt$="src" xt$="sy":xt$="sys" xt$="t":t%=&FFF:xt$="txt"  xt$="t":t%=&11D:xt$="tap" xt$="t":t%=&FF0:xt$="tif"  xt$="t":xt$="txt" *xt$="ta":xt$="tap" 4xt$="ti":xt$="tif" >xt$="tx":xt$="txt" Hxt$="u":xt$="url" Rxt$="ur":xt$="url" \xt$="w":xt$="wks" fxt$="wk":xt$="wks" pxt$="x":xt$="xls" zxt$="xl":xt$="xls" xt$="z":t%=&DDC:xt$="zip" xt$="z":t%=&FFF:xt$="z80" xt$="z":t%=&BA0:xt$="z80" xt$="z":xt$="zip" xt$="z8":xt$="z80" xt$="zi":xt$="zip" d$,1)<="_":xt$=up(xt$) d$=d$,A%-1)+"."+xt$: : Nzn2:A%=0::B%=d$+".",".",A%+1):B%-A%>11:d$=d$,A%+10)+d$,B%):B%=A%+11 A%=B%:B%>d$: %ݤout(d$):fs=4:=d$,d$,".")+7) 'd$,".")=0:=d$,10): * in PROCzn? Mn%,d2$:d2$=d$:n%=d2$,".",n%+1):n%:d$=d2$,n%-1):o:r0%=0:"CDIR "+d$ n%=0:=d2$ !ݤfs: A%,E%,Y%:=(&FFDA)&FF $dir:r%,i%,l%,X%,Y%:rc%=d$,2)=" r"d$,2)=" R":i%=0:A%=8:X%=c+20:Y%=X%256:X%!1=c:X%!5=1:X%!9=i%:&FFD1:i%=X%!9:r%=X%!5 .|r0%=0:r%=0:c?(1+?c)=13:d$=$(c+1):o:r0%=1:l%=(d$):'"File: "d$;4;:c r0%=2:rc%:"Dir "+d$:d$=d$+" r":dir:*Dir ^ 8 r%<>0: B%g:'"Get single files":src: L chk: V ex(): `3"Select file to examine: "a$:a$=up(a$):chk j'n%=0::ar%=&40:#l%=5*n%:#l%,ptr% tTi:ptr%=#l%:#l%=#l%+m%:n$=up(d$):#l% a$=n$:a$<>n$ f%:"File not found" ~a$=n$:#l%=ptr% U""d$,14);(15-d$,14));h0(p%,8);"+";h0(m%,4);" ";h0(q%,8);:f%:" *"8 '"(E)xtract"4"(D)ump"8"(T)ype "; %n%= &DF:n%=68 n%=69 n%=84: n%=68:dmp 6n%=69:k%=(out(d$)):tr(l%,k%,m%,):#k%:k%=0:r n%=84:typ #l%:l%=0: kdmp:h0(#l%-ptr%,4);" ";:n%=07:m%>0:dt%?n%=#l%:h0(dt%?n%,2);" ";:m%=m%-1 dt%?n%=32:" "; 3:n%=07:dt%?n%<32 dt%?n%>126:46 dt%?n% ::m%<1: Rtyp:>&7FFF:A%=133:X%=&83:A%=((&FFF4)&FFFF00)256:A%>&7FFF:s%=&83:22,s% 514:n%=#l%:m%=m%-1:n%>127 (n%<127 n%>31):n% n%=13: 1n%<32 n%<>13 n%<>10:135:0:64+n%:128:7 Hm%<1:15:s%<>&87:'"Press SPACE to continue":n%=:s%=&87:22,s%:f  (kݤOS:<&3000:A$=$&600 <&4000:A$=$(-&300) ș"OS_GetEnv"A$:A$=A$,A$+" "," ",A$+" "," ")+1)+1) 2&A$=s(A$):=s(A$,A$+" "," ")+1)) " " F+A$,1)=" ":A$=A$,A$-1):A$,1)<>" " P=A$ B(C) {H {h H {h * pqrNs-rpqs {۠{L `{{`{{H Ϋ{ {h`p{{{p`Q%=PAGE OLD RUN BASIC