Skip to content

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) and kn86emu and kn86rec rasterize 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. The kn86-nosh-tb spike runtime that first carried this tier was retired in the ADR-0036 render re-flow.
  • 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.


  • Staleness sweep, 2026-08-29 (second pass). The host framing corrected to one binary: kn86emu runs 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-tb termbox2 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.