Last update : 06 mar.2022

Cpcdos is easy educative free innovative

Cpcdos OSx is a modular, multitasking monolithic co-kernel for x86 systems.

This open source and free project aims to facilitate the creation of a 32 bit operating system all lovers developpement.



High Definition SVGA Screen Resolutions


Support for Windows C ++ programs (.exe) and LLVM / Clang


3D rendering with GZE and OpenGL


Network support


'Automatic' updates


Simplified programming


Community and support


Open source


Required Skills

No special requirements!
Cpcdos is educational, open to everyone, whether you are a beginner or a regular programmer.
Logical methodology, a little mathematical basis, a few computer terms, and patience will be more than enough for you!


CpcdosC+ example code

CpcdosC+ is hybrid ! Franch and English ! You can see an overview of the French syntaxe at the top right

Although it is possible to code in other languages, in order to convince you even more that it is possible to code simple, you have to show you two examples!

Example 1

Creation of a transparent window, and a button that displays a message


Visual preview

English syntax

Window/ My_Window
    .title          = "My first application"
    .px             = "100"
    .py             = "20"
    .sx             = "250"
    .sy             = "150"
    .Opacity        = "200"
    .Parameters     = ""
    .WindowColor    = "050,050,250"
    .TitleColor = "055,055,255"
    .BackColor  = "050,050,250"
    .event          = ""
    @#Window_Handle Create/
end/ window

Button/ My_Button
    .Handle         = "%Window_Handle%"
    .Parameters     = "IMGAUTO:2"
    .PX             = "20"
    .PY             = "20"
    .sx             = "100"
    .sy             = "30"
    .opacity        = "255"
    .text           = "Clic moi!"
    .Image          = "%OS_GUI%/Buttons/BTN_BLUE.png"
    .event      = "%_EXE_PATH_%"
    create/
End/ Button

Function/ My_Button.MouseClic()

    msgbox/ Hello ! :-)

End/ Function

Exemple 2 :

Connecting, sending, receiving, and closing a tcp server

English syntax

// We connect and getting handle client number
@#Handle_server client/ 192.168.1.4:1234

if/ "%Handle_Server%" > "0" then:

    // Ask user to type a message (Q:Question)
    Txt/ Please enter the message :
    set/ /q My_Message

    // Send the message through the handle number
    client/ /send:%Handle_server% %My_Message%

    // Receive the message via the handle number
    @#Reception client/ /receive:%Handle_server% /Wait
    txt/ %Reception%

    // And close the connection
    client/ /stop:%Handle_server%

else:

    // Here, if the handle number is smaller than 1, then we display an error message
    txt/ !!! Error during connection !!!

end/ if

If you know the C / C ++ language, you know that you need a lot more lines to write these two examples! Indeed, Cpcdos manages memory, instances, operations for you ... in short, almost everything! You just have to serve yourself!
Of course you can go deeper into the CpcdosC + code, and also use C ++ to write your program or your operating system.

We invite you to discover cpcdos in the tabs at the top of your screen.