Advanced Disc Filing System

Last updated
ADFS
Developer(s) Hugo Tyson, Nick Reeves (Acorn Computers)
Full nameAdvanced Disc Filing System
Introduced1983;41 years ago (1983) with Acorn MOS
Partition IDs Hugo or Nick (Directory header/footer)
Structures
Directory contentsHierarchical fixed-length tables
File allocationOne range per file plus table of free-space ranges (L), bitmap with embedded file IDs (E)
Bad blocksnone (L), [1] marked in bitmap (E)
Limits
Max volume size512 MB
Max file size512 MB
Max no. of files47 per directory (L), 77 per directory (E)
Max filename length10 characters
Allowed filename
characters
ASCII (Acorn MOS), ISO 8859-1 (RISC OS)
Features
Dates recordedModification
Date range1 January 1900 - 3 June 2248
Date resolution10 ms
Forks no
AttributesLoad address, execute address and file cycle number (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
Transparent
compression
No
Transparent
encryption
No
Data deduplication No
Other
Supported
operating systems
Acorn MOS, RISC OS

The Advanced Disc Filing System (ADFS) is a computing file system unique to the 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 (using a WD1770 floppy disc controller) and on later 32-bit systems a variant of a PC-style floppy controller. [2]

Contents

Acorn's original Disc Filing System was limited to 31 files per disk surface, 7 characters per file name and a single character for directory names, a format inherited from the earlier Atom and System 3–5 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 $ now indicated the hierarchical root of the filesystem. ^ was used to refer to the parent directory, @ the current directory, and \ was the previously visited directory.

The BBC Master Compact contained ADFS version 2.0, which provided the addition of format, verify and backup commands in ROM, but omitted support for hard discs. [3]

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 double-density format ADFS required. ADFS could however be used to support hard discs without a 1770 controller present; in development the use of hard discs was the primary goal, extension to handle floppies came later.[ citation needed ] The 1770 floppy controller was directly incorporated into the design of the Master Series and B+ models, [4] and was available as an upgrade board for the earlier Model B. [5] [6] ADFS could be added to Model B and B+ systems with an additional upgrade. [7]

The Acorn Plus 3, Acorn's official disc expansion for the Acorn Electron, was supplied with ADFS as standard, but this implementation featured various notable bugs. A file called ZYSYSHELP was "required by the system" and created during formatting. [8] :7 This was a kludge. Acorn's original ADFS implementation on the Electron was unreliable when writing to the first few tracks of a floppy disc, so this was a "fix" and simply involved writing a file full of garbage to the suspect part. The ADFS would then skip it.[ citation needed ] Disc corruption could also occur if attempting to use the *COMPACT command without disabling the blinking text cursor. [9] [note 1] Hugo Tyson, principal ADFS developer, recalls that this bug was found during late testing but not fixed in the initial ROM release in order to avoid late changes, as workarounds exist.

On the Electron, disc formatting was done via the *EFORM command instead of the established *FORM40/*FORM80 DFS commands. Note additionally that the *EFORM command differs from the equivalent *AFORM command for the 1770 ADFS on the BBC Microcomputer. This is possibly as a result of needing to create the ZYSYSHELP file on the Electron. The *EFORM command was only supplied on the Welcome disc that was shipped with the Plus3, and was not included in the ROM. [8] :48

ADFS supported hard discs, and 5¼" and 3½" floppy discs formatted up to 640 KB capacity using double density MFM encoding (L format; single-sided disks were supported with the S format (160 KB) and M format (320 KB)). ADFS as implemented in the BBC microcomputer system (and later RISC OS) never had support for single-density floppies.

Hard disc support in ADFS used the same format as L format floppies in terms of 256-byte blocks; [10] only the underlying arrangement of tracks and sectors differed depending on the actual drive used, but this was managed by the SCSI controller. It interfaced to a ST506/ST412-based Winchester unit via the BBC Micro's 1 MHz Bus, an Acorn-designed interface card (1 MHz Bus to SCSI adapter) and an off-the-shelf Adaptec SCSI controller (SCSI to ST-506 adapter).

Support for IDE/ATAPI style drives has been added 'unofficially' by third parties in recent years. [11]

The ADFS file format used the ASCII bytes Hugo to delimit the directory names on the disc, named after ADFS author Hugo Tyson.

32-bit usage (Arthur and 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-I/O controller requiring slight changes to ADFS. In addition to legacy support for the 'L'-type format, 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 800 KB 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, typically presented as three hexadecimal digits. This is similar to the 32-bit type attributes stored in Apple's HFS file system, and conceptually comparable to the more general use of MIME Types by the Be Operating System (BeOS), or magic numbers in Unix systems (though the latter is stored as part of the file, not as metadata).

RISC OS brought in E and F format for double-density discs and high-density discs/hard disc drives respectively. These formats support file fragmentation (with the so-called "new map"), storage of multiple files per fragment and storage of small files in directory tables. The allocation strategy is optimised to minimise fragmentation, and sometimes performs defragmentation as part of a file storage operation. [1] RISC OS 4 added E+/F+ format which allowed for long filenames and more than 77 files per directory.[ citation needed ] 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 filecore support [12] 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.

Related Research Articles

<span class="mw-page-title-main">Acorn Electron</span> Personal computer sold in Britain

The Acorn Electron was a lower-cost alternative to the BBC Micro educational/home computer, also developed by Acorn Computers Ltd, to provide many of the features of that more expensive machine at a price more competitive with that of the ZX Spectrum. It had 32 kilobytes of RAM, and its ROM included BBC BASIC II together with the operating system. Announced in 1982 for a possible release the same year, it was eventually introduced on 25 August 1983 priced at £199.

<span class="mw-page-title-main">Parallel ATA</span> Interface standard for the connection of storage devices

Parallel ATA (PATA), originally AT Attachment, also known as Integrated Drive Electronics (IDE), is a standard interface designed for IBM PC-compatible computers. It was first developed by Western Digital and Compaq in 1986 for compatible hard drives and CD or DVD drives. The connection is used for storage devices such as hard disk drives, floppy disk drives, optical disc drives, and tape drives in computers.

A disk operating system (DOS) is a computer operating system that resides on and can use a disk storage device, such as a floppy disk, hard disk drive, or optical disc. A disk operating system provides a file system for organizing, reading, and writing files on the storage disk, and a means for loading and running programs stored on that disk. Strictly speaking, this definition does not include any other functionality, so it does not apply to more complex OSes, such as Microsoft Windows, and is more appropriately used only for older generations of operating systems.

<span class="mw-page-title-main">SCSI</span> Set of computer and peripheral connection standards

Small Computer System Interface is a set of standards for physically connecting and transferring data between computers and peripheral devices, best known for its use with storage devices such as hard disk drives. SCSI was introduced in the 1980s and has seen widespread use on servers and high-end workstations, with new SCSI standards being published as recently as SAS-4 in 2017.

<span class="mw-page-title-main">Acorn Archimedes</span> Personal computer

Acorn Archimedes is a family of personal computers designed by Acorn Computers of Cambridge, England. The systems are based on Acorn's own ARM architecture processors and the proprietary operating systems Arthur and RISC OS. The first models were introduced in 1987, and systems in the Archimedes family were sold until the mid-1990s.

<span class="mw-page-title-main">ST506/ST412</span>

The ST-506 and ST-412 were early hard disk drive products introduced by Seagate in 1980 and 1981 respectively, that later became construed as hard disk drive interfaces: the ST-506 disk interface and the ST-412 disk interface. Compared to the ST-506 precursor, the ST-412 implemented a refinement to the seek speed, and increased the drive capacity from 5 MB to 10 MB, but was otherwise highly similar.

<span class="mw-page-title-main">RISC OS</span> Computer operating system by Acorn Computers Ltd

RISC OS is a computer operating system originally designed by Acorn Computers Ltd in Cambridge, England. First released in 1987, it was designed to run on the ARM chipset, which Acorn had designed concurrently for use in its new line of Archimedes personal computers. RISC OS takes its name from the reduced instruction set computer (RISC) architecture it supports.

<span class="mw-page-title-main">Zip drive</span> Removable floppy disk storage system

The Zip drive is a removable floppy disk storage system that was announced by Iomega in 1994 and began shipping in March 1995. Considered medium-to-high-capacity at the time of its release, Zip disks were originally launched with capacities of 100 MB, then 250 MB, and finally 750 MB.

Disk formatting is the process of preparing a data storage device such as a hard disk drive, solid-state drive, floppy disk, memory card or USB flash drive for initial use. In some cases, the formatting operation may also create one or more new file systems. The first part of the formatting process that performs basic medium preparation is often referred to as "low-level formatting". Partitioning is the common term for the second part of the process, dividing the device into several sub-devices and, in some cases, writing information to the device allowing an operating system to be booted from it. The third part of the process, usually termed "high-level formatting" most often refers to the process of generating a new file system. In some operating systems all or parts of these three processes can be combined or repeated at different levels and the term "format" is understood to mean an operation in which a new disk medium is fully prepared to store files. Some formatting utilities allow distinguishing between a quick format, which does not erase all existing data and a long option that does erase all existing data.

<span class="mw-page-title-main">RISC iX</span> Discontinued Unix operating system

RISC iX is a discontinued Unix operating system designed to run on a series of workstations based on the Acorn Archimedes microcomputer. Heavily based on 4.3BSD, it was initially completed in 1988, a year after Arthur but before RISC OS. It was introduced in the ARM2-based R140 workstation in 1989, followed up by the ARM3-based R200-series workstations in 1990.

<span class="mw-page-title-main">Econet</span> Computer networking system

Econet was Acorn Computers's low-cost local area network system, intended for use by schools and small businesses. It was widely used in those areas, and was supported by a large number of different computer and server systems produced both by Acorn and by other companies.

<span class="mw-page-title-main">QEMU</span> Free virtualization and emulation software

QEMU is a free and open-source emulator. It emulates a computer's processor through dynamic binary translation and provides a set of different hardware and device models for the machine, enabling it to run a variety of guest operating systems. It can interoperate with Kernel-based Virtual Machine (KVM) to run virtual machines at near-native speed. QEMU can also do emulation for user-level processes, allowing applications compiled for one architecture to run on another.

<span class="mw-page-title-main">BBC Master</span> Microcomputer

The BBC Master is a home computer released by Acorn Computers in early 1986. It was designed and built for the British Broadcasting Corporation (BBC) and was the successor to the BBC Micro Model B. The Master 128 remained in production until 1993.

The Disc Filing System (DFS) is a computer file system developed by Acorn Computers, initially as an add-on to the Eurocard-based Acorn System 2.

Unified Emulator Format (UEF) is a container format for the compressed storage of audio tapes, ROMs, floppy discs and machine state snapshots for the 8-bit range of computers manufactured by Acorn Computers. First implemented by Thomas Harte's ElectrEm emulator and related tools, it is now supported by major emulators of Acorn machines and carried by two online archives of Acorn software numbering thousands of titles.

<span class="mw-page-title-main">Floppy-disk controller</span> Circuitry that controls reading from and writing to a computers floppy disk drive

A floppy-disk controller (FDC) is a hardware component that directs and controls reading from and writing to a computer's floppy disk drive (FDD). It has evolved from a discrete set of components on one or more circuit boards to a special-purpose integrated circuit or a component thereof. An FDC is responsible for reading data presented from the host computer and converting it to the drive's on-disk format using one of a number of encoding schemes, like FM encoding or MFM encoding, and reading those formats and returning it to its original binary values.

<span class="mw-page-title-main">Acorn MOS</span> Computer operating system

The Machine Operating System (MOS) or OS is a discontinued computer operating system (OS) used in Acorn Computers' BBC computer range. It included support for four-channel sound, graphics, file system abstraction, and digital and analogue input/output (I/O) including a daisy-chained expansion bus. The system was single-tasking, monolithic and non-reentrant.

An application directory is a grouping of software code, help files and resources that together comprise a complete software package but are presented to the user as a single object.

<span class="mw-page-title-main">Floppy disk variants</span> Types of floppy disk formats

The floppy disk is a data storage and transfer medium that was ubiquitous from the mid-1970s well into the 2000s. Besides the 3½-inch and 5¼-inch formats used in IBM PC compatible systems, or the 8-inch format that preceded them, many proprietary floppy disk formats were developed, either using a different disk design or special layout and encoding methods for the data held on the disk.

RISC OS, the computer operating system developed by Acorn Computers for their ARM-based Acorn Archimedes range, was originally released in 1987 as Arthur 0.20, and soon followed by Arthur 0.30, and Arthur 1.20. The next version, Arthur 2, became RISC OS 2 and was completed and made available in April 1989. RISC OS 3 was released with the very earliest version of the A5000 in 1991 and contained a series of new features. By 1996 RISC OS had been shipped on over 500,000 systems.

References

  1. 1 2 Reeves, Nick (26 October 1990). "E format design document" . Retrieved 24 May 2013.
  2. Advanced Disc Filing System: User Guide (PDF). Acorn Computers Limited. September 1985. Retrieved 1 August 2016.
  3. "Taking the lid off the Master Compact". Acorn User. October 1986. p. 17. Retrieved 5 September 2020.
  4. Smith, Bruce (July 1985). "B+ Grading". Acorn User. pp. 160–161. Retrieved 18 October 2020.
  5. 1770 Disc Interface (PDF). Acorn Computers Limited. Retrieved 6 March 2021.
  6. 1770 Disc Interface Upgrade Kit Fitting Instructions (PDF). Acorn Computers Limited. August 1985. Retrieved 11 March 2021.
  7. ADFS upgrade (PDF). Acorn Computers Limited. Retrieved 6 March 2021.
  8. 1 2 The Electron Plus 3 User Guide (PDF). Acorn Computers Limited. October 1984. Retrieved 6 March 2021.
  9. Waddilove, Roland (August 1988). "Improving on perfection". Electron User. Vol. 5, no. 11. p. 9. Retrieved 20 January 2021.
  10. "Acorn 8-Bit ADFS Filesystem Structure" (TXT). Mdfs.net. Retrieved 2016-08-01.
  11. "BBC IDE Interface - MDFS::Info.Comp.BBC.IDE". MDFS.net. Retrieved 2016-08-01.
  12. "Changes and NetBSD News in 1998". Netbsd.org. Retrieved 2016-08-01.

Notes

  1. This was due to the fact that the *COMPACT command used screen memory (by default) as working space during the operation, and the software-implemented blinking cursor corrupted that memory space. An alternative would be to give arguments to make it use non-screen memory for workspace, for example *COMPACT 40 20 in screen mode 6. On the BBC Micro, the blinking cursor, if enabled, was superimposed onto the display output by the 6845 CRTC and Acorn's video ULA, without changing any screen memory. The Acorn Electron did not have this extra hardware and had to alter screen memory in software to blink the cursor.