This continues my Part 1 notes on the input path (keyboard) and moves to the output path: how a single character travels through cgaputc into the VGA text buffer.
Series so far
Part 1 — How the Keyboard Speaks (kbd.c, kbd.h)
0. Big
...
2025.10.24
A fun, readable tour of xv6’s keyboard path. We’ll peek at the raw scancodes, the tiny state machine in kbd.c.This is the first stop on our journey to understand where printf() ultimately gets its input and how your keystrokes travel throu
...
2025.10.23
This post documents the second step of my “write a relational database from scratch” journey: the parser.The parser turns the token stream from the lexer into a small, typed AST we can execute later.
Why a Parser?The lexer normalized raw
...
2025.10.19
This post documents the first step of my “write a relational database from scratch” journey: the lexer. The lexer turns raw SQL text into a stream of tokens the parser can consume.
Why a Lexer?Before parsing SQL syntax (SELECT…FROM…WHERE…
...
2025.10.14