INT 2fH 4a12H: Get MRCI Installed State and Entry Address

                                                         Compatibility: 6.0+ 
 Expects: AX    4a12H (mux number)
          CX    4d52H ('MR' see notes)
          DX    4349H ('CI')
 Returns: CX    4943h ('IC', if successful)
          DX    524dh ('RM')
          ES:DI address of an MRCInfoRec describing the MRCI server
    Info: Use this to learn if a MRCI server is present and available via
          the INT 2fH interrupt.  If successful, it returns the address of
          a data structure that describes the capabilities of the MRCI
          server and supplies the entry address used for accessing its API.

       CX and...
       DX are used in a weird but respectable technique to detect the
          presence of a MRCI-compliant server.

          Use CX=4d52H and DX=4349H to check for Microsoft's MRCI driver
          (or one that is simulating it).  And on return, if CX=4943H and
          DX=524dH, then the server is present.

          The algorithm is generic: the CX and DX values are shuffled
          around in a well-defined manner--they are processed by the
          following code fragment:

            xchg  ch,cl
            xchg  dh,dl
            xchg  cx,dx

          A non-Microsoft MRCI server may take special action when it
          receives different input values, but it will shuffle them around
          as shown.  The Microsoft server requires CX and DX as shown.

    ES:DI If the returned values of CX and DX are as expected, ES:DI will
          point to an 18-byte MRCInfoRec structure.

   Notes: ■ MRCI allows for the possibility of a hardware-based compression
            handler (for instance, one installed via ROM-Scan).  In that
            case, it installs itself as an INT 1aH handler.

            If the INT 2FH service fails to return results, you should try
            INT 1aH b001H to see if a hardware/ROM-based server has been

            Before installing a MRCI server, you should check the INT 1aH
            version of this fn.  If a hardware assisted MRCI server is
            installed, it is probably faster than your software-only
            version.  If you do install a MRCI server, you should intercept
            both vectors.  Only one MRCI server (the last one installed)
            can be active.

          ■ Before using INT 2FH or INT 1aH, you should check their
            interrupt vectors to make sure that they are not 0000:0000.

See Also: MRCI API
          INT 1aH b001H (check for ROM-based MRCI server)
          DoubleSpace Overview
          DoubleSpace API
          INT 2fH: Multiplex Interrupt
          DOS Functions