The DCX$MAKE_MAP routine uses the statistical information
gathered by DCX$ANALYZE_DATA to compute the compression/expansion
function. In essence, this map is the algorithm used to shorten
(or compress) the original data records as well as to expand the
compressed records to their original form.
The map must be available in memory when any data compression
or expansion takes place; the address of the map is passed as an
argument to the DCX$COMPRESS_INIT and DCX$EXPAND_INIT routines,
which initialize the data compression and expansion procedures,
respectively.
The map is stored with the compressed data records, because the
compressed data records are indecipherable without the map. When
compressed data records have been expanded to their original
state and no further compression is desired, you should delete
the map using the LIB$FREE_VM routine.
DCX requires that you submit data records for analysis and then
call the DCX$MAKE_MAP routine. Upon receiving the DCX$_AGAIN
status code, you must again submit data records for analysis
(in the same order) and call DCX$MAKE_MAP again; on the second
iteration, DCX$MAKE_MAP returns the DCX$_NORMAL status code.