Cpcdos it's simple convenient innovative

Cpcdos OSx is a modular multitask co-kernel with preemptive scheduling for x86 systems.
This free project aims to facilitate 32 bits operating system development in console, while focusing on the graphic interface.
It can run Windows files (.exe), It works with a new native programing language named CpcdosC+ to simplify programming. Others programming languages are possible, such as C/C++, (lua, Python, html/css à venir). It can also run Clang/LLVM executable files and 3D rendering with OpenGL / GZE. Surprised ? Go to FAQ : OpenGL it's true ?.

No particular knowledge is required, Cpcdos is open to all people, whatever you are beginner, or regular programmer.
Logic methodology, basics of mathematics, basics of Information Technology and patience will do!

Are you in? Go to Download to get it, and take a look at Documentation.


This is two code example of the new CpcdosC+ v3 language
You can see French syntax with "Français" selection on top at right

Creating transparent window and button

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

Connection, sending, recive, and closing tcp server

// 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 more line codes are required to do this very same operation.

To know more about the possibilities and characteristics of Cpcdos, feel free to take a look at the page what is Cpcdos?