Showing changes from revision #0 to #1:
Added | Removed | Changed
FileCore stores data as sequences of bytes that always begin at the start of a sector, and extend for the number of sectors necessary to accommodate the data contained in the file. As a result of this, the last sector used to accommodate the file may have a number of unused bytes at the end of it.
The last actual data byte in the file is derived either from:
There are two different ways in which to specify a disc:
FileCore supports upto 8 drives, and has a limit of no more than four of the same physical type.
Number | Type of Drive |
---|---|
0 – 3 | Floppy disc drives |
4 – 7 | HDD/SDD disc drives |
When you refer to a disc by name, FileCore assumes that the disc is present and available. A disc name is set using *NameDisc command. You are very strongly recommended to use disc names rather than drive numbers when you develop programs and applications.
Disc names may be used in any pathname given to the system. When used in a pathname, the disc name (or number) must be prefixed by a colon character. For Example:
*Cat :AlanDisc.Downloads
*Info :4.!Boot*.*
Note that :drive
really means :drive.$
.
Disc names can also have wildcards in them, so long as the name only matches one of the discs that FileCore knows about for the filing system. If more than one name matches FileCore will return an ‘Ambiguous disc name’ error.
The following table details common error messages if the specified disc cannot be found:
Error Message | Reason |
---|---|
‘Disc not present’ | Disc has been previously seen by FileCore, but cannot be found. e.g. disc has been ejected from drive |
‘Disc not known’ | Disc has not been seen |
‘Ambiguous disc name’ | Wildcard disc name returns more than one known disc |
It is possible to trap these errors before they are issued, which allows the user to be prompted to insert the disc into the drive. See OS_UpCall 1 and OS_UpCall 2 for more details.
There is currently a limit of eight disc names per filing system that FileCore can remember. This is done on a FIFO basis.
When a disc is ejected from a drive, FileCore still ‘knows’ about it. This means that if there are any directories set on that disc (the current directory, user root directory, or library), they will still be associated with it. Thus any attempt to load or run a file will result in a ‘Disc not present’ or ‘Disc not known’ error.
However, this means that you can replace the disc and still use it, as if it had never been ejected. The same applies to open files on the disc; they remain open and associated with that disc until they are closed.
You can cause the old directories to be overridden by *Mounting a new disc once it has been inserted. This resets the CSD and so on. Alternatively, if you unset the directories (using *NoDir, *NoLib and *NoURD), then FileCore will use certain defaults when operations on these are required:
$
on the default drive. This is the configured default, or the one set by the last *Drive command$
on the default drive&.Library
, $.Library
and then the current directory, in that orderYou can also see Service_DiscDismounted for more information.
The currently selected directory, user root directory and library directory are all stored independently for each FileCore-based filing system.