The library header exists from two 32-bit words (longwords). The first one is the ``magic-number'', which consists of the four characters ``FLIB''. After that the directory size. It has not have to be exactly equal to the number of modules in the library. Directory entries can be shown as unused.
The directory of the library consists of the directory entries. The number is stored in two longwords. A directory entry looks like this: struct new_flib_dirent char mname[22]; /* module name */ unsigned short checksum; /* checksum */ long size; /* size in bytes */ long where; /* position */ ; At which mname is the modulename, checksum the checksum, size the size of the module and where the position of the module inside the library. When where is equal zero, then the directory entry is unused.
In case of all these number indications, the byte order is to be paid attention to. The 680x0 processor format is used. Thus first always the ``least significant byte'' and then the ``most significant byte''. The output routines of the Flib program are written in a way that they create and read the wanted format on other processors, too.
The third and last (largest) part of the library are the particular modules, which are simply put behind one another.