Advanced Disc Filing System
3388221
204664404
2008-04-10T10:42:42Z
Letdorf
570502
/* 32 bit usage (Arthur & RISC-OS) */ fixed link
{{infobox filesystem
|name = ADFS
|full_name = Advanced Disc Filing System
|developer = Hugo Tyson
|introduction_os = [[Acorn MOS]]
|introduction_date = 1983
|partition_id = <tt>Hugo</tt> (Directory header/footer)
|directory_struct = Hierarchical catalogues
|file_struct = Start-length entries for files and free spaces
|bad_blocks_struct = None
|max_filename_size = 10 characters
|max_files_no = 47 per directory (L), 77 per directory (E)
|max_volume_size = 512 [[mibibyte|MiB]]
|max_file_size = 512 [[mibibyte|MiB]]
|filename_character_set = [[ASCII]] (Acorn MOS), [[ISO 8859-1]] (RISC OS)
|dates_recorded = Modification
|date_range = [[1900-01-01]] - [[2248-06-03]]
|date_resolution = 10 [[1 E-3 s|ms]]
|forks_streams = no
|attributes = Load and execution addresses (Acorn MOS), File type and modification time (RISC OS); User read/write/execute-only; public read/write/execute-only; Deletion lock
|file_system_permissions = None
|compression = No
|encryption = No
|OS = [[Acorn MOS]], [[RISC OS]]
}}The '''Advanced Disc Filing System''' (ADFS) is a computing file system particular to the [[Acorn Computers Ltd|Acorn]] computer range and [[RISC OS]] based successors.
Initially based on the rare Acorn Winchester Filing System, it was renamed to the Advanced Disc Filing System when support for floppy discs was added (utilising a WD1770 Floppy Disc Controller)
and on later 32 bit systems a variant of a PC style Floppy controller.
Acorn's original [[Disc Filing System]] was rather limited in that few files could be stored on a disk, and directory and file names were restricted to 1 and 7 characters respectively. The Disc filing systems limitations were in part due to its basis on the disc firmware used in
the earlier Acorn Atom and System 3,6 [[Eurocard]] computers.
To overcome some of these restrictions Acorn developed ADFS. The most dramatic change was the introduction of a hierarchical directory structure. The filename length increased from 7 to 10 letters and the number of files in a directory expanded to 47. It retained some superficial attributes from DFS; the directory separator continued to be a dot and <code>$</code> now indicated the hierarchical root of the filesystem. <code>^</code> was used to refer to the parent directory and <code>\</code> was the previously visited directory.
=== 8 Bit usage ===
ADFS on 8-Bit systems required a WD1770 or later 1772 series floppy controller, owing to
the inability of the original Intel 8271 chip to cope with the dual density format ADFS
required. ADFS could however be used to support a hard disc without a 1770 controller present.
The relevant floppy controller (1770) was directly incorporated into the design of the Master Series
and B+ models {{Fact|date=June 2007}}, and was available as an 'upgrade' board for the earlier Model B. The Acorn Electron's floppy interface was an add-on unit, initially available through Acorn and later Pres (aka Advanced Computer Products){{Fact|date=June 2007}}
It supported hard discs, and 3½" [[floppy disc]]s formatted up to 640k capacity using double density [[Modified Frequency Modulation|MFM]] encoding (''L'' format; single-sided disks were supported with the ''S'' format (160k) and ''M'' format (320k)).
ADFS as implemented in the BBC microcomputer system (and later RISC OS) has never had support for single density floppy.
Hard disc support in ADFS used a modified format, and interfaced to a SCSI based Winchester unit
via the BBC Micro's 1 MHz Bus {{Fact|date=June 2007}}. Support for [[Advanced Technology Attachment|IDE]]/[[ATAPI]] style drives has been added 'unofficially' by third parties in recent years.{{Fact|date=June 2007}}
=== 32 bit usage (Arthur & RISC-OS) ===
On 32 bit systems, a WD 1770 or 1772 was initially used as a floppy controller on
the early machines of the range. Later models utilised a PC style multi-io controller
requiring slight changes to ADFS.
In addition to legacy support for the 'L' type format [[Arthur (operating system)|Arthur]] and later [[RISC OS]] provided enhanced formats which overcome the limitations of the BBC Micro.
Arthur added ''D'' format with 77 entries per directory as opposed to the previous 47,
also usable on hard discs and a new 800k double density floppy format. A per-file "type" attribute was added in space previously used to store Load and Execute addresses. The 12 bits of type information is used to denote the contents or intended use of a file. This is similar to the 32-bit type attributes stored in Apple's [[Hierarchical File System|HFS]] file system, and conceptually comparable to the more general use of [[MIME#Content-Type|MIME Types]] by the [[BeOS]] operating system.
RISC OS brought in ''E'' (and later ''F'') format for dual and high density discs respectively.
These formats support file fragmentation (with the so-called "new map").
RISC OS 4 added ''E+'' format which allowed for long filenames and more than 77 files per directory{{Fact|date=June 2007}}
More recent versions of RISC OS, including those for [[Iyonix]] continue to provide ADFS, and have further extended it to cope with larger hard disc sizes.
Unlike the 8 bit implementation, ADFS as implemented on RISC OS is not monolithic. A system module called "ADFS" provides no more than the block driver and user interfaces, where the "FileCore" module contains the actual file system implementation, and FileSwitch contains the VFS and high-level file-access API implementations. This allows for other hardware to use the ADFS format easily, such as IDEFS (commonly used for IDE add-on cards), SCSIFS, and the network-aware AppFS. FileCore and FileSwitch's functions are in some ways similar to the IFS and IO system managers in Windows NT.
This flexibility has allowed other filing systems to be implemented into RISC OS relatively easily.
== Support for ADFS on other platforms ==
The [[Linux]] kernel has ADFS support for ''E'' format and later.
[[NetBSD]] has [http://www.netbsd.org/changes/1998.html#filecorefs filecore support] in NetBSD 1.4 onwards.
Tools such as Omniflop (in Windows 2000 and later), and Libdsk support permit the 'physical' layout of ADFS floppies to be read on PC systems utilising an internal drive. However the logical structure remains unimplemented.
== References ==
* Watford Electronics,"The Advanced Reference Manual for the BBC Master Series",1988 (p169)
* Acorn Computers Ltd,"The BBC Microcomputer System Master Series Reference Manual Part1",Part No, 0443-001,Issue 1,March 1986 - (Pages (J.10-1 to J10-3)
==External links==
*[http://www.mdfs.net/Docs/Comp/Disk/Format/ADFS ADFS on disk layout documentation]
{{BBC Computer Literacy Project}}
[[Category:Acorn Computers]]
[[Category:Disk file systems]]
[[Category:Disk operating systems]]
[[de:Advanced Disc Filing System]]