File Format

This section and the following sections contain a detailed description
of the IDL save file format. As described above, and IDL file
consists of a stream of tagged records:

Format: SAVEFMT(overall save file format)

Type

Name

Description

BYTE2

SIGNATURE

IDL SAVE file signature (=BYTE(['S','R']))

BYTE2

RECFMT

IDL SAVE record format (=['00'xb, '04'xb])

Record 1

Record 2

Record -- END_MARKER

However, these records must appear in a certain order, which also
depends on which version of IDL is being used. These records might be
described as the save file ``preamble,'' which give important metadata
about the information. For IDL 4 this preamble consists of only one
record:

Format: PREAMBLE4(preamble records for IDL 4 save files)

Type

Name

Description

TIMESTAMP

TIMESTAMP

Save file history information

The first record must be of type TIMESTAMP (see below for record
types). Beyond that, save files produced by IDL 4 do not contain heap
data. For IDL version 5 and beyond, the preamble is extended to
include several more records after the TIMESTAMP record, which
describes the file version information, such as which version of IDL
was used to create the file:

Format: PREAMBLE5(preamble records for IDL 5 save files)

Type

Name

Description

TIMESTAMP

TIMESTAMP

Save file history information

VERSION

VERSION

Save session IDL information

HEAP_HEADER

HEAP_HEADER

(optional) Heap index information

--

PROMOTE64

(optional IDL 5.4 only) if file has ULONG64 offsets

NOTICE

NOTICE

(optional) Disclaimer notice

The HEAP_HEADER record only appears if the save file contains heap
data (i.e., pointers). In IDL 5.4, the PROMOTE64 record indicates the
presence of ULONG64 record offsets for storing files larger than 4
gigabytes (IDL 5.4 only).