Term | Meaning |
---|---|
object | Used to define a single file or a directory |
disc object | Used to define a logical group of fragments on a new map disc, that may contain one or more objects |
There are two different types of disc address that FileCore currently uses. They are:
Type | Description |
---|---|
Physical | Uses actual physical address disc address of the disc, using the offset in bytes of data from the start of the disc. This type of addressing was commonly used with older, and hence smaller sized discs that could be easily addressed within a 32-bit address size |
Internal | Used by new map discs, that specifies an object in terms of it’s fragment id, and it’s offset in sectors within that fragment The Internal address of each object within the disc object will have the same fragment id, but a different offset within that fragment |
Because Physical Disc Addressing uses an offset in bytes from the start of the disc to determine the disc address to read/write. To calculate the physical disc address of a byte you need the know several pieces information about the disc. They are:
Identifier | Description |
---|---|
h | Head number |
t | Track number |
s | Sector number |
b | Number of bytes into the sector |
H | Number of heads on the Drive |
S | Number of sectors per track |
b | Number of bytes per sector |
x | Number of defective sectors earlier on the disc. Note: only applicable for old map hard discs. Use zero for old map floppy discs or new map discs |
Address = ((t × H × h) × S + s – x) × B + b
Tracks, heads and sectors are all counted from zero.
This formula can be used for any disc format (except an L-format one).
Internal disc addresses are not used by the old disc map, only new map discs. An object's internal disc address is in the following binary form:
ddd00000 0fffffff ffffffff ssssssss
Identifier | Description |
---|---|
ddd | Disc number (not used outside of FileCore itself) |
fffffff ffffffff | Fragment Id |
ssssssss | Offset within the object in units of 2share_size. Where share_size comes from the large disc record. |
You must ensure that if you format a disc, share_size is sufficiently large for the following to be true:
smallest fragment size ≤ (254 × 2log2secsize × 2share_size)
This ensures that FileCore can then share all the space within a shared disc object.