SymbOS
Encyclopedia
SymbOS is a free multitasking
operating system
for Z80
-based 8-bit
computer
systems. At present it is available for the Amstrad CPC
series of computers, as well as for all MSX
models starting from the MSX2
standard and for most Amstrad PCW
models. Contrary to early 8-bit operating systems it is based on a microkernel
, which provides pre-emptive and priority oriented multitasking and manages RAM with a size of up to 1024 kB. SymbOS contains a Microsoft Windows
like Graphical user interface
, supports hard disk
s with a capacity of up to 128 GB and can already be booted on an unexpanded Amstrad CPC
-6128, a 128K-MSX
2 and an Amstrad PCW
.
multitasking
operating system
. Features such as memory protection, which the Z80 does not support, are not essential in such an OS. For example, AmigaOS
does not feature memory protection
either. The MP/M
OS proved that multitasking on the Z80 CPU was possible, however it was not generally available for home computers.
While the MOS Technology
6502
cannot move the stack pointer, the Z80 can freely relocate it to any position in memory, which is more or less a requirement for pre-emptive multitasking. The existence of an alternative register set accelerates context switching between tasks dramatically. The restriction of Z80 system to a 64 kB address space
can be solved with bank switching
. In this way computers like the Amstrad CPC
and PCW
, MSX
, Enterprise
or SAM Coupé
are able to access hundreds or thousands of kilobytes of memory.
.
Banking management ensures that the system is able to administer memory with a size of up to one megabyte, even though the Z80 CPU has only a 16-bit
address bus. It makes transparent access to memory and functions placed in other 64 kB banks possible.
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.
, AMSDOS
, FAT 12, FAT16, FAT32
, on all platforms. With the last one SymbOS is able to 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.
), SymShell (cmd.exe
), SymZilla (Mozilla Firefox
), SymPlay (QuickTime
), SymAmp (Winamp
) and Minesweeper
.
The MSX
computers starting with the MSX2 standard have been supported since summer 2006. The Amstrad PCW
port has been available since August 2007. Versions for the Enterprise 128
and the SAM Coupé
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 do not have to be adapted for a special system, with the obvious exception of applications that directly access particular hardware.
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 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.
Computer multitasking
In computing, multitasking is a method where multiple tasks, also known as processes, share common processing resources such as a CPU. In the case of a computer with a single CPU, only one task is said to be running at any point in time, meaning that the CPU is actively executing instructions for...
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...
for Z80
Zilog Z80
The Zilog Z80 is an 8-bit microprocessor designed by Zilog and sold from July 1976 onwards. It was widely used both in desktop and embedded computer designs as well as for military purposes...
-based 8-bit
8-bit
The first widely adopted 8-bit microprocessor was the Intel 8080, being used in many hobbyist computers of the late 1970s and early 1980s, often running the CP/M operating system. The Zilog Z80 and the Motorola 6800 were also used in similar computers...
computer
Computer
A computer is a programmable machine designed to sequentially and automatically carry out a sequence of arithmetic or logical operations. The particular sequence of operations can be changed readily, allowing the computer to solve more than one kind of problem...
systems. At present it is available for the Amstrad CPC
Amstrad CPC
The Amstrad CPC 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 Sinclair ZX Spectrum, where it successfully established itself primarily in the United Kingdom,...
series of computers, as well as for all MSX
MSX
MSX was the name of a standardized home computer architecture in the 1980s conceived by Kazuhiko Nishi, then Vice-president at Microsoft Japan and Director at ASCII Corporation...
models starting from the MSX2
MSX2
MSX2 may refer to:* Msh homeobox 2, a human gene* The second generation of the MSX home computers...
standard and for most Amstrad PCW
Amstrad PCW
The Amstrad PCW series was a range of personal computers produced by British company Amstrad from 1985 to 1998, and also sold under licence in Europe as the "Joyce" by the German electronics company Schneider in the early years of the series' life. When it was launched, the cost of a PCW system was...
models. Contrary to early 8-bit operating systems it is based on a microkernel
Microkernel
In computer science, a microkernel is the near-minimum amount of software that can provide the mechanisms needed to implement an operating system . These mechanisms include low-level address space management, thread management, and inter-process communication...
, which provides pre-emptive and priority oriented multitasking and manages RAM with a size of up to 1024 kB. SymbOS contains a Microsoft Windows
Microsoft Windows
Microsoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...
like Graphical user interface
Graphical user interface
In computing, a graphical user interface is a type of user interface that allows users to interact with electronic devices with images rather than text commands. GUIs can be used in computers, hand-held devices such as MP3 players, portable media players or gaming devices, household appliances and...
, supports hard disk
Hard disk
A hard disk drive is a non-volatile, random access digital magnetic data storage device. It features rotating rigid platters on a motor-driven spindle within a protective enclosure. Data is magnetically read from and written to the platter by read/write heads that float on a film of air above the...
s with a capacity of up to 128 GB and can already be booted on an unexpanded Amstrad CPC
Amstrad CPC
The Amstrad CPC 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 Sinclair ZX Spectrum, where it successfully established itself primarily in the United Kingdom,...
-6128, a 128K-MSX
MSX
MSX was the name of a standardized home computer architecture in the 1980s conceived by Kazuhiko Nishi, then Vice-president at Microsoft Japan and Director at ASCII Corporation...
2 and an Amstrad PCW
Amstrad PCW
The Amstrad PCW series was a range of personal computers produced by British company Amstrad from 1985 to 1998, and also sold under licence in Europe as the "Joyce" by the German electronics company Schneider in the early years of the series' life. When it was launched, the cost of a PCW system was...
.
Background
Although only an 8-bit CPU, the Z80 is capable of running a pre-emptivePreemption (computing)
In computing, preemption is the act of temporarily interrupting a task being carried out by a computer system, without requiring its cooperation, and with the intention of resuming the task at a later time. Such a change is known as a context switch...
multitasking
Computer multitasking
In computing, multitasking is a method where multiple tasks, also known as processes, share common processing resources such as a CPU. In the case of a computer with a single CPU, only one task is said to be running at any point in time, meaning that the CPU is actively executing instructions for...
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...
. Features such as memory protection, which the Z80 does not support, are not essential in such an OS. For example, AmigaOS
AmigaOS
AmigaOS is the default native operating system of the Amiga personal computer. It was developed first by Commodore International, and initially introduced in 1985 with the Amiga 1000...
does not feature memory protection
Memory protection
Memory protection is a way to control memory access rights on a computer, and is a part of most modern operating systems. The main purpose of memory protection is to prevent a process from accessing memory that has not been allocated to it. This prevents a bug within a process from affecting...
either. The MP/M
MP/M
MP/M was a 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 using a separate terminal....
OS proved that multitasking on the Z80 CPU was possible, however it was not generally available for home computers.
While the MOS Technology
MOS Technology
MOS Technology, Inc., also known as CSG , was a semiconductor design and fabrication company based in Norristown, Pennsylvania, in the United States. It is most famous for its 6502 microprocessor, and various designs for Commodore International's range of home computers.-History:MOS Technology, Inc...
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...
cannot move the stack pointer, the Z80 can freely relocate it to any position in memory, which is more or less a requirement for pre-emptive multitasking. The existence of an alternative register set accelerates context switching between tasks dramatically. The restriction of Z80 system to a 64 kB address space
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.- Overview :...
can be solved with bank switching
Bank switching
Bank switching is a technique to increase the amount of usable memory beyond the amount directly addressable by the processor. It can be used to configure a system differently at different times; for example, a ROM required to start a system from diskette could be switched out when no longer...
. In this way computers like the Amstrad CPC
Amstrad CPC
The Amstrad CPC 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 Sinclair ZX Spectrum, where it successfully established itself primarily in the United Kingdom,...
and PCW
Amstrad PCW
The Amstrad PCW series was a range of personal computers produced by British company Amstrad from 1985 to 1998, and also sold under licence in Europe as the "Joyce" by the German electronics company Schneider in the early years of the series' life. When it was launched, the cost of a PCW system was...
, MSX
MSX
MSX was the name of a standardized home computer architecture in the 1980s conceived by Kazuhiko Nishi, then Vice-president at Microsoft Japan and Director at ASCII Corporation...
, Enterprise
Enterprise 128
The Enterprise is a Zilog Z80 based home computer first released in 1985. There are two variants, the Enterprise 64 with 64 kB of RAM, and the Enterprise 128 with 128 kB.- Hardware :- CPU, memory and ASIC chips :...
or SAM Coupé
SAM Coupé
The SAM Coupé is an 8-bit British home computer that was first released in late 1989. It is commonly considered a clone of the Sinclair ZX Spectrum computer, since it features a compatible screen mode and emulated compatibility, and it was marketed as a logical upgrade from the Spectrum...
are able to access hundreds or thousands of kilobytes of memory.
Kernel
SymbOS includes a microkernel, which is capable of performing task management, memory management and inter-process communicationInter-process communication
In computing, Inter-process communication is a set of methods for the exchange of data among multiple threads in one or more processes. Processes may be running on one or more computers connected by a network. IPC methods are divided into methods for message passing, synchronization, shared...
.
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 is able to administer memory with a size of up to one megabyte, even though the Z80 CPU has only a 16-bit
16-bit
-16-bit architecture:The HP BPC, introduced in 1975, was the world's first 16-bit microprocessor. Prominent 16-bit processors include the PDP-11, Intel 8086, Intel 80286 and the WDC 65C816. The Intel 8088 was program-compatible with the Intel 8086, and was 16-bit in that its registers were 16...
address bus. It makes transparent access to memory and functions placed in other 64 kB banks possible.
Inter-process 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 as well as asynchronous IPC.Graphical user interface
The GUI of SymbOS works in a completely object-oriented 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. As the complete system is written in optimized assembly language, the GUI is fast compared to modern systems.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.
File system management
SymbOS supports the file systems CP/MCP/M
CP/M was a mass-market operating system created for Intel 8080/85 based microcomputers by Gary Kildall of Digital Research, Inc...
, AMSDOS
AMSDOS
AMSDOS is a disk operating system for the 8-bit Amstrad CPC Computer . The name is a contraction of Amstrad Disc Operating System....
, FAT 12, FAT16, FAT32
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...
, on all platforms. With the last one SymbOS is able to 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.
Applications
There are several standard applications available for SymbOS, which most resemble their well-known Windows and Mac OS counterparts. Few examples are SymCommander (similar to Norton CommanderNorton Commander
Norton Commander was a prototypical orthodox file manager , written by John Socha and released by Peter Norton Computing . NC is a file manager which provides a text user interface on top of DOS. It was officially produced by Symantec between 1986 and 1998...
), SymShell (cmd.exe
Cmd.exe
Command Prompt is the Microsoft-supplied command-line interpreter on OS/2, Windows CE and on Windows NT-based operating systems...
), SymZilla (Mozilla Firefox
Mozilla Firefox
Mozilla Firefox is a free and open source web browser descended from the Mozilla Application Suite and managed by Mozilla Corporation. , Firefox is the second most widely used browser, with approximately 25% of worldwide usage share of web browsers...
), SymPlay (QuickTime
QuickTime
QuickTime is an extensible proprietary multimedia framework developed by Apple Inc., capable of handling various formats of digital video, picture, sound, panoramic images, and interactivity. The classic version of QuickTime is available for Windows XP and later, as well as Mac OS X Leopard and...
), SymAmp (Winamp
Winamp
Winamp is a media player for Windows-based PCs and Android devices, written by Nullsoft, now a subsidiary of AOL. It is proprietary freeware/shareware, multi-format, extensible with plug-ins and skins, and is noted for its graphical sound visualization, playlist, and media library features.Winamp...
) and Minesweeper
Minesweeper (computer game)
Minesweeper is a single-player video game. The object of the game is to clear an abstract minefield without detonating a mine. The game has been written for many system platforms in use today....
.
Porting and cross platform ability
SymbOS was originally developed for the Amstrad CPC. Owing to its modular structure, with the strict separation of general and hardware components, porting to other Z80-based systems is quite easy.The MSX
MSX
MSX was the name of a standardized home computer architecture in the 1980s conceived by Kazuhiko Nishi, then Vice-president at Microsoft Japan and Director at ASCII Corporation...
computers starting with the MSX2 standard have been supported since summer 2006. The Amstrad PCW
Amstrad PCW
The Amstrad PCW series was a range of personal computers produced by British company Amstrad from 1985 to 1998, and also sold under licence in Europe as the "Joyce" by the German electronics company Schneider in the early years of the series' life. When it was launched, the cost of a PCW system was...
port has been available since August 2007. Versions for the Enterprise 128
Enterprise 128
The Enterprise is a Zilog Z80 based home computer first released in 1985. There are two variants, the Enterprise 64 with 64 kB of RAM, and the Enterprise 128 with 128 kB.- Hardware :- CPU, memory and ASIC chips :...
and the SAM Coupé
SAM Coupé
The SAM Coupé is an 8-bit British home computer that was first released in late 1989. It is commonly considered a clone of the Sinclair ZX Spectrum computer, since it features a compatible screen mode and emulated compatibility, and it was marketed as a logical upgrade from the Spectrum...
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 do not have to be adapted for a special system, with the obvious exception of applications that directly access particular hardware.
Motivation
SymbOS was originally started as an experiment to find out to what extent it is possible to implement a multitasking based operating system with a windowed GUI on an 8-bit computer from 1985. GEOSGEOS (8-bit operating system)
GEOS is an operating system from Berkeley Softworks . Originally designed for the Commodore 64 and released in 1986, it provided a graphical user interface for this popular 8-bit computer.GEOS closely resembled early versions of Mac OS and included a graphical word processor and paint program...
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 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.
External links
- Official SymbOS homepage
- SymbOS mailing list
- Page at the CPCWiki
- SymbOS video collection on YouTube (Broken as of October 2011 - removal of feature on YouTube?)
- SymbOS demo video running on a real MSX turboR GT with MP3MSX cartridge