BBC files stored on disc have certain attributes that are usually required for these files to be loaded and/or run. These attributes are (on Acorn DFS-systems):
(On some other disc filing systems there are more attributes, like read/write permission. These are not considered here to keep the standard format as generally applicable as possible.)
If a BBC file is transferred to a PC (or any other computer) without these attributes (e.g. using Kermit), some required information for loading/running these files is lost. Therefore these attributes need to be transferred to the PC and stored there. The standard format determines the format in which these attributes are stored. In addition it determines the name of a BBC file when stored on a PC (because some legal BBC file names are not e.g. legal DOS file names).
The standard format was first described by Wouter Scholten and is sometimes known under the names "archive format" or "image format".
The standard format is as follows:
The syntax of the contents of the .INF file is as follows (attributes in square brackets are optional):
[< filename>] < load address> < exec address> [< length>] [< lock>] [< crc>] [< next>]
where
< filename>
The file name of the BBC file, which may include a directory name. If
this is different from the file name as stored on the PC's disk,
< filename> overrides it. (The use of this < filename> attribute is
that it allows e.g. DOS-users to store a Beeb file with a directory
name or illegal characters in the file name. The file name "D.FILE" is
an illegal DOS file name. The BBC file "D.FILE" can now be stored on
the PC as "FILE" (or any other name), and < filename> in "FILE.INF" be
set to "D.FILE".)
< load address>
The load address of the BBC file in hex. The load address cannot be longer
than six characters (as on the BBC). Leading zeroes may be given, but are
not required, i.e. 0E00 and E00 are both valid.
< exec address>
The execution address of the BBC file. Same requirements as < load address>.
< length>
The length of the BBC file. Same requirements as < load address>.
< lock>
This is "Locked" or "L" (without the parentheses) for locked files and
empty otherwise.
< crc>
This is "CRC=XXXX" with XXXX the CRC check of the file, computed with
the algorithm present in the Advanced User Guide.
< next>
This is "NEXT < filename2>" (without the parentheses) with < filename2>
the name of the file that sequentially follows the current file. (This
attribute is useful for storing BBC files from tape--rather than from
disc--, because it allows emulators to interpret e.g. CHAIN "" correctly.)
Example of storage of files on PC according to the standard format:
$.ELITE : BBC file $.ELITE stored on PC as $.ELITE $.ELITE.inf : attribute file for $.ELITE containing the following text: FF0E00 FF8023 Locked CRC=1234 NEXT $.ELITE2
In order to make the standard format simpler and applicable to all platforms (which is what standards are about), the following specialisations can be made. (These specialisations are only further restrictions of the standard format, not changes to the format. Files stored according to the specialised format thus fully comply with the standard format.) The specialisations have been implemented in BBCXFer.
The above restrictions result in a more specialised standard format. This format is used by BBCXFer for storing files on a PC that are transferred from a BBC. (BBCXFer is able to read Wouter Scholten's more general format when files are transferred from a PC to a BBC.)
The new, specialised, standard format is as follows.
The syntax of the contents of the .INF file is as follows:
< filename> < load address> < exec address> < length> < lock>
where
< filename>
The file name of the BBC file, which may include a directory name. If
this is different from the actual BBC file name as stored on the PC's
disk, < filename> overrides it.
(The use of this < filename> attribute is that it allows e.g. DOS-users
to store a Beeb file with a directory name or with characters in the
file name that are illegal in DOS. The file name "D.FILE" is an illegal
DOS file name. The BBC file "D.FILE" can now be stored on the PC as
"FILE", and < filename> in "FILE.INF" be set to "D.FILE".)
< load address>
The load address of the BBC file in hex. The load address cannot be longer
than six characters (as on the BBC). Leading zeroes may be given, but are
not required, i.e. 0E00 and E00 are both valid.
< exec address>
The execution address of the BBC file. Same requirements as < load address>.
< length>
The length of the BBC file. Same requirements as < load address>.
< lock>
This is "Locked" (without the parentheses) for locked files and empty
otherwise.
Example of storage of files on PC according to the specialised standard format:
ELITE : bare BBC file $.ELITE, stored on PC as ELITE ELITE.inf : attribute file for ELITE containing the following text: $.ELITE FF0E00 FF8023 1230 Locked OWNNAME : bare BBC file R.ELITE, stored on PC as OWNNAME OWNNAME.inf : attribute file for OWNNAME containing the following text: R.ELITE 2000 4300 3010