TurboDOS explained

TurboDOS
Developer:Software 2000 Inc
Family:CP/M-like
Working State:Historic
Source Model:Closed source
Latest Release Version:1.43
Supported Platforms:Zilog Z80, Intel 8086
Kernel Type:Monolithic kernel
Ui:Command-line interface
License:Proprietary
Prog Language:Assembler

TurboDOS is a multi user CP/M like operating system for the Z80 and 8086 CPUs developed by Software 2000 Inc.

It was released around 1982 for S100 bus based systems such as the NorthStar Horizon and the Commercial Systems line of the multiprocessor systems including the CSI-50, CSI-75, SCI-100 and CSI-150.

The multiprocessor nature of TurboDOS is its most unusual feature. Unlike other operating systems of its time where networking of processors was either an afterthought, or which only support a file transfer protocol, TurboDOS was designed from the ground up as a multiprocessor operating system.

It is modular in construction, with the operating system generation based on a relocating, linking, loader program. This makes the incorporation of different hardware driver modules quite easy, particularly for bus-oriented machines, such as the IEEE-696 (S-100) bus which was commonly used for TurboDOS systems.

Architecture

TurboDOS is highly modular, consisting of more than forty separate functional modules distributed in relocatable form. These modules are "building blocks" that you can combine in various ways to produce a family of compatible operating systems. This section describes the modules in detail, and describes how to combine them in various configurations.

Possible TurboDOS configurations include:

Numerous subtle variations are possible in each of these categories.

Module hierarchy

The architecture of TurboDOS can be viewed as a three-level hierarchy. The highest level of the hierarchy is the process level. TurboDOS can support many concurrent processes at this level. The intermediate level of the hierarchy is the kernel level. The kernel supports the 93 C-functions and T-functions, and controls the sharing of computer resources such as processor time, memory, peripheral devices, and disk files. Processes make requests of the kernel through the entrypoint module OSNTRY, which decodes each C-function and T-function by number and invokes the appropriate kernel module.

The C functions include the CP/M BDOS functions and selected MP/M functions.

The lowest level of the hierarchy is the driver level, and contains all the device-dependent drivers necessary to interface TurboDOS to the particular hardware being used. Drivers must be provided for all peripherals, including console, printers, disks, communications channels, and network interface.

Drivers are also required for the real-time clock (or other periodic interrupt source), and for bank-switched memory (if applicable).

TurboDOS is designed to interface with almost any kind of peripheral hardware. It operates most efficiently with interrupt-driven, DMA-type interfaces, but can also work fine using polled and programmed-I/O devices.

TurboDOS loader

The TurboDOS loader OSLOAD.COM is a program containing an abbreviated version of the kernel and drivers. Its purpose is to load the full TurboDOS operating system from a disk file (OSSERVER.SYS) into memory at each system cold-start.

System generation

The functional modules are distributed in relocatable format (.REL) and the GEN command is a specialized linker which builds an executable version of the system.

Commands

TurboDOS has no "resident" commands. All commands are executable files. The standard commands are:

AUTOLOADSet up a series of commands to be executed automatically at each cold-start or warm-start.
BACKUPPerforms a fast copy of an entire disk onto another disk of the same type and format.
BANKIn a banked memory Z80 system, allows changing between bank-switched and non-bank-switched operation.
BATCHEnters commands into a FIFO file for processing by a dedicated batch processor in a networked system.
BOOTCopies data to and from reserved (boot) tracks on a disk.
BUFFERSInterrogates or changes the number and/or size of the disk buffers maintained by TurboDOS
CHANGEChecks disk is not in use and flushes cache prior to removing a disk.
COPYFile copy.
DATEDisplay or set system date and time.
DELETEFile delete.
DIRDisplay or print disk directory.
DOExecute a batch file.
DRIVEDisplay disk format information.
DUMPDisplay or print hexadecimal and ASCII file dump.
ERASEDIRErase entire disk directory
FIFOCreate a FIFO file.
FIXDIRDirectory clean-up utility, also used to convert between linear and hashed directory structure, (and vice versa).
FIXMAPRegenerate disk allocation map.
FORMATDisk format.
LABELSet or interrogate disk label.
LOGOFFTerminate console session.
LOGONStart console session.
MASTERAttach console to the "master" processor (server) in network system.
PRINTControl routing of print output.
PRINTERControl despooling on any selected printer.
QUEUEManually queue for de-pooled printing.
RECEIVERead and display one record from FIFO file.
RENAMERename files.
SENDWrite message to FIFO file.
SETSet or clear file attributes.
SHOWDisplay file attributes.
TYPEDisplay file contents to console or printer.
VERIFYScan disk for bad blocks and (optionally) mark them to prevent their usage.

External links