× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



Hi Dave ,

I could finish my program.
To konw if a descriptor is compressed, i compare values at offset xcc and
x48 in descriptors.
Uncompress the datas was not so difficult i had think(thank?thunk?)
I could find those informations about compressed datas.


Run-length encoding (RLE) eliminates strings of repeated bytes.  With the
RLE algorithm, the first byte after the
compression header is a control byte, known as a string control byte (SCB).
The SCB has the format shown below.

+------------------------------------------------------------------------+
¦ SCB Format                                                             ¦
+------------------------------------------------------------------------¦
¦       ¦ Bit ¦ Content                                                  ¦
+------------------------------------------------------------------------¦
+------------------------------------------------------------------------¦
¦       ¦ 0-1 ¦ SCB type:                                                ¦
+-------+-----+----------------------------------------------------------¦
¦       ¦     ¦ 00 ¦ Raw data:  the following bytes are uncompressed.    ¦
¦       ¦     ¦    ¦ The Count field (bits 2-7) indicates the number of  ¦
¦       ¦     ¦    ¦ uncompressed bytes.  If the RU is not exhausted,    ¦
¦       ¦     ¦    ¦ another SCB follows n+1 bytes after this SCB.       ¦
+-------+-----+----+-----------------------------------------------------¦
¦       ¦     ¦ 01 ¦ Reserved                                            ¦
+-------+-----+----+-----------------------------------------------------¦
¦       ¦     ¦ 10 ¦ Master-character:  the Count field indicates the    ¦
¦       ¦     ¦    ¦ number of space (X'40') characters compressed.  If  ¦
¦       ¦     ¦    ¦ the RU is not exhausted, another SCB follows this   ¦
¦       ¦     ¦    ¦ master-character SCB.                               ¦
+-------+-----+----+-----------------------------------------------------¦
¦       ¦     ¦ 11 ¦ Duplicated-character:  the character (called the    ¦
¦       ¦     ¦    ¦ duplicated character, or DC) that follows this SCB  ¦
¦       ¦     ¦    ¦ appears in the raw data in an n-byte run; the       ¦
¦       ¦     ¦    ¦ n-byte run is compressed to this SCB-DC pair.  If   ¦
¦       ¦     ¦    ¦ the RU is not exhausted, another SCB follows this   ¦
¦       ¦     ¦    ¦ SCB-DC pair.                                        ¦
+------------------------------------------------------------------------¦
+------------------------------------------------------------------------¦
¦       ¦ 2-7 ¦ Count:  indicates the number (n), in binary, of          ¦
¦       ¦     ¦ uncompressed bytes that follow (in the case of SCB type  ¦
¦       ¦     ¦ 00) or that should be generated upon decompression of    ¦
¦       ¦     ¦ this SCB sequence.                                       ¦
+------------------------------------------------------------------------+

--------------------------------------------------------------------------

SCBs cannot span RUs.  In short:

   If the last SCB in an RU is a raw-data SCB, then all of the raw data to
which it refers must be in that RU.

   The master-character SCB is allowed to be the final byte in an RU.

   If the duplicate-character SCB is the last SCB in the RU, then that SCB
is always the next-to-last byte in the RU,
    the last byte being the DC.

Thanks a lot.



As an Amazon Associate we earn from qualifying purchases.

This thread ...

Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.