Hardware manual

completely empty page) to 512 (for a completely full page). ([Trident]: A full page contains 2048
characters.)
A real file id, which is a three-word unique identifier for the file. The user normally deals with virtual
file ids (see the discussion of file pointers, below), which are automatically converted into real file ids
when a label is needed.
Three bits in the file id deserve special mention:
Directory: This bit is on if the file is itself a directory file. This information is used by the disk
Scavenger when trying to re-build a damaged disk data structure.
Random: This bit is currently unused.
NoLog: This bit is no longer used, but many existing files are likely to have it set.
Leader Page: Page 0 of a file is called the leader page; it contains no file data, but only a collection of file
properties, all of which are hints. The structure LD in AltoFileSys.D declares the format of a leader page,
which contains the following standard items:
The file name, a hint so that the Scavenger can enter this file in a directory if it is not already in one.
The times for creation, last read and last write, interpreted as follows:
A file’s creation date is a stamp generated when the information in the file is created. When a
file is copied (without modification), the creation date should be copied with it. When a file
is modified in any way (either in-place or as a result of being overwritten by newly-created
information), a new creation date should be generated.
A file’s write date is updated whenever that file is physically written on a given file system.
A file’s read date is updated whenever that file is physically read from within a given file
system.
A pointer to the directory in which the file is thought to be entered (zeroes imply the system
directory SysDir).
A "hint" describing the last page of the file.
A "consecutive" bit which is a hint that the pages of the file lie at consecutive virtual disk addresses.
The changeSerial field related to version numbering: whenever a new version of a file "foo" is
made, the changeSerial field of all other files "foo" (i.e., older versions) is incremented. Thus, a
program that wishes to be sure that it is using the most recent version of a file can verify that
changeSerial=0. If a program keeps an FP as a hint for a file, and is concerned about the relative
position of that file in the list of version numbers, it can also keep and verify the changeSerial entry
of the file. Version numbers have been deimplemented.
These standard items use up about 40 words of the leader page. The remaining space is available for
storing other information in blocks which start with a one word header containing type and length fields.
A zero terminates the list. The structure FPROP in AltoFileSys.d defines the header format. The only
standard use of this facility is to record the logical shape of the disk in the leader page of SysDir.
Data: The first data byte of a file is the first byte of page 1.
In a legal file with n pages, the label field of page i must contain:
A next link with the real disk address of page (i+1), or 0 if i=n-1.
A previous link with the real disk address of page (i-1), or 0 if i=0.
Disks & Bfs August 10, 1980 52
For Xerox Internal Use Only -- December 15, 1980