NoshAPI
The FFI surfaces the nOSh runtime exposes to cartridge
KEC Lisp. One runtime binds two cart-facing contracts, and one host binary
(kn86emu) runs on the desktop and on the Pi over KMSDRM:
- Full runtime surface — the launch-cart compatibility path. This includes the ADR-0005 primitive set plus later additions for graphics, sound, CIPHER-LINE, nEmacs, snippets, saves, provenance, and panic recovery.
- Constrained cell surface — a small draw surface plus semantic input
callbacks, defined by ADR-0027 and re-pointed at the native framebuffer
renderer by ADR-0036. A cart declares
(cart-manifest :render-surface :cell)andkn86emuandkn86recrasterize its backbuffer through the shared cell framebuffer route. Cartridges cannot reach the renderer directly, clear runtime chrome, change backend modes, or read raw key events. Thekn86-nosh-tbspike runtime that first carried this tier was retired in the ADR-0036 render re-flow.
Contents
Section titled “Contents”versioning.md— FFI versioning contract: how primitive signatures evolve, deprecation policy, ABI stability guarantees.primitives-by-category.md— full-runtime primitive index grouped by category.cell-api.md— the constrained cell API, its semantic input callback contract, manifest selection, and framebuffer route.
Related
Section titled “Related”adr/ADR-0005— the canonical 54-primitive list.adr/ADR-0027— the constrained cell API decision (its display layer is superseded by ADR-0036).adr/ADR-0036— the native framebuffer renderer the cell tier draws through.adr/ADR-0007— mission-specific FFI.- KEC Lisp — the language these primitives are exposed to.
../../runtime/orchestration.md— the runtime that implements them.
Migration notes
Section titled “Migration notes”- Staleness sweep, 2026-08-29 (second pass). The host framing corrected to one binary:
kn86emuruns on the desktop and on the Pi over KMSDRM. The host rasterizes a manifest-selected cell surface through the shared framebuffer route. - Staleness sweep, 2026-08-29. The
kn86-nosh-tbtermbox2 spike runtime was retired in the ADR-0036 render re-flow. The two surfaces are re-described as two cart-facing contracts of one runtime rather than two host binaries in a spike window.