bigbiff bigbiff | 9c75405 | 2013-01-09 09:09:08 -0500 | [diff] [blame] | 1 | |
| 2 | Atari format support |
| 3 | ==================== |
| 4 | |
| 5 | Both mkdosfs and dosfsck now can also handle the Atari variation of |
| 6 | the MS-DOS filesystem format. The Atari format has some minor |
| 7 | differences, some caused by the different machine architecture (m68k), |
| 8 | some being "historic" (Atari didn't change some things that M$ |
| 9 | changed). |
| 10 | |
| 11 | Both tools automatically select Atari format if they run on an Atari. |
| 12 | Additionally the -A switch toggles between Atari and MS-DOS format. |
| 13 | I.e., on an Atari it selects plain DOS format, on any other machine it |
| 14 | switches to Atari format. |
| 15 | |
| 16 | The differences are in detail: |
| 17 | |
| 18 | - Atari TOS doesn't like cluster sizes != 2, so the usual solution |
| 19 | for bigger partitions was to increase the logical sector size. So |
| 20 | mkdosfs can handle sector sizes != 512 now, you can also manually |
| 21 | select it with the -S option. On filesystems larger than approx. 32 |
| 22 | MB, the sector size is automatically increased (stead of the |
| 23 | cluster size) to make the filesystem fit. mkdosfs will always use 2 |
| 24 | sectors per cluster (also with the floppy standard configurations), |
| 25 | except when directed otherwise on the command line. |
| 26 | |
| 27 | - From the docs, all values between 0xfff8 and 0xffff in the FAT mark |
| 28 | an end-of-file. However, DOS usually uses 0xfff8 and Atari 0xffff. |
| 29 | This seems to be only an consmetic difference. At least TOS doesn't |
| 30 | complain about 0xffff EOF marks. Don't know what DOS thinks of |
| 31 | 0xfff8 :-) Anyway, both tools use the EOF mark common to the |
| 32 | system (DOS/Atari). |
| 33 | |
| 34 | - Something similar of the bad cluster marks: On Atari the FAT values |
| 35 | 0xfff0 to 0xfff7 are used for this, under DOS only 0xfff7 (the |
| 36 | others can be normal cluster numbers, allowing 7 more clusters :-) |
| 37 | However, both systems usually mark with 0xfff7. Just dosfsck has to |
| 38 | interpret 0xfff0...0xfff7 differently. |
| 39 | |
| 40 | - Some fields in the boot sector are interpreted differently. For |
| 41 | example, Atari has a disk serial number (used to aid disk change |
| 42 | detection) where DOS stores the system name; the 'hidden' field is |
| 43 | 32 bit for DOS, but 16 bit for Atari, and there's no 'total_sect' |
| 44 | field; the 12/16 bit FAT decision is different: it's not based on |
| 45 | the number of clusters, but always FAT12 on floppies and FAT16 on |
| 46 | hard disks. mkdosfs nows about these differences and constructs the |
| 47 | boot sector accordingly. |
| 48 | |
| 49 | - In dosfsck, the boot sector differences also have to known, to not |
| 50 | warn about things that are no error on Atari. In addition, most |
| 51 | Atari formatting tools fill the 'tracks' and 'heads' fields with 0 |
| 52 | for hard disks, because they're meaningless on SCSI disks (Atari |
| 53 | has/had no IDE). Due to this, the check that they should be |
| 54 | non-zero is switched off. |
| 55 | |
| 56 | - Under Atari TOS, some other characters are illegal in filenames: |
| 57 | '<', '>', '|', '"', and ':' are allowed, but all non-ASCII chars |
| 58 | (codes >= 128) are forbidden. |
| 59 | |
| 60 | - Roman <Roman.Hodek@informatik.uni-erlangen.de> |