Turbo Vision 2.0 – a modern port

· devtools coding · Source ↗

TLDR

  • magiblot/tvision is a cross-platform C++14 port of Borland’s Turbo Vision 2.0 TUI framework, adding Unicode support while preserving source-level compatibility with 1990s TV applications.

Key Takeaways

  • Builds as a static library (libtvision.a) via CMake on Linux/Windows (MSVC, MinGW) and still compiles with Borland C++ 4.52 for DOS/Win32 targets.
  • Unicode support was retrofitted into the original architecture between July-August 2020 using UTF-8 setlocale, avoiding wchar_t/TCHAR entirely and keeping char arrays throughout.
  • Ships built-in widgets: resizable overlapping windows, pull-down menus, dialog boxes, scroll bars, input boxes, checkboxes, radio buttons, plus event dispatching and fullwidth Unicode rendering.
  • Platform quirks are handled internally: bright background colors on Linux console require setting the blink attribute, which Turbo Vision does automatically so application code stays clean.
  • Available via vcpkg (./vcpkg install tvision) and as a CMake submodule with find_package; no stable release yet, maintainer recommends tracking latest commit.

Hacker News Comment Review

  • Commenters with hands-on experience report that pre-1993 TV source code compiles and runs with minimal changes, validating the backward-compatibility goal; one commenter built a Turbo Debugger-style LLDB frontend with it.
  • An alternative TUI framework, Final Cut (github.com/gansm/finalcut), was surfaced as a comparable modern option worth evaluating alongside tvision.

Notable Comments

  • @lepicz: successfully used tvision to build an LLDB debugger frontend mimicking Borland’s Turbo Debugger; notes a Scintilla-based internal editor with syntax highlighting is available.
  • @jgord: frames Turbo Vision as a “cultural treasure,” citing Borland’s compiler performance and documentation quality as formative for a generation of builders.

Original | Discuss on HN