MRCI Fn 0002H: Decompress Data

                                                         Compatibility: 6.0+ 
 Expects: AX    0002H
          CX    caller type: 0000H=APPLICATION client (InDOS is clear)
                             0001H=SYSTEM client      (InDOS is set)
          DS:SI address of a pre-filled MRCRequestRec structure:
                  .pfbSrc=address of compressed data
                  .wSrcLen=(ignored)
                  .pfbDest=buffer to receive decompressed data
                  .wDestLen=exact size of the data when decompressed
          ES:BX address of a MRCInfoRec structure obtained via INT 2fH 4a12H
          ──────────────────────────────────────────────────────────────────
 Returns: AX    0000H = success
                else  = MRCI API Error Code
          DS:SI wDestLen field (offset 0eH) is size of uncompressed data
          ──────────────────────────────────────────────────────────────────
    Info: This fn decompresses data that was compressed via MRCI Fn 0001H
          (compress data).  The source and destination addresses and other
          important details are identified in the MRCRequestRec structure.
          The API entry address is obtained via INT 2fH 4a12H.

          Before using this call, you must ensure the correct state of the
          InDOS Flag (corresponding to the value in CX) and you must start
          a Windows Critical Section.  See MRCI Fn 0001H for info about
          these requirements.

          You must know the exact size of the data after it is decompressed
          and put that amount in the wDestLen of the MRCRequestRec
          structure.  MRCI needs this to know when to stop decompressing.

   Notes: ■ Check AX for a returned error code.  And check the wDestLen
            field of the MRCRequestRec structure.

          ■ The MRCI server will NOT decompress data that is not compressed
            (for instance when a previous call to MRCI Fn 0002H failed
            because the data was incompressible).  To decide whether or not
            to decompress, you may examine the four-byte header and/or
            maintain separate information about each block of data
            compressed.

            Data compressed by MRCI starts with a 4-byte header such as
            'MD0' (4DH, 44H, 00H, 02H).

          ■ To decompress data found in a DoubleSpace CVF, you must know
            the size the data will be after it is uncompressed.  You can
            obtain a file size from the RootDir region of the CVF.

            Alternately, you can make a series of calls to MRCI Fn 0020H
            (incremental decompress) and look for some sort of end-of-file
            marker or (perhaps) hope for an error return code that helps
            decide when you have reached the end of the valid compressed
            data.

See Also: MRCI API
          DoubleSpace Overview
          DoubleSpace API
          INT 2fH: Multiplex Interrupt
          DOS Functions
                                    -♦-