14

TurboVision was a library by Borland for developing TUI's (Text User Interfaces). It was included with their C++ and Pascal compilers.

Were there any other TUI libraries that supported multiple compilers (Borland/Watcom), and maybe different OS'es (DOS, Windows, OS/2)?

The only thing I found was a library called VIDMGR (https://github.com/zoomosis/vidmgr), but this one is more low-level, and doesn't provide any real widgets I think.

5
  • 4
    I don't think it was ever used much on DOS/Windows/OS/2, but the curses C library is cross-platform, and also has ports to those OS's.
    – dirkt
    Apr 7, 2019 at 6:52
  • 3
    Something to be aware of is that TurboVision itself did not support multiple compilers or platforms. There was a Pascal version written in Pascal and a separate C++ version written in C++. My recollection is that TurboVision is a productized version of the framework Borland used internally to develop the TP6 IDE. Which explains a bit about why TurboVision was as powerful and well done as it was. (Microsoft had a similar CUA library they bundled with BASIC 7.0, and it was not nearly in the same league.)
    – mschaef
    Apr 8, 2019 at 14:19
  • @dirkt TV could handle full window management. Curses is just an enabler. Apr 8, 2019 at 16:11
  • 2
    Also at that time there was no incentative to be compiler agnostic. People were happy just to have SOMETHING. Borland was cheap for what you got. Apr 29, 2020 at 12:00
  • Also TurboVision for C++ and for Pascal to my understanding was two separate implementations, not the same library being linked in. May 2, 2020 at 23:14

10 Answers 10

18

This is not exactly a retro answer:

The modern FreePascal compiler which is available for a lot of platforms (some even considered retro, like Amiga and PalmOS) comes with a library called FreeVision, which is mostly API compatible to Turbo Vision and can be used to port old TurboVision applications to platforms different from pure DOS/IBM PC.

The OpenWatcom compiler includes a TUI library it uses for it's own IDE and debugger.

ncurses for Unix-like OSs can be considered a TUI library as well, it supports forms, windows and menus

2
  • "whelp cpplib" doesn't show me any classes related to TUI. Any idea what the header files were for this library? Apr 6, 2019 at 23:47
  • Note that, as far as I can tell, "mostly API compatible" means that they haven't reimplemented TColorDialog (mentioned on the wiki) or TTerminal and TTextDevice (something I discovered by experimentation)... and possibly other things I didn't try. Their approach to API documentation is so non-automatic that, for FreeVision, the official documentation is "go on AbeBooks and buy a copy of the Borland Turbo Vision reference or do something else similar".
    – ssokolow
    May 2, 2020 at 21:20
10

In the early nineties, magazines carried adverts for a number of TUI libraries, many of them supporting multiple compilers and/or platforms. Examples include Vermont Views, any of the libraries in the “C Screens” section of the Programmer’s Paradise catalog, etc. However none of these captured a large market share, as far as I’m aware, with the possible exception of Turbo Power’s library and C-scape (which supports text and graphics, and is cross-platform).

There were some cross-platform TUIs provided by programming environments which were cross-platform and widely used, at least for bespoke software used in professional settings: the various form generation tools used by databases such as Fox Pro, dBase... Some of these were also available as TUIs or GUIs depending on the platform (e.g. Fox Pro for DOS and Macintosh).

While it doesn’t qualify as either multi-compiler or cross-platform, Visual Basic for DOS included a distinctive TUI library which was briefly popular.

3
  • What popular applications were written in VB for Dos?
    – dashnick
    Apr 7, 2019 at 3:26
  • I’m not sure there were any popular commercial applications written in VB for DOS, but I remember seeing a few shareware programs and a number of bespoke applications. Apr 7, 2019 at 19:18
  • The old MS-DOS FoxPro also had SCO UNIX, Linux and FreeBSD versions at the time so you could conceivably take a project created in one and build it on another,
    – Alan B
    Apr 30, 2020 at 8:19
8

There is the famous curses library, originally written for Unix, and its offsprings - most notable in this context PDCurses, available for MS-DOS, MS Windows, OS/2, Unix (X11 and SDL), and on MS-DOS supporting at least Turbo C and Microsoft C.

1
  • Thanks. I did not know a Curses library was available for DOS/Win/OS2. I'll take a look at this. Apr 7, 2019 at 8:01
6

Depending on the intent of the question, the requested TUI library that works on different platforms and compilers, and is similar to Turbo Vision might be Turbo Vision itself, or more specific, a port of Turbo Vision.

Borland put the C++ sources of Turbo Vision into the public domain, and one of the developments caused by this is a port that runs on may platforms and should work with GCC, MSVC, Watcom and Borland (porting efforts licensed under GPL), another one is an older port used as base for the GPL port, aimed at FreeBSD (porting efforts licensed under 2-clause BSD ("the FreeBSD license")).

4
5

There was also the TesSeRact Screen Designer that I used in the 90s on some projects. https://www.pcorner.com/list/C/TDT-1.ZIP/INFO/

1
  • Regarding the comment by riffraff169 concerning the TesSeRact Screen Designer, I worked with that in the early 90s. A bit of interesting history is that the text windowing code (TCXL) in that library was actually done earlier by Mike Smedley. I believe Chip Rabinowitz (TesSeRact founder) bought the rights to TCXL from Mike. pcorner.com/list/C/TCLX33.ZIP/TCXL.DOC
    – guyr
    Aug 21, 2020 at 7:54
3

Back in April, 1991, Al Stevens started a project in Dr Dobbs called D-Flat, meant to be a C equivalent for the C++ Turbo Vision around at that time (among others).

Here's an image of it in action, running the MemoPad application that was included as an example of what it could do:

enter image description here


And another, from an earlier version but showing more control types:

enter image description here


The series of articles ran all the way through to October 1992, when he started work on D-Flat++. From that first "C Programming" column in April, this is the (abridged) announcement:

My excursion into event-driven programming and my analysis of TurboVision, Zinc, and Mewel, led me to a conclusion. C programmers need an efficient way to put the IBM Systems Application Architecture (SAA) Common User Access (CUA) into their DOS text-mode programs and into programs developed for other, non-PC platforms.

If TurboVision, a lovely new part of Turbo Pascal 6.0, finds its way into Turbo C, it will no doubt be a C++ additive because of its strong orientation to classes. Users of the C component of Turbo C++, Turbo C 2.0, or other C compilers will not benefit from TurboVision.

The Zinc library is likewise a Turbo C++ product. Mewel is a good solution for C programmers, but only if you are developing for the high-end computers, ones fast enough and with enough memory to support Mewel programs, and only if you want most of the features supported by the Windows CUA interface.

Over the next several months I will be publishing a new "C Programming" column project, which will be a C library that implements a subset of CUA in a text-mode environment.

D-Flat will provide the CUA interface in an event-driven architecture with the hardware drivers developed separately. It will support applications windows, child document windows, menu bars, pop down menus, dialog boxes, buttons, edit boxes, list boxes, scroll bars, context-sensitive help, and other CUA things. It will use the C compiler's preprocessor as a resource compiler. The version published here will run on the PC and will compile with as many popular compilers as I can possibly address within the confines of this column and the time I have to give to it. The hardware-dependent and compiler-dependent code will be separate from the rest of the library, and it will be small in relation to the rest of D-Flat.


As you can see, it also mentions a couple of other possibilities if D-Flat is not to your liking.

It appears to have been made available on Github but, even if that disappears, you can probably find it by searching around for dflat20.zip.

The ZIP package has make files for Watcom, Borland, and Microsoft, and the README.DOC file contains the following snippet if you're concerned about licensing issues (my emphasis):

The source files in the DFLAT archive constitute the D-Flat windowing system. This is public domain code. You may use it in your applications without restriction. You may freely distribute source code. It would be nice if you would give credit to Dr. Dobb's Journal as the original publisher of the source code.


Our colleague here, ssokolow, has graciously collected various DFlat packages and put them up on archive.org for easier accessibility.

9
  • 1
    Great find @paxdiablo I have dim, vague memories of that project. Feb 18, 2022 at 15:42
  • 1
    Probably a good idea to mention that the README.DOC inside dflat13.zip says "This is public domain code. You may use it in your applications without restriction." Also, according to README.DOC, Watcom 8 didn't support inline assembly, so it's left to you to port the snow suppression code for CGA if you're using it with Open Watcom C/C++.
    – ssokolow
    Feb 18, 2022 at 16:24
  • I was rooting around in a simtelnet archive I grabbed a while ago and noticed dflat15.zip (November 1992), dflat386.zip (October 1994, version 16 according to the README), and dflat_4g.zip (February 1995, version 20 according to the README). I'll toss the whole set, including dflat13.zip up on archive.org once they're back online.
    – ssokolow
    Mar 4, 2022 at 14:58
  • Done. They're up on archive.org now. If I gain access to any other versions, I'll add them to that, so feel free to poke me about it.
    – ssokolow
    Mar 4, 2022 at 20:25
  • @ssokolow: The one I found, dflat20, was given as a link in the answer (though my original find was for dflat13. Since dflat20 sounds more recent than dflat15 , I'm not sure if you want to add it to your archive as well? It may just be the dflat_4g you already have.
    – paxdiablo
    Mar 4, 2022 at 20:35
1

I can't find any retrolinks for it, but my Googlefu isn't always all that strong. I do, however, remember using a cross-platform library called C-Worthy; the company I was working for at the time was doing development on both MS-DOS and CTOS, and we'd ported C-Worthy to CTOS so that we could write once, compile on both platforms, and release the company product on both platforms simultaneously.

1

There are three such libraries reviewed in this 1987 edition of BYTE magazine., namely C-Worthy, Windows For Data and Vitamin C.

1
  • 2
    Oh, now I recall that I saw an ad for Vitamin C even in a Soviet (I think it was still Soviet in the first half of 1991) magazine named Computer Press
    – DmytroL
    May 5, 2020 at 7:44
0

Greenleaf used to have a fantastic C, then later C++ based suite of libraries. Many of them were cross platform. Greenleaf Database worked with many different XBase file formats. DataWindows came out long before Microsoft Windows, but the evil empire managed to get a Windows trademark and sent weekly threatening letters to the small company in Texas. (I think they were in Texas.)

http://www.edm2.com/index.php/Greenleaf_Data_Windows

From here: https://www.drdobbs.com/new-products/184402584

Greenleaf Software, Inc. began shipping Greenleaf DataWindows v3.0, bundled with the screen designer, Greenleaf Make-Form. Single-user licenses for Greenleaf DataWindows for DOS, UNIX, or 386, are available for $549, and include source code and MakeForm. DataWindows v3.0 adds translucent shadows, device independence for many video modes (including VESA support) and mouse use in data entry and menus. The 386 version adds support for Rational Systems' 386 DOS/4G and the DOS version adds support for Phar Lap's 286 DOS extender. Dialog boxes now have controls including push buttons, check boxes, and radio buttons. New data types, mouse support and more flexible entry and exit points support data entry design. MakeForm allows programmers to "paint" a form and define its attributes in a WYSIWYG fashion.

I used to own this. Threw it out a few years ago during an office cleaning binge. Kind of wish I had it now.

6
  • Pedantically, the link you provide says that Data Windows "had originally been released in 1987". Microsoft Windows was first demonstrated in public in 1983 and first released in 1985.
    – Tommy
    Apr 30, 2020 at 1:57
  • I was using it long before Windows came out. That said, I had many of their libraries and was on whatever they called their "developer network" so could have had Alpha-Beta releases initially. Apr 30, 2020 at 18:06
  • 1
    @user3450148 - I can't see any references to it online prior to '87, and given that most of the well known computing magazines and journals from the early 80s have been thoroughly scanned and archived, this seems reasonably conclusive that it just didn't exist earlier than that. Perhaps you were just unaware of Windows until it became more popular (mostly triggered by the wider availability of 286 and 386 machines around 88-89)?
    – occipita
    Apr 30, 2020 at 21:56
  • No. I was programming well before that. The first PC I owned was an NCR PC-4. It would not surprise me if you didn't find any references to it prior to when you say. Greenleaf put early beta versions in the field to prior customers for testing. Unlike today's hack on the fly AGILE development, these things could be in beta for several years. We were pulling them down off a BBS from them. May 1, 2020 at 22:05
  • No. I was programming well before that. The first PC I owned was an NCR PC-4. It would not surprise me if you didn't find any references to it prior to when you say. Greenleaf put early beta versions in the field to prior customers for testing. Unlike today's hack on the fly AGILE development, these things could be in beta for several years. We were pulling them down off a BBS from them. I bought an (AST 286 premium) [astmachines.com/] when they first came out. Nobody actually bought Windows until 3.1. MS didn't get Monopoly on name until Janet Reno in 98 May 1, 2020 at 22:13
0

There was and is a GUI toolkit called Winteracter (http://winteracter.com/) for multiple Fortran compilers across Windows, *NIX and MacOS.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .