The user need not know anything about the way picture files are stored inside the machine. However, he can save storage space by requesting that the files should be packed. Such files will take less space, but will take slightly longer to access.
A file consists of a header followed by a file body. Each line in the body consists of a number representing the display routine stored, a marker to indicate the type of arguments following (whether they were PR or AR references) and the arguments themselves. Various modes of storage have been defined. (In the following, DSPRT will represent the display routine and PRMV will represent the type indicator. Two bits in PRMV are used for each argument.)
DSPRT, PRMV and the arguments will be stored as 48 bit real numbers. This is the default mode setting.
If the arguments are all to be treated as values (ie no PR or AR references are present), PRMV will be 0. In this mode, PRMV is not stored.
DSPRT, PRMV and the arguments will all be stored as 24 bit integers.
All arguments are assumed to be integers in the range -2048 to +2047, and are packed in 12 bits. If any argument are larger, only the lowest 12 bits are packed.
All arguments are assumed to be integers in the range -32 to +31 and are packed in 6 bits. If any arguments are larger, only the lowest 6 bits are packed.
DSPRT is packed into 12 bits. If, however, compressed mode is also selected, and DSPRT is less than 64, it will be packed into 6 bits.
If there are few arguments, PRMV will be small. In this case, PRMV will also be packed, in the same way as DSPRT.
The routine:
FMODE (XM)
will set the current mode required to XM. More than one mode may be selected. The bit settings of XM determine which modes are required (compare DVOUT definition). Thus FMODE (25.0) will select value, compressed and basic modes. FMODE will give an error if incompatible modes are selected together.
If every line of a file cannot be stored in the required mode without losing vital information (except for the truncation of reals to integers and the packing of arguments), the file will be stored in normal mode instead.
Note, however, that no check is made on argument packing. It is therefore possible to truncate a file name or index variable name on packing, and this will give rise to erroneous results when the file is DRAWn.