AmigaDOS is the disk operating system of the AmigaOS, which includes file systems, file and directory manipulation, the command-line interface, and file redirection.

In AmigaOS 1.x, AmigaDOS is based on a TRIPOS port by MetaComCo, written in BCPL. BCPL does not use native pointers, so the more advanced functionality of the operating system was difficult to use and error-prone. The third-party AmigaDOS Resource Project (ARP, formerly the AmigaDOS Replacement Project), a project begun by Amiga developer Charlie Heath, replaced many of the BCPL utilities with smaller, more sophisticated equivalents written in C and assembler, and provided a wrapper library, arp.library. This eliminated the interfacing problems in applications by automatically performing conversions from native pointers (such as those used by C or assembler) to BCPL equivalents and vice versa for all AmigaDOS functions.

AmigaDOS

From AmigaOS 2.x onwards, AmigaDOS was rewritten in C, retaining 1.x compatibility where possible. Starting with AmigaOS 4, AmigaDOS abandoned its legacy with BCPL. Starting from AmigaOS 4.1, AmigaDOS has been extended with 64-bit file-access support.

AmigaDOS

Console

The Amiga console is a standard Amiga virtual device, normally assigned to CON: and driven by console.handler. It was developed from a primitive interface in AmigaOS 1.1, and became stable with versions 1.2 and 1.3, when it started to be known as AmigaShell and its original handler was replaced by newconsole.handler (NEWCON:).

AmigaDOS

The console has various features that were considered up to date when it was created in 1985, like command template help, redirection to null ("NIL:"), and ANSI color terminal. The new console handler – which was implemented in release 1.2 – allows many more features, such as command history, pipelines, and automatic creation of files when output is redirected. When TCP/IP stacks like AmiTCP were released in the early 1990s, the console could also receive redirection from Internet-enabled Amiga device handlers (e.g., TCP:, ).

Unlike other systems originally launched in the mid-1980s, AmigaDOS does not implement a proprietary character set; the developers chose to use the ANSI–ISO standard ISO-8859-1 (Latin 1), which includes the ASCII character set. As in Unix systems, the Amiga console accepts only linefeed ("LF") as an end-of-line ("EOL") character. The Amiga console has support for accented characters as well as for characters created by combinations of 'dead keys' on the keyboard.

Syntax of AmigaDOS commands

This is an example of typical AmigaDOS command syntax: { |style="background:transparent" | style="vertical-align:top;"| 1> Dir DF0: |- | Without entering the directory tree, this shows the content of a directory of a floppy disk and lists subdirectories as well. |- | style="vertical-align:top;"| 1> Dir SYS: ALL |- | The argument "ALL" causes the command to show the entire content of a volume or device, entering and expanding all directory trees. "SYS:" is a default name that is assigned to the boot device, regardless of its physical name. |}

Command redirection

AmigaDOS can redirect the output of a command to files, pipes, a printer, the null device, and other Amiga devices. { |style="background:transparent" | style="vertical-align:top;"| 1> Dir > SPEAK: ALL |- | Redirects the output of the "dir" command to the speech synthesis handler. The colon character ":" indicates that SPEAK: points to an AmigaDOS device. While a typical use for a device is file systems, special-purpose device names such as this are commonly used in the system. |}

Command template

AmigaDOS commands are expected to provide a standard "template" that describes the arguments they can accept. This can be used as a basic "help" feature for commands, although third-party replacement console handlers and shells, such as Bash or Zshell (ported from Unix), or KingCON often provide more verbose help for built-in commands.

On requesting the template for the command "Copy", the following output is obtained: { |style="background:transparent" | style="vertical-align:top;"| 1> Copy ? |- | |- | style="vertical-align:top;"| FROM, TO/A, ALL/S, QUIET/S |- | This string means that the user must use this command in conjunction with FROM and TO arguments, where the latter is compulsory (). The argument keywords ALL and QUIET are switches () and change the results of the command Copy (ALL causes all files in a directory to be copied, while QUIET will cause the command to generate no output). |}