Skip to content

Lab track ​

The lab track teaches machine-facing C through small device-shaped exercises. Each lab has an overview of the device model, implementation tasks with intentional gaps, and checks with commands and external reading. Every lab also explains the controller protocol and its modern equivalent.

Before you start ​

Install lcom-ng, then create a workspace:

sh
lcom-ng setup student
cd student
make

Run lab checks from the workspace root. Commands that name build/examples/ or scripts/ use the repository checkout. A generated workspace builds build/student_project and keeps its scripts under .mlab/scripts/.

Sequence ​

LabDevice ideaCheck
Lab 1bit masks, CMOS/RTC, BCDlcom-ng test rtc
Lab 2PIT divisors and timer IRQslcom-ng test timer
Lab 3i8042 keyboard and scancodeslcom-ng test kbd
Lab 4PS/2 mouse packetslcom-ng test mouse
Lab 5VBE framebuffer and spriteslcom-ng test graphics
Lab 6AC97-lite PCM audiolcom-ng test audio
Lab 716550 UART and serial protocolslcom-ng test uart

Method ​

  1. Read the overview.
  2. Run the failing starter test.
  3. Implement the requested functions.
  4. Keep reusable helpers small.
  5. Produce one artifact: test output, screenshot, WAV, trace, or replay.

TIP

Fresh stubs are expected to fail. The first failure is the starting point, not evidence that setup is broken.

Course/docs licensed CC BY 4.0. Code licensed MIT.