This section describes data which contain actual content, however, they contain subtypes which will require further elaboration in later sections.
Type | Name | Description |
RHDR | HDR | Block header record |
LONG | NVARS | Number of common block variables |
STRING | NAME | Name of common block |
STRING NVARS | VARNAMES | Names of common block variables |
NOTES: This record describes the existence, but not the values of, any common block variables. This is equivalent to the declarative COMMON statement in an IDL procedure. The names of the common variables are established, but the values must be defined by another separate record which appears later in the file.
Type | Name | Description |
RHDR | HDR | Block header record |
STRING | VARNAME | Name of IDL variable (upper case ASCII) |
TYPEDESC | TYPEDESC | Variable type descriptor |
LONG | VARSTART | Indicates start of data (= 7) |
VARDATA | VARDATA | Variable data |
Type | Name | Description |
RHDR | HDR | Block header record |
STRING | VARNAME | Name of IDL system variable (upper case ASCII, begins with '!') |
TYPEDESC | TYPEDESC | Variable type descriptor |
LONG | VARSTART | Indicates start of data (= 7) |
VARDATA | VARDATA | Variable data |
NOTES: The formats of standard IDL variables and system variables are the same. The only difference is the VARFLAGS flag byte within the TYPEDESC descriptor. The definitions of TYPEDESC and VARDATA are presented in sections 8 and 9. The TYPEDESC segment defines the type of the data, and is read and written by CMSV_RVTYPE and CMSV_WVTYPE. The VARDATA segment actually contains the data, and is read and written by CMSV_RDATA and CMSV_WDATA.
For scalars TYPEDESC is simply the IDL type number, but for arrays and structures the TYPEDESC descriptor can be much more complicated. Because the TYPEDESC descriptor can have a variable size, depending on the complexity of the type being described, it is not possible to parse the data segment of the record without first parsing the type descriptor.
Type | Name | Description |
RHDR | HDR | Block header record |
LONG | HEAP_INDEX | The heap index of this particular variable. This index refers to the table of contents found in the HEAP_HEADER record. |
LONG | -- | Unknown ('02'XL or '12'XL) |
TYPEDESC | TYPEDESC | Heap variable type descriptor |
LONG | VARSTART | Indicates start of data (= 7) |
VARDATA | VARDATA | Heap variable data |
NOTES: A heap variable has the same format as an IDL standard or system variable, except that, instead of a STRING variable which provides the name of the variable, an integer number is used to identify which variable it is in the heap table of contents.