SYmbiosis Multitasking Based Operating System (SymbOS) is a
multitasking operating system for
Zilog Z80
The Z80 is an 8-bit computing, 8-bit microprocessor introduced by Zilog as the startup company's first product. The Z80 was conceived by Federico Faggin in late 1974 and developed by him and his 11 employees starting in early 1975. The first wor ...
-based
8-bit computer
In computer architecture, 8-bit integers or other data units are those that are 8 bits wide (1 octet). Also, 8-bit central processing unit (CPU) and arithmetic logic unit (ALU) architectures are those that are based on registers or data buses o ...
systems.
Contrary to early 8-bit operating systems it is based on a
microkernel
In computer science, a microkernel (often abbreviated as μ-kernel) is the near-minimum amount of software that can provide the mechanisms needed to implement an operating system (OS). These mechanisms include low-level address space management, ...
, which provides
preemptive and priority-oriented multitasking and manages
random-access memory
Random-access memory (RAM; ) is a form of computer memory that can be read and changed in any order, typically used to store working data and machine code. A random-access memory device allows data items to be read or written in almost t ...
(RAM) with a size of up to 1024
KB. SymbOS contains a
Microsoft Windows like
graphical user interface
The GUI ( "UI" by itself is still usually pronounced . or ), graphical user interface, is a form of user interface that allows User (computing), users to Human–computer interaction, interact with electronic devices through graphical icon (comp ...
(GUI), supports
hard disk
A hard disk drive (HDD), hard disk, hard drive, or fixed disk is an electro-mechanical data storage device that stores and retrieves digital data using magnetic storage with one or more rigid rapidly rotating platters coated with mag ...
s with a capacity of up to 128 GB and can already be booted on an unexpanded
Amstrad CPC
The Amstrad CPC (short for ''Colour Personal Computer'') is a series of 8-bit home computers produced by Amstrad between 1984 and 1990. It was designed to compete in the mid-1980s home computer market dominated by the Commodore 64 and the S ...
-6128, a 128K-
MSX
MSX is a standardized home computer architecture, announced by Microsoft and ASCII Corporation on June 16, 1983. It was initially conceived by Microsoft as a product for the Eastern sector, and jointly marketed by Kazuhiko Nishi, then vice-p ...
2 and an
Amstrad PCW
The Amstrad PCW series is a range of personal computers produced by United Kingdom, British company Amstrad from 1985 to 1998, and also sold under licence in Europe as the "Joyce" by the German electronics company Schneider Computer Division, Schne ...
.
As of August 30, 2017 it is available for the
Amstrad CPC
The Amstrad CPC (short for ''Colour Personal Computer'') is a series of 8-bit home computers produced by Amstrad between 1984 and 1990. It was designed to compete in the mid-1980s home computer market dominated by the Commodore 64 and the S ...
series of computers, all
MSX
MSX is a standardized home computer architecture, announced by Microsoft and ASCII Corporation on June 16, 1983. It was initially conceived by Microsoft as a product for the Eastern sector, and jointly marketed by Kazuhiko Nishi, then vice-p ...
models starting from the
MSX2
MSX is a standardized home computer architecture, announced by Microsoft and ASCII Corporation on June 16, 1983. It was initially conceived by Microsoft as a product for the Eastern sector, and jointly marketed by Kazuhiko Nishi, then vice- ...
standard,
MSX
MSX is a standardized home computer architecture, announced by Microsoft and ASCII Corporation on June 16, 1983. It was initially conceived by Microsoft as a product for the Eastern sector, and jointly marketed by Kazuhiko Nishi, then vice-p ...
with V9990 graphics chip, all
Amstrad PCW
The Amstrad PCW series is a range of personal computers produced by United Kingdom, British company Amstrad from 1985 to 1998, and also sold under licence in Europe as the "Joyce" by the German electronics company Schneider Computer Division, Schne ...
models, CPC-TREX, C-ONE and the
Enterprise 64/128 computers.
Motivation and rationale
SymbOS was originally started as an experiment to find out to what extent it is possible to implement a multitasking operating system with a windowed GUI on an 8-bit computer from 1985.
GEOS #REDIRECT GEOS
{{redirect category shell, {{R from other capitalisation{{R from ambiguous page ...
contributed to the motivation, but the structure and features of SymbOS aren't similar to that system. The release in 2006 proved that such a "mini windows" system is possible on a then 20-year-old home computer with only quantitative limitations. SymbOS is one of the largest retro computing software projects of recent years. One of the goals of the project is to allow these old machines to be used like a modern PC, using hardware extensions.
Although only an 8-bit CPU, the Z80 can run a
preemptive multitasking operating system
An operating system (OS) is system software that manages computer hardware, software resources, and provides common daemon (computing), services for computer programs.
Time-sharing operating systems scheduler (computing), schedule tasks for ef ...
. Features such as
memory protection
Memory protection is a way to control memory access rights on a computer, and is a part of most modern instruction set architectures and operating systems. The main purpose of memory protection is to prevent a process from accessing memory that h ...
, which the Z80 lacks, are not essential in such an OS. For example,
AmigaOS
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 ...
also lacks memory protection. The
MP/M
MP/M (Multi-Programming Monitor Control Program) is a discontinued multi-user version of the CP/M operating system, created by Digital Research developer Tom Rolander in 1979. It allowed multiple users to connect to a single computer, each u ...
OS proved that multitasking on the Z80 CPU was possible. Yet, it was generally unavailable for home computers.
While the
MOS Technology
MOS Technology, Inc. ("MOS" being short for Metal Oxide Semiconductor), later known as CSG (Commodore Semiconductor Group) and GMT Microelectronics, was a semiconductor design and fabrication company based in Audubon, Pennsylvania. It is mo ...
6502
The MOS Technology 6502 (typically pronounced "sixty-five-oh-two" or "six-five-oh-two") William Mensch and the moderator both pronounce the 6502 microprocessor as ''"sixty-five-oh-two"''. is an 8-bit microprocessor that was designed by a small te ...
cannot move the
stack pointer
In computer science, a call stack is a stack data structure that stores information about the active subroutines of a computer program. This kind of stack is also known as an execution stack, program stack, control stack, run-time stack, or mach ...
, the Z80 can freely relocate it to any position in memory, which makes it easier to implement
preemptive multitasking
In computing, preemption is the act of temporarily interrupting an executing task, with the intention of resuming it at a later time. This interrupt is done by an external scheduler with no assistance or cooperation from the task. This preemp ...
. The existence of an alternative register set accelerates context switching between tasks dramatically. The restriction of Z80 system to a 64 KB
address space
In computing, an address space defines a range of discrete addresses, each of which may correspond to a network host, peripheral device, disk sector, a memory cell or other logical or physical entity.
For software programs to save and retrieve ...
can be solved with
bank switching
Bank switching is a technique used in computer design to increase the amount of usable memory beyond the amount directly addressable by the processor instructions. It can be used to configure a system differently at different times; for exampl ...
. In this way, computers like the
Amstrad CPC
The Amstrad CPC (short for ''Colour Personal Computer'') is a series of 8-bit home computers produced by Amstrad between 1984 and 1990. It was designed to compete in the mid-1980s home computer market dominated by the Commodore 64 and the S ...
and
PCW,
MSX
MSX is a standardized home computer architecture, announced by Microsoft and ASCII Corporation on June 16, 1983. It was initially conceived by Microsoft as a product for the Eastern sector, and jointly marketed by Kazuhiko Nishi, then vice-p ...
,
Enterprise
Enterprise (or the archaic spelling Enterprize) may refer to:
Business and economics
Brands and enterprises
* Enterprise GP Holdings, an energy holding company
* Enterprise plc, a UK civil engineering and maintenance company
* Enterprise ...
or
SAM Coupé
Sam, SAM or variants may refer to:
Places
* Sam, Benin
* Sam, Boulkiemdé, Burkina Faso
* Sam, Bourzanga, Burkina Faso
* Sam, Kongoussi, Burkina Faso
* Sam, Iran
* Sam, Teton County, Idaho, United States, a populated place
People and fictiona ...
can access hundreds or thousands of kilobytes of memory.
Design
SymbOS includes a microkernel, which can perform task management, memory management and
inter-process communication.
Task management
For task management, a combination of preemptive and cooperative multitasking was chosen, which makes different task priorities possible. Preemptive means that tasks are interrupted after a certain amount of time by the operating system, in order to share the CPU time with other tasks. Cooperatively means that a task stops using CPU time by itself. It does that, if it's finished with its current job or waiting for a certain event. Because of this combination it is possible to assign priorities. Tasks with low priority get CPU time only if all tasks with higher priorities are not then working.
Memory and banking management
Memory management divides the entire RAM into small 256 byte blocks, which can be assigned dynamically. Applications are always running in a secondary 64 KB RAM bank, where no memory space is occupied by the operating system or the video memory. That makes it possible to reserve up to 63 KB in one piece.
Banking management ensures that the system can administer memory with a size of up to one megabyte, even though the Z80 CPU has only a
16-bit
16-bit microcomputers are microcomputers that use 16-bit microprocessors.
A 16-bit register can store 216 different values. The range of integer values that can be stored in 16 bits depends on the integer representation used. With the two mos ...
address bus. It makes transparent access to memory and functions placed in other 64 KB banks possible.
Interprocess communication
Communication between different tasks and the operating system usually does not take place via ''calls'', but is done via ''messages''. This is necessary inside a multitasking environment to avoid organization problems with the stack, global variables and shared system resources. The SymbOS kernel supports synchronous and asynchronous IPC.
File system management
SymbOS supports the file systems
CP/M,
AMSDOS
AMSDOS is a disk operating system for the 8-bit Amstrad CPC Computer (and various clones). The name is a contraction of Amstrad Disk
Operating System.
AMSDOS first appeared in 1984 on the CPC 464, with added 3 inch disk drive, and then on the ...
, and
File Allocation Table
File Allocation Table (FAT) is a file system developed for personal computers. Originally developed in 1977 for use on floppy disks, it was adapted for use on hard disks and other devices. It is often supported for compatibility reasons by ...
(FAT) 12-16-32, on all platforms. With the last one, SymbOS can address mass storage devices with a capacity of up to 128 GB. Also, the ability to administer files with a size of up to 2 GB is uncommon for an 8-bit system. Because of the FAT support data exchange with other computers is quite easy, as most 32 and 64 bit operating systems do support the three FAT file systems.
Interface

The
graphical user interface
The GUI ( "UI" by itself is still usually pronounced . or ), graphical user interface, is a form of user interface that allows User (computing), users to Human–computer interaction, interact with electronic devices through graphical icon (comp ...
(GUI) of SymbOS works in a fully
object-oriented
Object-oriented programming (OOP) is a programming paradigm based on the concept of " objects", which can contain data and code. The data is in the form of fields (often known as attributes or ''properties''), and the code is in the form of ...
manner. The look and feel mimics that of
Microsoft Windows. It contains the well-known task bar with the clock and the "start" menu and can open up to 32 windows that can be moved, resized and scrolled. The whole system is written in optimized
assembly language, meaning that the GUI runs as fast as the host machine supports.
Content of a window is defined with "controls" that are primitive GUI elements such as sliders, check boxes, text lines, buttons or graphics. The background or invisible areas of a window don't need to be saved in a separate bitmap buffer. If an area needs to be restored on the display, its contents will be redrawn instead. This makes SymbOS GUI much more memory-friendly compared to most other 8-bit GUIs.
Applications
There are several standard applications available for SymbOS, which are designed to resemble similar software available on other operating systems. Examples include
Notepad
A notebook (also known as a notepad, writing pad, drawing pad, or legal pad) is a book or stack of paper pages that are often ruled and used for purposes such as note-taking, journaling or other writing, drawing, or scrapbooking.
History
...
, SymCommander (similar to
Norton Commander
Norton Commander (NC) is a discontinued prototypical orthodox file manager (OFM), written by John Socha and released by Peter Norton Computing (later acquired in 1990 by the NortonLifeLock, Symantec corporation). NC provides a text-based user i ...
), SymShell (
cmd.exe), SymZilla (
Mozilla Firefox
Mozilla Firefox, or simply Firefox, is a free and open-source web browser developed by the Mozilla Foundation and its subsidiary, the Mozilla Corporation. It uses the Gecko rendering engine to display web pages, which implements current a ...
), SymPlay (
QuickTime
QuickTime is an extensible multimedia framework developed by Apple Inc., capable of handling various formats of digital video, picture, sound, panoramic images, and interactivity. Created in 1991, the latest Mac version, QuickTime X, is a ...
), SymAmp (
Winamp
Winamp is a media player for Microsoft Windows originally developed by Justin Frankel and Dmitry Boldyrev by their company Nullsoft, which they later sold to AOL in 1999 for $80 million. It was then acquired by Radionomy in 2014. Sin ...
) and
Minesweeper
A minesweeper is a small warship designed to remove or detonate naval mines. Using various mechanisms intended to counter the threat posed by naval mines, minesweepers keep waterways clear for safe shipping.
History
The earliest known usage of ...
.
Commands
The following list of
commands
Command may refer to:
Computing
* Command (computing), a statement in a computer language
* COMMAND.COM, the default operating system shell and command-line interpreter for DOS
* Command key, a modifier key on Apple Macintosh computer keyboards
* ...
is supported by SymShell.
*
ATTRIB
*
CD
*
CLS
* COLOR
*
COPY
*
DATE
Date or dates may refer to:
*Date (fruit), the fruit of the date palm (''Phoenix dactylifera'')
Social activity
*Dating, a form of courtship involving social activity, with the aim of assessing a potential partner
** Group dating
*Play date, a ...
*
DEL
Del, or nabla, is an operator used in mathematics (particularly in vector calculus) as a vector differential operator, usually represented by the nabla symbol ∇. When applied to a function defined on a one-dimensional domain, it denotes ...
*
DIR
*
ECHO
In audio signal processing and acoustics, an echo is a reflection of sound that arrives at the listener with a delay after the direct sound. The delay is directly proportional to the distance of the reflecting surface from the source and the li ...
*
EXIT
* FULL
*
HELP
*
MD
*
MOVE
Move may refer to:
People
* Daniil Move (born 1985), a Russian auto racing driver
Brands and enterprises
* Move (company), an online real estate company
* Move (electronics store), a defunct Australian electronics retailer
* Daihatsu Move
...
*
PAUSE
*
RD
*
REM
*
REN Ren or REN may refer to:
Abbreviations
* Orenburg Tsentralny Airport, IATA code REN, civil airport in Russia
* Redes Energéticas Nacionais (REN), Portuguese company
* Renanthera, abbreviated as Ren, orchid genus
* Ringer equivalence number ...
* SIZE
*
TIME
Time is the continued sequence of existence and events that occurs in an apparently irreversible succession from the past, through the present, into the future. It is a component quantity of various measurements used to sequence events, t ...
*
TYPE
Type may refer to:
Science and technology Computing
* Typing, producing text via a keyboard, typewriter, etc.
* Data type, collection of values used for computations.
* File type
* TYPE (DOS command), a command to display contents of a file.
* Ty ...
*
VER
Development and release
SymbOS was originally developed for the Amstrad CPC. Its modular structure, with strict separation of general and hardware components, makes porting to other Z80-based systems comparatively easy.
The
MSX
MSX is a standardized home computer architecture, announced by Microsoft and ASCII Corporation on June 16, 1983. It was initially conceived by Microsoft as a product for the Eastern sector, and jointly marketed by Kazuhiko Nishi, then vice-p ...
computers starting with the MSX2 standard have been supported since summer 2006. The
Amstrad PCW
The Amstrad PCW series is a range of personal computers produced by United Kingdom, British company Amstrad from 1985 to 1998, and also sold under licence in Europe as the "Joyce" by the German electronics company Schneider Computer Division, Schne ...
port has been available since August 2007. Versions for the
Enterprise 128
The Enterprise is a Zilog Z80-based home computer announced in 1983, but through a series of delays, not commercially available until 1985. The specification as released was powerful and one of the higher end in its class (though not by the ...
, the
SAM Coupé
Sam, SAM or variants may refer to:
Places
* Sam, Benin
* Sam, Boulkiemdé, Burkina Faso
* Sam, Bourzanga, Burkina Faso
* Sam, Kongoussi, Burkina Faso
* Sam, Iran
* Sam, Teton County, Idaho, United States, a populated place
People and fictiona ...
and such clones of ZXSpectrum as
ATM-turbo 2+ and
ZX-Evolution/BaseConf are possible, too, as they fulfill the requirements for SymbOS.
By keeping a basic condition for an operating system, the strict separation of hardware and application software by an intermediate layer, SymbOS applications run platform-independently on each computer and doesn't need to be adapted for different systems, with the obvious exception of applications that directly access particular hardware.
See also
*
Contiki
Contiki is an operating system for networked, memory-constrained systems with a focus on low-power wireless Internet of Things (IoT) devices. Extant uses for Contiki include systems for street lighting, sound monitoring for smart cities, radiat ...
*
MSX-DOS
MSX-DOS is a discontinued disk operating system developed by Microsoft for the 8-bit home computer standard MSX, and is a cross between MS-DOS 1.25 and CP/M-80 2.
MSX-DOS
MSX-DOS and the extended BASIC with 3½-inch floppy disk support ...
*
OS-9
OS-9 is a family of real-time, process-based, multitasking, multi-user operating systems, developed in the 1980s, originally by Microware Systems Corporation for the Motorola 6809 microprocessor. It was purchased by Radisys Corp in 2001, and ...
References
External links
*
SymbOS installation help fileSymbOS mailing listPage at the CPCWikiSymbOS demo video running on a real MSX turboR GT with MP3MSX cartridge
{{Hobbyist operating systems
Amstrad CPC
MSX
Hobbyist operating systems