Помогите определить тип компрессии. Есть только древние исходники декомпрессора, а нужно написать компрессор. Подскажите на что этот тип похож.
#define CprDim (0x200) char CprMask[]={0x80,0x40,0x20,0x10,8,4,2,1}; char CprTab[CprDim];
void CtrInit() { CtrMode=0; }
int CtrGet() { int Ctr;
if(CtrMode==0) { Ctr=VolGetc(); if(Ctr==0) { CtrCount=VolGetc(); CtrMode=1; } } if(CtrMode==1) { Ctr=0; CtrCount--; if(CtrCount==0) { CtrMode=0; } } return(Ctr); }
decompresse(unsigned long sz) { int FlgCtr,Ctr,e,i,prec,_new; unsigned long n;
prec=0; for(e=0;e<CprDim;e++) { CprTab[e]=0; } CtrInit(); FlgCtr=0; n=0; while(n<sz) { if(FlgCtr==0) { Ctr=CtrGet(VolFp); i=0; FlgCtr=1; } if((CprMask[i]&Ctr)==0) { _new=CprTab[prec&(CprDim-1)]; } else { _new=VolGetc(); // read byte from input CprTab[prec&(CprDim-1)]=_new; } DstPutc(_new); // Write byte to output prec=prec*256+_new; i++; if(i==8) { FlgCtr=0; } n++; } }