blob: 5fb00ed07de59e2a3fdefde3c4b1f272cd0cc131 [file] [log] [blame]
Atari format support
Both mkdosfs and dosfsck now can also handle the Atari variation of
the MS-DOS filesystem format. The Atari format has some minor
differences, some caused by the different machine architecture (m68k),
some being "historic" (Atari didn't change some things that M$
Both tools automatically select Atari format if they run on an Atari.
Additionally the -A switch toggles between Atari and MS-DOS format.
I.e., on an Atari it selects plain DOS format, on any other machine it
switches to Atari format.
The differences are in detail:
- Atari TOS doesn't like cluster sizes != 2, so the usual solution
for bigger partitions was to increase the logical sector size. So
mkdosfs can handle sector sizes != 512 now, you can also manually
select it with the -S option. On filesystems larger than approx. 32
MB, the sector size is automatically increased (stead of the
cluster size) to make the filesystem fit. mkdosfs will always use 2
sectors per cluster (also with the floppy standard configurations),
except when directed otherwise on the command line.
- From the docs, all values between 0xfff8 and 0xffff in the FAT mark
an end-of-file. However, DOS usually uses 0xfff8 and Atari 0xffff.
This seems to be only an consmetic difference. At least TOS doesn't
complain about 0xffff EOF marks. Don't know what DOS thinks of
0xfff8 :-) Anyway, both tools use the EOF mark common to the
system (DOS/Atari).
- Something similar of the bad cluster marks: On Atari the FAT values
0xfff0 to 0xfff7 are used for this, under DOS only 0xfff7 (the
others can be normal cluster numbers, allowing 7 more clusters :-)
However, both systems usually mark with 0xfff7. Just dosfsck has to
interpret 0xfff0...0xfff7 differently.
- Some fields in the boot sector are interpreted differently. For
example, Atari has a disk serial number (used to aid disk change
detection) where DOS stores the system name; the 'hidden' field is
32 bit for DOS, but 16 bit for Atari, and there's no 'total_sect'
field; the 12/16 bit FAT decision is different: it's not based on
the number of clusters, but always FAT12 on floppies and FAT16 on
hard disks. mkdosfs nows about these differences and constructs the
boot sector accordingly.
- In dosfsck, the boot sector differences also have to known, to not
warn about things that are no error on Atari. In addition, most
Atari formatting tools fill the 'tracks' and 'heads' fields with 0
for hard disks, because they're meaningless on SCSI disks (Atari
has/had no IDE). Due to this, the check that they should be
non-zero is switched off.
- Under Atari TOS, some other characters are illegal in filenames:
'<', '>', '|', '"', and ':' are allowed, but all non-ASCII chars
(codes >= 128) are forbidden.
- Roman <>