Examples
Examples show where the labs lead: small focused programs, project seeds, and larger ports.
Focused Examples
| Program | Demonstrates |
|---|---|
hello | initialization, runtime console, process boundary |
timer_int | IRQ0 subscription and event waits |
rtc_date | CMOS ports, UIP, BCD conversion, fixed RTC |
keyboard_scan | IRQ1 and make/break scancodes |
mouse_packet | IRQ12, PS/2 enable/ACK, signed packet deltas |
vbe_rectangle | VBE mode, framebuffer map, pitch, present |
audio_tone | PCM mapping, synthesis, AC97-lite playback |
uart_loopback | UART loopback and RX interrupt |
uart_peer_sender + receiver | two hosted machines bridged by serial |
Project Seeds
| Program | Demonstrates |
|---|---|
word_processor | editor loop, cursor state, text wrapping, framebuffer UI |
music_maker | tracker grid, tempo, playhead, generated PCM |
breakout_demo | timer physics, keyboard state, collision, HUD |
flappy_bird | compact game loop, audio, replay, capture |
| Ninjix | larger port with input, graphics, audio, profiling, UART multiplayer |
Showcase Studios
Explore the seven Showcase Studios for complete project-scale tools and demonstrations: sprite and level editors, paired UART collaboration and transfer, a Pomodoro clock, an interrupt monitor, and an RTC-aware aquarium.
Each studio includes a polished 800×600 interface, exact controls, a canonical command, deterministic evidence, and reusable final-project infrastructure.
Screenshots
These are real captured frames from the included examples. They are meant to show the range of final-project directions: tools, trackers, arcade games, and larger ports.

word_processor: text editing, cursor state, wrapping, and framebuffer UI.
music_maker: tracker grid, playhead, tempo, instruments, and PCM output.
breakout_demo: timer physics, keyboard state, collision, and HUD.
flappy_bird: compact game loop, replay capture, and audio hooks.
Canonical Commands
sh
machinelab run --headless --script scripts/write_note.mlabscript \
--dump-frame build/write.ppm -- build/examples/word_processor
machinelab run --headless --script scripts/music_maker_demo.mlabscript \
--audio-wav build/music.wav --dump-frame build/music.ppm -- build/examples/music_maker
machinelab run-pair --headless build/examples/uart_peer_sender \
--right build/examples/uart_peer_receiver --max-ticks 800