SpartaDOS X
Encyclopedia
SpartaDOS X is a disk operating system
Disk operating system
Disk Operating System and disk operating system , most often abbreviated as DOS, refers to an operating system software used in most computers that provides the abstraction and management of secondary storage devices and the information on them...

 for the Atari 8-bit family
Atari 8-bit family
The Atari 8-bit family is a series of 8-bit home computers manufactured from 1979 to 1992. All are based on the MOS Technology 6502 CPU and were the first home computers designed with custom coprocessor chips...

 of computers that closely resembles MS-DOS
MS-DOS
MS-DOS is an operating system for x86-based personal computers. It was the most commonly used member of the DOS family of operating systems, and was the main operating system for IBM PC compatible personal computers during the 1980s to the mid 1990s, until it was gradually superseded by operating...

. It was developed and sold by ICD, Inc. in 1987-93.

History

SpartaDOS X is named after its predecessors, SpartaDOS 1.0, 2.0 and 3.0 (also ICD products), and enjoys good level of backward compatibility with the older SpartaDOS software. But it is not, contrary to what can be thought considering the name and the version number, a newer version of SpartaDOS 3.0. It was a completely new system, written from scratch.

SpartaDOS X 4.0 was originally developed by Michael Gustafson in
1987-89, and shipped on 64k ROM cartridge
ROM cartridge
A ROM cartridge, sometimes referred to as a cart, is a removable enclosure containing read-only memory devices designed to be connected to a computer or games console....

s by
ICD, Inc.
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
MAC/65
MAC/65 was an assembler produced by Optimized Systems Software for the Atari 8-bit family of microcomputers. It was a direct descendent of OSS's EASMD. Much like the Atari Assembler Editor cartridge, MAC/65 combined a line editor, assembler, and debugger into a single package. MAC/65 was notable...

 etc.) or a game cartridge, and use it in conjunction with the DOS.

In 1992 Atari Corp. dropped all the official support for their 8-bit computers, and so did ICD shortly after that. The rights for the 8-bit ICD inventory were purchased in November 1993 by some Michael Hohman, officially as Fine Tooned Engineering (FTe). FTe released a (barely) updated version 4.22 on 5 November 1995, and, after two or three years, having financial problems, disappeared together with all the items and rights it owned.

Ten years later development of SpartaDOS X, then considered abandonware
Abandonware
Abandonware are discontinued products for which no product support is available, or whose copyright ownership may be unclear for various reasons...

, was picked up by its enthusiasts, as SpartaDOS X Upgrade Project.. 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. the published versions are: 4.31 (2005), 4.39RC (2006), 4.40 (a leaked-out beta, 2006), 4.41 (Feb. 2008), 4.42 (Dec. 2008), 4.43 (Apr. 2011), 4.44 (Jun. 2011) and 4.45 (Nov. 2011).

General

SpartaDOS X is a non-multitasking operating system
Operating system
An operating system is a set of programs that manage computer hardware resources and provide common services for application software. The operating system is the most important type of system software in a computer system...

 intentionally modelled after and closely resembling MS-DOS in look and feel. It consists of the kernel, the system library, several types of drivers, the shell
Shell (computing)
A shell is a piece of software that provides an interface for users of an operating system which provides access to the services of a kernel. However, the term is also applied very loosely to applications and may include any software that is "built around" a particular component, such as web...

 (called COMMAND.COM
COMMAND.COM
COMMAND.COM is the filename of the default operating system shell for DOS operating systems and the default command line interpreter on Windows 95, Windows 98 and Windows Me...

) and a dozen of utility programs. Everything is 100% written in 6502
MOS Technology 6502
The MOS Technology 6502 is an 8-bit microprocessor that was designed by Chuck Peddle and Bill Mensch for MOS Technology in 1975. When it was introduced, it was the least expensive full-featured microprocessor on the market by a considerable margin, costing less than one-sixth the price of...

 assembler and fits into a 128k, for most part (104k) file-oriented ROM cartridge
ROM cartridge
A ROM cartridge, sometimes referred to as a cart, is a removable enclosure containing read-only memory devices designed to be connected to a computer or games console....

.

Supported storage devices

There is full support for Atari-type serial disk drives
Atari 8-bit computer peripherals
This article covers the range of peripherals available for Atari's 8-bit home computer range .All of Atari's external peripherals used the proprietary SIO port, which allowed them to be daisy chained together into a single string; a method also used in Commodore's home computers from the VIC-20...

 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)
Parallel Bus Interface (PBI)
The Parallel Bus Interface, or PBI, is a 50-pin port found on some Atari 8-bit XL computers. It provides unbuffered, direct connection to the system bus lines , running at the same speed as the 6502 CPU. The 600XL and 800XL computers, along with the unreleased 1400XL and 1450XLD had a PBI interface...

 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.

There is a new driver, MYIDE.SYS, planned to be released in the next version, that supports Mr. Atari's MYIDE Device, and a beta is available here http://www.atari8.co.uk/myide/default.html. This gives the user a complete OS and Hard Disk (flash) solution on a portable cartridge.

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

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 variable
Environment variable
Environment variables are a set of dynamic named values that can affect the way running processes will behave on a computer.They can be said in some sense to create the operating environment in which a process runs...

s, 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
Rmdir
rmdir is a command which will remove an empty directory on a Unix, DOS, OS/2 or Microsoft Windows operating system. In Unix, Linux, and MacOS, it is case sensitive, whereas DOS, OS/2 and Windows , you can type the characters in any combination of upper case and lower case letters, and rd/rmdir...

), rename files and directories (RENAME
Ren (command)
In computing, ren is a command in various DOS, OS/2 and Microsoft Windows command line interpreters such as COMMAND.COM, cmd.exe, 4DOS/4NT and Windows PowerShell. It is used to rename files and in some implementations also directories. It is analogous to the Unix mv command...

/RENDIR), make directories (MKDIR
Mkdir
The mkdir command in the Unix, DOS, OS/2 and Microsoft Windows operating systems is used to make a new directory. In DOS, OS/2 and Windows the command is often abbreviated to md.-Usage:Normal usage is as straightforward as follows:...

), change attributes in files and directories (CHMOD
Chmod
The chmod command is a Unix command that lets a user tell the system how much access it should permit to a file. It changes the file system modes of files and directories. The modes include permissions and special modes...

), 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

The proprietary file system
File system
A file system is a means to organize data expected to be retained after a program terminates by providing procedures to store, retrieve and update data, as well as manage the available space on the device which contain it. A file system organizes data in an efficient manner and is tuned to the...

 format, called SpartaDOS FS, (unrelated to and not compatible with MS-DOS FAT
File Allocation Table
File Allocation Table is a computer file system architecture now widely used on many computer systems and most memory cards, such as those used with digital cameras. FAT file systems are commonly found on floppy disks, flash memory cards, digital cameras, and many other portable devices because of...

) 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 file
Sparse file
In computer science, a sparse file is a type of computer file that attempts to use file system space more efficiently when blocks allocated to the file are mostly empty. This is achieved by writing brief information representing the empty blocks to disk instead of the actual "empty" space which...

s.

The file naming convenience is 8+3 (this scheme, inherited from CP/M
CP/M
CP/M was a mass-market operating system created for Intel 8080/85 based microcomputers by Gary Kildall of Digital Research, Inc...

, 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 65535 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
Cluster (file system)
In computer file systems, a cluster or allocation unit is the unit of disk space allocation for files and directories. To reduce the overhead of managing on-disk data structures, the filesystem does not allocate individual disk sectors, but contiguous groups of sectors, called clusters.On a disk...

, up to 65536 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.

The COMMAND.COM

In most 8-bit home computer
Home computer
Home computers were a class of microcomputers entering the market in 1977, and becoming increasingly common during the 1980s. They were marketed to consumers as affordable and accessible computers that, for the first time, were intended for the use of a single nontechnical user...

s the internal BASIC
BASIC
BASIC is a family of general-purpose, high-level programming languages whose design philosophy emphasizes ease of use - the name is an acronym from Beginner's All-purpose Symbolic Instruction Code....

 interpreter serves as the default user interface. 8-bit Ataris are an exception here, because Atari BASIC
Atari BASIC
Atari BASIC is a BASIC interpreter for the Atari 8-bit family of 6502-based home computers. The interpreter originally shipped on an 8 KB cartridge; on later XL/XE model computers it was built in, with an option to disable it, and started when the machines were booted with no other cartridges...

 is not needed to operate the computer - some models, such as 1200XL, do not contain it, and on all others its use is optional. So, every DOS for Atari contains less or more complex UI, that makes the computer usable even when no language cartridge is available.

SpartaDOS X' default user interface is a command-line interpreter similar to the MS-DOS' one, and named COMMAND.COM.

This COMMAND.COM in less than 4 KB includes around 45 internal commands
Command (computing)
In computing, a command is a directive to a computer program acting as an interpreter of some kind, in order to perform a specific task. Most commonly a command is a directive to some kind of command line interface, such as a shell....

 performing usual tasks such as DIR, CD, DEL
Del (command)
In computing, del is a command in various DOS, OS/2 and Microsoft Windows command line interpreters such as COMMAND.COM, cmd.exe, 4DOS/4NT and Windows PowerShell. It is used to delete one or more files or directories from a filesystem. It is analogous to the Unix rm command...

 etc. I/O redirection is performed in MS-DOS-like manner, the only difference being, that "<<" and ">>" character compounds are used to redirect input and output respectively instead of "<" and ">" in MS-DOS (this is so because the ">" sign is the SpartaDOS' native path separator).

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

Batch file
Batch file
In DOS, OS/2, and Microsoft Windows, batch file is the name given to a type of script file, a text file containing a series of commands to be executed by the command interpreter....

s can contain structured conditionals like IF ... ELSE ... FI, jumps (GOTO and GOSUB), procedures.

The environment variable $COMSPEC
ComSpec
ComSpec is one of the environment variables used in MS-DOS and Microsoft Windows, which normally points to the command line interpreter, which is by default command.com in MS-DOS or cmd.exe in Windows NT...

 may point to an alternative command-line interpreter, the COMMAND.COM is not loaded then.

Utility programs and optional extensions

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, closely resembling the PC utility XTree
XTree
XTree is a file manager software originally designed for use under DOS. It was published by Executive Systems and first released on 1 April 1985, and became highly popular...

, 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
Keyboard buffer
A keyboard buffer is a section of computer memory used to hold keystrokes before they are processed.Keyboard buffers have long been used in command-line processing...

, edit system files (CONFIG.SYS
CONFIG.SYS
CONFIG.SYS is the primary configuration file for the DOS, OS/2 as well as similar operating systems. It is a special file that contains setup or configuration instructions for the computer system.- Usage :...

 and AUTOEXEC.BAT
AUTOEXEC.BAT
AUTOEXEC.BAT is a system file found originally on DOS-type operating systems. It is a plain-text batch file that is located in the root directory of the boot device...

) and so on. A port of ARC
ARC (file format)
ARC is a lossless data compression and archival format by System Enhancement Associates . It was very popular during the early days of networked dial-up BBS. The file format and the program were both called ARC...

 (SEA's archiver, very popular before ZIP
ZIP (file format)
Zip is a file format used for data compression and archiving. A zip file contains one or more files that have been compressed, to reduce file size, or stored as is...

 has appeared) gives archiving facilities.

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

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. 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 really what is commonly called "DOS" on Atari.

The Atari 8-bit Operating System consists of two main parts: the ROM
Read-only memory
Read-only memory is a class of storage medium used in computers and other electronic devices. Data stored in ROM cannot be modified, or can be modified only slowly or with difficulty, so it is mainly used to distribute firmware .In its strictest sense, ROM refers only...

-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
IBM PC compatible
IBM PC compatible computers are those generally similar to the original IBM PC, XT, and AT. Such computers used to be referred to as PC clones, or IBM clones since they almost exactly duplicated all the significant features of the PC architecture, facilitated by various manufacturers' ability to...

 machine. In reality the "OS" is responsible for communication not only with the block devices (like PC BIOS
BIOS
In IBM PC compatible computers, the basic input/output system , also known as the System BIOS or ROM BIOS , is a de facto standard defining a firmware interface....

), but also for character devices, including file-oriented ones (like PC DOS
DOS
DOS, short for "Disk Operating System", is an acronym for several closely related operating systems that dominated the IBM PC compatible market between 1981 and 1995, or until about 2000 if one includes the partially DOS-based Microsoft Windows versions 95, 98, and Millennium Edition.Related...

). 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
Atari DOS
Atari DOS is the disk operating system used with the Atari 8-bit family of computers. Operating system extensions loaded into memory were required in order for an Atari computer to access a disk drive. These extensions to the operating system added the disk handler and other file management...

, 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
Operating system
An operating system is a set of programs that manage computer hardware resources and provide common services for application software. The operating system is the most important type of system software in a computer system...

, not just another device driver with some sort of a shell.

Relation to MS-DOS

SpartaDOS X is in fact unrelated to MS-DOS. It is a proprietary OS, that imitates some features of MS-DOS as the standard of the time (late 80's - although this already was a 16-bit era, many 8-bit computers were still in serious use). This is not a slavish imitation. The most visible differences are:
  • the file system format: MS-DOS cannot access SpartaDOS X disks and vice versa
  • the binary file format: although *.COM and *.EXE filename extensions are in use, these files are not MS-DOS executable
    Executable
    In computing, an executable file causes a computer "to perform indicated tasks according to encoded instructions," as opposed to a data file that must be parsed by a program to be meaningful. These instructions are traditionally machine code instructions for a physical CPU...

    s (the 6502 processor is not compatible with 8086
    Intel 8086
    The 8086 is a 16-bit microprocessor chip designed by Intel between early 1976 and mid-1978, when it was released. The 8086 gave rise to the x86 architecture of Intel's future processors...

     anyway)
  • the drive specifiers: the drives can be specified in both MS-DOS and Atari manners, i.e. either A:, B:, C: ... or D1:, D2:, D3: ... (and also 1:, 2:, 3: ...). Unlike in MS-DOS, any of these can be a floppy or hard disk.
  • the path separator
    Path (computing)
    A path, the general form of a filename or of a directory name, specifies a unique location in a file system. A path points to a file system location by following the directory tree hierarchy expressed in a string of characters in which path components, separated by a delimiting character, represent...

     and other special pathname characters: although MS-DOS-alikes '\', '..' are recognized, the SpartaDOS native ones '>', '<' are preferred. Also, SpartaDOS does not recognize '.' as the name of the current directory - one must use a semicolon (';') instead.
  • pathnames may contain wildcard character
    Wildcard character
    -Telecommunication:In telecommunications, a wildcard character is a character that may be substituted for any of a defined subset of all possible characters....

    s '?' and '*' (CD FOO*\B?R will enter the first directories that match the names)
  • slightly different set of characters is allowed in a pathname and filespec
    Filespec
    In MS-DOS and Microsoft Windows, filespec is a term meaning a filename identifier that specifies both the name and location of a single file.The filespec differs from the filename in that the filespec includes a complete specification, within a particular file system, of the file's location. Thus,...

     (e.g. the '$' sign is disallowed)
  • the I/O redirection is handled using '<<' and '>>' rather than '<' and '>'
  • commands typed at the DOS prompt must be followed by a space or comma (CD.. is not accepted, it must be CD .. or CD,..)
  • the time stamp resolution unit is 1 second (2 sec. in MS-DOS)
  • strict separation of devices
    Device file system
    In Unix-like operating systems, a device file or special file is an interface for a device driver that appears in a file system as if it were an ordinary file. There are also special device files in MS-DOS and Microsoft Windows...

    and files: even though there is the "CON:" device in the system, SpartaDOS X (unlike MS-DOS) has no problems differentiating it from a disk file named "CON", if such one exists.
The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK