Electronscape

Project updates, development logs, and news

Live status: New Site ONLINE: Content being added and being debugged.

CoderGirl / SBOS Programmer API

a lightweight, C-only GUI system designed for small operating systems
and embedded environments.

INTRODUCING CODERGIRL

CoderGirl is the graphical operating system developed specifically for the SIDbox.

It provides the environment in which SIDbox programs run, allowing them to use windows, graphical controls, input devices, storage, audio, and other system services through a shared programming API.

CoderGirl was designed alongside the SIDbox hardware rather than being adapted from an existing desktop operating system. This allows it to remain lightweight while taking advantage of features built into the STM32H743, including audio DMA, DMA2D graphics acceleration, external RAM, SD card storage, hardware controls, and the resistive touchscreen.

The operating system uses a cooperative multitasking model, allowing several programs and system services to remain active while retaining the predictable timing required for audio and graphical operations.

CoderGirl turns the SIDbox from a single-purpose music player into a programmable graphical computer capable of running applications, tools, demonstrations, and games.

WHY THE SIDBOX NEEDED ITS OWN OS

The SIDbox began as a music-focused system, but its hardware was capable of much more than simply loading and playing songs.

As graphics, controls, storage, applications, and development features were added, the system needed a common environment to manage them. Without an operating system, every program would have to control the display, input devices, memory, audio, and storage independently.

CoderGirl provides that shared foundation.

Programs can request windows, draw graphics, read controls, access files, use audio features, and communicate with the SIDbox hardware through a consistent system API.

This keeps applications smaller, makes development easier, and prevents each program from needing to recreate the same low-level systems.

CoderGirl also allows the SIDbox to behave like a complete graphical computer, where programs can be launched, managed, and used within the same interface.

COOPERATIVE MULTITASKING

CoderGirl uses a cooperative multitasking system to allow several programs and operating-system services to remain active at the same time.

Each running task is given an opportunity to perform its work before returning control to the operating system. CoderGirl can then continue with the next task, process user input, update windows, and manage other system services.

This approach keeps the operating system lightweight and avoids the additional complexity of a fully pre-emptive scheduler.

Time-sensitive operations such as audio playback and graphical data transfers are handled separately by the STM32H743’s DMA hardware. This allows sound and graphics operations to continue while CoderGirl manages applications and the graphical interface.

Cooperative multitasking also gives programs predictable control over when they perform work, making it well suited to the SIDbox’s embedded hardware and real-time audio requirements.

WINDOWS, PROGRAMS AND THE DESKTOP

CoderGirl provides the graphical desktop and window system used by SIDbox applications.

Programs can create and manage windows, display text and graphics, receive keyboard (Via UART KB-Interface), joystick, mouse, and touchscreen input, and interact with the user through standard interface controls.

The operating system manages the desktop, window placement, focus, input routing, and screen updates, allowing applications to concentrate on their own behaviour rather than recreating a complete graphical interface.

Applications can run alongside system tools and other programs within the same environment. Each program remains responsible for regularly returning control to CoderGirl so that the desktop, input devices, audio system, and other active tasks can continue operating.

This shared graphical environment gives SIDbox software a consistent appearance and makes it possible to create utilities, development tools, music applications, demonstrations, and games that all work within the same operating system.

CODERGIRL API DOCUMENTATION

This article provides an overview of CoderGirl and its role within the SIDbox system.

The complete CoderGirl Programmer API contains detailed information about the operating-system services available to SIDbox software, including graphics, windows, input devices, files, audio, task management, hardware access, and other system functions.

The documentation includes the public functions, structures, constants, and examples needed to begin developing applications for CoderGirl.

View the complete CoderGirl Programmer API here.

Future operating-system updates, new features, demonstrations, and development progress will be added to this project article as CoderGirl continues to evolve.
0 likes