What is Cpcdos?

Cpcdos is a 32-bits modular multitask co-kernel project for x86 systems, aiming to simplify your operating system development, while favoring the graphical interface.

This free project mainly features the CpcdosC+ programming language to simplify the OS programming, and application development with (or without) the GUI, or C/C++ 98,11,14,17, (Lua, Python and html/css for later) for knowledgeable amateurs. You can choose to write in terminal/command line style, with or without a GUI, it's up to you!

Visual interface


Using general-purpose VESA, VGA and SVGA graphics, you can set a display resolution supported by both your graphics card and your monitor.

Supported display resolutions

  • Standard 4:3 with 800x600, 1024x768 ...
  • High-definition 16:9, 16:10 with 1920x1080, 1600x900
  • 4K ... perhaps ;)

Color depth

  • 16 bits (65 536 colors)
  • 24 bits (16 777 216 colors)
  • 32 bits (4 294 967 296 colors)

You can create windows, buttons, picture boxes, text blocks, text boxes, check boxes, slide bars, progress bars,... create your graphic interactions, events on the fly, animations,... matching operating system interaction needs.
We have the goal to make a XAML compatible parsing from Microsoft™ Visual Studio graphics folder in order to be able to create it from this method.

Memory

CPCDOS being a 32 bits system, it is able to handle 4 GB of RAM (Depending on whether you have a dedidcated graphics memory or not), what is more than enough for now. The kernel itself uses 2 to 30MB of RAM in average.

This kernel manages partialy itself its memory (in development).
For separation purposes with FreeDOS's boot, memory allocation should be managed exclusively by CPCDOS. For now, all the internal parts (shell, client, TCP server, UDP, threads, processes, graphic interface, RGBA bitmaps, 3D engines) are under the memory allocation of CPCDOS, except for the LLVM.

System

In a further look, CPCDOS is able to manage an infinity of threads, processes, with a run time in microseconds according to their implementation priority. Cpcdos can also run external native code.

Run external native code.

This is where the notion of "modular kernel" comes from: CPCDOS is able to load and execute dynamically an infinity of modules (x86 instruction set) coming from outside of the kernel and make connections. In other words, it can be compiled program files such as Windows executables files .EXE, .DLL, LLVM/Clang or drivers.

Little innovation, Cpcdos is able to handle multiple OSes without any virtualization, with the possibility to switch between OSes in execution; and even in the future, windowing your OS into the background.

CPCDOS manages its own programming language called CpcdosC+. It is possible to use French, English, or both! It offers the particular feature of simplifying the execution of complex code difficult to handle for beginners.

Cpcdos is currently able to manage itself independently

  • The visual interface to the very last pixel
  • Multi-OS
  • 3D rendering through GZE Engine/OpenGL
  • Graphic pointer
  • BMP, JPG, PNG, and GIF support
  • Filesystem control
  • UTF-8 characters
  • Fonts
  • Ping ICMP
  • UDP/TCP, TELNET and HTTP Client/Server
  • HTTP and FTP Client/Server Protocols (in progress)
  • CpcdosC+ programming language, POO, functions, routines, variables, calculations, and code execution
  • Garbage collector
  • Task manager
  • LLVM (Low-Level-Virtual-Machine)
  • Win32 PE executables
  • Virtual memory
  • BIOS APM v1.0 v1.1 v1.2+ (Advanced Power Management)
  • Multi-threading
  • ISR
  • and much more !

Network

Unfinished section