Mailbox Seal

A host process shares an eight byte frame with this board through a mailbox in SRAM. It writes the frame, then raises a ready flag so the firmware knows the frame is complete. The firmware must wait for that flag, compute a keyed rolling seal over the eight frame bytes, and report it.

The seal is computed by folding each byte into a running value:

seal = key for each byte b in the frame: seal = (seal * 31 + b) mod 65536

The starting key is fixed for this device. A correct run prints one line, SEAL:<four hex digits>, then DONE on its own line.

The host can place any frame it likes, so the seal is never a fixed value: the only way to report the right seal is to read the mailbox the host filled and run the recurrence over those exact bytes.

The starter reports a seal for every frame, but it is always wrong. Find why and fix it.

Loading the interactive arena.