# Keyboard on metal — polled universal input

## What was wrong

Your machine's keyboard is USB. OS64 read the keyboard only via the PS/2 IRQ
(IRQ1). Proven by testing QEMU with a USB keyboard vs PS/2:
  PS/2 keyboard: 11 scancodes arrive (SH:0B) -> works
  USB keyboard:   1 stray byte  (SH:01)      -> dead

## What I changed

The scancode ring is the universal input boundary. It is now fed by POLLING the
8042 controller (port 0x60) every tick, instead of depending on IRQ1 firing.
- IRQ-independent: catches keystrokes even when IRQ1 never fires.
- No lag: polled and translated in the same tick.
- PS/2 still works (verified: types HELLO cleanly, no regression).

## Try this on your NVS 295

1. In BIOS: enable **USB Legacy Support / USB Keyboard Support / Emulation**.
   This makes the BIOS place USB-keyboard bytes at port 0x60 — which the poller
   now reads. On many real BIOSes this is enough.
2. Or use a **PS/2 keyboard** (or USB-to-PS/2 adapter) — that path is proven.

## Honest limit

If your BIOS delivers NOTHING to port 0x60 after boot (pure USB, no legacy),
no port read can help — that requires a real USB HID driver (enumerate the USB
controller, poll the HID endpoint), which OS64 lacks. Tested: QEMU pure-USB
(-device usb-kbd) delivers nothing to 0x60, confirming this boundary. If your
BIOS is like that, tell me and I'll build the USB HID driver.
