Skip to content

Terminal

This page is about a library, not the Terminal (TUI) app.

Library: Highbyte.DotNet6502.Impl.Terminal

  • Render target and input context implemented with Terminal.Gui v2. Renders a system's text-mode screen as colored Unicode cells in a real terminal, and maps terminal key events to emulator input. Used by the Terminal (TUI) app.

System-specific code lives in companion libraries

This library holds only system-agnostic terminal glue. Per-system code is in the engine-plugin libraries Highbyte.DotNet6502.Impl.Terminal.Commodore64, Highbyte.DotNet6502.Impl.Terminal.Vic20, Highbyte.DotNet6502.Impl.Terminal.Apple2, and Highbyte.DotNet6502.Impl.Terminal.Oric (host config + ISystemEnginePlugin registration). See Systems / C64 / Libraries and Systems / VIC-20 / Libraries, the Apple II system overview, and Systems / Oric / Libraries.

Render

The render target (TerminalRenderTarget) is system-agnostic: it consumes the system's video-command stream (IVideoCommand) into a grid of screen cells (rune + foreground/background color), using the system's glyph-to-Unicode converter. A manual-invalidation render loop (TerminalRenderLoop) flushes only when the screen changes, so terminal repaint stays throttled and independent of the emulator frame rate. Reverse-video screen codes are handled by swapping foreground/background.

Input

A terminal input context (TerminalInputHandlerContext) and key map (TerminalKeyMap) translate Terminal.Gui key events into the emulator's host-key input. There is no audio implementation — terminals have no audio output.