MRCInfoRec
This structure is maintained by the MRCI server. Calls to
INT 2fH 4a12H and INT 1aH b001H obtain the address of one of these
and all MRCI API compression and decompression fns require that ES:BX
point to this structure on entry.
MRCInfoRec
Offset Size Contents
▀▀▀▀▀▀ ▀▀▀▀ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
+0 4 lVendor e.g., Microsoft is 'MSFT' 4dH, 53H, 46H, 54H
+4 2 wVenVer vender version number
+6 2 wMrciVer MRCI spec. version number
+8 4 pfpEntry FAR address of MRCI API handler
+0cH 2 wCaps Server capabilities bit flags (see below)
+0eH 2 wHWCaps same as wCaps, but for hardware assist (if any)
+10H 2 wMaxDataLen maximum size of data that can be compressed or
decompressed
18 size of a MRCInfoRec structure
lVendor is a four-byte string identifying the vender that produced the
currently-active MRCI server.
wVenVer is the vendor's internal version number and...
wMrciVer is the version of the MRCI specification that this server
supports.
The high byte is the major version number and the low byte is
the minor; e.g., 010aH would be version 1.10.
pfpEntry is the entry address used to access MRCI API services. Set up
the registers with a fn code in AX, etc. and then call this
address using a FAR CALL.
Beware of the IMPORTANT constraints before calling this
address. See MRCI fn 0001H for calling sequence. Failure to
check InDOS and set a Windows Critical Section will result in
a system crash and loss of data.
wCaps is a set of bit flags that indicates which MRCI capabilities
are supported by this server:
1 1
┌5┬4───6┬5┬4┬3┬2┬1┬0┐
│r│0...0│i│0 0 0│d│c│
└╥┴─────┴╥┴─┴─┴─┴╥┴╥┘ bit mask
║ ║ ║ ╚═► 0: 0001H can "standard" compress
║ ║ ╚═══► 1: 0002H can "standard" decompress
║ ╚═══════════► 5: 0020H can incremental decompress
╚═══════════════════►15: 8000H this MRCInfoRec is Read-Only
Note that bits 3,4, and 5 are explicitly reserved. They may
relate to the "max-compress" idea that surfaces in the early
DOS 6 beta dox, but appears to have been squashed by the
Stacker lawsuit.
wHWCaps is a bit-packed flag with each bit identical in meaning to
that of wCaps, but representing capabilities of a hardware-
assisted, ROM-based MRCI server. This is 0000H with software-
based MRCI servers.
wMaxDataLen The maximum amount of data that can be compressed or
decompressed in one block. Microsoft's MRCI server version
1.0 supports 32769-byte blocks.
All MRCI servers are required to support at least 8192.
Notes: Since this is maintained inside the data area owned by the MRCI
server, it's probably not wise to muck around in it.
However, Microsoft source code examples modify the pfpEntry field
of the old MRCI server when installing a new one.
See Also: MRCI API
DoubleSpace API
INT 2fH: Multiplex Interrupt
DOS Functions
-♦-