Parse the P6 header explicitly, keep every raster byte, and reject
non-positive dimensions, maxval other than 255, and mismatched raster
lengths. Add scripts/test-qemu-ppm.py.
The boot menu uses a column layout on a framebuffer whose width/height
is below [ui] portrait_below (default 800 thousandths): the vector logo
on top, numbered entry cards at the bottom and wrapping status lines.
[ui] layout forces landscape or portrait. qemu-run.py gains
--display-size to test tall panels, and smoke.sh a layout scenario.
The PPM pixels were split off the header with split(maxsplit=4), which
drops leading bytes that are ASCII whitespace. A background starting
with 0x0B shifted every channel and tinted the screenshot. Take the
pixels from the end of the file instead.
Add English and Simplified Chinese documentation under docs/, covering the boot chain, build, boot, debugging, porting, drivers, XNU 4 KiB pages, macOS and device notes. Add the Pages workflow and CNAME. Rename the boot manager from CrabApple to UniXNU across the package, symbols, paths, configuration file and logs. Update README with the documentation badge and CONTRIBUTING link.
Add transparent dark and light SVG logos under assets/ and show them in
the README with a picture element so they follow the page theme. The
wordmark is a traced outline; gen-logo.py now emits both variants.