3.2. File Formats

Version II.0, February 1979

page163 Text files are of the format:

<1024 bytes> header page, information for editors. This space is reserved for use by the text editors, and is respected by all portions of the system. When a user program opens a TEXT file, and REWRITES or RESETS it with a title ending in ‘.TEXT’, the I/O subsystem will create and skip over the initial page. This is done to facilitate users editing their input and/or output data. The file- handler will transfer the header page only on a disk-disk transfer, and will omit it on a transfer to a serial device (i.e. transfers to PRINTER:, and CONSOLE: will omit the header page).

<1024 byte pages> where a page is defined:
<[DLE][indent][text][CR][DLE)[indent][text][CR]...[nulls]>
Data Link Escapes are followed by an indent-code, which is a byte containing the value 32+(# to indent). The nulls at the end of the page follow a [CR] in all cases, and are a pad to the end of a page. Because the compiler wants integral numbers of lines on a page. The Data Link Escape and corresponding indentation code are optional. In a given text file some lines will have the codes, and some won't.

Foto files are declared in PASCAL as follows:

TYPE SCREEN= PACKED ARRAY[0..239,0..319] OF BOOLEAN;
VAR FOTOFILE: PACKED FILE OF SCREEN;
or something similar, which takes up the same dimensional space.

Data files are up to the user.

Code files have one block of information which describes the code kept in the file. First is an array of 16 word pairs, the first word in the pair describes the block which starts the code of the segment which is numbered as the position in the array. The second word is the number of bytes in that segment. For example if the third word in the first block of a code file is an 8, and the fourth work is 1084, you now know that segment 1 of this code file starts on block 8 of the file, and has 1084 bytes of code. See Sections 3.4 and 3.5 for notes on code files.

page164 Following this array is an array of arrays of characters. The array is an array of 8 character arrays which describe the segments by name. These 8 characters are those which identify the segment at compile time. Here again, the position in this array corresponds to the segment number.

Following the array of names is an array, again 16 words long, of state descriptors. The values in this array indicate what kind of segment is at the described location. The values for this array, at present, are: LINKED, HOSTSEG, SEGPRCC, UNITSEG, SEPRTSEG.

The remainder of the block, 144 words, is reserved for future use by later versions of the system. The format of the first block will most probably change completely for version II.0.


This page last regenerated Sun Jul 25 01:09:11 2010.