Inferno #05
30 апреля 2004

Softinka - Compressor texts MS Pack 01.96.

<b>Softinka</b> - Compressor texts MS Pack 01.96.
MS Pack 01.96



   According to Hrumer'a, author Packers
Hrust, the best compressor texts ZX
until 2000 was MS Pack. It is unfortunate that
Hrumer never wrote articles on
compression and did not answer my questions in person, and yet 
his name and the program emerge in this section is not the first

times. However, what is the format of the compressor Microspace?


   Extractor, unfortunately, not optimal for
length. The navigation structure amenable to optimization, 
extra XOR A, little use conservation HL '... But a decent rate 
of decompression - for example, for packaging ROM MS Pack and 
today almost irreplaceable. After all, it dictionary, unlike 
Hrum, is all length of the file. Of course, it affected the 
speed of the packer. Hashing for accelerate the search for 
repetitions in no Hrum, either in MS Pack.


   There is bit and byte streams, bit stream is selected by 2 
bytes. To work uses a stack (the principle ADD HL, HL: DJNZ: 
POP HL: LD B, C). 


   Packaged unit shall lie after
unpacker (Hrum-similar principle). Let us count the bytes from 
the beginning unpacker: 

 + # E9 - the address to which 5 bytes are con
  sample file. More precisely, the address 4, t.k.bayty Mine
  ruyutsya through LDDR. Why not 5 bytes are

  directly without a pointer? Especially

  that 4 bytes (or even 6, if at the end of the de
  compressor is not JP, and RET) to the packed

  block is not used? If 5 bytes to
  ntsa file lying right next depakerom for their

  would not have, and to throw! So
 this solution the authors rather strange.
 + # Eb - HL 2 bytes to move the packed vannogo block (using 
LDDR); + # Ed - 2 bytes DE, similarly;

+ # Ef - 2 bytes of BC, the same;
+ # F1 - address where to unpack (DE ');
+ # F3 - the first 2 bytes of the bitstream.


   Further, according to the bit stream:

% 0 - just bytes (of a byte stream);
 % 100 - puts = 2. Slug: disp8 in

  byte stream (1 .. 256, with 0 resp tstvuet 1 and so on!)
101% - puts = 3;
% 110 - puts = 4;
% 11101 - puts = 5;
% 11110 - puts = 6;
% 1111100 - puts = 7;
% 1111101 - puts = 8;
% 1111110 - puts = 9;
111111100% - puts = 10;
111111101% - puts = 11;
111111110% - puts = 12;
11111111100% - puts = 13;
11111111101% - puts = 14;
11111111110% - puts = 15;
11111111111% - puts = 16;
 % 11,100 - to take a byte from byte to
  current. If -1, then stop unpacking.

  If -2, the next 2 bytes in the byte

  stream - it puts, otherwise puts = byte +17 =
 = 17 .. 270.


   Then for all links, except puts = 2 (for
It was written above mentioned), the following
manner calculated disp (note that in MS
Pack disp unusual - it is subtracted from the
Address-1! That is why in puts = 2 clarified that which 
corresponds to!): 

% 1 - similarly puts = 2;
 % 0000 - dispH = 1, hereafter dispL pregnant tsya from a byte 
stream after dispH; % 0001 - dispH = 2;

% 00100 - dispH = 3;
% 00101 - dispH = 4;
% 00110 - dispH = 5;
% 00111 - dispH = 6;
% 010000 - dispH = 7;
% 010001 - dispH = 8;
% 010010 - dispH = 9;
% 010011 - dispH = 10;
% 010100 - dispH = 11;
% 010101 - dispH = 12;
% 010110 - dispH = 13;
% 0101110 - dispH = 14;
% 0101111 - dispH = 15;
% 0110000 - dispH = 16;
...
% 0111110 - dispH = 30;
% 0111111 - dispH from a byte stream.


                       Prepared by Coder




Other articles:

CacheVox - The code for import and subsequent playback of digital music from floppy disks.

For Coderz - RAYCASTING - make yourself a little DOOM'a. Tracing algorithm 3D maze in the game WOLF.

Inferno - O magazine.

DIY - Fits the mouse from the Amiga to the ZX Spectrum.

Softinka - an overview screen wrappers for ZX Spectrum.

Inferno - The authors and editorial contacts.

Gameland - description of the game Stronghold (Bastion).

Softinka - Package CacheVox v1.0 to import and play digital music from floppy disks.

Interview - an interview with Disabler'om - coder, artist and zhelezyachnikom from Rostov-on-Don.

Others - Bugs writing to floppy disks. Causes and methods of struggle.

Gameland - Short description of the problems the game Dune: Imperia 2.

Inferno - Errors in the previous numbers.

For Coderz - Small programmers' tricks.

Spectrum - compressed data format on the ZX Spectrum.

Gameland - the game Hexagonal Filler.

Softinka - Hrum 3.5i - the fastest LZ-extractor with the bit stream.

DIY - Production of the tail for the mouse.

Iron - We investigate the chip K561IE10A.

Iron - We investigate the chip KR1533IE7.

Iron - We investigate the chip K561TL1. .

Softinka - display compressor Laser Compact 4.0.

Inferno - Letters to the Editor.

Softinka - Compressor texts MS Pack 01.96.

Inferno - On the shell.

Softinka - the benefits archiver Rar.

Softinka - Packer RGB images Powerful Code Decreaser v6.2.

Likbez - What are the plus and minus voltage.

Likbez - How does the protection of the circuit elements.

For Coderz - Nuances Raycasting-a.

Softinka - Real Information Packer 0.2x - one of the most powerful compressor on the ZX.

For Coderz - autobuild program. Optimize the assembly process.

Inferno - Intro.

Others - The results of the survey.

Others - The Compo. On the survey.

About Spectrum - thinking about the future of the Spectrum.

Iron - Once again, the protection circuits KR1818VG93.


Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Similar articles:
Contacts - A list of honored Neispolzovateley AC Edit.
Fantasy - A Tale Strugatsky "Way to Amalthea (continued).

В этот день...   29 April