- SpartaDOS X
Infobox OS
name = SpartaDOS X
caption = SpartaDOS X command prompt.
Taken from the "current" beta version.
developer =ICD, Inc. (4.0-4.21)
FTe (4.22)
DLT (4.3-4.4)
source_model = Closed source
kernel_type =
supported_platforms =Atari 8-bit family
ui =Command line interface
family = SpartaDOS X
released = 1988
latest_release_version = 4.41
latest_release_date = release date|2008|02|08
latest_test_version =
latest_test_date =
marketing_target =
programmed_in = 6502 assembler
prog_language =
language = English
updatemodel =
package_manager =
working_state = Current
license = Proprietary
website = http://sdx.atari8.infoSpartaDOS X (or SpartaDOS 4.0) is a
disk operating system for theAtari 8-bit family of computers, that closely resemblesMS-DOS . It was developed and sold byICD, 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 in1987-89 [Atari 8-bit FAQ http://www.faqs.org/faqs/atari-8-bit/faq/] , and shipped on 64k
ROM cartridge s byICD, Inc. [ANTIC VOL. 7, NO. 11 / MARCH 1989 / PAGE 15 http://www.atarimagazines.com/v7n11/spartados.html] 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'sR-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 Corp. has dropped all the official support for their 8-bit computers, and so did ICD, Inc. shortly after that. The rights for the 8-bit ICD inventory were purchased by some Michael Hohman, officially asFine Tooned Engineering (FTe). FTe released a (barely) updated version 4.22, and, after two or three years, having financial problems, has disappeared together with all the items and rights it owned.Ten years later SpartaDOS X considered
abandonware has been picked up by its enthusiasts, and developed further. These unofficial revisions, incorporating many of the utilities written since 1992, cleaning many identified problems and including numerous improvements, are: 4.31 (2005), 4.39RC (2006), 4.40 (a leaked-out beta, 2006), 4.41 (Feb. 2008).Characteristics
General
SpartaDOS X is a non-multitasking
operating 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 (calledCOMMAND.COM ) and a dozen of utility programs. Everything is 100% written in 6502 assembler and fits into a 128k, for most part (104k) file-orientedROM cartridge .The file system
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 file s.The file naming convenience 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 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, up to 65536 bytes per cluster - is theoretically possible, but not yet implemented.
Supported storage devices
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.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 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), 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 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 s the internalBASIC interpreter serves as the default user interface. 8-bit Ataris are an exception here, becauseAtari BASIC 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 performing usual tasks such as DIR, CD, DEL 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).
Batch file s can contain structured conditionals like IF ... ELSE ... FI, jumps (GOTO and GOSUB), procedures.The environment variable $COMSPEC 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 , 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, installkeyboard buffer , editsystem file s (CONFIG.SYS andAUTOEXEC.BAT ) and so on. A port of ARC (SEA's achivizer, very popular before ZIP has appeared) gives archivizing 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 offerred 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 -based "OS" and bootable "DOS". The common misconception about that division is that these respective parts correspond to BIOS and DOS on anIBM PC compatible machine. In reality the "OS" is responsible for communication not only with the block devices (like PCBIOS ), but also for character devices, including file-oriented ones (like PCDOS ). 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.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-DOSexecutable s (the 6502 processor is not compatible with 8086 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 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 containwildcard character 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 andfilespec (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,..")
* thetime stamp resolution unit is 1 second (2 sec. in MS-DOS)
* strict separation of devices 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.References
External links
* [http://trub.atari8.info/index.php?ref=sdx_upgrade_en SpartaDOS X upgrade project site]
Wikimedia Foundation. 2010.