5368
XL2; USB Keyboard and Mouse Support
XL200

USB keyboards and mice now work on the controller, both during startup and in normal operation.

Two paths were needed. Once the machine is running, keyboard and mouse events ride along with the data the ARM coprocessor already sends every millisecond, costing nothing extra when nobody is typing. But the machine can stop during startup and wait for a keypress, before that once-per-millisecond exchange begins — so a second path lets the startup code collect events directly until the normal one takes over, handing off without dropping or duplicating anything.

Three faults found and fixed along the way. Leftover test code on the ARM was consuming events before the main processor could read them, which made the mouse jerky. A startup flag was stored in battery-backed memory and so kept its value from the previous power-up, permanently disabling the startup path after the first boot. And diagnostic printing shared a task with keyboard handling, where it could stall it — that would have affected machines in the field with no PC attached, so it is now off by default.

Existing keyboard behaviour is untouched: the ARM produces exactly the same messages the keyboard processor has always produced, so the display software needed no changes.