Home » Archimedes archive » Acorn User » AU 1996-03 B.adf » Features » Fsck_130/MapExpl

Fsck_130/MapExpl

This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.

Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.

Tape/disk: Home » Archimedes archive » Acorn User » AU 1996-03 B.adf » Features
Filename: Fsck_130/MapExpl
Read OK:
File size: 3594 bytes
Load address: 0000
Exec address: 0000
File contents
This file is aimed at all the people who want to understand more about disc
maps without going deeply into technical speech. If you have just some
questions you can try to read the "Possible Questions" section and ignore the
rest.

This file will only deal with new format maps (E-Format) since the old ones
(D-Format) are completely out-of-date.


E-Format map, an easy explanation (I hope!)
-------------------------------------------

Before starting with the map itself, we have to speak about files and disc
structure.

Each file on a disc (including directories) can be identified from a SIN
(System Internal Number) that is stored together with all the other file
informations (name, filetype, size, etc.) in the directory that contains the
file. The SIN is made up by two parts, the file number (or file ID) and the
sector offset (more on this next).

The disc (HD or floppy) is physically made up by a number of heads (2 for
floppies), tracks and sectors per track. RISC OS will generally ignore this
and will consider the disc as a consecutive sequence of sectors.

The map of an E-Format disc is divided into zones: each zone represents a
number of consecutive sectors and can be considered as a stand-alone entity.
So, unless specified, the map format can be applied in the same way to both
single-zone discs (like 800K floppies) and multi-zone ones.
Note that there are no relations between the physical disc structure (ie.
number of heads, tracks, etc.) and the zones subdivision.

On each disc there are 2 copies of the map (one is taken as a backup): quite
ironically the 2 maps are (obviously!) always identical, so if the first is
corrupted the second is of no use. The second map can be useful only if the
first one has been physically damaged but (apparently) RISC OS always reads
the first and ignores the other...

Each zone consists of a list of blocks of variable length, each one
representing an occupied or a free part of the disc; the formers contain
the file numbers (ie. the first part of a SIN) and the latters contain a
link to the next free-space block. If you know the SIN of a file, you can
easily find out where it is located in the zone and so you can know the exact
position of the file on the disc (ie. the disc address).
The same file number can appear in more than one block, in the same or in
different zones, if a file is fragmented in small chunks; this way you can
also have files that straddle across two or more zones.

Sometimes two or more files have the same file number but different sector
offset (ie. the second part of a SIN): this means that in the map they appear
to be a single file (occupying only one block) but, knowing the SIN, it is
possible to find out the right address of each one. This trick is useful to
avoid a lot of disc space wasting: because of the organization of the map,
each block must occupy a minimum fixed length (that generally depends on the
size of the HD) and so, even if the file is really short, it has to use up
some extra disc space. Thanks to the sector offsets, a lot of small files
can share the same block (thus the same file number) but each one could only
use the size of a physical sector.

I tried to explain the map structure in a simplified way, without going deeply
into the real data structure (bit streams, checksums, etc.), but I think I
said enough to allow you to understand:


What can go wrong
-----------------

Obviously the above structure is really rigid and there is no place for
errors!�Unfortunately errors always occur because of unexpected power down,
system crashes, physical damages, (errors in FileCore module itself?), etc;
this is a list of possible problems:

- different file lengths in map and directory: if the allocated length in the
  map is more than the one in the directory you can ignore this (but you have
  some lost space) but in the opposite case RISC OS generally crashes if you
  try to load the file.

- a file number is allocated in the map but not in the directory structure:
  you have some space occupied in the map by an non-existent file.

- a file has a file number that isn't allocated in the map: generally RISC OS
  hangs the computer if you try to load the file.

- the free space linked list is broken: there is some free space that isn't
  linked with the others, thus it is lost (it is no more free...).

In these cases (except in the ones that make RISC OS to crash) *CheckMap
reports an inconsistency.
Unfortunately there is a worse case:

- the checksum of one or more zones is wrong: in this case (apparently easy
  to fix) RISC OS isn't able to recognise the disc properly. Using a Disc
  Doctor tool it should be possible to manually fix the problem.

Another quite common error (not directly related to the map) is:

- broken directory: this error is issued when RISC OS finds a directory that
  has some 'strange' data in it (no directory identifier, wrong checksum,
  etc.). The only way to cure this is to remove the directory from its parent
  but unfortunately this is impossible using standard commands (wipe, delete,
  remove). Broken directories usually lead to inconsistent maps because all
  the files contained in them disappear from the directory structure but not
  from the map (see above).


What can be wasted
------------------

Because of the disc structure and the map organization, some space can be 
'naturally' wasted.

First of all, the sector bounds are a physical limit and so all the files
must be 'sector aligned'. So, on a 512 bytes sector sized HD, a 1 byte file 
always uses (at least) 512 bytes, while a 513 bytes one uses 1024 bytes.

But the real waste of space is caused by the map organization: as I already
said, there is a minimun length for each map block (from now I will consider
it to be 4K but note that this is only an example).

This is not so bad because more than one file can share it, hence 4*1K files
can fill up the same block wasting no space. The bad point is that only
files in the same directory can share blocks, so 4*1K files in 4 different
directories will use 16K.

A directory always needs 2K of disc space to keep its data. Since a directory
from the map point of view is just a file, it will still use 4K: fortunately
it can share the remaining 2K with files contained in it (not with files from
its parent). If a directory contains a 2K file or 2*1K files all the space is
used but if it contains only files longer than 2K the space will be wasted.

Wasted space isn't lost space: if you have an empty directory you will waste
2K. But when you delete it you will regain the whole 4K, no loss. If you save
a 1K file in it, the free space on your disc will remain the same and the
wasted space will be just 1K.

During normal operations, there is no way to avoid wasting space: RISC OS
does all the work and you don't have to worry about the file allocation
strategy. Anyway, sometimes you can recover some wasted space by simply
copying a file, deleting the original one and renaming the new one as the old
one (usually it is better to copy the whole content of a directory to another
and then rename the whole directory back) but don't expect too much gain...


*CheckMap and *Compact
----------------------

CheckMap performs quite a simple task: it just scans the directory tree and
checks that all the file numbers in the map are actually contained in a
directory. Considering that CheckMap should be used when something went wrong,
it seems to be a very poorly written piece of code: sometimes it hangs the
whole computer, sometimes it just prints the cryptic message "Map inconsistent
with directory tree" and the only action that it should do to fix the
situation is the swapping between the 2 copies of the map (but see above to
understand why nobody has never been able to use this facility...).

Compact has been a very useful command when the only way to format discs was
D-Format: in fact with E-Format discs it is almost useless. Its function is
to collect together fragmented files or fragmented free space inside zones
(but not from one zone to another). With E-Format discs this operation is
performed automatically when a new file is saved in that zone, but you can
anyway use it 'manually' to speed up future savings (actually the speed gain
is almost irrelevant). With D-Format discs the 'auto-compaction' doesn't
exist and files cannot be fragmented: if there is enough space on the disc
for the file that has to be saved but this free space is fragmented in
small chunks, the error "Compaction required" is issued.


Possible Questions
------------------

 1) Is *Compact useful or it is dangerous?
 2) Can I trust *CheckMap?
 3) What can I do with a broken directory or an undeletable file?
 4) What can I do if *CheckMap doesn't work or tells me that the map is
    inconsistent?
 5) Are there some dangerous actions that can lead to a map corruption?
 6) Does a map corruption imply that some data on the disc has been corrupted
    too?
 7) How can I find if my disc is E-Format?
 8) Is there some program that can be used to unfragment the disc?

Possible Answers...
-------------------

 1) Is *Compact useful or it is dangerous?

On E-Format discs *Compact isn't really useful but it can be used safely if
the map is good. If the map is inconsistent I can't assure you of its
behaviour (ie. I can't exclude that it can cause worse corruptions). Note
that RISC OS can automatically run a 'subset' of Compact when it has to save
a file (especially if the file is large and the free space is limited and
fragmented).

 2) Can I trust *CheckMap?

I have to admit that CheckMap isn't a very well written command but if it says
that the map is good, the map IS good and you have no lost space on your disc.
If it crashes the computer or if it says "Map inconsistent with directory
tree", your map or directory structure IS damaged and the damage can worsen if
not cured soon.

 3) What can I do with a broken directory or an undeletable file?

A broken directory cannot be deleted using standard OS commands and it can
just be considered as a 'normal' undeletable file. To remove it you must use
some directory manipulation program (like Look System's Disc Doctor?) or the
shareware programs 'eliminate' (distributed with 'fsck') or 'FSCK�'.

 4) What can I do if *CheckMap doesn't work or tells me that the map is
    inconsistent?

Apparently the only thing you can do is to try the shareware program 'fsck'
(or the new 'FSCK�') that performs the same task as *CheckMap but also tries
to fix the damage.

 5) Are there some dangerous actions that can lead to a map corruption?

I am not the only person who thinks that having a nearly full HD (say, less
than 1Mb free) can be dangerous, especially if you handle very large files.
Using bugged programs that sometimes can crash the computer while it is
writing to the HD is REALLY dangerous but fortunately there are very few
programs of this kind around...

 6) Does a map corruption imply that some data on the disc has been corrupted
    too?

Generally no. For example if the corruption was caused by a delete operation
that was interrupted after it removed the file from the directory but before
the removal from the map, the map will be inconsistent but no data has been
lost/overwritten.
On the other hand, a 'Broken Directory' can be the evident sign that
something actually has been corrupted on the disc, so you can find that some
other files are damaged. In fact, RISC OS can easily notice the wrong
directory header/checksum but it cannot really understand if a text file has
been corrupted!

 7) How can I find if my disc is E-Format?

You can use the command *Map. If it says "new map" you have an E-Format disc,
otherwise you have an old D-Format disc. When you use *Map, be sure to be in
the correct file system, eventually use the command "XXXXX:Map" where XXXXX
is the name of the file system (ie. IDEFS, ADFS, SCSI, etc.). If the *Map
command doesn't exist, your file system isn't FileCore based (like MemFS,
ArcFS, SparkFS), so what is described in this file can't be applied to it.

 8) Is there some program that can be used to unfragment the disc?

No. However, such a program will not be completely useful since RISC OS
already tries keep files unfragmented. The *Compact command can be useful to
unfragment the free space (and sometimes the files too) inside a zone.
A similar program (but more useful) should be able to move the most used
files (but only the ones that are not continually updated) near the middle
of the disc (ie. near the root directory) but this will require a lot of
time, is generally dangerous and will not provide (probably) a great
improvement in disc access time.

------------------------------------------------------------------------------
I'd like to thank all the people who contributed to produce a 'working'
version of this document.
------------------------------------------------------------------------------

If you have any other question related to HD map, structure, directories,
etc. you can contact me or post to comp.sys.acorn.*. Any interesting question
will be added to the "Possible questions".
Note that I can be wrong, inexact and vague, so any correction is welcome.
If you think that this file is useless ignore it, if you think it is badly
written, vague, etc. please contact me, possibly with some amendment.


An HTML version of this document is available at:
http://cdc8g5.cdc.polimi.it/~pel0015/MapExpl.html


I can be contacted at the following address:
pel0015@cdc8g5.cdc.polimi.it
If you don't receive a reply (or if the message is bounced) I can also be
contacted at:
sergio@freebsd.first.gmd.de

WWW:
http://cdc8g5.cdc.polimi.it/~pel0015/
00000000  54 68 69 73 20 66 69 6c  65 20 69 73 20 61 69 6d  |This file is aim|
00000010  65 64 20 61 74 20 61 6c  6c 20 74 68 65 20 70 65  |ed at all the pe|
00000020  6f 70 6c 65 20 77 68 6f  20 77 61 6e 74 20 74 6f  |ople who want to|
00000030  20 75 6e 64 65 72 73 74  61 6e 64 20 6d 6f 72 65  | understand more|
00000040  20 61 62 6f 75 74 20 64  69 73 63 0a 6d 61 70 73  | about disc.maps|
00000050  20 77 69 74 68 6f 75 74  20 67 6f 69 6e 67 20 64  | without going d|
00000060  65 65 70 6c 79 20 69 6e  74 6f 20 74 65 63 68 6e  |eeply into techn|
00000070  69 63 61 6c 20 73 70 65  65 63 68 2e 20 49 66 20  |ical speech. If |
00000080  79 6f 75 20 68 61 76 65  20 6a 75 73 74 20 73 6f  |you have just so|
00000090  6d 65 0a 71 75 65 73 74  69 6f 6e 73 20 79 6f 75  |me.questions you|
000000a0  20 63 61 6e 20 74 72 79  20 74 6f 20 72 65 61 64  | can try to read|
000000b0  20 74 68 65 20 22 50 6f  73 73 69 62 6c 65 20 51  | the "Possible Q|
000000c0  75 65 73 74 69 6f 6e 73  22 20 73 65 63 74 69 6f  |uestions" sectio|
000000d0  6e 20 61 6e 64 20 69 67  6e 6f 72 65 20 74 68 65  |n and ignore the|
000000e0  0a 72 65 73 74 2e 0a 0a  54 68 69 73 20 66 69 6c  |.rest...This fil|
000000f0  65 20 77 69 6c 6c 20 6f  6e 6c 79 20 64 65 61 6c  |e will only deal|
00000100  20 77 69 74 68 20 6e 65  77 20 66 6f 72 6d 61 74  | with new format|
00000110  20 6d 61 70 73 20 28 45  2d 46 6f 72 6d 61 74 29  | maps (E-Format)|
00000120  20 73 69 6e 63 65 20 74  68 65 20 6f 6c 64 20 6f  | since the old o|
00000130  6e 65 73 0a 28 44 2d 46  6f 72 6d 61 74 29 20 61  |nes.(D-Format) a|
00000140  72 65 20 63 6f 6d 70 6c  65 74 65 6c 79 20 6f 75  |re completely ou|
00000150  74 2d 6f 66 2d 64 61 74  65 2e 0a 0a 0a 45 2d 46  |t-of-date....E-F|
00000160  6f 72 6d 61 74 20 6d 61  70 2c 20 61 6e 20 65 61  |ormat map, an ea|
00000170  73 79 20 65 78 70 6c 61  6e 61 74 69 6f 6e 20 28  |sy explanation (|
00000180  49 20 68 6f 70 65 21 29  0a 2d 2d 2d 2d 2d 2d 2d  |I hope!).-------|
00000190  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
000001b0  2d 2d 2d 2d 0a 0a 42 65  66 6f 72 65 20 73 74 61  |----..Before sta|
000001c0  72 74 69 6e 67 20 77 69  74 68 20 74 68 65 20 6d  |rting with the m|
000001d0  61 70 20 69 74 73 65 6c  66 2c 20 77 65 20 68 61  |ap itself, we ha|
000001e0  76 65 20 74 6f 20 73 70  65 61 6b 20 61 62 6f 75  |ve to speak abou|
000001f0  74 20 66 69 6c 65 73 20  61 6e 64 20 64 69 73 63  |t files and disc|
00000200  0a 73 74 72 75 63 74 75  72 65 2e 0a 0a 45 61 63  |.structure...Eac|
00000210  68 20 66 69 6c 65 20 6f  6e 20 61 20 64 69 73 63  |h file on a disc|
00000220  20 28 69 6e 63 6c 75 64  69 6e 67 20 64 69 72 65  | (including dire|
00000230  63 74 6f 72 69 65 73 29  20 63 61 6e 20 62 65 20  |ctories) can be |
00000240  69 64 65 6e 74 69 66 69  65 64 20 66 72 6f 6d 20  |identified from |
00000250  61 20 53 49 4e 0a 28 53  79 73 74 65 6d 20 49 6e  |a SIN.(System In|
00000260  74 65 72 6e 61 6c 20 4e  75 6d 62 65 72 29 20 74  |ternal Number) t|
00000270  68 61 74 20 69 73 20 73  74 6f 72 65 64 20 74 6f  |hat is stored to|
00000280  67 65 74 68 65 72 20 77  69 74 68 20 61 6c 6c 20  |gether with all |
00000290  74 68 65 20 6f 74 68 65  72 20 66 69 6c 65 0a 69  |the other file.i|
000002a0  6e 66 6f 72 6d 61 74 69  6f 6e 73 20 28 6e 61 6d  |nformations (nam|
000002b0  65 2c 20 66 69 6c 65 74  79 70 65 2c 20 73 69 7a  |e, filetype, siz|
000002c0  65 2c 20 65 74 63 2e 29  20 69 6e 20 74 68 65 20  |e, etc.) in the |
000002d0  64 69 72 65 63 74 6f 72  79 20 74 68 61 74 20 63  |directory that c|
000002e0  6f 6e 74 61 69 6e 73 20  74 68 65 0a 66 69 6c 65  |ontains the.file|
000002f0  2e 20 54 68 65 20 53 49  4e 20 69 73 20 6d 61 64  |. The SIN is mad|
00000300  65 20 75 70 20 62 79 20  74 77 6f 20 70 61 72 74  |e up by two part|
00000310  73 2c 20 74 68 65 20 66  69 6c 65 20 6e 75 6d 62  |s, the file numb|
00000320  65 72 20 28 6f 72 20 66  69 6c 65 20 49 44 29 20  |er (or file ID) |
00000330  61 6e 64 20 74 68 65 0a  73 65 63 74 6f 72 20 6f  |and the.sector o|
00000340  66 66 73 65 74 20 28 6d  6f 72 65 20 6f 6e 20 74  |ffset (more on t|
00000350  68 69 73 20 6e 65 78 74  29 2e 0a 0a 54 68 65 20  |his next)...The |
00000360  64 69 73 63 20 28 48 44  20 6f 72 20 66 6c 6f 70  |disc (HD or flop|
00000370  70 79 29 20 69 73 20 70  68 79 73 69 63 61 6c 6c  |py) is physicall|
00000380  79 20 6d 61 64 65 20 75  70 20 62 79 20 61 20 6e  |y made up by a n|
00000390  75 6d 62 65 72 20 6f 66  20 68 65 61 64 73 20 28  |umber of heads (|
000003a0  32 20 66 6f 72 0a 66 6c  6f 70 70 69 65 73 29 2c  |2 for.floppies),|
000003b0  20 74 72 61 63 6b 73 20  61 6e 64 20 73 65 63 74  | tracks and sect|
000003c0  6f 72 73 20 70 65 72 20  74 72 61 63 6b 2e 20 52  |ors per track. R|
000003d0  49 53 43 20 4f 53 20 77  69 6c 6c 20 67 65 6e 65  |ISC OS will gene|
000003e0  72 61 6c 6c 79 20 69 67  6e 6f 72 65 20 74 68 69  |rally ignore thi|
000003f0  73 0a 61 6e 64 20 77 69  6c 6c 20 63 6f 6e 73 69  |s.and will consi|
00000400  64 65 72 20 74 68 65 20  64 69 73 63 20 61 73 20  |der the disc as |
00000410  61 20 63 6f 6e 73 65 63  75 74 69 76 65 20 73 65  |a consecutive se|
00000420  71 75 65 6e 63 65 20 6f  66 20 73 65 63 74 6f 72  |quence of sector|
00000430  73 2e 0a 0a 54 68 65 20  6d 61 70 20 6f 66 20 61  |s...The map of a|
00000440  6e 20 45 2d 46 6f 72 6d  61 74 20 64 69 73 63 20  |n E-Format disc |
00000450  69 73 20 64 69 76 69 64  65 64 20 69 6e 74 6f 20  |is divided into |
00000460  7a 6f 6e 65 73 3a 20 65  61 63 68 20 7a 6f 6e 65  |zones: each zone|
00000470  20 72 65 70 72 65 73 65  6e 74 73 20 61 0a 6e 75  | represents a.nu|
00000480  6d 62 65 72 20 6f 66 20  63 6f 6e 73 65 63 75 74  |mber of consecut|
00000490  69 76 65 20 73 65 63 74  6f 72 73 20 61 6e 64 20  |ive sectors and |
000004a0  63 61 6e 20 62 65 20 63  6f 6e 73 69 64 65 72 65  |can be considere|
000004b0  64 20 61 73 20 61 20 73  74 61 6e 64 2d 61 6c 6f  |d as a stand-alo|
000004c0  6e 65 20 65 6e 74 69 74  79 2e 0a 53 6f 2c 20 75  |ne entity..So, u|
000004d0  6e 6c 65 73 73 20 73 70  65 63 69 66 69 65 64 2c  |nless specified,|
000004e0  20 74 68 65 20 6d 61 70  20 66 6f 72 6d 61 74 20  | the map format |
000004f0  63 61 6e 20 62 65 20 61  70 70 6c 69 65 64 20 69  |can be applied i|
00000500  6e 20 74 68 65 20 73 61  6d 65 20 77 61 79 20 74  |n the same way t|
00000510  6f 20 62 6f 74 68 0a 73  69 6e 67 6c 65 2d 7a 6f  |o both.single-zo|
00000520  6e 65 20 64 69 73 63 73  20 28 6c 69 6b 65 20 38  |ne discs (like 8|
00000530  30 30 4b 20 66 6c 6f 70  70 69 65 73 29 20 61 6e  |00K floppies) an|
00000540  64 20 6d 75 6c 74 69 2d  7a 6f 6e 65 20 6f 6e 65  |d multi-zone one|
00000550  73 2e 0a 4e 6f 74 65 20  74 68 61 74 20 74 68 65  |s..Note that the|
00000560  72 65 20 61 72 65 20 6e  6f 20 72 65 6c 61 74 69  |re are no relati|
00000570  6f 6e 73 20 62 65 74 77  65 65 6e 20 74 68 65 20  |ons between the |
00000580  70 68 79 73 69 63 61 6c  20 64 69 73 63 20 73 74  |physical disc st|
00000590  72 75 63 74 75 72 65 20  28 69 65 2e 0a 6e 75 6d  |ructure (ie..num|
000005a0  62 65 72 20 6f 66 20 68  65 61 64 73 2c 20 74 72  |ber of heads, tr|
000005b0  61 63 6b 73 2c 20 65 74  63 2e 29 20 61 6e 64 20  |acks, etc.) and |
000005c0  74 68 65 20 7a 6f 6e 65  73 20 73 75 62 64 69 76  |the zones subdiv|
000005d0  69 73 69 6f 6e 2e 0a 0a  4f 6e 20 65 61 63 68 20  |ision...On each |
000005e0  64 69 73 63 20 74 68 65  72 65 20 61 72 65 20 32  |disc there are 2|
000005f0  20 63 6f 70 69 65 73 20  6f 66 20 74 68 65 20 6d  | copies of the m|
00000600  61 70 20 28 6f 6e 65 20  69 73 20 74 61 6b 65 6e  |ap (one is taken|
00000610  20 61 73 20 61 20 62 61  63 6b 75 70 29 3a 20 71  | as a backup): q|
00000620  75 69 74 65 0a 69 72 6f  6e 69 63 61 6c 6c 79 20  |uite.ironically |
00000630  74 68 65 20 32 20 6d 61  70 73 20 61 72 65 20 28  |the 2 maps are (|
00000640  6f 62 76 69 6f 75 73 6c  79 21 29 20 61 6c 77 61  |obviously!) alwa|
00000650  79 73 20 69 64 65 6e 74  69 63 61 6c 2c 20 73 6f  |ys identical, so|
00000660  20 69 66 20 74 68 65 20  66 69 72 73 74 20 69 73  | if the first is|
00000670  0a 63 6f 72 72 75 70 74  65 64 20 74 68 65 20 73  |.corrupted the s|
00000680  65 63 6f 6e 64 20 69 73  20 6f 66 20 6e 6f 20 75  |econd is of no u|
00000690  73 65 2e 20 54 68 65 20  73 65 63 6f 6e 64 20 6d  |se. The second m|
000006a0  61 70 20 63 61 6e 20 62  65 20 75 73 65 66 75 6c  |ap can be useful|
000006b0  20 6f 6e 6c 79 20 69 66  20 74 68 65 0a 66 69 72  | only if the.fir|
000006c0  73 74 20 6f 6e 65 20 68  61 73 20 62 65 65 6e 20  |st one has been |
000006d0  70 68 79 73 69 63 61 6c  6c 79 20 64 61 6d 61 67  |physically damag|
000006e0  65 64 20 62 75 74 20 28  61 70 70 61 72 65 6e 74  |ed but (apparent|
000006f0  6c 79 29 20 52 49 53 43  20 4f 53 20 61 6c 77 61  |ly) RISC OS alwa|
00000700  79 73 20 72 65 61 64 73  0a 74 68 65 20 66 69 72  |ys reads.the fir|
00000710  73 74 20 61 6e 64 20 69  67 6e 6f 72 65 73 20 74  |st and ignores t|
00000720  68 65 20 6f 74 68 65 72  2e 2e 2e 0a 0a 45 61 63  |he other.....Eac|
00000730  68 20 7a 6f 6e 65 20 63  6f 6e 73 69 73 74 73 20  |h zone consists |
00000740  6f 66 20 61 20 6c 69 73  74 20 6f 66 20 62 6c 6f  |of a list of blo|
00000750  63 6b 73 20 6f 66 20 76  61 72 69 61 62 6c 65 20  |cks of variable |
00000760  6c 65 6e 67 74 68 2c 20  65 61 63 68 20 6f 6e 65  |length, each one|
00000770  0a 72 65 70 72 65 73 65  6e 74 69 6e 67 20 61 6e  |.representing an|
00000780  20 6f 63 63 75 70 69 65  64 20 6f 72 20 61 20 66  | occupied or a f|
00000790  72 65 65 20 70 61 72 74  20 6f 66 20 74 68 65 20  |ree part of the |
000007a0  64 69 73 63 3b 20 74 68  65 20 66 6f 72 6d 65 72  |disc; the former|
000007b0  73 20 63 6f 6e 74 61 69  6e 0a 74 68 65 20 66 69  |s contain.the fi|
000007c0  6c 65 20 6e 75 6d 62 65  72 73 20 28 69 65 2e 20  |le numbers (ie. |
000007d0  74 68 65 20 66 69 72 73  74 20 70 61 72 74 20 6f  |the first part o|
000007e0  66 20 61 20 53 49 4e 29  20 61 6e 64 20 74 68 65  |f a SIN) and the|
000007f0  20 6c 61 74 74 65 72 73  20 63 6f 6e 74 61 69 6e  | latters contain|
00000800  20 61 0a 6c 69 6e 6b 20  74 6f 20 74 68 65 20 6e  | a.link to the n|
00000810  65 78 74 20 66 72 65 65  2d 73 70 61 63 65 20 62  |ext free-space b|
00000820  6c 6f 63 6b 2e 20 49 66  20 79 6f 75 20 6b 6e 6f  |lock. If you kno|
00000830  77 20 74 68 65 20 53 49  4e 20 6f 66 20 61 20 66  |w the SIN of a f|
00000840  69 6c 65 2c 20 79 6f 75  20 63 61 6e 0a 65 61 73  |ile, you can.eas|
00000850  69 6c 79 20 66 69 6e 64  20 6f 75 74 20 77 68 65  |ily find out whe|
00000860  72 65 20 69 74 20 69 73  20 6c 6f 63 61 74 65 64  |re it is located|
00000870  20 69 6e 20 74 68 65 20  7a 6f 6e 65 20 61 6e 64  | in the zone and|
00000880  20 73 6f 20 79 6f 75 20  63 61 6e 20 6b 6e 6f 77  | so you can know|
00000890  20 74 68 65 20 65 78 61  63 74 0a 70 6f 73 69 74  | the exact.posit|
000008a0  69 6f 6e 20 6f 66 20 74  68 65 20 66 69 6c 65 20  |ion of the file |
000008b0  6f 6e 20 74 68 65 20 64  69 73 63 20 28 69 65 2e  |on the disc (ie.|
000008c0  20 74 68 65 20 64 69 73  63 20 61 64 64 72 65 73  | the disc addres|
000008d0  73 29 2e 0a 54 68 65 20  73 61 6d 65 20 66 69 6c  |s)..The same fil|
000008e0  65 20 6e 75 6d 62 65 72  20 63 61 6e 20 61 70 70  |e number can app|
000008f0  65 61 72 20 69 6e 20 6d  6f 72 65 20 74 68 61 6e  |ear in more than|
00000900  20 6f 6e 65 20 62 6c 6f  63 6b 2c 20 69 6e 20 74  | one block, in t|
00000910  68 65 20 73 61 6d 65 20  6f 72 20 69 6e 0a 64 69  |he same or in.di|
00000920  66 66 65 72 65 6e 74 20  7a 6f 6e 65 73 2c 20 69  |fferent zones, i|
00000930  66 20 61 20 66 69 6c 65  20 69 73 20 66 72 61 67  |f a file is frag|
00000940  6d 65 6e 74 65 64 20 69  6e 20 73 6d 61 6c 6c 20  |mented in small |
00000950  63 68 75 6e 6b 73 3b 20  74 68 69 73 20 77 61 79  |chunks; this way|
00000960  20 79 6f 75 20 63 61 6e  0a 61 6c 73 6f 20 68 61  | you can.also ha|
00000970  76 65 20 66 69 6c 65 73  20 74 68 61 74 20 73 74  |ve files that st|
00000980  72 61 64 64 6c 65 20 61  63 72 6f 73 73 20 74 77  |raddle across tw|
00000990  6f 20 6f 72 20 6d 6f 72  65 20 7a 6f 6e 65 73 2e  |o or more zones.|
000009a0  0a 0a 53 6f 6d 65 74 69  6d 65 73 20 74 77 6f 20  |..Sometimes two |
000009b0  6f 72 20 6d 6f 72 65 20  66 69 6c 65 73 20 68 61  |or more files ha|
000009c0  76 65 20 74 68 65 20 73  61 6d 65 20 66 69 6c 65  |ve the same file|
000009d0  20 6e 75 6d 62 65 72 20  62 75 74 20 64 69 66 66  | number but diff|
000009e0  65 72 65 6e 74 20 73 65  63 74 6f 72 0a 6f 66 66  |erent sector.off|
000009f0  73 65 74 20 28 69 65 2e  20 74 68 65 20 73 65 63  |set (ie. the sec|
00000a00  6f 6e 64 20 70 61 72 74  20 6f 66 20 61 20 53 49  |ond part of a SI|
00000a10  4e 29 3a 20 74 68 69 73  20 6d 65 61 6e 73 20 74  |N): this means t|
00000a20  68 61 74 20 69 6e 20 74  68 65 20 6d 61 70 20 74  |hat in the map t|
00000a30  68 65 79 20 61 70 70 65  61 72 0a 74 6f 20 62 65  |hey appear.to be|
00000a40  20 61 20 73 69 6e 67 6c  65 20 66 69 6c 65 20 28  | a single file (|
00000a50  6f 63 63 75 70 79 69 6e  67 20 6f 6e 6c 79 20 6f  |occupying only o|
00000a60  6e 65 20 62 6c 6f 63 6b  29 20 62 75 74 2c 20 6b  |ne block) but, k|
00000a70  6e 6f 77 69 6e 67 20 74  68 65 20 53 49 4e 2c 20  |nowing the SIN, |
00000a80  69 74 20 69 73 0a 70 6f  73 73 69 62 6c 65 20 74  |it is.possible t|
00000a90  6f 20 66 69 6e 64 20 6f  75 74 20 74 68 65 20 72  |o find out the r|
00000aa0  69 67 68 74 20 61 64 64  72 65 73 73 20 6f 66 20  |ight address of |
00000ab0  65 61 63 68 20 6f 6e 65  2e 20 54 68 69 73 20 74  |each one. This t|
00000ac0  72 69 63 6b 20 69 73 20  75 73 65 66 75 6c 20 74  |rick is useful t|
00000ad0  6f 0a 61 76 6f 69 64 20  61 20 6c 6f 74 20 6f 66  |o.avoid a lot of|
00000ae0  20 64 69 73 63 20 73 70  61 63 65 20 77 61 73 74  | disc space wast|
00000af0  69 6e 67 3a 20 62 65 63  61 75 73 65 20 6f 66 20  |ing: because of |
00000b00  74 68 65 20 6f 72 67 61  6e 69 7a 61 74 69 6f 6e  |the organization|
00000b10  20 6f 66 20 74 68 65 20  6d 61 70 2c 0a 65 61 63  | of the map,.eac|
00000b20  68 20 62 6c 6f 63 6b 20  6d 75 73 74 20 6f 63 63  |h block must occ|
00000b30  75 70 79 20 61 20 6d 69  6e 69 6d 75 6d 20 66 69  |upy a minimum fi|
00000b40  78 65 64 20 6c 65 6e 67  74 68 20 28 74 68 61 74  |xed length (that|
00000b50  20 67 65 6e 65 72 61 6c  6c 79 20 64 65 70 65 6e  | generally depen|
00000b60  64 73 20 6f 6e 20 74 68  65 0a 73 69 7a 65 20 6f  |ds on the.size o|
00000b70  66 20 74 68 65 20 48 44  29 20 61 6e 64 20 73 6f  |f the HD) and so|
00000b80  2c 20 65 76 65 6e 20 69  66 20 74 68 65 20 66 69  |, even if the fi|
00000b90  6c 65 20 69 73 20 72 65  61 6c 6c 79 20 73 68 6f  |le is really sho|
00000ba0  72 74 2c 20 69 74 20 68  61 73 20 74 6f 20 75 73  |rt, it has to us|
00000bb0  65 20 75 70 0a 73 6f 6d  65 20 65 78 74 72 61 20  |e up.some extra |
00000bc0  64 69 73 63 20 73 70 61  63 65 2e 20 54 68 61 6e  |disc space. Than|
00000bd0  6b 73 20 74 6f 20 74 68  65 20 73 65 63 74 6f 72  |ks to the sector|
00000be0  20 6f 66 66 73 65 74 73  2c 20 61 20 6c 6f 74 20  | offsets, a lot |
00000bf0  6f 66 20 73 6d 61 6c 6c  20 66 69 6c 65 73 0a 63  |of small files.c|
00000c00  61 6e 20 73 68 61 72 65  20 74 68 65 20 73 61 6d  |an share the sam|
00000c10  65 20 62 6c 6f 63 6b 20  28 74 68 75 73 20 74 68  |e block (thus th|
00000c20  65 20 73 61 6d 65 20 66  69 6c 65 20 6e 75 6d 62  |e same file numb|
00000c30  65 72 29 20 62 75 74 20  65 61 63 68 20 6f 6e 65  |er) but each one|
00000c40  20 63 6f 75 6c 64 20 6f  6e 6c 79 0a 75 73 65 20  | could only.use |
00000c50  74 68 65 20 73 69 7a 65  20 6f 66 20 61 20 70 68  |the size of a ph|
00000c60  79 73 69 63 61 6c 20 73  65 63 74 6f 72 2e 0a 0a  |ysical sector...|
00000c70  49 20 74 72 69 65 64 20  74 6f 20 65 78 70 6c 61  |I tried to expla|
00000c80  69 6e 20 74 68 65 20 6d  61 70 20 73 74 72 75 63  |in the map struc|
00000c90  74 75 72 65 20 69 6e 20  61 20 73 69 6d 70 6c 69  |ture in a simpli|
00000ca0  66 69 65 64 20 77 61 79  2c 20 77 69 74 68 6f 75  |fied way, withou|
00000cb0  74 20 67 6f 69 6e 67 20  64 65 65 70 6c 79 0a 69  |t going deeply.i|
00000cc0  6e 74 6f 20 74 68 65 20  72 65 61 6c 20 64 61 74  |nto the real dat|
00000cd0  61 20 73 74 72 75 63 74  75 72 65 20 28 62 69 74  |a structure (bit|
00000ce0  20 73 74 72 65 61 6d 73  2c 20 63 68 65 63 6b 73  | streams, checks|
00000cf0  75 6d 73 2c 20 65 74 63  2e 29 2c 20 62 75 74 20  |ums, etc.), but |
00000d00  49 20 74 68 69 6e 6b 20  49 0a 73 61 69 64 20 65  |I think I.said e|
00000d10  6e 6f 75 67 68 20 74 6f  20 61 6c 6c 6f 77 20 79  |nough to allow y|
00000d20  6f 75 20 74 6f 20 75 6e  64 65 72 73 74 61 6e 64  |ou to understand|
00000d30  3a 0a 0a 0a 57 68 61 74  20 63 61 6e 20 67 6f 20  |:...What can go |
00000d40  77 72 6f 6e 67 0a 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |wrong.----------|
00000d50  2d 2d 2d 2d 2d 2d 2d 0a  0a 4f 62 76 69 6f 75 73  |-------..Obvious|
00000d60  6c 79 20 74 68 65 20 61  62 6f 76 65 20 73 74 72  |ly the above str|
00000d70  75 63 74 75 72 65 20 69  73 20 72 65 61 6c 6c 79  |ucture is really|
00000d80  20 72 69 67 69 64 20 61  6e 64 20 74 68 65 72 65  | rigid and there|
00000d90  20 69 73 20 6e 6f 20 70  6c 61 63 65 20 66 6f 72  | is no place for|
00000da0  0a 65 72 72 6f 72 73 21  a0 55 6e 66 6f 72 74 75  |.errors!.Unfortu|
00000db0  6e 61 74 65 6c 79 20 65  72 72 6f 72 73 20 61 6c  |nately errors al|
00000dc0  77 61 79 73 20 6f 63 63  75 72 20 62 65 63 61 75  |ways occur becau|
00000dd0  73 65 20 6f 66 20 75 6e  65 78 70 65 63 74 65 64  |se of unexpected|
00000de0  20 70 6f 77 65 72 20 64  6f 77 6e 2c 0a 73 79 73  | power down,.sys|
00000df0  74 65 6d 20 63 72 61 73  68 65 73 2c 20 70 68 79  |tem crashes, phy|
00000e00  73 69 63 61 6c 20 64 61  6d 61 67 65 73 2c 20 28  |sical damages, (|
00000e10  65 72 72 6f 72 73 20 69  6e 20 46 69 6c 65 43 6f  |errors in FileCo|
00000e20  72 65 20 6d 6f 64 75 6c  65 20 69 74 73 65 6c 66  |re module itself|
00000e30  3f 29 2c 20 65 74 63 3b  0a 74 68 69 73 20 69 73  |?), etc;.this is|
00000e40  20 61 20 6c 69 73 74 20  6f 66 20 70 6f 73 73 69  | a list of possi|
00000e50  62 6c 65 20 70 72 6f 62  6c 65 6d 73 3a 0a 0a 2d  |ble problems:..-|
00000e60  20 64 69 66 66 65 72 65  6e 74 20 66 69 6c 65 20  | different file |
00000e70  6c 65 6e 67 74 68 73 20  69 6e 20 6d 61 70 20 61  |lengths in map a|
00000e80  6e 64 20 64 69 72 65 63  74 6f 72 79 3a 20 69 66  |nd directory: if|
00000e90  20 74 68 65 20 61 6c 6c  6f 63 61 74 65 64 20 6c  | the allocated l|
00000ea0  65 6e 67 74 68 20 69 6e  20 74 68 65 0a 20 20 6d  |ength in the.  m|
00000eb0  61 70 20 69 73 20 6d 6f  72 65 20 74 68 61 6e 20  |ap is more than |
00000ec0  74 68 65 20 6f 6e 65 20  69 6e 20 74 68 65 20 64  |the one in the d|
00000ed0  69 72 65 63 74 6f 72 79  20 79 6f 75 20 63 61 6e  |irectory you can|
00000ee0  20 69 67 6e 6f 72 65 20  74 68 69 73 20 28 62 75  | ignore this (bu|
00000ef0  74 20 79 6f 75 20 68 61  76 65 0a 20 20 73 6f 6d  |t you have.  som|
00000f00  65 20 6c 6f 73 74 20 73  70 61 63 65 29 20 62 75  |e lost space) bu|
00000f10  74 20 69 6e 20 74 68 65  20 6f 70 70 6f 73 69 74  |t in the opposit|
00000f20  65 20 63 61 73 65 20 52  49 53 43 20 4f 53 20 67  |e case RISC OS g|
00000f30  65 6e 65 72 61 6c 6c 79  20 63 72 61 73 68 65 73  |enerally crashes|
00000f40  20 69 66 20 79 6f 75 0a  20 20 74 72 79 20 74 6f  | if you.  try to|
00000f50  20 6c 6f 61 64 20 74 68  65 20 66 69 6c 65 2e 0a  | load the file..|
00000f60  0a 2d 20 61 20 66 69 6c  65 20 6e 75 6d 62 65 72  |.- a file number|
00000f70  20 69 73 20 61 6c 6c 6f  63 61 74 65 64 20 69 6e  | is allocated in|
00000f80  20 74 68 65 20 6d 61 70  20 62 75 74 20 6e 6f 74  | the map but not|
00000f90  20 69 6e 20 74 68 65 20  64 69 72 65 63 74 6f 72  | in the director|
00000fa0  79 20 73 74 72 75 63 74  75 72 65 3a 0a 20 20 79  |y structure:.  y|
00000fb0  6f 75 20 68 61 76 65 20  73 6f 6d 65 20 73 70 61  |ou have some spa|
00000fc0  63 65 20 6f 63 63 75 70  69 65 64 20 69 6e 20 74  |ce occupied in t|
00000fd0  68 65 20 6d 61 70 20 62  79 20 61 6e 20 6e 6f 6e  |he map by an non|
00000fe0  2d 65 78 69 73 74 65 6e  74 20 66 69 6c 65 2e 0a  |-existent file..|
00000ff0  0a 2d 20 61 20 66 69 6c  65 20 68 61 73 20 61 20  |.- a file has a |
00001000  66 69 6c 65 20 6e 75 6d  62 65 72 20 74 68 61 74  |file number that|
00001010  20 69 73 6e 27 74 20 61  6c 6c 6f 63 61 74 65 64  | isn't allocated|
00001020  20 69 6e 20 74 68 65 20  6d 61 70 3a 20 67 65 6e  | in the map: gen|
00001030  65 72 61 6c 6c 79 20 52  49 53 43 20 4f 53 0a 20  |erally RISC OS. |
00001040  20 68 61 6e 67 73 20 74  68 65 20 63 6f 6d 70 75  | hangs the compu|
00001050  74 65 72 20 69 66 20 79  6f 75 20 74 72 79 20 74  |ter if you try t|
00001060  6f 20 6c 6f 61 64 20 74  68 65 20 66 69 6c 65 2e  |o load the file.|
00001070  0a 0a 2d 20 74 68 65 20  66 72 65 65 20 73 70 61  |..- the free spa|
00001080  63 65 20 6c 69 6e 6b 65  64 20 6c 69 73 74 20 69  |ce linked list i|
00001090  73 20 62 72 6f 6b 65 6e  3a 20 74 68 65 72 65 20  |s broken: there |
000010a0  69 73 20 73 6f 6d 65 20  66 72 65 65 20 73 70 61  |is some free spa|
000010b0  63 65 20 74 68 61 74 20  69 73 6e 27 74 0a 20 20  |ce that isn't.  |
000010c0  6c 69 6e 6b 65 64 20 77  69 74 68 20 74 68 65 20  |linked with the |
000010d0  6f 74 68 65 72 73 2c 20  74 68 75 73 20 69 74 20  |others, thus it |
000010e0  69 73 20 6c 6f 73 74 20  28 69 74 20 69 73 20 6e  |is lost (it is n|
000010f0  6f 20 6d 6f 72 65 20 66  72 65 65 2e 2e 2e 29 2e  |o more free...).|
00001100  0a 0a 49 6e 20 74 68 65  73 65 20 63 61 73 65 73  |..In these cases|
00001110  20 28 65 78 63 65 70 74  20 69 6e 20 74 68 65 20  | (except in the |
00001120  6f 6e 65 73 20 74 68 61  74 20 6d 61 6b 65 20 52  |ones that make R|
00001130  49 53 43 20 4f 53 20 74  6f 20 63 72 61 73 68 29  |ISC OS to crash)|
00001140  20 2a 43 68 65 63 6b 4d  61 70 0a 72 65 70 6f 72  | *CheckMap.repor|
00001150  74 73 20 61 6e 20 69 6e  63 6f 6e 73 69 73 74 65  |ts an inconsiste|
00001160  6e 63 79 2e 0a 55 6e 66  6f 72 74 75 6e 61 74 65  |ncy..Unfortunate|
00001170  6c 79 20 74 68 65 72 65  20 69 73 20 61 20 77 6f  |ly there is a wo|
00001180  72 73 65 20 63 61 73 65  3a 0a 0a 2d 20 74 68 65  |rse case:..- the|
00001190  20 63 68 65 63 6b 73 75  6d 20 6f 66 20 6f 6e 65  | checksum of one|
000011a0  20 6f 72 20 6d 6f 72 65  20 7a 6f 6e 65 73 20 69  | or more zones i|
000011b0  73 20 77 72 6f 6e 67 3a  20 69 6e 20 74 68 69 73  |s wrong: in this|
000011c0  20 63 61 73 65 20 28 61  70 70 61 72 65 6e 74 6c  | case (apparentl|
000011d0  79 20 65 61 73 79 0a 20  20 74 6f 20 66 69 78 29  |y easy.  to fix)|
000011e0  20 52 49 53 43 20 4f 53  20 69 73 6e 27 74 20 61  | RISC OS isn't a|
000011f0  62 6c 65 20 74 6f 20 72  65 63 6f 67 6e 69 73 65  |ble to recognise|
00001200  20 74 68 65 20 64 69 73  63 20 70 72 6f 70 65 72  | the disc proper|
00001210  6c 79 2e 20 55 73 69 6e  67 20 61 20 44 69 73 63  |ly. Using a Disc|
00001220  0a 20 20 44 6f 63 74 6f  72 20 74 6f 6f 6c 20 69  |.  Doctor tool i|
00001230  74 20 73 68 6f 75 6c 64  20 62 65 20 70 6f 73 73  |t should be poss|
00001240  69 62 6c 65 20 74 6f 20  6d 61 6e 75 61 6c 6c 79  |ible to manually|
00001250  20 66 69 78 20 74 68 65  20 70 72 6f 62 6c 65 6d  | fix the problem|
00001260  2e 0a 0a 41 6e 6f 74 68  65 72 20 71 75 69 74 65  |...Another quite|
00001270  20 63 6f 6d 6d 6f 6e 20  65 72 72 6f 72 20 28 6e  | common error (n|
00001280  6f 74 20 64 69 72 65 63  74 6c 79 20 72 65 6c 61  |ot directly rela|
00001290  74 65 64 20 74 6f 20 74  68 65 20 6d 61 70 29 20  |ted to the map) |
000012a0  69 73 3a 0a 0a 2d 20 62  72 6f 6b 65 6e 20 64 69  |is:..- broken di|
000012b0  72 65 63 74 6f 72 79 3a  20 74 68 69 73 20 65 72  |rectory: this er|
000012c0  72 6f 72 20 69 73 20 69  73 73 75 65 64 20 77 68  |ror is issued wh|
000012d0  65 6e 20 52 49 53 43 20  4f 53 20 66 69 6e 64 73  |en RISC OS finds|
000012e0  20 61 20 64 69 72 65 63  74 6f 72 79 20 74 68 61  | a directory tha|
000012f0  74 0a 20 20 68 61 73 20  73 6f 6d 65 20 27 73 74  |t.  has some 'st|
00001300  72 61 6e 67 65 27 20 64  61 74 61 20 69 6e 20 69  |range' data in i|
00001310  74 20 28 6e 6f 20 64 69  72 65 63 74 6f 72 79 20  |t (no directory |
00001320  69 64 65 6e 74 69 66 69  65 72 2c 20 77 72 6f 6e  |identifier, wron|
00001330  67 20 63 68 65 63 6b 73  75 6d 2c 0a 20 20 65 74  |g checksum,.  et|
00001340  63 2e 29 2e 20 54 68 65  20 6f 6e 6c 79 20 77 61  |c.). The only wa|
00001350  79 20 74 6f 20 63 75 72  65 20 74 68 69 73 20 69  |y to cure this i|
00001360  73 20 74 6f 20 72 65 6d  6f 76 65 20 74 68 65 20  |s to remove the |
00001370  64 69 72 65 63 74 6f 72  79 20 66 72 6f 6d 20 69  |directory from i|
00001380  74 73 20 70 61 72 65 6e  74 0a 20 20 62 75 74 20  |ts parent.  but |
00001390  75 6e 66 6f 72 74 75 6e  61 74 65 6c 79 20 74 68  |unfortunately th|
000013a0  69 73 20 69 73 20 69 6d  70 6f 73 73 69 62 6c 65  |is is impossible|
000013b0  20 75 73 69 6e 67 20 73  74 61 6e 64 61 72 64 20  | using standard |
000013c0  63 6f 6d 6d 61 6e 64 73  20 28 77 69 70 65 2c 20  |commands (wipe, |
000013d0  64 65 6c 65 74 65 2c 0a  20 20 72 65 6d 6f 76 65  |delete,.  remove|
000013e0  29 2e 20 42 72 6f 6b 65  6e 20 64 69 72 65 63 74  |). Broken direct|
000013f0  6f 72 69 65 73 20 75 73  75 61 6c 6c 79 20 6c 65  |ories usually le|
00001400  61 64 20 74 6f 20 69 6e  63 6f 6e 73 69 73 74 65  |ad to inconsiste|
00001410  6e 74 20 6d 61 70 73 20  62 65 63 61 75 73 65 20  |nt maps because |
00001420  61 6c 6c 0a 20 20 74 68  65 20 66 69 6c 65 73 20  |all.  the files |
00001430  63 6f 6e 74 61 69 6e 65  64 20 69 6e 20 74 68 65  |contained in the|
00001440  6d 20 64 69 73 61 70 70  65 61 72 20 66 72 6f 6d  |m disappear from|
00001450  20 74 68 65 20 64 69 72  65 63 74 6f 72 79 20 73  | the directory s|
00001460  74 72 75 63 74 75 72 65  20 62 75 74 20 6e 6f 74  |tructure but not|
00001470  0a 20 20 66 72 6f 6d 20  74 68 65 20 6d 61 70 20  |.  from the map |
00001480  28 73 65 65 20 61 62 6f  76 65 29 2e 0a 0a 0a 57  |(see above)....W|
00001490  68 61 74 20 63 61 6e 20  62 65 20 77 61 73 74 65  |hat can be waste|
000014a0  64 0a 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |d.--------------|
000014b0  2d 2d 2d 2d 0a 0a 42 65  63 61 75 73 65 20 6f 66  |----..Because of|
000014c0  20 74 68 65 20 64 69 73  63 20 73 74 72 75 63 74  | the disc struct|
000014d0  75 72 65 20 61 6e 64 20  74 68 65 20 6d 61 70 20  |ure and the map |
000014e0  6f 72 67 61 6e 69 7a 61  74 69 6f 6e 2c 20 73 6f  |organization, so|
000014f0  6d 65 20 73 70 61 63 65  20 63 61 6e 20 62 65 20  |me space can be |
00001500  0a 27 6e 61 74 75 72 61  6c 6c 79 27 20 77 61 73  |.'naturally' was|
00001510  74 65 64 2e 0a 0a 46 69  72 73 74 20 6f 66 20 61  |ted...First of a|
00001520  6c 6c 2c 20 74 68 65 20  73 65 63 74 6f 72 20 62  |ll, the sector b|
00001530  6f 75 6e 64 73 20 61 72  65 20 61 20 70 68 79 73  |ounds are a phys|
00001540  69 63 61 6c 20 6c 69 6d  69 74 20 61 6e 64 20 73  |ical limit and s|
00001550  6f 20 61 6c 6c 20 74 68  65 20 66 69 6c 65 73 0a  |o all the files.|
00001560  6d 75 73 74 20 62 65 20  27 73 65 63 74 6f 72 20  |must be 'sector |
00001570  61 6c 69 67 6e 65 64 27  2e 20 53 6f 2c 20 6f 6e  |aligned'. So, on|
00001580  20 61 20 35 31 32 20 62  79 74 65 73 20 73 65 63  | a 512 bytes sec|
00001590  74 6f 72 20 73 69 7a 65  64 20 48 44 2c 20 61 20  |tor sized HD, a |
000015a0  31 20 62 79 74 65 20 66  69 6c 65 20 0a 61 6c 77  |1 byte file .alw|
000015b0  61 79 73 20 75 73 65 73  20 28 61 74 20 6c 65 61  |ays uses (at lea|
000015c0  73 74 29 20 35 31 32 20  62 79 74 65 73 2c 20 77  |st) 512 bytes, w|
000015d0  68 69 6c 65 20 61 20 35  31 33 20 62 79 74 65 73  |hile a 513 bytes|
000015e0  20 6f 6e 65 20 75 73 65  73 20 31 30 32 34 20 62  | one uses 1024 b|
000015f0  79 74 65 73 2e 0a 0a 42  75 74 20 74 68 65 20 72  |ytes...But the r|
00001600  65 61 6c 20 77 61 73 74  65 20 6f 66 20 73 70 61  |eal waste of spa|
00001610  63 65 20 69 73 20 63 61  75 73 65 64 20 62 79 20  |ce is caused by |
00001620  74 68 65 20 6d 61 70 20  6f 72 67 61 6e 69 7a 61  |the map organiza|
00001630  74 69 6f 6e 3a 20 61 73  20 49 20 61 6c 72 65 61  |tion: as I alrea|
00001640  64 79 0a 73 61 69 64 2c  20 74 68 65 72 65 20 69  |dy.said, there i|
00001650  73 20 61 20 6d 69 6e 69  6d 75 6e 20 6c 65 6e 67  |s a minimun leng|
00001660  74 68 20 66 6f 72 20 65  61 63 68 20 6d 61 70 20  |th for each map |
00001670  62 6c 6f 63 6b 20 28 66  72 6f 6d 20 6e 6f 77 20  |block (from now |
00001680  49 20 77 69 6c 6c 20 63  6f 6e 73 69 64 65 72 0a  |I will consider.|
00001690  69 74 20 74 6f 20 62 65  20 34 4b 20 62 75 74 20  |it to be 4K but |
000016a0  6e 6f 74 65 20 74 68 61  74 20 74 68 69 73 20 69  |note that this i|
000016b0  73 20 6f 6e 6c 79 20 61  6e 20 65 78 61 6d 70 6c  |s only an exampl|
000016c0  65 29 2e 0a 0a 54 68 69  73 20 69 73 20 6e 6f 74  |e)...This is not|
000016d0  20 73 6f 20 62 61 64 20  62 65 63 61 75 73 65 20  | so bad because |
000016e0  6d 6f 72 65 20 74 68 61  6e 20 6f 6e 65 20 66 69  |more than one fi|
000016f0  6c 65 20 63 61 6e 20 73  68 61 72 65 20 69 74 2c  |le can share it,|
00001700  20 68 65 6e 63 65 20 34  2a 31 4b 20 66 69 6c 65  | hence 4*1K file|
00001710  73 0a 63 61 6e 20 66 69  6c 6c 20 75 70 20 74 68  |s.can fill up th|
00001720  65 20 73 61 6d 65 20 62  6c 6f 63 6b 20 77 61 73  |e same block was|
00001730  74 69 6e 67 20 6e 6f 20  73 70 61 63 65 2e 20 54  |ting no space. T|
00001740  68 65 20 62 61 64 20 70  6f 69 6e 74 20 69 73 20  |he bad point is |
00001750  74 68 61 74 20 6f 6e 6c  79 0a 66 69 6c 65 73 20  |that only.files |
00001760  69 6e 20 74 68 65 20 73  61 6d 65 20 64 69 72 65  |in the same dire|
00001770  63 74 6f 72 79 20 63 61  6e 20 73 68 61 72 65 20  |ctory can share |
00001780  62 6c 6f 63 6b 73 2c 20  73 6f 20 34 2a 31 4b 20  |blocks, so 4*1K |
00001790  66 69 6c 65 73 20 69 6e  20 34 20 64 69 66 66 65  |files in 4 diffe|
000017a0  72 65 6e 74 0a 64 69 72  65 63 74 6f 72 69 65 73  |rent.directories|
000017b0  20 77 69 6c 6c 20 75 73  65 20 31 36 4b 2e 0a 0a  | will use 16K...|
000017c0  41 20 64 69 72 65 63 74  6f 72 79 20 61 6c 77 61  |A directory alwa|
000017d0  79 73 20 6e 65 65 64 73  20 32 4b 20 6f 66 20 64  |ys needs 2K of d|
000017e0  69 73 63 20 73 70 61 63  65 20 74 6f 20 6b 65 65  |isc space to kee|
000017f0  70 20 69 74 73 20 64 61  74 61 2e 20 53 69 6e 63  |p its data. Sinc|
00001800  65 20 61 20 64 69 72 65  63 74 6f 72 79 0a 66 72  |e a directory.fr|
00001810  6f 6d 20 74 68 65 20 6d  61 70 20 70 6f 69 6e 74  |om the map point|
00001820  20 6f 66 20 76 69 65 77  20 69 73 20 6a 75 73 74  | of view is just|
00001830  20 61 20 66 69 6c 65 2c  20 69 74 20 77 69 6c 6c  | a file, it will|
00001840  20 73 74 69 6c 6c 20 75  73 65 20 34 4b 3a 20 66  | still use 4K: f|
00001850  6f 72 74 75 6e 61 74 65  6c 79 0a 69 74 20 63 61  |ortunately.it ca|
00001860  6e 20 73 68 61 72 65 20  74 68 65 20 72 65 6d 61  |n share the rema|
00001870  69 6e 69 6e 67 20 32 4b  20 77 69 74 68 20 66 69  |ining 2K with fi|
00001880  6c 65 73 20 63 6f 6e 74  61 69 6e 65 64 20 69 6e  |les contained in|
00001890  20 69 74 20 28 6e 6f 74  20 77 69 74 68 20 66 69  | it (not with fi|
000018a0  6c 65 73 20 66 72 6f 6d  0a 69 74 73 20 70 61 72  |les from.its par|
000018b0  65 6e 74 29 2e 20 49 66  20 61 20 64 69 72 65 63  |ent). If a direc|
000018c0  74 6f 72 79 20 63 6f 6e  74 61 69 6e 73 20 61 20  |tory contains a |
000018d0  32 4b 20 66 69 6c 65 20  6f 72 20 32 2a 31 4b 20  |2K file or 2*1K |
000018e0  66 69 6c 65 73 20 61 6c  6c 20 74 68 65 20 73 70  |files all the sp|
000018f0  61 63 65 20 69 73 0a 75  73 65 64 20 62 75 74 20  |ace is.used but |
00001900  69 66 20 69 74 20 63 6f  6e 74 61 69 6e 73 20 6f  |if it contains o|
00001910  6e 6c 79 20 66 69 6c 65  73 20 6c 6f 6e 67 65 72  |nly files longer|
00001920  20 74 68 61 6e 20 32 4b  20 74 68 65 20 73 70 61  | than 2K the spa|
00001930  63 65 20 77 69 6c 6c 20  62 65 20 77 61 73 74 65  |ce will be waste|
00001940  64 2e 0a 0a 57 61 73 74  65 64 20 73 70 61 63 65  |d...Wasted space|
00001950  20 69 73 6e 27 74 20 6c  6f 73 74 20 73 70 61 63  | isn't lost spac|
00001960  65 3a 20 69 66 20 79 6f  75 20 68 61 76 65 20 61  |e: if you have a|
00001970  6e 20 65 6d 70 74 79 20  64 69 72 65 63 74 6f 72  |n empty director|
00001980  79 20 79 6f 75 20 77 69  6c 6c 20 77 61 73 74 65  |y you will waste|
00001990  0a 32 4b 2e 20 42 75 74  20 77 68 65 6e 20 79 6f  |.2K. But when yo|
000019a0  75 20 64 65 6c 65 74 65  20 69 74 20 79 6f 75 20  |u delete it you |
000019b0  77 69 6c 6c 20 72 65 67  61 69 6e 20 74 68 65 20  |will regain the |
000019c0  77 68 6f 6c 65 20 34 4b  2c 20 6e 6f 20 6c 6f 73  |whole 4K, no los|
000019d0  73 2e 20 49 66 20 79 6f  75 20 73 61 76 65 0a 61  |s. If you save.a|
000019e0  20 31 4b 20 66 69 6c 65  20 69 6e 20 69 74 2c 20  | 1K file in it, |
000019f0  74 68 65 20 66 72 65 65  20 73 70 61 63 65 20 6f  |the free space o|
00001a00  6e 20 79 6f 75 72 20 64  69 73 63 20 77 69 6c 6c  |n your disc will|
00001a10  20 72 65 6d 61 69 6e 20  74 68 65 20 73 61 6d 65  | remain the same|
00001a20  20 61 6e 64 20 74 68 65  0a 77 61 73 74 65 64 20  | and the.wasted |
00001a30  73 70 61 63 65 20 77 69  6c 6c 20 62 65 20 6a 75  |space will be ju|
00001a40  73 74 20 31 4b 2e 0a 0a  44 75 72 69 6e 67 20 6e  |st 1K...During n|
00001a50  6f 72 6d 61 6c 20 6f 70  65 72 61 74 69 6f 6e 73  |ormal operations|
00001a60  2c 20 74 68 65 72 65 20  69 73 20 6e 6f 20 77 61  |, there is no wa|
00001a70  79 20 74 6f 20 61 76 6f  69 64 20 77 61 73 74 69  |y to avoid wasti|
00001a80  6e 67 20 73 70 61 63 65  3a 20 52 49 53 43 20 4f  |ng space: RISC O|
00001a90  53 0a 64 6f 65 73 20 61  6c 6c 20 74 68 65 20 77  |S.does all the w|
00001aa0  6f 72 6b 20 61 6e 64 20  79 6f 75 20 64 6f 6e 27  |ork and you don'|
00001ab0  74 20 68 61 76 65 20 74  6f 20 77 6f 72 72 79 20  |t have to worry |
00001ac0  61 62 6f 75 74 20 74 68  65 20 66 69 6c 65 20 61  |about the file a|
00001ad0  6c 6c 6f 63 61 74 69 6f  6e 0a 73 74 72 61 74 65  |llocation.strate|
00001ae0  67 79 2e 20 41 6e 79 77  61 79 2c 20 73 6f 6d 65  |gy. Anyway, some|
00001af0  74 69 6d 65 73 20 79 6f  75 20 63 61 6e 20 72 65  |times you can re|
00001b00  63 6f 76 65 72 20 73 6f  6d 65 20 77 61 73 74 65  |cover some waste|
00001b10  64 20 73 70 61 63 65 20  62 79 20 73 69 6d 70 6c  |d space by simpl|
00001b20  79 0a 63 6f 70 79 69 6e  67 20 61 20 66 69 6c 65  |y.copying a file|
00001b30  2c 20 64 65 6c 65 74 69  6e 67 20 74 68 65 20 6f  |, deleting the o|
00001b40  72 69 67 69 6e 61 6c 20  6f 6e 65 20 61 6e 64 20  |riginal one and |
00001b50  72 65 6e 61 6d 69 6e 67  20 74 68 65 20 6e 65 77  |renaming the new|
00001b60  20 6f 6e 65 20 61 73 20  74 68 65 20 6f 6c 64 0a  | one as the old.|
00001b70  6f 6e 65 20 28 75 73 75  61 6c 6c 79 20 69 74 20  |one (usually it |
00001b80  69 73 20 62 65 74 74 65  72 20 74 6f 20 63 6f 70  |is better to cop|
00001b90  79 20 74 68 65 20 77 68  6f 6c 65 20 63 6f 6e 74  |y the whole cont|
00001ba0  65 6e 74 20 6f 66 20 61  20 64 69 72 65 63 74 6f  |ent of a directo|
00001bb0  72 79 20 74 6f 20 61 6e  6f 74 68 65 72 0a 61 6e  |ry to another.an|
00001bc0  64 20 74 68 65 6e 20 72  65 6e 61 6d 65 20 74 68  |d then rename th|
00001bd0  65 20 77 68 6f 6c 65 20  64 69 72 65 63 74 6f 72  |e whole director|
00001be0  79 20 62 61 63 6b 29 20  62 75 74 20 64 6f 6e 27  |y back) but don'|
00001bf0  74 20 65 78 70 65 63 74  20 74 6f 6f 20 6d 75 63  |t expect too muc|
00001c00  68 20 67 61 69 6e 2e 2e  2e 0a 0a 0a 2a 43 68 65  |h gain......*Che|
00001c10  63 6b 4d 61 70 20 61 6e  64 20 2a 43 6f 6d 70 61  |ckMap and *Compa|
00001c20  63 74 0a 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |ct.-------------|
00001c30  2d 2d 2d 2d 2d 2d 2d 2d  2d 0a 0a 43 68 65 63 6b  |---------..Check|
00001c40  4d 61 70 20 70 65 72 66  6f 72 6d 73 20 71 75 69  |Map performs qui|
00001c50  74 65 20 61 20 73 69 6d  70 6c 65 20 74 61 73 6b  |te a simple task|
00001c60  3a 20 69 74 20 6a 75 73  74 20 73 63 61 6e 73 20  |: it just scans |
00001c70  74 68 65 20 64 69 72 65  63 74 6f 72 79 20 74 72  |the directory tr|
00001c80  65 65 20 61 6e 64 0a 63  68 65 63 6b 73 20 74 68  |ee and.checks th|
00001c90  61 74 20 61 6c 6c 20 74  68 65 20 66 69 6c 65 20  |at all the file |
00001ca0  6e 75 6d 62 65 72 73 20  69 6e 20 74 68 65 20 6d  |numbers in the m|
00001cb0  61 70 20 61 72 65 20 61  63 74 75 61 6c 6c 79 20  |ap are actually |
00001cc0  63 6f 6e 74 61 69 6e 65  64 20 69 6e 20 61 0a 64  |contained in a.d|
00001cd0  69 72 65 63 74 6f 72 79  2e 20 43 6f 6e 73 69 64  |irectory. Consid|
00001ce0  65 72 69 6e 67 20 74 68  61 74 20 43 68 65 63 6b  |ering that Check|
00001cf0  4d 61 70 20 73 68 6f 75  6c 64 20 62 65 20 75 73  |Map should be us|
00001d00  65 64 20 77 68 65 6e 20  73 6f 6d 65 74 68 69 6e  |ed when somethin|
00001d10  67 20 77 65 6e 74 20 77  72 6f 6e 67 2c 0a 69 74  |g went wrong,.it|
00001d20  20 73 65 65 6d 73 20 74  6f 20 62 65 20 61 20 76  | seems to be a v|
00001d30  65 72 79 20 70 6f 6f 72  6c 79 20 77 72 69 74 74  |ery poorly writt|
00001d40  65 6e 20 70 69 65 63 65  20 6f 66 20 63 6f 64 65  |en piece of code|
00001d50  3a 20 73 6f 6d 65 74 69  6d 65 73 20 69 74 20 68  |: sometimes it h|
00001d60  61 6e 67 73 20 74 68 65  0a 77 68 6f 6c 65 20 63  |angs the.whole c|
00001d70  6f 6d 70 75 74 65 72 2c  20 73 6f 6d 65 74 69 6d  |omputer, sometim|
00001d80  65 73 20 69 74 20 6a 75  73 74 20 70 72 69 6e 74  |es it just print|
00001d90  73 20 74 68 65 20 63 72  79 70 74 69 63 20 6d 65  |s the cryptic me|
00001da0  73 73 61 67 65 20 22 4d  61 70 20 69 6e 63 6f 6e  |ssage "Map incon|
00001db0  73 69 73 74 65 6e 74 0a  77 69 74 68 20 64 69 72  |sistent.with dir|
00001dc0  65 63 74 6f 72 79 20 74  72 65 65 22 20 61 6e 64  |ectory tree" and|
00001dd0  20 74 68 65 20 6f 6e 6c  79 20 61 63 74 69 6f 6e  | the only action|
00001de0  20 74 68 61 74 20 69 74  20 73 68 6f 75 6c 64 20  | that it should |
00001df0  64 6f 20 74 6f 20 66 69  78 20 74 68 65 0a 73 69  |do to fix the.si|
00001e00  74 75 61 74 69 6f 6e 20  69 73 20 74 68 65 20 73  |tuation is the s|
00001e10  77 61 70 70 69 6e 67 20  62 65 74 77 65 65 6e 20  |wapping between |
00001e20  74 68 65 20 32 20 63 6f  70 69 65 73 20 6f 66 20  |the 2 copies of |
00001e30  74 68 65 20 6d 61 70 20  28 62 75 74 20 73 65 65  |the map (but see|
00001e40  20 61 62 6f 76 65 20 74  6f 0a 75 6e 64 65 72 73  | above to.unders|
00001e50  74 61 6e 64 20 77 68 79  20 6e 6f 62 6f 64 79 20  |tand why nobody |
00001e60  68 61 73 20 6e 65 76 65  72 20 62 65 65 6e 20 61  |has never been a|
00001e70  62 6c 65 20 74 6f 20 75  73 65 20 74 68 69 73 20  |ble to use this |
00001e80  66 61 63 69 6c 69 74 79  2e 2e 2e 29 2e 0a 0a 43  |facility...)...C|
00001e90  6f 6d 70 61 63 74 20 68  61 73 20 62 65 65 6e 20  |ompact has been |
00001ea0  61 20 76 65 72 79 20 75  73 65 66 75 6c 20 63 6f  |a very useful co|
00001eb0  6d 6d 61 6e 64 20 77 68  65 6e 20 74 68 65 20 6f  |mmand when the o|
00001ec0  6e 6c 79 20 77 61 79 20  74 6f 20 66 6f 72 6d 61  |nly way to forma|
00001ed0  74 20 64 69 73 63 73 20  77 61 73 0a 44 2d 46 6f  |t discs was.D-Fo|
00001ee0  72 6d 61 74 3a 20 69 6e  20 66 61 63 74 20 77 69  |rmat: in fact wi|
00001ef0  74 68 20 45 2d 46 6f 72  6d 61 74 20 64 69 73 63  |th E-Format disc|
00001f00  73 20 69 74 20 69 73 20  61 6c 6d 6f 73 74 20 75  |s it is almost u|
00001f10  73 65 6c 65 73 73 2e 20  49 74 73 20 66 75 6e 63  |seless. Its func|
00001f20  74 69 6f 6e 20 69 73 0a  74 6f 20 63 6f 6c 6c 65  |tion is.to colle|
00001f30  63 74 20 74 6f 67 65 74  68 65 72 20 66 72 61 67  |ct together frag|
00001f40  6d 65 6e 74 65 64 20 66  69 6c 65 73 20 6f 72 20  |mented files or |
00001f50  66 72 61 67 6d 65 6e 74  65 64 20 66 72 65 65 20  |fragmented free |
00001f60  73 70 61 63 65 20 69 6e  73 69 64 65 20 7a 6f 6e  |space inside zon|
00001f70  65 73 0a 28 62 75 74 20  6e 6f 74 20 66 72 6f 6d  |es.(but not from|
00001f80  20 6f 6e 65 20 7a 6f 6e  65 20 74 6f 20 61 6e 6f  | one zone to ano|
00001f90  74 68 65 72 29 2e 20 57  69 74 68 20 45 2d 46 6f  |ther). With E-Fo|
00001fa0  72 6d 61 74 20 64 69 73  63 73 20 74 68 69 73 20  |rmat discs this |
00001fb0  6f 70 65 72 61 74 69 6f  6e 20 69 73 0a 70 65 72  |operation is.per|
00001fc0  66 6f 72 6d 65 64 20 61  75 74 6f 6d 61 74 69 63  |formed automatic|
00001fd0  61 6c 6c 79 20 77 68 65  6e 20 61 20 6e 65 77 20  |ally when a new |
00001fe0  66 69 6c 65 20 69 73 20  73 61 76 65 64 20 69 6e  |file is saved in|
00001ff0  20 74 68 61 74 20 7a 6f  6e 65 2c 20 62 75 74 20  | that zone, but |
00002000  79 6f 75 20 63 61 6e 0a  61 6e 79 77 61 79 20 75  |you can.anyway u|
00002010  73 65 20 69 74 20 27 6d  61 6e 75 61 6c 6c 79 27  |se it 'manually'|
00002020  20 74 6f 20 73 70 65 65  64 20 75 70 20 66 75 74  | to speed up fut|
00002030  75 72 65 20 73 61 76 69  6e 67 73 20 28 61 63 74  |ure savings (act|
00002040  75 61 6c 6c 79 20 74 68  65 20 73 70 65 65 64 20  |ually the speed |
00002050  67 61 69 6e 0a 69 73 20  61 6c 6d 6f 73 74 20 69  |gain.is almost i|
00002060  72 72 65 6c 65 76 61 6e  74 29 2e 20 57 69 74 68  |rrelevant). With|
00002070  20 44 2d 46 6f 72 6d 61  74 20 64 69 73 63 73 20  | D-Format discs |
00002080  74 68 65 20 27 61 75 74  6f 2d 63 6f 6d 70 61 63  |the 'auto-compac|
00002090  74 69 6f 6e 27 20 64 6f  65 73 6e 27 74 0a 65 78  |tion' doesn't.ex|
000020a0  69 73 74 20 61 6e 64 20  66 69 6c 65 73 20 63 61  |ist and files ca|
000020b0  6e 6e 6f 74 20 62 65 20  66 72 61 67 6d 65 6e 74  |nnot be fragment|
000020c0  65 64 3a 20 69 66 20 74  68 65 72 65 20 69 73 20  |ed: if there is |
000020d0  65 6e 6f 75 67 68 20 73  70 61 63 65 20 6f 6e 20  |enough space on |
000020e0  74 68 65 20 64 69 73 63  0a 66 6f 72 20 74 68 65  |the disc.for the|
000020f0  20 66 69 6c 65 20 74 68  61 74 20 68 61 73 20 74  | file that has t|
00002100  6f 20 62 65 20 73 61 76  65 64 20 62 75 74 20 74  |o be saved but t|
00002110  68 69 73 20 66 72 65 65  20 73 70 61 63 65 20 69  |his free space i|
00002120  73 20 66 72 61 67 6d 65  6e 74 65 64 20 69 6e 0a  |s fragmented in.|
00002130  73 6d 61 6c 6c 20 63 68  75 6e 6b 73 2c 20 74 68  |small chunks, th|
00002140  65 20 65 72 72 6f 72 20  22 43 6f 6d 70 61 63 74  |e error "Compact|
00002150  69 6f 6e 20 72 65 71 75  69 72 65 64 22 20 69 73  |ion required" is|
00002160  20 69 73 73 75 65 64 2e  0a 0a 0a 50 6f 73 73 69  | issued....Possi|
00002170  62 6c 65 20 51 75 65 73  74 69 6f 6e 73 0a 2d 2d  |ble Questions.--|
00002180  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00002190  0a 0a 20 31 29 20 49 73  20 2a 43 6f 6d 70 61 63  |.. 1) Is *Compac|
000021a0  74 20 75 73 65 66 75 6c  20 6f 72 20 69 74 20 69  |t useful or it i|
000021b0  73 20 64 61 6e 67 65 72  6f 75 73 3f 0a 20 32 29  |s dangerous?. 2)|
000021c0  20 43 61 6e 20 49 20 74  72 75 73 74 20 2a 43 68  | Can I trust *Ch|
000021d0  65 63 6b 4d 61 70 3f 0a  20 33 29 20 57 68 61 74  |eckMap?. 3) What|
000021e0  20 63 61 6e 20 49 20 64  6f 20 77 69 74 68 20 61  | can I do with a|
000021f0  20 62 72 6f 6b 65 6e 20  64 69 72 65 63 74 6f 72  | broken director|
00002200  79 20 6f 72 20 61 6e 20  75 6e 64 65 6c 65 74 61  |y or an undeleta|
00002210  62 6c 65 20 66 69 6c 65  3f 0a 20 34 29 20 57 68  |ble file?. 4) Wh|
00002220  61 74 20 63 61 6e 20 49  20 64 6f 20 69 66 20 2a  |at can I do if *|
00002230  43 68 65 63 6b 4d 61 70  20 64 6f 65 73 6e 27 74  |CheckMap doesn't|
00002240  20 77 6f 72 6b 20 6f 72  20 74 65 6c 6c 73 20 6d  | work or tells m|
00002250  65 20 74 68 61 74 20 74  68 65 20 6d 61 70 20 69  |e that the map i|
00002260  73 0a 20 20 20 20 69 6e  63 6f 6e 73 69 73 74 65  |s.    inconsiste|
00002270  6e 74 3f 0a 20 35 29 20  41 72 65 20 74 68 65 72  |nt?. 5) Are ther|
00002280  65 20 73 6f 6d 65 20 64  61 6e 67 65 72 6f 75 73  |e some dangerous|
00002290  20 61 63 74 69 6f 6e 73  20 74 68 61 74 20 63 61  | actions that ca|
000022a0  6e 20 6c 65 61 64 20 74  6f 20 61 20 6d 61 70 20  |n lead to a map |
000022b0  63 6f 72 72 75 70 74 69  6f 6e 3f 0a 20 36 29 20  |corruption?. 6) |
000022c0  44 6f 65 73 20 61 20 6d  61 70 20 63 6f 72 72 75  |Does a map corru|
000022d0  70 74 69 6f 6e 20 69 6d  70 6c 79 20 74 68 61 74  |ption imply that|
000022e0  20 73 6f 6d 65 20 64 61  74 61 20 6f 6e 20 74 68  | some data on th|
000022f0  65 20 64 69 73 63 20 68  61 73 20 62 65 65 6e 20  |e disc has been |
00002300  63 6f 72 72 75 70 74 65  64 0a 20 20 20 20 74 6f  |corrupted.    to|
00002310  6f 3f 0a 20 37 29 20 48  6f 77 20 63 61 6e 20 49  |o?. 7) How can I|
00002320  20 66 69 6e 64 20 69 66  20 6d 79 20 64 69 73 63  | find if my disc|
00002330  20 69 73 20 45 2d 46 6f  72 6d 61 74 3f 0a 20 38  | is E-Format?. 8|
00002340  29 20 49 73 20 74 68 65  72 65 20 73 6f 6d 65 20  |) Is there some |
00002350  70 72 6f 67 72 61 6d 20  74 68 61 74 20 63 61 6e  |program that can|
00002360  20 62 65 20 75 73 65 64  20 74 6f 20 75 6e 66 72  | be used to unfr|
00002370  61 67 6d 65 6e 74 20 74  68 65 20 64 69 73 63 3f  |agment the disc?|
00002380  0a 0a 50 6f 73 73 69 62  6c 65 20 41 6e 73 77 65  |..Possible Answe|
00002390  72 73 2e 2e 2e 0a 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |rs....----------|
000023a0  2d 2d 2d 2d 2d 2d 2d 2d  2d 0a 0a 20 31 29 20 49  |---------.. 1) I|
000023b0  73 20 2a 43 6f 6d 70 61  63 74 20 75 73 65 66 75  |s *Compact usefu|
000023c0  6c 20 6f 72 20 69 74 20  69 73 20 64 61 6e 67 65  |l or it is dange|
000023d0  72 6f 75 73 3f 0a 0a 4f  6e 20 45 2d 46 6f 72 6d  |rous?..On E-Form|
000023e0  61 74 20 64 69 73 63 73  20 2a 43 6f 6d 70 61 63  |at discs *Compac|
000023f0  74 20 69 73 6e 27 74 20  72 65 61 6c 6c 79 20 75  |t isn't really u|
00002400  73 65 66 75 6c 20 62 75  74 20 69 74 20 63 61 6e  |seful but it can|
00002410  20 62 65 20 75 73 65 64  20 73 61 66 65 6c 79 20  | be used safely |
00002420  69 66 0a 74 68 65 20 6d  61 70 20 69 73 20 67 6f  |if.the map is go|
00002430  6f 64 2e 20 49 66 20 74  68 65 20 6d 61 70 20 69  |od. If the map i|
00002440  73 20 69 6e 63 6f 6e 73  69 73 74 65 6e 74 20 49  |s inconsistent I|
00002450  20 63 61 6e 27 74 20 61  73 73 75 72 65 20 79 6f  | can't assure yo|
00002460  75 20 6f 66 20 69 74 73  0a 62 65 68 61 76 69 6f  |u of its.behavio|
00002470  75 72 20 28 69 65 2e 20  49 20 63 61 6e 27 74 20  |ur (ie. I can't |
00002480  65 78 63 6c 75 64 65 20  74 68 61 74 20 69 74 20  |exclude that it |
00002490  63 61 6e 20 63 61 75 73  65 20 77 6f 72 73 65 20  |can cause worse |
000024a0  63 6f 72 72 75 70 74 69  6f 6e 73 29 2e 20 4e 6f  |corruptions). No|
000024b0  74 65 0a 74 68 61 74 20  52 49 53 43 20 4f 53 20  |te.that RISC OS |
000024c0  63 61 6e 20 61 75 74 6f  6d 61 74 69 63 61 6c 6c  |can automaticall|
000024d0  79 20 72 75 6e 20 61 20  27 73 75 62 73 65 74 27  |y run a 'subset'|
000024e0  20 6f 66 20 43 6f 6d 70  61 63 74 20 77 68 65 6e  | of Compact when|
000024f0  20 69 74 20 68 61 73 20  74 6f 20 73 61 76 65 0a  | it has to save.|
00002500  61 20 66 69 6c 65 20 28  65 73 70 65 63 69 61 6c  |a file (especial|
00002510  6c 79 20 69 66 20 74 68  65 20 66 69 6c 65 20 69  |ly if the file i|
00002520  73 20 6c 61 72 67 65 20  61 6e 64 20 74 68 65 20  |s large and the |
00002530  66 72 65 65 20 73 70 61  63 65 20 69 73 20 6c 69  |free space is li|
00002540  6d 69 74 65 64 20 61 6e  64 0a 66 72 61 67 6d 65  |mited and.fragme|
00002550  6e 74 65 64 29 2e 0a 0a  20 32 29 20 43 61 6e 20  |nted)... 2) Can |
00002560  49 20 74 72 75 73 74 20  2a 43 68 65 63 6b 4d 61  |I trust *CheckMa|
00002570  70 3f 0a 0a 49 20 68 61  76 65 20 74 6f 20 61 64  |p?..I have to ad|
00002580  6d 69 74 20 74 68 61 74  20 43 68 65 63 6b 4d 61  |mit that CheckMa|
00002590  70 20 69 73 6e 27 74 20  61 20 76 65 72 79 20 77  |p isn't a very w|
000025a0  65 6c 6c 20 77 72 69 74  74 65 6e 20 63 6f 6d 6d  |ell written comm|
000025b0  61 6e 64 20 62 75 74 20  69 66 20 69 74 20 73 61  |and but if it sa|
000025c0  79 73 0a 74 68 61 74 20  74 68 65 20 6d 61 70 20  |ys.that the map |
000025d0  69 73 20 67 6f 6f 64 2c  20 74 68 65 20 6d 61 70  |is good, the map|
000025e0  20 49 53 20 67 6f 6f 64  20 61 6e 64 20 79 6f 75  | IS good and you|
000025f0  20 68 61 76 65 20 6e 6f  20 6c 6f 73 74 20 73 70  | have no lost sp|
00002600  61 63 65 20 6f 6e 20 79  6f 75 72 20 64 69 73 63  |ace on your disc|
00002610  2e 0a 49 66 20 69 74 20  63 72 61 73 68 65 73 20  |..If it crashes |
00002620  74 68 65 20 63 6f 6d 70  75 74 65 72 20 6f 72 20  |the computer or |
00002630  69 66 20 69 74 20 73 61  79 73 20 22 4d 61 70 20  |if it says "Map |
00002640  69 6e 63 6f 6e 73 69 73  74 65 6e 74 20 77 69 74  |inconsistent wit|
00002650  68 20 64 69 72 65 63 74  6f 72 79 0a 74 72 65 65  |h directory.tree|
00002660  22 2c 20 79 6f 75 72 20  6d 61 70 20 6f 72 20 64  |", your map or d|
00002670  69 72 65 63 74 6f 72 79  20 73 74 72 75 63 74 75  |irectory structu|
00002680  72 65 20 49 53 20 64 61  6d 61 67 65 64 20 61 6e  |re IS damaged an|
00002690  64 20 74 68 65 20 64 61  6d 61 67 65 20 63 61 6e  |d the damage can|
000026a0  20 77 6f 72 73 65 6e 20  69 66 0a 6e 6f 74 20 63  | worsen if.not c|
000026b0  75 72 65 64 20 73 6f 6f  6e 2e 0a 0a 20 33 29 20  |ured soon... 3) |
000026c0  57 68 61 74 20 63 61 6e  20 49 20 64 6f 20 77 69  |What can I do wi|
000026d0  74 68 20 61 20 62 72 6f  6b 65 6e 20 64 69 72 65  |th a broken dire|
000026e0  63 74 6f 72 79 20 6f 72  20 61 6e 20 75 6e 64 65  |ctory or an unde|
000026f0  6c 65 74 61 62 6c 65 20  66 69 6c 65 3f 0a 0a 41  |letable file?..A|
00002700  20 62 72 6f 6b 65 6e 20  64 69 72 65 63 74 6f 72  | broken director|
00002710  79 20 63 61 6e 6e 6f 74  20 62 65 20 64 65 6c 65  |y cannot be dele|
00002720  74 65 64 20 75 73 69 6e  67 20 73 74 61 6e 64 61  |ted using standa|
00002730  72 64 20 4f 53 20 63 6f  6d 6d 61 6e 64 73 20 61  |rd OS commands a|
00002740  6e 64 20 69 74 20 63 61  6e 0a 6a 75 73 74 20 62  |nd it can.just b|
00002750  65 20 63 6f 6e 73 69 64  65 72 65 64 20 61 73 20  |e considered as |
00002760  61 20 27 6e 6f 72 6d 61  6c 27 20 75 6e 64 65 6c  |a 'normal' undel|
00002770  65 74 61 62 6c 65 20 66  69 6c 65 2e 20 54 6f 20  |etable file. To |
00002780  72 65 6d 6f 76 65 20 69  74 20 79 6f 75 20 6d 75  |remove it you mu|
00002790  73 74 20 75 73 65 0a 73  6f 6d 65 20 64 69 72 65  |st use.some dire|
000027a0  63 74 6f 72 79 20 6d 61  6e 69 70 75 6c 61 74 69  |ctory manipulati|
000027b0  6f 6e 20 70 72 6f 67 72  61 6d 20 28 6c 69 6b 65  |on program (like|
000027c0  20 4c 6f 6f 6b 20 53 79  73 74 65 6d 27 73 20 44  | Look System's D|
000027d0  69 73 63 20 44 6f 63 74  6f 72 3f 29 20 6f 72 20  |isc Doctor?) or |
000027e0  74 68 65 0a 73 68 61 72  65 77 61 72 65 20 70 72  |the.shareware pr|
000027f0  6f 67 72 61 6d 73 20 27  65 6c 69 6d 69 6e 61 74  |ograms 'eliminat|
00002800  65 27 20 28 64 69 73 74  72 69 62 75 74 65 64 20  |e' (distributed |
00002810  77 69 74 68 20 27 66 73  63 6b 27 29 20 6f 72 20  |with 'fsck') or |
00002820  27 46 53 43 4b b3 27 2e  0a 0a 20 34 29 20 57 68  |'FSCK.'... 4) Wh|
00002830  61 74 20 63 61 6e 20 49  20 64 6f 20 69 66 20 2a  |at can I do if *|
00002840  43 68 65 63 6b 4d 61 70  20 64 6f 65 73 6e 27 74  |CheckMap doesn't|
00002850  20 77 6f 72 6b 20 6f 72  20 74 65 6c 6c 73 20 6d  | work or tells m|
00002860  65 20 74 68 61 74 20 74  68 65 20 6d 61 70 20 69  |e that the map i|
00002870  73 0a 20 20 20 20 69 6e  63 6f 6e 73 69 73 74 65  |s.    inconsiste|
00002880  6e 74 3f 0a 0a 41 70 70  61 72 65 6e 74 6c 79 20  |nt?..Apparently |
00002890  74 68 65 20 6f 6e 6c 79  20 74 68 69 6e 67 20 79  |the only thing y|
000028a0  6f 75 20 63 61 6e 20 64  6f 20 69 73 20 74 6f 20  |ou can do is to |
000028b0  74 72 79 20 74 68 65 20  73 68 61 72 65 77 61 72  |try the sharewar|
000028c0  65 20 70 72 6f 67 72 61  6d 20 27 66 73 63 6b 27  |e program 'fsck'|
000028d0  0a 28 6f 72 20 74 68 65  20 6e 65 77 20 27 46 53  |.(or the new 'FS|
000028e0  43 4b b3 27 29 20 74 68  61 74 20 70 65 72 66 6f  |CK.') that perfo|
000028f0  72 6d 73 20 74 68 65 20  73 61 6d 65 20 74 61 73  |rms the same tas|
00002900  6b 20 61 73 20 2a 43 68  65 63 6b 4d 61 70 20 62  |k as *CheckMap b|
00002910  75 74 20 61 6c 73 6f 20  74 72 69 65 73 0a 74 6f  |ut also tries.to|
00002920  20 66 69 78 20 74 68 65  20 64 61 6d 61 67 65 2e  | fix the damage.|
00002930  0a 0a 20 35 29 20 41 72  65 20 74 68 65 72 65 20  |.. 5) Are there |
00002940  73 6f 6d 65 20 64 61 6e  67 65 72 6f 75 73 20 61  |some dangerous a|
00002950  63 74 69 6f 6e 73 20 74  68 61 74 20 63 61 6e 20  |ctions that can |
00002960  6c 65 61 64 20 74 6f 20  61 20 6d 61 70 20 63 6f  |lead to a map co|
00002970  72 72 75 70 74 69 6f 6e  3f 0a 0a 49 20 61 6d 20  |rruption?..I am |
00002980  6e 6f 74 20 74 68 65 20  6f 6e 6c 79 20 70 65 72  |not the only per|
00002990  73 6f 6e 20 77 68 6f 20  74 68 69 6e 6b 73 20 74  |son who thinks t|
000029a0  68 61 74 20 68 61 76 69  6e 67 20 61 20 6e 65 61  |hat having a nea|
000029b0  72 6c 79 20 66 75 6c 6c  20 48 44 20 28 73 61 79  |rly full HD (say|
000029c0  2c 20 6c 65 73 73 0a 74  68 61 6e 20 31 4d 62 20  |, less.than 1Mb |
000029d0  66 72 65 65 29 20 63 61  6e 20 62 65 20 64 61 6e  |free) can be dan|
000029e0  67 65 72 6f 75 73 2c 20  65 73 70 65 63 69 61 6c  |gerous, especial|
000029f0  6c 79 20 69 66 20 79 6f  75 20 68 61 6e 64 6c 65  |ly if you handle|
00002a00  20 76 65 72 79 20 6c 61  72 67 65 20 66 69 6c 65  | very large file|
00002a10  73 2e 0a 55 73 69 6e 67  20 62 75 67 67 65 64 20  |s..Using bugged |
00002a20  70 72 6f 67 72 61 6d 73  20 74 68 61 74 20 73 6f  |programs that so|
00002a30  6d 65 74 69 6d 65 73 20  63 61 6e 20 63 72 61 73  |metimes can cras|
00002a40  68 20 74 68 65 20 63 6f  6d 70 75 74 65 72 20 77  |h the computer w|
00002a50  68 69 6c 65 20 69 74 20  69 73 0a 77 72 69 74 69  |hile it is.writi|
00002a60  6e 67 20 74 6f 20 74 68  65 20 48 44 20 69 73 20  |ng to the HD is |
00002a70  52 45 41 4c 4c 59 20 64  61 6e 67 65 72 6f 75 73  |REALLY dangerous|
00002a80  20 62 75 74 20 66 6f 72  74 75 6e 61 74 65 6c 79  | but fortunately|
00002a90  20 74 68 65 72 65 20 61  72 65 20 76 65 72 79 20  | there are very |
00002aa0  66 65 77 0a 70 72 6f 67  72 61 6d 73 20 6f 66 20  |few.programs of |
00002ab0  74 68 69 73 20 6b 69 6e  64 20 61 72 6f 75 6e 64  |this kind around|
00002ac0  2e 2e 2e 0a 0a 20 36 29  20 44 6f 65 73 20 61 20  |..... 6) Does a |
00002ad0  6d 61 70 20 63 6f 72 72  75 70 74 69 6f 6e 20 69  |map corruption i|
00002ae0  6d 70 6c 79 20 74 68 61  74 20 73 6f 6d 65 20 64  |mply that some d|
00002af0  61 74 61 20 6f 6e 20 74  68 65 20 64 69 73 63 20  |ata on the disc |
00002b00  68 61 73 20 62 65 65 6e  20 63 6f 72 72 75 70 74  |has been corrupt|
00002b10  65 64 0a 20 20 20 20 74  6f 6f 3f 0a 0a 47 65 6e  |ed.    too?..Gen|
00002b20  65 72 61 6c 6c 79 20 6e  6f 2e 20 46 6f 72 20 65  |erally no. For e|
00002b30  78 61 6d 70 6c 65 20 69  66 20 74 68 65 20 63 6f  |xample if the co|
00002b40  72 72 75 70 74 69 6f 6e  20 77 61 73 20 63 61 75  |rruption was cau|
00002b50  73 65 64 20 62 79 20 61  20 64 65 6c 65 74 65 20  |sed by a delete |
00002b60  6f 70 65 72 61 74 69 6f  6e 0a 74 68 61 74 20 77  |operation.that w|
00002b70  61 73 20 69 6e 74 65 72  72 75 70 74 65 64 20 61  |as interrupted a|
00002b80  66 74 65 72 20 69 74 20  72 65 6d 6f 76 65 64 20  |fter it removed |
00002b90  74 68 65 20 66 69 6c 65  20 66 72 6f 6d 20 74 68  |the file from th|
00002ba0  65 20 64 69 72 65 63 74  6f 72 79 20 62 75 74 20  |e directory but |
00002bb0  62 65 66 6f 72 65 0a 74  68 65 20 72 65 6d 6f 76  |before.the remov|
00002bc0  61 6c 20 66 72 6f 6d 20  74 68 65 20 6d 61 70 2c  |al from the map,|
00002bd0  20 74 68 65 20 6d 61 70  20 77 69 6c 6c 20 62 65  | the map will be|
00002be0  20 69 6e 63 6f 6e 73 69  73 74 65 6e 74 20 62 75  | inconsistent bu|
00002bf0  74 20 6e 6f 20 64 61 74  61 20 68 61 73 20 62 65  |t no data has be|
00002c00  65 6e 0a 6c 6f 73 74 2f  6f 76 65 72 77 72 69 74  |en.lost/overwrit|
00002c10  74 65 6e 2e 0a 4f 6e 20  74 68 65 20 6f 74 68 65  |ten..On the othe|
00002c20  72 20 68 61 6e 64 2c 20  61 20 27 42 72 6f 6b 65  |r hand, a 'Broke|
00002c30  6e 20 44 69 72 65 63 74  6f 72 79 27 20 63 61 6e  |n Directory' can|
00002c40  20 62 65 20 74 68 65 20  65 76 69 64 65 6e 74 20  | be the evident |
00002c50  73 69 67 6e 20 74 68 61  74 0a 73 6f 6d 65 74 68  |sign that.someth|
00002c60  69 6e 67 20 61 63 74 75  61 6c 6c 79 20 68 61 73  |ing actually has|
00002c70  20 62 65 65 6e 20 63 6f  72 72 75 70 74 65 64 20  | been corrupted |
00002c80  6f 6e 20 74 68 65 20 64  69 73 63 2c 20 73 6f 20  |on the disc, so |
00002c90  79 6f 75 20 63 61 6e 20  66 69 6e 64 20 74 68 61  |you can find tha|
00002ca0  74 20 73 6f 6d 65 0a 6f  74 68 65 72 20 66 69 6c  |t some.other fil|
00002cb0  65 73 20 61 72 65 20 64  61 6d 61 67 65 64 2e 20  |es are damaged. |
00002cc0  49 6e 20 66 61 63 74 2c  20 52 49 53 43 20 4f 53  |In fact, RISC OS|
00002cd0  20 63 61 6e 20 65 61 73  69 6c 79 20 6e 6f 74 69  | can easily noti|
00002ce0  63 65 20 74 68 65 20 77  72 6f 6e 67 0a 64 69 72  |ce the wrong.dir|
00002cf0  65 63 74 6f 72 79 20 68  65 61 64 65 72 2f 63 68  |ectory header/ch|
00002d00  65 63 6b 73 75 6d 20 62  75 74 20 69 74 20 63 61  |ecksum but it ca|
00002d10  6e 6e 6f 74 20 72 65 61  6c 6c 79 20 75 6e 64 65  |nnot really unde|
00002d20  72 73 74 61 6e 64 20 69  66 20 61 20 74 65 78 74  |rstand if a text|
00002d30  20 66 69 6c 65 20 68 61  73 0a 62 65 65 6e 20 63  | file has.been c|
00002d40  6f 72 72 75 70 74 65 64  21 0a 0a 20 37 29 20 48  |orrupted!.. 7) H|
00002d50  6f 77 20 63 61 6e 20 49  20 66 69 6e 64 20 69 66  |ow can I find if|
00002d60  20 6d 79 20 64 69 73 63  20 69 73 20 45 2d 46 6f  | my disc is E-Fo|
00002d70  72 6d 61 74 3f 0a 0a 59  6f 75 20 63 61 6e 20 75  |rmat?..You can u|
00002d80  73 65 20 74 68 65 20 63  6f 6d 6d 61 6e 64 20 2a  |se the command *|
00002d90  4d 61 70 2e 20 49 66 20  69 74 20 73 61 79 73 20  |Map. If it says |
00002da0  22 6e 65 77 20 6d 61 70  22 20 79 6f 75 20 68 61  |"new map" you ha|
00002db0  76 65 20 61 6e 20 45 2d  46 6f 72 6d 61 74 20 64  |ve an E-Format d|
00002dc0  69 73 63 2c 0a 6f 74 68  65 72 77 69 73 65 20 79  |isc,.otherwise y|
00002dd0  6f 75 20 68 61 76 65 20  61 6e 20 6f 6c 64 20 44  |ou have an old D|
00002de0  2d 46 6f 72 6d 61 74 20  64 69 73 63 2e 20 57 68  |-Format disc. Wh|
00002df0  65 6e 20 79 6f 75 20 75  73 65 20 2a 4d 61 70 2c  |en you use *Map,|
00002e00  20 62 65 20 73 75 72 65  20 74 6f 20 62 65 20 69  | be sure to be i|
00002e10  6e 0a 74 68 65 20 63 6f  72 72 65 63 74 20 66 69  |n.the correct fi|
00002e20  6c 65 20 73 79 73 74 65  6d 2c 20 65 76 65 6e 74  |le system, event|
00002e30  75 61 6c 6c 79 20 75 73  65 20 74 68 65 20 63 6f  |ually use the co|
00002e40  6d 6d 61 6e 64 20 22 58  58 58 58 58 3a 4d 61 70  |mmand "XXXXX:Map|
00002e50  22 20 77 68 65 72 65 20  58 58 58 58 58 0a 69 73  |" where XXXXX.is|
00002e60  20 74 68 65 20 6e 61 6d  65 20 6f 66 20 74 68 65  | the name of the|
00002e70  20 66 69 6c 65 20 73 79  73 74 65 6d 20 28 69 65  | file system (ie|
00002e80  2e 20 49 44 45 46 53 2c  20 41 44 46 53 2c 20 53  |. IDEFS, ADFS, S|
00002e90  43 53 49 2c 20 65 74 63  2e 29 2e 20 49 66 20 74  |CSI, etc.). If t|
00002ea0  68 65 20 2a 4d 61 70 0a  63 6f 6d 6d 61 6e 64 20  |he *Map.command |
00002eb0  64 6f 65 73 6e 27 74 20  65 78 69 73 74 2c 20 79  |doesn't exist, y|
00002ec0  6f 75 72 20 66 69 6c 65  20 73 79 73 74 65 6d 20  |our file system |
00002ed0  69 73 6e 27 74 20 46 69  6c 65 43 6f 72 65 20 62  |isn't FileCore b|
00002ee0  61 73 65 64 20 28 6c 69  6b 65 20 4d 65 6d 46 53  |ased (like MemFS|
00002ef0  2c 0a 41 72 63 46 53 2c  20 53 70 61 72 6b 46 53  |,.ArcFS, SparkFS|
00002f00  29 2c 20 73 6f 20 77 68  61 74 20 69 73 20 64 65  |), so what is de|
00002f10  73 63 72 69 62 65 64 20  69 6e 20 74 68 69 73 20  |scribed in this |
00002f20  66 69 6c 65 20 63 61 6e  27 74 20 62 65 20 61 70  |file can't be ap|
00002f30  70 6c 69 65 64 20 74 6f  20 69 74 2e 0a 0a 20 38  |plied to it... 8|
00002f40  29 20 49 73 20 74 68 65  72 65 20 73 6f 6d 65 20  |) Is there some |
00002f50  70 72 6f 67 72 61 6d 20  74 68 61 74 20 63 61 6e  |program that can|
00002f60  20 62 65 20 75 73 65 64  20 74 6f 20 75 6e 66 72  | be used to unfr|
00002f70  61 67 6d 65 6e 74 20 74  68 65 20 64 69 73 63 3f  |agment the disc?|
00002f80  0a 0a 4e 6f 2e 20 48 6f  77 65 76 65 72 2c 20 73  |..No. However, s|
00002f90  75 63 68 20 61 20 70 72  6f 67 72 61 6d 20 77 69  |uch a program wi|
00002fa0  6c 6c 20 6e 6f 74 20 62  65 20 63 6f 6d 70 6c 65  |ll not be comple|
00002fb0  74 65 6c 79 20 75 73 65  66 75 6c 20 73 69 6e 63  |tely useful sinc|
00002fc0  65 20 52 49 53 43 20 4f  53 0a 61 6c 72 65 61 64  |e RISC OS.alread|
00002fd0  79 20 74 72 69 65 73 20  6b 65 65 70 20 66 69 6c  |y tries keep fil|
00002fe0  65 73 20 75 6e 66 72 61  67 6d 65 6e 74 65 64 2e  |es unfragmented.|
00002ff0  20 54 68 65 20 2a 43 6f  6d 70 61 63 74 20 63 6f  | The *Compact co|
00003000  6d 6d 61 6e 64 20 63 61  6e 20 62 65 20 75 73 65  |mmand can be use|
00003010  66 75 6c 20 74 6f 0a 75  6e 66 72 61 67 6d 65 6e  |ful to.unfragmen|
00003020  74 20 74 68 65 20 66 72  65 65 20 73 70 61 63 65  |t the free space|
00003030  20 28 61 6e 64 20 73 6f  6d 65 74 69 6d 65 73 20  | (and sometimes |
00003040  74 68 65 20 66 69 6c 65  73 20 74 6f 6f 29 20 69  |the files too) i|
00003050  6e 73 69 64 65 20 61 20  7a 6f 6e 65 2e 0a 41 20  |nside a zone..A |
00003060  73 69 6d 69 6c 61 72 20  70 72 6f 67 72 61 6d 20  |similar program |
00003070  28 62 75 74 20 6d 6f 72  65 20 75 73 65 66 75 6c  |(but more useful|
00003080  29 20 73 68 6f 75 6c 64  20 62 65 20 61 62 6c 65  |) should be able|
00003090  20 74 6f 20 6d 6f 76 65  20 74 68 65 20 6d 6f 73  | to move the mos|
000030a0  74 20 75 73 65 64 0a 66  69 6c 65 73 20 28 62 75  |t used.files (bu|
000030b0  74 20 6f 6e 6c 79 20 74  68 65 20 6f 6e 65 73 20  |t only the ones |
000030c0  74 68 61 74 20 61 72 65  20 6e 6f 74 20 63 6f 6e  |that are not con|
000030d0  74 69 6e 75 61 6c 6c 79  20 75 70 64 61 74 65 64  |tinually updated|
000030e0  29 20 6e 65 61 72 20 74  68 65 20 6d 69 64 64 6c  |) near the middl|
000030f0  65 0a 6f 66 20 74 68 65  20 64 69 73 63 20 28 69  |e.of the disc (i|
00003100  65 2e 20 6e 65 61 72 20  74 68 65 20 72 6f 6f 74  |e. near the root|
00003110  20 64 69 72 65 63 74 6f  72 79 29 20 62 75 74 20  | directory) but |
00003120  74 68 69 73 20 77 69 6c  6c 20 72 65 71 75 69 72  |this will requir|
00003130  65 20 61 20 6c 6f 74 20  6f 66 0a 74 69 6d 65 2c  |e a lot of.time,|
00003140  20 69 73 20 67 65 6e 65  72 61 6c 6c 79 20 64 61  | is generally da|
00003150  6e 67 65 72 6f 75 73 20  61 6e 64 20 77 69 6c 6c  |ngerous and will|
00003160  20 6e 6f 74 20 70 72 6f  76 69 64 65 20 28 70 72  | not provide (pr|
00003170  6f 62 61 62 6c 79 29 20  61 20 67 72 65 61 74 0a  |obably) a great.|
00003180  69 6d 70 72 6f 76 65 6d  65 6e 74 20 69 6e 20 64  |improvement in d|
00003190  69 73 63 20 61 63 63 65  73 73 20 74 69 6d 65 2e  |isc access time.|
000031a0  0a 0a 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |..--------------|
000031b0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
000031f0  0a 49 27 64 20 6c 69 6b  65 20 74 6f 20 74 68 61  |.I'd like to tha|
00003200  6e 6b 20 61 6c 6c 20 74  68 65 20 70 65 6f 70 6c  |nk all the peopl|
00003210  65 20 77 68 6f 20 63 6f  6e 74 72 69 62 75 74 65  |e who contribute|
00003220  64 20 74 6f 20 70 72 6f  64 75 63 65 20 61 20 27  |d to produce a '|
00003230  77 6f 72 6b 69 6e 67 27  0a 76 65 72 73 69 6f 6e  |working'.version|
00003240  20 6f 66 20 74 68 69 73  20 64 6f 63 75 6d 65 6e  | of this documen|
00003250  74 2e 0a 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |t..-------------|
00003260  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
000032a0  2d 0a 0a 49 66 20 79 6f  75 20 68 61 76 65 20 61  |-..If you have a|
000032b0  6e 79 20 6f 74 68 65 72  20 71 75 65 73 74 69 6f  |ny other questio|
000032c0  6e 20 72 65 6c 61 74 65  64 20 74 6f 20 48 44 20  |n related to HD |
000032d0  6d 61 70 2c 20 73 74 72  75 63 74 75 72 65 2c 20  |map, structure, |
000032e0  64 69 72 65 63 74 6f 72  69 65 73 2c 0a 65 74 63  |directories,.etc|
000032f0  2e 20 79 6f 75 20 63 61  6e 20 63 6f 6e 74 61 63  |. you can contac|
00003300  74 20 6d 65 20 6f 72 20  70 6f 73 74 20 74 6f 20  |t me or post to |
00003310  63 6f 6d 70 2e 73 79 73  2e 61 63 6f 72 6e 2e 2a  |comp.sys.acorn.*|
00003320  2e 20 41 6e 79 20 69 6e  74 65 72 65 73 74 69 6e  |. Any interestin|
00003330  67 20 71 75 65 73 74 69  6f 6e 0a 77 69 6c 6c 20  |g question.will |
00003340  62 65 20 61 64 64 65 64  20 74 6f 20 74 68 65 20  |be added to the |
00003350  22 50 6f 73 73 69 62 6c  65 20 71 75 65 73 74 69  |"Possible questi|
00003360  6f 6e 73 22 2e 0a 4e 6f  74 65 20 74 68 61 74 20  |ons"..Note that |
00003370  49 20 63 61 6e 20 62 65  20 77 72 6f 6e 67 2c 20  |I can be wrong, |
00003380  69 6e 65 78 61 63 74 20  61 6e 64 20 76 61 67 75  |inexact and vagu|
00003390  65 2c 20 73 6f 20 61 6e  79 20 63 6f 72 72 65 63  |e, so any correc|
000033a0  74 69 6f 6e 20 69 73 20  77 65 6c 63 6f 6d 65 2e  |tion is welcome.|
000033b0  0a 49 66 20 79 6f 75 20  74 68 69 6e 6b 20 74 68  |.If you think th|
000033c0  61 74 20 74 68 69 73 20  66 69 6c 65 20 69 73 20  |at this file is |
000033d0  75 73 65 6c 65 73 73 20  69 67 6e 6f 72 65 20 69  |useless ignore i|
000033e0  74 2c 20 69 66 20 79 6f  75 20 74 68 69 6e 6b 20  |t, if you think |
000033f0  69 74 20 69 73 20 62 61  64 6c 79 0a 77 72 69 74  |it is badly.writ|
00003400  74 65 6e 2c 20 76 61 67  75 65 2c 20 65 74 63 2e  |ten, vague, etc.|
00003410  20 70 6c 65 61 73 65 20  63 6f 6e 74 61 63 74 20  | please contact |
00003420  6d 65 2c 20 70 6f 73 73  69 62 6c 79 20 77 69 74  |me, possibly wit|
00003430  68 20 73 6f 6d 65 20 61  6d 65 6e 64 6d 65 6e 74  |h some amendment|
00003440  2e 0a 0a 0a 41 6e 20 48  54 4d 4c 20 76 65 72 73  |....An HTML vers|
00003450  69 6f 6e 20 6f 66 20 74  68 69 73 20 64 6f 63 75  |ion of this docu|
00003460  6d 65 6e 74 20 69 73 20  61 76 61 69 6c 61 62 6c  |ment is availabl|
00003470  65 20 61 74 3a 0a 68 74  74 70 3a 2f 2f 63 64 63  |e at:.http://cdc|
00003480  38 67 35 2e 63 64 63 2e  70 6f 6c 69 6d 69 2e 69  |8g5.cdc.polimi.i|
00003490  74 2f 7e 70 65 6c 30 30  31 35 2f 4d 61 70 45 78  |t/~pel0015/MapEx|
000034a0  70 6c 2e 68 74 6d 6c 0a  0a 0a 49 20 63 61 6e 20  |pl.html...I can |
000034b0  62 65 20 63 6f 6e 74 61  63 74 65 64 20 61 74 20  |be contacted at |
000034c0  74 68 65 20 66 6f 6c 6c  6f 77 69 6e 67 20 61 64  |the following ad|
000034d0  64 72 65 73 73 3a 0a 70  65 6c 30 30 31 35 40 63  |dress:.pel0015@c|
000034e0  64 63 38 67 35 2e 63 64  63 2e 70 6f 6c 69 6d 69  |dc8g5.cdc.polimi|
000034f0  2e 69 74 0a 49 66 20 79  6f 75 20 64 6f 6e 27 74  |.it.If you don't|
00003500  20 72 65 63 65 69 76 65  20 61 20 72 65 70 6c 79  | receive a reply|
00003510  20 28 6f 72 20 69 66 20  74 68 65 20 6d 65 73 73  | (or if the mess|
00003520  61 67 65 20 69 73 20 62  6f 75 6e 63 65 64 29 20  |age is bounced) |
00003530  49 20 63 61 6e 20 61 6c  73 6f 20 62 65 0a 63 6f  |I can also be.co|
00003540  6e 74 61 63 74 65 64 20  61 74 3a 0a 73 65 72 67  |ntacted at:.serg|
00003550  69 6f 40 66 72 65 65 62  73 64 2e 66 69 72 73 74  |io@freebsd.first|
00003560  2e 67 6d 64 2e 64 65 0a  0a 57 57 57 3a 0a 68 74  |.gmd.de..WWW:.ht|
00003570  74 70 3a 2f 2f 63 64 63  38 67 35 2e 63 64 63 2e  |tp://cdc8g5.cdc.|
00003580  70 6f 6c 69 6d 69 2e 69  74 2f 7e 70 65 6c 30 30  |polimi.it/~pel00|
00003590  31 35 2f 0a                                       |15/.|
00003594