

| |
Facts about SymbOS
SYmbiosis Multitasking Based Operating System

[
Introduction |
Facts |
Architecture |
Details ]
Introduction
 |


CEUS-Desktop 2.0 (CPC)

SymbOS CPC

SymbOS PCW

SymbOS MSX
More Screenshots!
|
|
Already in the 80's, only few years after the release of the Commodore C64, the legendary GEOS by Berkeley
Softworks appeared and set the standard for a windows-based operating system on C64. It included a graphical user-interface
(GUI) which was similar to the old desktop of the Apple Macintosh. Powerfull applications were available for GEOS like GeoWrite
(similar to MS-Word), GeoPublish, GeoPaint or GeoCalc (similar to MS-Excel). Though most elements were very static and
restricted compared to common standards it was incredible, that an 8bit-machine with only 64K was able to run such a graphical
user interface!
On Amstrad CPC many tries for GUIs existed, too. In most cases they were just extensions to realize elements like
mouse-pointers, windows or pull-down-menus. But they weren't true new operating systems with own kernel, memory-management and
so on. My own CEUS Desktop 2.0 (1990) was such an
extension-system. So the CPCs own OS (in combination with AmsDOS) and CP/M were the only two known OS for the CPC. In 1995 two
german guys released Stream2, which should became a true new OS. It had quite a good GUI, an interesting driver-structure
and an alternative disc format. But it didn't have an own kernel and so it also seems to be just an other extension of the old
OS. The biggest disadvantage was, that it wasn't free and so no one used it. Even today you can't find it on the known
FTP-servers for CPC-software. Another promising attempt back in the 90ies was DES ("Desktop Environment System") from the UK,
which even brought a word processor called DesText. It was unsuccessful as well, so the result was, that the CPC never had a
system like the C64-GEOS.
At the end of 2000 I watched some GEOS-pages and asked myself, why not making such a system on CPC, too. Most CPCs have
128K (most C64 only have 64K), a screen-resolution of 320x200 with 4 colours (C64 only has 2 colours for each 8x8 area in
320x200) and some more advantages. So the idea of the SymbOS-Project was born. SymbOS stands for "SYmbiosis
Multitasking Based Operating System". SymbOS should become a demonstration, what could be
possible on CPC since the last 20 years. I want to give everything to SymbOS what a modern OS needs. Real preemptive
Multitasking, a dynamic memory-management for up to 576K and more and a totaly MS-Windows-like GUI
are the three most important things.
I started to develop SymbOS in November 2000. In Januar 2001 I stopped it. But after the great
"Klassentreffen"-party (June 2001) in Erlangen/Germany I continued to code SymbOS with much new motivation. After finishing
most parts of the desktop-routines I stopped, as I wasn't sure, if the memory system of the CPC really can handle such an
operating system. Also it crashed sometimes without any reasons. In September 2004 I liked to continue. So I decided
to work again on it. I found out, that the memory system will be manageable, and the reason for the crashes was a
bug in an old emulator version, which is fixed now.
Already during 2005 Trebmint, the Author of SymStudio, convinced me to think about porting SymbOS to other Z80 based 8bit
platforms. The best candidate was the MSX2. So after releasing SymbOS CPC 1.0 in May 2006 I started to work on the
MSX port and was surprised about this powerful hardware and about the fact, that it can be quite easy to develop software,
which runs on both machines. Later at the end of July 2007 I started the Amstrad PCW port, which has been realized much
faster because of the more simple hardware and the fact, that a lot of preparation work for porting has already be done for
the MSX. After a break of several years I returned to SymbOS development and end of 2014 the port for the Enterprise 64/128
machines has been finished, which means, that SymbOS is now running in four different computer platforms!
To be careful with my brave old CPC-6128 and my MSX and PCW machines and to work as fast as possible, in most cases I am
not using my real computers. I use UltraEdit, WinApe,
BlueMSX and
Joyce. Without doubt WinApe is the best
CPC-emulator for Windows, and it has a perfect development-environment. So many thanx to Richard Wilson, but also to DVIK
(BlueMSX), John Elliott (Joyce) and more!
|
Facts about SymbOS

Feature | Power |
Micro kernel | Maximum amount of supported RAM | 1024 KB | Maximum number of processes | 32 | Number of different process priorities | 9 | Maximum number of timers | 32 | Maximum number of open messages | 64 | System manager | Maximum number of applications | 24 | Maximum application core size | 63 KB | Desktop manager | Maximum number of windows | 32 | Maximum number of controls per window | 1000 | Maximum possible screen resolution | 32.000 x 32.000 pixel | File manager | Maximum hard disc size | 2 TeraByte | Maximum file size | 2 GB | Maximum number of devices | 8 | Maximum number of open files | 7 | Source code | Source code size (OS Release 2.1) | ~ 49.000 lines (1,5MB) | Source code size (Applications) | ~ 70.000 lines (2,2MB) | Total size of the Z80 source code | ~ 119.000 lines (3,7MB) | Supported platforms | Amstrad CPC-464,664,6128,464+,6128+ | Yes | CPC-TREX, C-ONE | Yes | MSX2, MSX2+, MSX TurboR, OCM | Yes | Amstrad PCW 8xxx, 9xxx, PcW10 | Yes | Enterprise 64, Enterprise 128 | Yes |
|
Architecture

The following diagram shows the internal system-architecture of SymbOS. As you can see, SymbOS consists of three different
layers. Only the low-level-layer communicates directly with the Z80 based hardware.

Details
 |

In the following section you will find all main parts of SymbOS paired with the sub modules. Please click on one of the module name to
receive more information about the regarding topic.
Micro-Kernel [ more Information!... ] | Module | Comment | Status | Process Management | Priority based preemptice and cooperative multitasking | Finished! | Memory Management | Full 1024KB support; complete 63K for each application | Finished! | Banking Management | Transparent bankswitching system | Finished! | Message Queue | Exchanging of messages between different processes | Finished! | Device-Manager [ more Information!... ] | Module | Comment | Status | Keyboard scanner | Support of four keyboard layers (normal, shift, control, alt) | Finished! | Mouse scanner | PS2 support included; configurable .. and speed factors | Finished! | Time and date | Time and Y2K-capable date management | Finished! | Screen management | Colour and screen resolution settings | Finished! | Mass storage devices | Control of floppy and harddisc devices (sector layer) | Finished! | Printer output | Sending of texts and data to the printer | Planned | Sound output | Sending of data to the sound device | Planned | Screen-Manager [ more Information!... ] | Module | Comment | Status | Text output | Very fast proportional text output | Finished! | Sprite output | Resolution and colour independant graphic output | Finished! | Plotting boxes | Painting of lines and rectangles | Finished! | Screen operations | Flexible scrolling; saving and restoring of screen areas | Finished! | Desktop-Manager [ more Information!... ] | Module | Comment | Status | Mouse pointer | Display of the mouse pointer | Finished! | Pull down menu | Pull down menus can have as many sub menus as you want | Finished! | Windows (forms) | Windows with title, tool, menu, info bar, also with content scroll slider and much more | Finished! | Controls | Realizes the display and the control of the complete window content | Finished! | Task bar | Contains the start menu, the window buttons, the shortcut icons und and the time display | Finished! | System-Manager [ more Information!... ] | Module | Comment | Status | Application management | Loading, relocating, executing and removing of complete applications | Finished! | Services | Provides services for the device, file and system management | Finished! | File-Manager [ more Information!... ] | Module | Comment | Status | FAT support | Supports the FAT12, FAT16 und FAT32 filesystems | Finished! | CP/M support | Supports the CP/M, AMSDOS and PCW filesystems | Finished! | File handling | Provides a powerful, flexible file management like in MS-DOS with multiple handlers and pointers | Finished! | Directory handling | Provides creating, deleting and changing of files and directories | Finished! |
|
|