''Parts of this article have been copied from the [http://en.wikipedia.org/wiki/SymbOS english Wikipedia article].''
'''SymbOS''' is a free multitasking operating system for Z80 based 8-bit computer systems written by [[Prodatron|Prodatron]]. At present it is available for the computers of the Amstrad CPC as well as for all [[MSX]] models starting from the MSX2 standard, all Amstrad [[PCW|PCW]] (Joyce) models until the PcW10 and the [[Enterprise]] 64/128. Contrary to early 8-bit operating systems it is based on a microkernel, which provides pre-emptive and priority oriented multitasking and manages RAM memory with a size of up to 1024 kBfor the executed applications. SymbOS contains a an MS-Windows like GUI, supports hard discs with a capacity of up to 128 GB 2 TB and can already be booted on an unexpanded Amstrad CPC-6128, a PCW, an MSX2 or an Enterprise 128 with floppy disc drive.
<br>
*''03/2015'': Development of network support started
*''08/2017'': SymbOS release 3.0 is out
*''12/2021'': SymbOS release 3.1 is out
*''02/2025'': SymbOS release 4.0 is out
<br>
Even the Z80 8-bit CPU is able to run a pre-emptive multitasking environment. Missing mechanisms like memory protection, which are often called as a condition for multitasking, are system stability issues only. The MP/M operating system already proved, that multitasking on Z80 computers is possible.
While the MOS Technology 6502 can not move the stack, the Z80 can freely replace it to any position in the memory, which is more or less a condition for pre-emptive multitasking. The existance existence of an alternative register set accelerates the content context switching between the tasks dramatically. The restriction of Z80 systems 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 hundred hundreds or thousand thousands of kilobytes of memory.
<br>
**Maximum possible screen resolution: 16.000 × 16.000 pixel
*'''File manager'''
**Maximum hard disc size: 128 GB 2 TB
**Maximum file size: 2 GB
**Maximum number of devices: 8
**MSX2 with 128KB Ram (unexpanded) and compatibles (MSX2+, MSX TurboR, OCM)
**Amstrad [[PCW|PCW]] (all models until PcW10)
**[[Enterprise]] 64/128
*'''Supported external hardware'''
**[[Dk'tronics|dk'tronics]] memory expansion 64K-512K and compatibles ([[Dobbertin|Dobbertin]], [[SYMBiFACE II|SYMBiFACE II]], X-MEM) **[[SYMBiFACE II|SYMBiFACE II]] (realtime clock; PS/2 mouse; IDE interface, Ram/Rom expansion) and compatibles (X-MASS)**M4Board (ESP8266-based Wifi, SD card reader, Rom expansion)**[[RSF3]] (in M4Board emulation mode)**HxC direct SD card access (FAT32)**Albireo (USB mouse)**MultiPlay (Amiga mouse)
**[[AMX Mouse|AMX]] and [[Kempston Mouse|Kempston mouse]] (PCW)
**Sunrise IDE interface (MSX)
**MegaSD card interface for OCM, MegaflashRomSCC+SD (MSX)
**MP3MSX (MSX)
**DenYoNet (MSX; W5100-based Ethernet)
**GR8NET (MSX; SD card reader, W5100-based Ethernet)
**SE-ONE (MSX; MP3, FM Radio)
**Rookie Drive (MSX)
== Kernel ==
=== Task management ===
For the task management a combination of pre-emptive and cooperative multitasking has been choosedchosen, which makes different task priorities possible. Pre-emptive 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 it, if it finished its current job or is waiting for a certain event. Because of this combination it is possible to assign priorities. Tasks with a low priority receive CPU time only if all tasks with higher priorities are not currently working.
=== Memory and banking management ===
The communication between different tasks and the operating system usually does not take place via "Calls", but is done via "Messages". This is necessarily inside a multitasking environment to avoid organisation problems with the stack, global variables and shared system resources.
<br>
== Graphical user interface ==
== Applications and executables ==
There are several standard applications available for SymbOS, which have beend been designed as clones of well known Windows and Macintosh programs. As an example these are applications similar to the Norton Commander (SymCommander), QuickTime (SymPlay), WinAmp (SymAmp) or Minesweeper.
*'''Applications'''
**[[SymShell|SymShell]] (command line interface)
<br> == Development tools == System libraries, documentation, and sample code are available for developing applications in assembly. In addition, there are several SymbOS-specific development tools. === Quigs === [http://www.symbos.de/quigs.htm Quigs] is a Windows-based IDE (integrated development environment) by [[Trebmint|Trebmint]] for SymbOS similiar to MS Visual Studio. Quigs makes it possible to develop SymbOS applications in Assembler or a language similar to Basic ("SymBasic"). It is also possible to convert PC graphics and videos into the SymbOS format ([[Format:SGX (SymbOS graphic files)|SGX]], [[Format:VID (SymbOS video files)|VID]]). Quigs' predecessor was named SymStudio; have a look at [[SymStudio|its article]] for more information. === SymbOS C Compiler ===
=== SymStudio ===The [https://github.com/danielgaskell/scc SymbOS C Compiler] (SCC) is a full C compiler suite for SymbOS. A comprehensive system library is available for interfacing with the SymbOS desktop, but it is also possible to compile many existing C programs into SymShell console apps without modification. SCC runs on Windows, but it can also compile itself to run natively on SymbOS itself, so it is technically possible to develop applications in C (or assembly) entirely from within SymbOS.
An older C SDK for [[SymStudio|SymStudioSDCC]] by Nerlaska is also available; a Windows-based IDE (integrated development environment) by [[Trebmint|Trebmint]] for SymbOS similiar to MS Visual Studio. SymStudio makes it possible to develop SymbOS applications patched version of this can be found in Assembler or Basic ("SymBasic"). It is also possible to convert PC graphics and videos into the SymbOS format ([[Formathttps:SGX (SymbOS graphic files)|SGX]], [[Format:VID (SymbOS video files)|VID]])//github. Have a look at [[SymStudio|its articlecom/danielgaskell/cpvm CPvM source repository]] for more information. Currently there is only a beta version available.
<br>
SymbOS has been developed originally for the Amstrad CPC. Because of the modular structure with the strict separation of general and hardware components the porting to other Z80-based systems is quite easy.
The MSX computers starting with the MSX2 standard are supported since summer 2006. The Amstrad [[PCW|PCW]] port is available since August 2007. Versions Since end of 2014 the port for the [[Enterprise ]] 64/128 has been done as well. Versions for Amstrad NC100/150/200 and the SAM Coupé Spectrum Next exist nowadays. And others, Z88 ... 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 the supply of an intermediate layer, SymbOS applications run platform-independently on each computer and do not have to be adapted for a special system. Exceptions are applications, which access directly the hardware.
<br>
== Motivation ==
*[http://www.symbos.de SymbOS homepage]
*[http://memberswww.homesymbos.nlde/evanzantendownload/msxorg20250131-V40/SymbOS%203%20install%20user%20and%20install%20guide-40-Manual.pdf SymbOS installation configuration manual (PDF)]
*[http://groups.yahoo.com/group/symbos8bit SymbOS mailing list (new)]
*[http://en.wikipedia.org/wiki/SymbOS english Wikipedia article]