'===========================================================================
' Subject: HUFFMAN (DE)COMPRESSION FOR PB     Date: 06-11-97 (15:59)       
'  Author: Don Schullian                      Code: PB                     
'  Origin: d83@ath.forthnet.gr              Packet: ALGOR.ABC
'===========================================================================
'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">]n<MlBnUb>Yte/R6Ww]Y&&]#QyKSjAxXbNej[4B;2BIbr(cE//aAr6]iaN=gck
U"8TK30tE5hNlwmD#6]Nb:<ChQR])a(H0t*^-]RvSHDS(?HY,vTJ<H%:mP6w?AtAN
U"*\Ni&Sf's(hE>'SQhCu/IE)o4F:/iS+C:L1v]aKrtawN$GKR3E,GjfdkUq)aybA
U",f'$0CDaiEq6=5*>#_M/Fkk8pQbIg5PKL:V5rTk(iSChV^F]:F8)bhzO6x<O9H,
U"Br>RIF\:idp>bVTQ9'<yNbP0jD,r=TEF9kaA=F[9=9VUwB0EJI8mXg4j_Iw'-r-
U"r2L-N\=.%Jl#e7dzC&2qjh/F67k8]7E_R5Y?hQuM^<YR-d7^:xNa_wl:=G09T\]
U"-/(uRaSI63%p^4kn:LNY5DRhEXqoOdx?E>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<&<meucMEQ<iQ'Q\1zH+ME6Ak9og2%<uigp4b/cj
U"DK-6h/Kq_JnL1JT8-4='QC7mW(I+O44Ue;v6frNO9P%9TC./qS72algmXgWKcT)
U"ED+2R&#_f'bkN9g]DK<\Qk19dHu=lO5C;QmKlF.>smV=E4i^-nIjS-P7K;lArg7
U"60mHIYfP(_>,bqV<B2WV2OEIVR+'c&yB*?8=K5$.fus)_p*=W$Z((8cvw,c7lsU
U"HrA+2VkT(#RQaTJ/sdn\]bkNuF4t4.=K3fq[OfCEnGCPpliep<w%*up(%)9%'[%
U"-%\b'DGi>fcHz[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-:<f+Q=*lKa=-ua&AG\V5MUOd5Mt.7xsZ*kuQ^VN7UnUsPh3q&irY]
U"5g_5?d6Ng)bjND;ei84(wcD[>rM2B&nOn;n0PlkA4b#9AR5nAeUr5=-ixA9Fu-i
U"%V9>9#\-;zEd(WP(]jlntImtduod#xkK5Z$P6C<zX8o\F-xW&oi\3IxQWvJ^q]M
U"44FdE3Mc44d%/6WT;khuPv66fU:1X^++6kv$tR,_<p%%2+9a[kg$?;r:+m-aTg6
U"D*$pc)Gk:l14UH&/b\AqEL4lB;%0kXXPgz;CL4$1crkSC_-jVj7_D;olr)*$dS_
U"%=\3im^j/UNA8==SGlW0GuUwsbXxwTFfUX7Jk..ZaD,FZT^87ZTLti+nFli?p%*
U"9Il>qde2YQ\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+<O[BoulxgXu:QfJ^Ik7ptIJ].Gt14o#8%pS=+uA_5Vcr]5y=U_m1l6GO5
U"5#Fcam-9n#htE3oHM]O<I^1s%d1NB'XkSuq5\TSLqcm&8WC.8i%40*%%huedYk6
U"dg(%,-j'3L7UhLg4Ua4VL'zLKrUGK%S:13&)p<;oD7UMtt34Ie'rm^sg?rF3(fg
U"62Ab8Y2]+A0>qEsjKCG&mE\q>kD>Qc0,I2NE0N/_O,,7G8#P:pM6YiTTi7)ReIL
U",aCa<Fbm:8zf%3qc[A3;/1=XTZp2G+M;n]N:-U#dwT*gXpl\q*A\YY>?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$<b->p0=
U"iEq&+5Of0\W2AUQUK;VQbu6dFf^RC4rSZ_J$Zm4oA1?h[+K,Ml+YUkS4<9E,h6r
U"?=8j+SC<*DV>BA1aTMP>*V+tc:jr<BT^Ua)#k;574;MmdN/6b62B?AsVyD8]DBR
U"n9(U3:'[r+[syn[4Hca:c79<LAppA>3BCp'Uhq$#A2Q]Y'$9P+/Pidn<XJ52C<$
U"R.U?)#Up_oEg)L'Wc<]KCh0ir8'IE=VPTReZ&HGlvBEk,'5.335LR*OLIj<liLM
U"&f39u$/e/K.<VHe1bn7R#SmCdYD)bf;i'eL>a0rZ7]:KQ2lp\5W'3nyv\f%w1Fn
U"JbGX5*B.69I^gO5)Bc;Y0_aybnHHl2S3qj+)]*r-FgT8Y)2v.:]Zy]F7M16fLNe
U"Os+-<Q#KIcM)9;m4y3,G2wIH&H(Azu//m^qs+_iDjJL4*1k&;MoA,xknNWIEtGa
U"[ebAKK?8E1>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+<Ad%JM'=H2jr$f/TcPD%_,Ng
U"1gril,lA_+hzdwBwD_inzwc_PnC3cRw+Pm%;I*oXu%oao*]92w\k41CGvpgTk]$
U"ntqVSy<'W9:tPGGU1e<R.:L.;de8y+2H:z(jxzeF_[o92,)m?DhTrf2R(sz;Ze*
U"5CqbYU,(o;R#0vn(s9aM=1KD28SZ2q_.y#9*:7)i:qN>\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<ku\__c[[)'90kQ)cO4'+cmeHmsm
U"j/Vw&^LqN##Uz?N(QtE<fnx&URfe+9=)MJOZ[ukt=Y3D*IPd78sS>?aj4/vl*-n
U"TaN45UoMpK6Xb7YH5'iTMper)iTSltd7k))+=;9Rg6&b/t]\>5EAO(lVpyB9Zbo
U"B;Q<HRk3g8\&]3N_<&hkRZ'nwFWIwrYY=%N5UrQG3D(Yh[A:6ZVs=QwMDLS6%jP
U"(bhhpLFNjMpLZt-&S6.7%MAy+M\JNeHuIT)P;';[R(IYWR)<\Alw]v.^_N>E\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+<-Wkgo6PuuSR<Vsru9b2jJG1c_)np9BH
U"R+9_C8+.e'?2Tgh/ViIBbz=5WKpvMZAA9om.d6)z3KlNa4xajdeK6X+XCRpdBSI
U"*>mH\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"DH7I0<v/0MOPscdGmcgqTkkPXm\;6-j;>3cPGhbAVFyY6Y.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<i&gC2GV&sFGhFv#jhgX,
U";cM((oDI_l;4q=)e'43W/:k#1^4)4=q=B+CnBi'FjW:YO4M:X2Czry&>(^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<sd>,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=Zi<YC'6'-Z1[G(ta9rQ7I<ldXI9)ZZj^*4-tvHC(l#Nq5'9eNmdN[k(E4nOc
U"9N5uL9a<cR*P);U'*hPnXeQ02cTxDnT.m(faA#sQM2eeCHStT$WR<tWW,9/EG#R
U">0#+<seY5TuYnEDz,#4;q7/70QHQ<O]?o)<UR(d].4N%MDq,Ib/NH:$=:heo\LV
U"k>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-a<w4-8L2S0Y#W9;r7D&[zpTO+i.-o3_UX+>KuQg;rg*AW2Q;.0iYY%?/Wm[:
U"wA\cA-dw'i\XRhv?9lC-4+o)DePb<qkSqDkY/6l[#$V<[%:m^\MmksPA.aGlAt5
U"%)T:z\Z9]AP6.7'wN6%e+l<3QDkNsbioA=tch=<-)v;nN7/]B:F1f/j0,ZrMCP.
U"\,SSYUVn(-U'[,l/TNZ^fQOZj+KSp'$si)I<&hSDF'(IZbUt?3PU.C\M-oZ2)xC
U"2:T3kx2u3+iXR5kiI2[(a*Y8;B8R[Ullp<Yl3ps$6B[XR+/am+=wB<[<&#e<SAR
U"[3t+psM6Zoi^<ZgXUr$R1VsYa/:q,Bj?sN3SBS+(i.5Q$4:xwQ&x;F[0_^5A%PK
U"/35OKVYC:-v&28A_LV\x+9qX\k/ykwM$^Ujm%t]1whKb;)8Ro*iUPs0AA&A#z0>
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><BE4zKm7hg]HGVbHEn
U"XhUJo)x1b=CcJHLb)zVhfnRE=2ik$n]EH^=ws^:r7cA#cBMI]ekAz]8D:hg0f37
U"XP2Z[,VRK_pCu:+2j'hpNY:.C^BOPFn[kT]3dZ-g/'fa::,Z7KiS$r&SdCpYT]4
U"3:vO'.W0[OxLogltfXZs+(c^(iDYG$UBAh2c*Z&>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'fsM<OmACM_xN:n]VL*2cNJGTVGzOhEl>Y57RlE
U"#5L]>o66*YCvvMcfs2O.QdLnaWD1fsC51.NX4ew)h.oe9X1LMsT8x%PFiJ\:t9d
U"2T9Dd(cvC1o?KrdQ2MEmh?$W6$G;$2DbYJ6x$W:DgYDSMz--o++</R9Z(lWGtW?
U"R:bsV9wQ?>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<qUb]#oY=?Ph$2J&3dk%_p^u8QQl+Up?IZQ$3S<+)mZBP4e_R
U"?D(74,uMPns]A?42qt$b(e?M47nXtOBQ?'\z$+m\k&(l5W6vKwU<=5h&SC$VRH/
U"u3;/F-lh1F>[K6(%4)Q#I8FG>0Jr_,GsA1AA%J;bvb0m',H89wIQ*SNAq-VW]Y3
U"#>j<b:)u]QN6g63<*WL)8qY\jN8/'I*AP^/,^9s+PCHl+n_BYnZHt;1FsGE\<qU
U"+fqu+?.kZU)_)tIz$mtZxm,Zb*-J^(fI)L['40[-a9gmetRL'-a[m%nGKM4ab;g
U"/b3s.BJ+2,0*a$_rNkD)(T*%\Ag)7^J[f+*5GoWlOUiH7mg+n^suRA=m7E7.Wzy
U"F81l>+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;[<LYYo$HTTZ5NroQ7GkjSb-WdHTXkq6P0:z5I_QW6f8X[&ZqK]L8=->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$<W?f6pKbDXWa<0I$d,N;(y,Uc3
U"=2%mIikaKLgPi+#bP*:^d?Uwr>\kcFgrT0/xF0mSL:i$TT.(9g)gnIDvBH-Ja<T
U"-1Cr:yEJN;%.EtdNvGCN2J?'J\I3$DC'I<R-Vk0?(lxjgyl?N>R64_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*ZOJt<tq0;<ioE'4;j39)34k;#(bQ;s0XZ([RI=
U"QMRS4_.#Fj59,Qu4cKHSXJn$X[a]dMC%IVdAg4?U:HA.e&+Cn]/=l^KAyVoAxJW
U"6=k/Ty2h8c?f&p=N*e*JU[iQ0-ZBG=UeGA9w[S2$jYIMuS+Lo%hA/4t?_0txXNa
U"zb.J>qy#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
