Turbo Vision 2.0 – a modern port

· devtools coding · Source ↗

TLDR

  • magiblot/tvision is a cross-platform C++14 port of Borland’s 1990s TUI framework, with Unicode support and no platform #ifdefs required.

Key Takeaways

  • Targets source-level backward compatibility with original Turbo Vision apps, including Borland C++ RTL compatibility headers.
  • Unicode support was retrofitted into the existing architecture in mid-2020 using UTF-8 via setlocale, avoiding wchar_t or TCHAR entirely.
  • Ships widgets out of the box: resizable overlapping windows, pull-down menus, dialog boxes, scroll bars, input boxes, radio buttons.
  • Builds as a static library via CMake; available in vcpkg; Linux requires libncursesw, optional libgpm for console mouse support.
  • No stable releases; maintainer recommends tracking latest commit and reporting upgrade issues.

Hacker News Comment Review

  • Commenters confirm 1993-era Turbo Vision source code compiles and runs with minimal changes, making this a genuine compatibility preservation project, not just a spiritual rewrite.
  • The ecosystem is broader than this repo: parallel ports include kloczek/tvision in C++, the FreePascal/Lazarus Pascal port, and a Rust port; builders should evaluate the landscape before committing.
  • Build tooling friction drew pointed criticism: the cmake workflow contrasts sharply with the original F9-to-binary experience, which commenters viewed as a regression in developer ergonomics.

Notable Comments

  • @vintagedave: Building a .NET wrapper on top of this repo running on macOS, adding higher-level API and layout on top of the palette layer.
  • @pjmlp: Clarifies lineage: original Turbo Vision was Turbo Pascal 6; the C++ port came later, making tvision a port of a port.
  • @bni: Flags that the original block-cursor mouse behavior on real text-mode screens is lost in terminal emulation; asks if GPM on high-res Linux text mode restores it.

Original | Discuss on HN