Don Schullian (d83@ath.forthnet.gr) HUFFMAN (DE)COMPRESSION FOR PB ------------------------------------------------------------------------------ 'Run/Load under PowerBASIC to extract HUF4PB32.ZIP DEFINT A-Z:SHARED K,S,B&,Z&:V1 'Created by PostIt! 7.2 SUB V1:OPEN "O",1,"HUF4PB32.ZIP",4^6:Z&=7049:?STRING$(50,177); U"%up()%9%'%#-%M$BCG]h2'x[(%%%n+%%%0%%%%mz%kkrf#sSy'^y,yT,=U[5JL< U"oNAg%N1^(Zje7jTbxPb?<,FY*6v-H:mAW&g^4#fwPwb.XXM8I#mnF7>^BmSh7-4 U"(6=#kqHrF2C3jM=3m#YC1m(,X>2grmdKBR'?eNs9>+BYK=i^#temgfZLv(CNS<> U"8<]b-r7L7a=%x6hh;YmCMZmqwX(saOkc0ILT>^m4]SbiX;\odL06IF=hp\>WUG= U"bTJ#%9=<'-a0C#V7Lp]6b&X\U7Pik#ckf9BiH[5;T5z#GYqpOTae:h$$;p^&SuN U"^.xGdii(0/Y^hwuj&Xh3\xu4RNeA;jPL[-7JXxq2>YqkeVzOTZIf[V&hTgYV,^^ U">]nYte/R6Ww]Y&&]#QyKSjAxXbNej[4B;2BIbr(cE//aAr6]iaN=gck U"8TK30tE5hNlwmD#6]Nb:'SQhCu/IE)o4F:/iS+C:L1v]aKrtawN$GKR3E,GjfdkUq)aybA U",f'$0CDaiEq6=5*>#_M/Fkk8pQbIg5PKL:V5rTk(iSChV^F]:F8)bhzO6xRIF\:idp>bVTQ9'7>HFAdo:/<1fVADud2.^s*V8kBMpO U";QHWdZGu,TyJ'>n^LaQ%1XuaZ&[:e($2Auhbg$&<]oI[/%nr](,LaT9.;qRA6De U"ujPDdg]v^8+>]]a*s[b^Cri<&smV=E4i^-nIjS-P7K;lArg7 U"60mHIYfP(_>,bqVfcHz[0%%^%S%%/%%%%m#zkk.%uSzsayF?Tb=TkombewZFE.7y5d6a7 U"PvToEJy04B%Hx)n:ZE*eLfZrg/Wi9NpOfv&LQEPqat4*o[N40mP88s^:$FGuIHj U"A+,/b,xPB'B=2B5U,fB9ipfh&MwutD?$sD)Zjc+0Mh/E'v,\>CD.m.LE_\>Jg8U U"83Lqluv>,DON?3)1-D%Qw.(zf88U6,;jctb-V9Ils_j(-BA,QjY-nJWXVFvGV&K U"eQC2LOnPX-:rM2B&nOn;n0PlkA4b#9AR5nAeUr5=-ixA9Fu-i U"%V9>9#\-;zEd(WP(]jlntImtduod#xkK5Z$P6Cqde2YQ\P[>*Xg2a$72Mj?$zb0MlbzK7i0]S_:Q6EY5VyuNxx\K^6G2]X#*o U"IX_\HGc;IjUTA-+^K(/LUQvN07nU*\cuGjiL1kCOQ#U7](3O;//)ee0LYP;)#39 U">+aHB3>_cV1>[zvWJ)H/_fGSX.dh>V2Xi>aN)'v6Ix#mXeHGm^pG)ZA)Mhl3z-( U"eH1v+?x&Pf&s12niqid8CZLYO%)VPg2-f*_QCZ8Ik^xRKOPcq#aOu+AVA:z.aRd U"4_;1O+qEsjKCG&mE\q>kD>Qc0,I2NE0N/_O,,7G8#P:pM6YiTTi7)ReIL U",aCa?6I\?Bb7 U"THIKe2?GCT_hOf\63_R8YP2h1:Cqr>=[L^#froA]pQPfE*C#CPO]&f]DT+*i4&; U"N]1U[AQ+XhH,qSj9t(W=,F59)RCz4rJKv<5v&f>$(KnUyWM$coF;DPl$p0= U"iEq&+5Of0\W2AUQUK;VQbu6dFf^RC4rSZ_J$Zm4oA1?h[+K,Ml+YUkS4<9E,h6r U"?=8j+SC<*DV>BA1aTMP>*V+tc:jr3BCp'Uhq$#A2Q]Y'$9P+/Pidna0rZ7]:KQ2lp\5W'3nyv\f%w1Fn U"JbGX5*B.69I^gO5)Bc;Y0_aybnHHl2S3qj+)]*r-FgT8Y)2v.:]Zy]F7M16fLNe U"Os+-Y&xgljKmb_#I\1+e&H*rEgAZ)JY((A&qELIHav#OnDt487yNOd5) U"R%^g)kuX'Q]nev8ETk'[3t(]Bn8ym+y3?S/32N5aj4Wa0Gf*3tnF%;;P8*)fP-; U"%SH\l,6l#\[TmEnx_SFNj=\mRL-v.sML>65eGE]b?u['dwTPPy-:)+Y6aL\v8)n U"]miAMr':?MVwwOe5yRfsRmx,sb&MH=Ow8Ex\nu+\p7hwOo/8NIp+<(:osL U"h2(Ze.[XT&qc]EN;uMGsgy[qy/-FC=4^sL=3lM/whD+Nm&zpW_z?s$>gA/gzw-D U"bzQ%T0=/c8D1>B4>L.Jl<79N\9>.JM;hMC]2Y0C*/D_t50aXdNPBU9>0A9Lfne_ U")KbSbpE:Wa.*[6q+]b-3QF\z:P'K7/%<*4H:Tn\M-2V4d[6Z5mUR?)Z$DA4gZxo U"dO#:+7fXI*p5MoB#0F'OCOcD,tSd>7?LcLl?aj4/vl*-n U"TaN45UoMpK6Xb7YH5'iTMper)iTSltd7k))+=;9Rg6&b/t]\>5EAO(lVpyB9Zbo U"B;QE\7) U"cqO+cJ)P&Zp#nrj_%.P[.RzB(+pMtXBE#JknMF,uO4c7KW)i%*EDQ:KG#Q<:z94 U"Oo3&8'i1ei'fUY>.uThYZ'FX\9=d1V+<-Wkgo6PuuSRmH\Go6.PEF52;iGs9Z,5p(,3dWjplg_?K2Nz8zmbIt]\H=d^syfA51mLo#.jV U"xa?B;la[uL_-j,ZP>'(h3?VaoG&.X2hA'VDUBrq#f4_sGKdmd^6e)SpTs&-V*;H U"DH7I03cPGhbAVFyY6Y.M34Khwt[=tWCB/7A U"?'t1\a;*h:Q&jiX;7tpqq>50JqURUUXJ*oP%J>pn>IS1uqto$W?jaW_8Qd>rC4R U"t;h&\rwlVTm-;b130#0.i#N]t_uHod^_SP86kaho97NHqEKxDq+9/puRVaDYz') U"nctYtk]hTwZ\/>psqs3wq4#Z,'Y^o3a>ajRePJ6K[9x5P)\y=fh&f;q,aK[0)uF U"Ug7Kr58/1,UA/[T;JBr.B#^ghc]i,ab4&I-$wV=zt+lrVbk:ZWuqW=F7vS,NV,E U")^P7/6v&+27fu3?)^*_XgPLIErlnWK_0ZK9ff8sEbSs^M-Nz/JIB.Q]Pczb)$Z< U"UZV+&,BZ>UGV(vl0rXL:0e4h=3^6hg(7,\RQ5-;DwE9aBi6jgVMVrmgnDwk^YRU U"(>tK#^;ejZRoD\lj:P-MDXhmx)WAp8MHPE(Si=TlNl(^wOJR] U"Jj%Ozj?YDTv%+66kyhz8mFM\Ih[6OU=YYRNQFuJTEOrU5/_UBg&8RU#**Kj>U:$ U"g3]kp;[4]*nNup%()9%%'%-%:v*DG+$1vS%d*%%&m4%%%/%%%%mzkk&.ySgRfxF U"%;<>Smj5w]=DNg?A%*Bf&QSW,j=kZ>Y8%ATWT4wsxDA/&.>[FrJY,6PTpBi U"Jbx(LlJ)-eEaXZlEE]cTw?G2i\5(>/;OvoEEG;BI4\_b=v)ok#-X6%Bak>5KnR% U"Og?%_=khJ%P/IT46E5cfEXhu'Bt&p/#Bl$=EF/-L/96HOZnr\D:FW5:UU>2T&7R U"9P=Zi0#+1=d59Or.(1kZP[PQ;[vPUs?wog>lq$?]OL=5m8WL)9'f\>HE8]'X>fi[W_6FU U"a7xlIdYMnPA_J1R8\Fs?#G66^=t-9B6DB,&.47D5D89SiC223uD=Dy)93Aq13Ad U"=FU6&RIOrQ=^C/Y;Y]'^[Tql?nLOf,p*RXU_9&Wh1vT8JgGOoSyZLC7L\QtrdN? U"lm-aKuQg;rg*AW2Q;.0iYY%?/Wm[: U"wA\cA-dw'i\XRhv?9lC-4+o)DePb U"NQvh&PAq+vgIIJxt=X;7(gzX-?i&o_ThZaS?B-Y]7:n3R=nelm91*n;(ht4H%qr U"1DSlqd+l>g?csUU9>1R3VFwR)i(_&6*Ue(Wr0,1FjLOUZlT06>HK7V5Nf]Wv(,> U"kbC=WIuq&=4<=2?O1l.4T/gAx%bj+fsE$K>.w;iiog7TZk;U)-;5Z\nbN9J:rIk U"F9]v/\DIfBN8b_efJ*vpenQ1Nq9:l-DhCxeeMALu's=wf+t2NkGkhaWY_CIN^t- U",\n:/m=*pm^cpmJp9mJp8,]ginObuCjtTpH=H_9d\lB:[NnJ<5PbFmidRfpAJV4 U"DlEYbNqTqjho57HV37,_7%Mf^z>]GWm%$qyW?53mFMvgO%z(Yi$2G6>p1+J0I.s U"485t7Bx$P%Xz2pmY)f5Cr2T:R3RX%MuEekV\);&L93V%sd6t^d44Xkfl0Kjb+x0 U"7p8zosnjLfkLSbgSbQVRMygjn7JCL)mZ+][fn]R&L2ta>up(%)9%'[%-%sb'DG^derEJ U"[*%%O%9%%/%%%%m#zkk.%zSzs4yF&p,>Tk5T7#iN1=s%Q+:-PNE*b=Dd#w)B/;M U"aE2&xbpVo'Dg&Wq/9>d#ho'J'fsMY57RlE U"#5L]>o66*YCvvMcfs2O.QdLnaWD1fsC51.NX4ew)h.oe9X1LMsT8x%PFiJ\:t9d U"2T9Dd(cvC1o?KrdQ2MEmh?$W6$G;$2DbYJ6x$W:DgYDSMz--o++i/IlrmDr-p#4P]dbj7azOAT=/EYvT^qoLrD0Osn8'ZRErA[Z(LX&d U">4t.lq''4]qx+hYgp&0f;)%&Z&KCTE_Y6)aK8>h$*BQqF%tFdLCU.cl*>6UrdTK U"#+lxXBt?qZ(4ZP*W#\:#TZuXRTW9SFBYt]/0/<0EpdP,X^inRtPp8ra\-7_QqBT U"m52GE^gb&;WQ90[K6(%4)Q#I8FG>0Jr_,GsA1AA%J;bvb0m',H89wIQ*SNAq-VW]Y3 U"#>j+tWH?#WPM8RZ*T\d=:*dB=Ll$rcfk%E.5iE#'iia,M%fE(dJ?)Y8GbL&DN U";^E/^.;<&rF/i>Xmf6omLL_:fvT'9gj90M_OS8-Ke=A9-3[q4;2lqWBzn%&?k-s U"9$udm_P3=)eP2T)H+'e3Q1XyqaT)t_\H+z%]n-Hit#>WdJkQC[-\2hr$gv0Q3E* U"+;5;[rk8E U"gA[R6SIZhjs$ZH'i-dtEnC8SePa&g_YP^mB)Lp][\<&+s,>eq#&+&9lgV=&H5*s U"_.PrC3hsYRU[KJ6edYP<0pjN#IBOz3=[ndAO;o1c)E*fTv9axY2$dU&X1mOp#a9 U"NThTwKND95f,UWNa[P)]w]d9e/A550FPvXy:FIS#vX\GI2Q=ONfr-[uUUY0'aKv U"BT#'%C-rWJAs[TX22G7+Ic3=D_jy6-DSKeRL$\kcFgrT0/xF0mSL:i$TT.(9g)gnIDvBH-JaR64_cw's^&Z4] U"qAbkX;U=fGGWnkr(i4L9.BgCoXuQ\VDd8Wm:=P>]NCH&0dM.8,_O/9L:gVYL#$l U"K=4WQECSHr7qgEtySd4uO[ph8#$wfFLxW:H%33I2u1wjfNRnY[i#'fh7Uem&o%? U"2LLfM7CoKfbJn_-.u01'pLJ5KdRsnk-RJ.^M7OFcUtr9B3$z'[L94>bFHazk[D: U",:NSrX#.uYF(Mw&h$4b#r\%R*ZOJtqy#4ADF1DO;3Cu$7&Ct&uH'qaye.+IheI9GVlGQ9ZGSN-c5I3E6h8'x%up U"%&'9%%9%'%#-%M$BCG]h2'x[(%%%n+%%%0%%%%%%%%%&%%E%%%%%%%%%mzkk%rf U"sS(y'yu%p&'9%%9%'[%-%\b'DGi>fcHz[0%%^%S%%/%%%%%%%%%&%%E%%+%.(%% U"%mzk(k.uS%zsyu%p&'9%%9%'%%-%v,*DG$'1vSd#*%%m%4%%/%%%%%%%%%&%%E% U"%%%W4%%%mzk(k.yS%gfxu%p&'9%%9%'[%-%sb'DG^derEJ[*%%O%9%%/%%%%%%% U"%%&%%E%%(%h9%%%mzk(k.zS%zsyu%p*+%%%%%)[%)%Z#%%%a%?%%%%% END SUB CLOSE:IF S=127AND B&=Z&THEN?" :) Ok!"ELSE?" :( Bad! SUB U(A$):FOR A=1TO LEN(A$):C=ASC(MID$(A$,A))-37:IF C<0THEN C=91+C*32 IF K<4THEN K=C+243ELSE?#1,CHR$(C+(K MOD 3)*86);:K=K\3:B&=B&+1 S=(S+C)AND 255:NEXT:LOCATE,1:?STRING$(B&*50\Z&,219);:END SUB