SpartaDOS X

Last updated
SpartaDOS X
SpartaDOS X logo.png
SpartaDOS X prompt.png
Command prompt (4.42-beta)
Developer ICD, Inc. (4.0-4.21)
Fine Tooned Engineering (4.22)
DLT (since 4.31)
Written in 6502 assembler
OS familySpartaDOS X
Working stateCurrent
Source model Closed source
Initial release1988;36 years ago (1988)
Latest release 4.49 / April 7, 2020;4 years ago (2020-04-07)
Latest preview 4.49g / January 9, 2022;2 years ago (2022-01-09) [1]
Available in English
Platforms Atari 8-bit family
Influenced by MS-DOS
Default
user interface
Command-line interface
License Proprietary
Official website spartados.com

SpartaDOS X (or SpartaDOS 4.0) is a disk operating system for the Atari 8-bit computers that closely resembles MS-DOS. It was developed and sold by ICD in 1987-1993, and many years later picked up by the third-party community SpartaDOS X Upgrade Project, which still maintains the software.

Contents

History

SpartaDOS X is a successor to SpartaDOS 1.0, 2.0 and 3.0 (also ICD products) and while it enjoys good level of backward compatibility with older versions, it is a completely new system, written from scratch.

SpartaDOS X 4.0 was originally developed by Michael Gustafson in 1987-89, [2] and shipped on 64k ROM cartridges by ICD, Inc. [3] up to version 4.21. The cartridge contained an additional cartridge slot on itself, so that it was possible to plug-in another cartridge, such as ICD's R-Time 8 battery-backed clock, a language cartridge (Action!, MAC/65 etc.) or a game cartridge, and use it in conjunction with the DOS.

In 1992 Atari Corporation dropped all the official support for the Atari 8-bit computers, and so did ICD shortly after that. The rights for the 8-bit ICD inventory were purchased in November 1993 by Michael Hohman, officially as Fine Tooned Engineering. FTE released a slightly updated version 4.22 on 5 November 1995, [2] and, after two or three years, disappeared together with all the items and rights it owned.

Ten years later development of SpartaDOS X was picked up by its enthusiasts, as SpartaDOS X Upgrade Project. [4] It resulted in several unofficial revisions of the software, incorporating many of the utilities written since 1992, cleaning many identified problems and including numerous improvements. As of 2020 the published versions are:

Characteristics

General

SpartaDOS X is a non-multitasking operating system intentionally modeled after and closely resembling MS-DOS in look and feel. It consists of the kernel, the system library, several types of drivers, the shell (called COMMAND.COM) and a number of utility programs. SpartaDOS X is written in 6502 machine language and fits into a 128k file-oriented ROM cartridge.

Supported storage devices

SpartaDOS X disk editor utility SpartaDOS X disk editor.png
SpartaDOS X disk editor utility

There is full support for Atari-type serial disk drives as well as for parallel hard drives, as long as they conform to Atari standards (i.e. as long as they use the "plug-and-play" Parallel Bus Interface (PBI) mechanism implemented in the ROM OS of the XL/XE computers). For those which do not, and for ramdisks and the like, up to four block-device drivers can be installed. Nonstandard hard disk interfaces are handled by specialized drivers.

The maximum number of drives (or hard disk partitions) connected at the same time is 15 as of version 4.40 (9 in earlier versions).

Kernel built-in functions

The kernel allows to open files and directories in read-only, write-only, write-append and read-write modes. It also maintains environment variables, and programs may request files to be searched through directories specified in $PATH. The variables also control some settings for the DOS as well as for programs, for example the format of date and time to be displayed (the choice is between the "European" DD-MM-YY and 24-hour clock, and "American" MM-DD-YY and 12-hour clock).

The file system drivers

Thanks to some form of virtual filesystem, practically any filesystem can be directly accessed, if an appropriate filesystem driver exists and was loaded to the memory. Up to eight such drivers can be installed at a time.

The main filesystem driver (fitting within less than 4.5 KB) can search directories (FFIRST/FNEXT), read/write files (FREAD/FWRITE), retrieve or change the current position within a file (FTELL/FSEEK), retrieve the file's length (FILELENG), delete files and directories (REMOVE/RMDIR), rename files and directories (RENAME/RENDIR), make directories (MKDIR), change attributes in files and directories (CHMOD), change current directory (CHDIR), retrieve path to current directory (GETCWD), collect information about the disk (GETDFREE), and make a binary file bootable (SETBOOT). It also maintains the queued buffer cache that can hold up to 16 sectors (8 KB) at a time.

The SpartaDOS file system

SpartaDOS X 64-column text mode SpartaDOS X 64 column mode.png
SpartaDOS X 64-column text mode

The proprietary file system format, called SpartaDOS FS (unrelated to and not compatible with MS-DOS FAT), offers full support for subdirectories, MS-DOS-like attributes (AHPS: Archived, Hidden, Protected, Subdirectory), modification date and time stamps, random access to data within a file, sparse files.

The file naming convention is 8+3 (this scheme, inherited from CP/M, is normal on Atari). The directory structure is hierarchical, there are no other than practical limits in nesting directories. A directory can contain up to 1423 entries of files and other directories.

The file system is 16-bit: a drive can contain up to 65,535 logical sectors (sector 0 does not exist on Atari disks). The logical sector size is 128 or 256 bytes in earlier versions, and 128, 256 and 512 bytes as of v. 4.40. This makes a maximum capacity of 16 MB per partition in earlier versions, and 32 MB as of v.4.40. A 4 GB per disk – by making sector clusters, up to 65,536 bytes per cluster – is theoretically possible, but not yet implemented.

The DOS library

The system library contains a binary loader supporting standard, address-dependent Atari binaries as well as SpartaDOS X address-independent ("relocatable") binary files. It also facilitates such tasks as error handling, parsing the command line, as well as managing memory, file and device resources etc. The library also contains a menu-driven disk formatter, that can be invoked at any time, not only from the DOS' Command Processor, but also from within an application program.

The entire library occupies 24 KB of the cartridge (in three banks, 8 KB each) and can be switched off as necessary to release some memory.

COMMAND.COM

The SpartaDOS X default user interface is a command-line interpreter with the same name as the one used by MS-DOS: COMMAND.COM. The SpartaDOS X COMMAND.COM program is less than 4 KB and includes roughly 45 internal commands such as DIR, CD, DEL etc. I/O redirection uses "<<" and ">>" instead of "<" and ">" of UNIX and other systems (this is because the ">" sign is the SpartaDOS native path separator).

Pseudo-pipelines are available as of SpartaDOS X version 4.42.

Batch files can contain structured conditionals such as IF ... ELSE ... FI, GOTO, GOSUB, procedures, and loops.

The environment variable $COMSPEC may point to an alternative command-line interpreter, to be loaded instead of COMMAND.COM.

Commands, utility programs and optional extensions

SpartaDOS X Menu utility SpartaDOS X menu.png
SpartaDOS X Menu utility

Additional utility, called RUNEXT, allows to associate data types with programs to be invoked automatically, when the user enters the name of the data file at the DOS prompt and hits the Return key.

A program called MENU facilitates complex file management tasks and can serve as a replacement shell. Other utilities allow to change disk names, search disks for files, undelete them, install keyboard buffer, edit system files (CONFIG.SYS and AUTOEXEC.BAT) and so on. A port of ARC provides file compression facilities.

Among the dedicated programs, which are not directly available on the cartridge and thus are not bundled with DOS itself, there are disk editors available as well as utilities to check and repair filesystem consistency.

The following commands are supported by SpartaDOS X. [5]

Configuration

At startup, a text file called CONFIG.SYS is read from the boot disk. The contents of the file decides, which memory the DOS will use to keep the bulk of its code and drivers (the choice is between the extended memory and two areas of the conventional 64K), how many files can be opened at a time, the size of the buffer cache and its location in the memory (same choices as for the DOS code), the default environment variables, and which drivers to load.

Apart from the "main" one, there can be up to 9 alternative configuration files (or 19 as of v.4.45). The choice between them is offered at startup in a form of a menu. When no CONFIG.SYS file is present, the default one is loaded from the cartridge.

The other default file that can be used for configuration is AUTOEXEC.BAT. It is a batch file that is run by the COMMAND.COM, when the COMMAND.COM is loaded for the first time.

Requirements

SpartaDOS X requires an Atari 8-bit (400, 800 or XL/XE models) computer equipped with at least 48 KB of conventional memory to run, or 64 KB to be truly usable (on a 48K machine there is too little memory left as to execute most programs). The recommended configuration, though, is at least 128 KB of RAM (64k conventional plus at least 64k extended). The DOS can use the extended memory to keep large portion of its code, buffer cache and internal structures thus releasing the conventional memory. The rest of the extended memory can be used for additional drivers or ramdisks.

Relation to other DOS-es for Atari

Unlike its predecessor, SpartaDOS 3.0, SpartaDOS X is not what is commonly referred to as a "DOS" in Atari 8-bit parlance.

The Atari 8-bit Operating System consists of two main parts: the ROM-based "OS" and bootable "DOS". The common misconception about that division is that these respective parts correspond to BIOS and DOS on an IBM PC compatible machine. In reality the "OS" is responsible for communication not only with the block devices (like PC BIOS), but also for character devices, including file-oriented ones (like PC DOS). Consequently, all the file management functions are centralized in the "OS"-part, and the "DOS"-part is only one of its subordinated device drivers, that performs on a mass-storage media (like floppy disk).

A "DOS" for Atari, then, typically consists of the aforementioned device driver (called FMS, "File Management System"), and an application program playing the role of the OS shell. This shell is typically called DUP, "Disk Utility Package". All the communication between the user programs (including the DUP) and FMS goes through the CIO ("Central Input/Output") residing in ROM.

Such a design has some shortcomings, for example, no typical DOS is able to keep more than eight files opened at a time, because this is the limit imposed by the API of the ROM-based "OS".

Now SpartaDOS X, even though it is registered in the ROM-based CIO as a device driver and (for backward compatibility) performs all typical DOS functions as requested that way, is in fact independent of the CIO. Instead, it has own "I/O centre" (known as "the kernel"), not related to the ROM-based OS, with own set of specifiers and drivers for both character devices (like CON: or COM:) and block devices.

Under SpartaDOS X programs can perform all the I/O operations through the SpartaDOS kernel bypassing the Atari OS in ROM completely. Thanks to that it was possible to break many of its limitations: e.g. there can be as many as 16 files opened at a time. This also makes SpartaDOS X (unlike, for example, its predecessor SpartaDOS 3.2, or any other DOS for Atari) an operating system, not just another device driver with some sort of a shell.

Related Research Articles

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">Atari 8-bit computers</span> Home computer series introduced in 1979

The Atari 8-bit computers, formally launched as the Atari Home Computer System, are a series of 8-bit home computers introduced by Atari, Inc. in 1979 with the Atari 400 and Atari 800. It is the first home computer architecture with coprocessors, enabling more advanced graphics and sound than most of its contemporaries. Video games are key to its software library, and the 1980 first-person space combat simulator Star Raiders is considered the platform's killer app.

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

<span class="mw-page-title-main">Atari BASIC</span> Dialect of the BASIC programming language

Atari BASIC is an interpreter for the BASIC programming language that shipped with Atari 8-bit computers. Unlike most American BASICs of the home computer era, Atari BASIC is not a derivative of Microsoft BASIC and differs in significant ways. It includes keywords for Atari-specific features and lacks support for string arrays.

<span class="mw-page-title-main">Apple ProDOS</span> Operating system on Apple II series computers

ProDOS is the name of two similar operating systems for the Apple II series of personal computers. The original ProDOS, renamed ProDOS 8 in version 1.2, is the last official operating system usable by all 8-bit Apple II series computers, and was distributed from 1983 to 1993. The other, ProDOS 16, was a stop-gap solution for the 16-bit Apple IIGS that was replaced by GS/OS within two years.

OS/8 is the primary operating system used on the Digital Equipment Corporation's PDP-8 minicomputer.

<span class="mw-page-title-main">TRSDOS</span> Operating system for Tandy TRS-80 computers

TRSDOS is the operating system for the Tandy TRS-80 line of eight-bit Zilog Z80 microcomputers that were sold through Radio Shack from 1977 through 1991. Tandy's manuals recommended that it be pronounced triss-doss. TRSDOS should not be confused with Tandy DOS, a version of MS-DOS licensed from Microsoft for Tandy's x86 line of personal computers (PCs).

The Amiga Fast File System is a file system used on the Amiga personal computer. The previous Amiga filesystem was never given a specific name and known originally simply as "DOS" or AmigaDOS. Upon the release of FFS, the original filesystem became known as Amiga Old File System (OFS). OFS, which was primarily designed for use with floppy disks, had been proving slow to keep up with hard drives of the era. FFS was designed as a full replacement for the original Amiga filesystem. FFS differs from its predecessor mainly in the removal of redundant information. Data blocks contain nothing but data, allowing the filesystem to manage the transfer of large chunks of data directly from the host adapter to the final destination.

<span class="mw-page-title-main">Atari DOS</span> Operating system

Atari DOS is the disk operating system used with the Atari 8-bit computers. Operating system extensions loaded into memory were required in order for an Atari computer to manage files stored on a disk drive. These extensions to the operating system added the disk handler and other file management features.

Optimized Systems Software (OSS) was a company that produced disk operating systems, programming languages with integrated development environments, and applications primarily for Atari 8-bit computers. The founders of OSS previously developed Atari DOS, Atari BASIC, and the Atari Assembler Editor for Atari, Inc., and many OSS products are substantially improved versions. OS A+ and DOS XL are based on Atari DOS. BASIC A+, BASIC XL, and BASIC XE are based on Atari BASIC. EASMD and MAC/65 are modeled on the Atari Assembler Editor. Action! is an ALGOL-inspired compiled programming language with an integrated full-screen editor. OSS also sold some software for the Apple II.

<span class="mw-page-title-main">DOS XL</span>

DOS XL is a discontinued Disk Operating System (DOS) written by Paul Laughton, Mark Rose, Bill Wilkinson, and Mike Peters and published by Optimized Systems Software (OSS) for the Atari 8-bit computers. It was designed to be compatible with Atari DOS which shipped with Atari, Inc.'s disk drives, which had also been written by the same team.

The following tables compare general and technical information for a number of file systems.

<span class="mw-page-title-main">Atari TOS</span> Operating system of the Atari ST range of computers

TOS is the operating system of the Atari ST range of computers. This range includes the 520ST and 1040ST, their STF/M/FM and STE variants and the Mega ST/STE. Later, 32-bit machines were developed using a new version of TOS, called MultiTOS, which allowed multitasking. More recently, users have further developed TOS into FreeMiNT.

Amiga support and maintenance software performs service functions such as formatting media for a specific filesystem, diagnosing failures that occur on formatted media, data recovery after media failure, and installation of new software for the Amiga family of personal computers—as opposed to application software, which performs business, education, and recreation functions.

<span class="mw-page-title-main">AmigaOS</span> Operating system for Amiga computers

AmigaOS is a family of proprietary native operating systems of the Amiga and AmigaOne personal computers. It was developed first by Commodore International and introduced with the launch of the first Amiga, the Amiga 1000, in 1985. Early versions of AmigaOS required the Motorola 68000 series of 16-bit and 32-bit microprocessors. Later versions were developed by Haage & Partner and then Hyperion Entertainment. A PowerPC microprocessor is required for the most recent release, AmigaOS 4.

<span class="mw-page-title-main">DOS</span> Family of IBM PC-compatible operating systems

DOS is a family of disk-based operating systems for IBM PC compatible computers. The DOS family primarily consists of IBM PC DOS and a rebranded version, Microsoft's MS-DOS, both of which were introduced in 1981. Later compatible systems from other manufacturers include DR-DOS (1988), ROM-DOS (1989), PTS-DOS (1993), and FreeDOS (1998). MS-DOS dominated the IBM PC compatible market between 1981 and 1995.

IDEDOS is a ROM-based disk operating system written in 6502/65816 assembly language for the Commodore 64, 128 and SuperCPU. Its main purpose is to control ATA(PI) devices connected to an IDE64 cartridge and present them like normal Commodore drives. Additionally it supports networked drives (PCLink) and has a built-in machine code monitor and file manager.

The IBM Personal Computer Basic, commonly shortened to IBM BASIC, is a programming language first released by IBM with the IBM Personal Computer, Model 5150 in 1981. IBM released four different versions of the Microsoft BASIC interpreter, licensed from Microsoft for the PC and PCjr. They are known as Cassette BASIC, Disk BASIC, Advanced BASIC (BASICA), and Cartridge BASIC. Versions of Disk BASIC and Advanced BASIC were included with IBM PC DOS up to PC DOS 4. In addition to the features of an ANSI standard BASIC, the IBM versions offered support for the graphics and sound hardware of the IBM PC line. Source code could be entered with a full-screen editor, and limited facilities were provided for rudimentary program debugging. IBM also released a version of the Microsoft BASIC compiler for the PC concurrently with the release of PC DOS 1.10 in 1982.

The FAT file system is a file system used on MS-DOS and Windows 9x family of operating systems. It continues to be used on mobile devices and embedded systems, and thus is a well suited file system for data exchange between computers and devices of almost any type and age from 1981 through the present.

References

  1. SpartaDOS X Upgrade Project page: Current beta version
  2. 1 2 Atari 8-bit FAQ http://faqs.cs.uu.nl/na-dir/atari-8-bit/faq.html
  3. ANTIC VOL. 7, NO. 11 / MARCH 1989 / PAGE 15 http://www.atarimagazines.com/v7n11/spartados.html
  4. "SpartaDOS X Upgrade Project" . Retrieved 2011-10-12.
  5. SpartaDOS X 4.48 User Guide