A binary object format is provided with the IISC architecture for storing IISC programs called ALOF (ASC Linkable Object Format). It includes...
An ALOF object that begins with the ASCII Bell control character can be executed.
The ordering of the sections in a ALOF object is as follows.
ALOF
)Symbols are used to identify various components in a BOF file.
Symbols consist of a series of printable ASCII characters delimited by the Null character.
Symbol⇒ [\x20-\x7E]+\x00 |
Sizes are used to specify the size in bytes of an object component.
Sizes are a sixteen-digit hexadecimal number.
[0-9a-f]{16,16} |
Numbers are used to represent a single binary numerical constant.
Numbers consist of a variable-width hexadecimal or binary notation.
Number ⇒ | \x05[0248f]-?([0-9a-f][0-9a-f]){1,16} | \x05B[01]{1,128}B |
Numbers are prefixed with the Enquiry code.
The hexadecimal numerical representation consists of a number of pairs of hexadecimal digits corresponding to the integer word data types available in IISC.
A hexadecimal notation may contain one, two, four, eight, or sixteen hexadecimal digit pairs.
The number of pairs is specified by the first hexadecimal digit, one of 0
, 2
, 4
, 8
, or f
.
The first hexadecimal digit may optionally be followed by a sign which specified that the value represented must be a signed word type.
The binary numerial representation consists of a number of bits specified by 0
and 1
which are delimited by B
.
In both the hexadecimal and binary representations, the leftmost value corresponds to the most significant bit or byte of the register and the rightmost, the least significant.
Binary data does not have a specific format. It consists of a continguous series of unsigned byte values.
Binary data shall be signified by the use of a Sizeas the type declaration for a Symbol entry.
The Import List contains a series of ALOF object pathnames that shall be loaded with the local ALOF object.
Each entry in the list contains the name of a single ALOF object.
Each object pathname is followed by the ASCII tilde character.
The pathname structure is
Path → Dir Name ~ |
Dir → | Dir Dir | Directory Separator |
Directory ⇒ Name |
Separator ⇒ / |
Name ⇒ [a-zA-Z0-9\.\-\_ ] |
The pathname consists of a series of names separated by the forward slash, /
.
The last name in the series is the name of the imported object as it is in the filesystem.
Any names preceding the object name are directory names such that the pathname, a/b/c~
, specifies an object named "c" contained in the directory "b", which is then contained in the directory "a".
If a path contains no directory names before the name of the imported object, the directory of that object is assumed to be the same directory as the object containing the import list.
If an operating system uses a different directory separator character than the forward slash (/
), the forward slashes in the import list shall be interpreted as the directory separator character used for that operating system.
Any composite data types used by IISC instructions contained in the ALOF file must be declared in the Composite Type List.
The composite type list consists of a number of composite type declarations as specified in Shelf Declaration Syntax
Each composite type declaration is followed by an ASCII Line Feed character.
Tables are used to declare the segments that will be inclued in the loading and linking proess for an ALOF object.
Tables contain symbol entries that correspond to segments in the ALOF object.
Symbol entries for tables contain a symbol, followed by a flag, followed by a type descriptor.
Flags are single ASCII characters following the symbol delimiter. Flags signify the availability of a segment for reading, writing, and interpretation. The flags for symbol entries are...
e
r
w
u
w
segment, but contains no data.
That is to say, the segment is uninitialized, or empty.
i
f
i
segment, but contains instructions which use a different, or foreign encoding, rather than IISC encoding.
The means for determining the format and encoding of f
segments is not specified.
n
A type descriptor is one of...
If an encoded word data type specifier is used as a type descriptor, then it is prefixed with the ASCII Null character.
The surface table contains symbol entries that can be used internally within the loal ALOF object and also externally when the local ALOF object is linked to an external object.
The structure table ccontains symbol entries that can only be used internally within the local ALOF object.
If an ALOF object is executable, program execution will begin at the segment associated with the first symbol entry in the structure table.
Segments are used to contain the encoded instructions, data, and other binary information required to load and execute an IISC program.
The size of a segment is determined by the size in bytes of the type descriptor associated with that segment.
Data in a segment shall be formatted according to the type desriptor associated with that segment.
i
or f
flags are used in conjunction with the Size type descriptor.The order in which segments are appended after the Segment Section Prefix must match the order in which those sections are entered into the surface and structure tables. The segment ordering must match the global order of their entries. Segments with entries in the surface table are appended before segments entered in the structure table because the surface table always occurs before the structure table.