Atari File Management Subsystem
Dan Tobias (Talk | contribs) |
Dan Tobias (Talk | contribs) (→Boot record) |
||
Line 28: | Line 28: | ||
Sector 1 is the boot record. It has this structure: | Sector 1 is the boot record. It has this structure: | ||
− | * ''Byte 0'': 0 (representing boot flag) | + | * '''Byte 0''': 0 (representing boot flag) |
− | * ''Byte 1'': 1 (representing the number of sectors the boot record takes) | + | * '''Byte 1''': 1 (representing the number of sectors the boot record takes) |
− | * ''Byte 2-3'': Boot address (0700) | + | * '''Byte 2-3''': Boot address (0700) |
− | * ''Byte 4-5'': Init address | + | * '''Byte 4-5''': Init address |
− | * ''Byte 6'': 4B (JMP command used with address in following 2 bytes) | + | * '''Byte 6''': 4B (JMP command used with address in following 2 bytes) |
− | * ''Byte 7-8'': Boot read continuation address | + | * '''Byte 7-8''': Boot read continuation address |
− | * ''Byte 9'': Max # of files open concurrently (1-8) | + | * '''Byte 9''': Max # of files open concurrently (1-8) |
− | * ''Byte 10'': Specific drive numbers supported (bitmap where low-order bit means drive 1, next bit drive 2, and so on up to 4) | + | * '''Byte 10''': Specific drive numbers supported (bitmap where low-order bit means drive 1, next bit drive 2, and so on up to 4) |
− | * ''Byte 11'': Buffer allocation direction (set to 0) | + | * '''Byte 11''': Buffer allocation direction (set to 0) |
− | * ''Byte 12-13'': Boot image end address + 1 | + | * '''Byte 12-13''': Boot image end address + 1 |
− | * ''Byte 14'': Boot flag (must be nonzero if DOS.SYS is on disk) | + | * '''Byte 14''': Boot flag (must be nonzero if DOS.SYS is on disk) |
− | * ''Byte 15'': Sector count (not used) | + | * '''Byte 15''': Sector count (not used) |
− | * ''Byte 16-17'': DOS.SYS starting sector number | + | * '''Byte 16-17''': DOS.SYS starting sector number |
− | * ''Byte 18-127'': Code for second phase of boot | + | * '''Byte 18-127''': Code for second phase of boot |
== Links == | == Links == |
Revision as of 07:11, 18 March 2013
The Atari File Management Subsystem (FMS) is the filesystem on an Atari 810 floppy disk.
The 720 sectors of the disk were numbered from 1 to 720, but (perhaps due to poor communication between the different development teams at Atari) the FMS filesystem was designed to support sector addresses in the range from 0 to 719, which meant that sector 720 was not addressable but a nonexistent sector 0 was. This resulted in the filesystem only using the 719 sectors in the overlap between what is addressable and what actually exists, so sector 720 is unused (a waste of a perfectly good 128 bytes).
(Note to self: Is there a way to hack the system to stick hidden messages in that 720th sector?)
The bytes within a sector are numbered from 0 to 127, because at least the development teams managed to agree on zero-based numbering there.
Sector map
This filesystem is pretty narrowly tailored to the particular type of disk used by the Atari 810 drive, with various hard-coded sector positions.
- Sector 1: Boot record
- Sector 2-n: DOS.SYS file (on system disks)
- Sector n+1-359: User file space
- Sector 360: VTOC (Volume Table of Contents)
- Sector 361-368: Directory
- Sector 369-719: User file space
- Sector 720: Unused
Boot record
Sector 1 is the boot record. It has this structure:
- Byte 0: 0 (representing boot flag)
- Byte 1: 1 (representing the number of sectors the boot record takes)
- Byte 2-3: Boot address (0700)
- Byte 4-5: Init address
- Byte 6: 4B (JMP command used with address in following 2 bytes)
- Byte 7-8: Boot read continuation address
- Byte 9: Max # of files open concurrently (1-8)
- Byte 10: Specific drive numbers supported (bitmap where low-order bit means drive 1, next bit drive 2, and so on up to 4)
- Byte 11: Buffer allocation direction (set to 0)
- Byte 12-13: Boot image end address + 1
- Byte 14: Boot flag (must be nonzero if DOS.SYS is on disk)
- Byte 15: Sector count (not used)
- Byte 16-17: DOS.SYS starting sector number
- Byte 18-127: Code for second phase of boot
Links
- Atari technical manual with lots of tech details