vbdos
MS Visual Basic for DOS
Keywords
The final and arguably the most advanced text-mode BASIC developed by Microsoft, Visual Basic for DOS remains far from being as popular and remembered as its siblings QuickBASIC and the Windows-based versions of Visual Basic. Superficially and out of context, one may surely wonder why.
VBDOS was released in September 1992 with a pleasant and colorful text-based IDE which remains unique 30 years later, and quite different from those of QB and PDS. The same windowing library was available to programmers under an event-driven programming model gently blended to the familiar QuickBASIC syntax and structure.
Despite the name, VBDOS is quite unique and can hardly be considered a version of what most people came to know as Visual Basic. It was much more related to QuickBASIC and PDS and might well have been released as QB 5.0 or PDS 8, according to Tom Button, who wrote VBDOS' first specification as the program manager of character-based products at Microsoft, in an exclusive interview for everyBASIC in August 2023.
"We were switching to event driven windows and VBDOS was the last deliverable to merge those worlds", said Tom.
This leads to some possible reasons why VBDOS never got past its 1.0 version. By the early 1990s, in the professional development field for DOS, QuickBASIC and PDS already faced fierce competition from tools such as Borland Turbo Pascal and Nantucket/CA Clipper. And, most of all, Microsoft had been surfing on giant waves of success with Windows 3.0 (1990) and 3.1 (March 1992). With great fanfare, VB 1.0 was released 17 months earlier than VBDOS and its 2.0 version came in November 1992. The public was enamored with fully-graphical environments. Small and big software houses saw and took the opportunity brought by Windows VB.
Microsoft's marketing and technical shift to Windows was obvious, and Tom's "Embedded Basic" team, who had been responsible by the QuickBASIC engine, was put in charge of Visual Basic for Windows' engine up to its 3.0 version. Tom eventually became the product manager of all Microsoft development tools and General Manager of engineering for Visual Studio.
Technically, despite being fully hand-written in Assembly, VBDOS was a bit too much for the memory constraints imposed by DOS — something that already had been an issue for users moving from QB 4 to QB 4.5. Sales figures and information about VBDOS discontinuation had been not found by the time of this writing. But the lack of a following and loyal community as those of QB and "classic VB" users is telling.
"Not sure they could even find the source code for it in the boneyard", says Mr. Button about an hypothetical possibility of VBDOS being open-sourced by Microsoft, like happened to GWBASIC. But he shows sympathy with the idea of a more modern successor to his brainchild: "Linux console apps could have benefited a lot from that kind of integration of text windows and event driving model to bind to easy to write BASIC code."
Special thanks to Tom Button, Tim Huckaby, Carl Franklin and Ethan Winer. Information about VBDOS is surprisingly scarce after all those years.
Where it is/was used
The IBM-PC with MS-DOS and similar operating systems (DR-DOS, FreeDOS, etc.) is apparently the only platform where VBDOS could be used on.
Environment and usage
VBDOS had an innovative (and still unmatched) text-mode IDE built with the same windows and controls which could be used in programs built with it. The image above shows its Form Mode, where application interfaces could be created. They were saved to files with a .FRM extension. Back to the IDE's Code Mode, it was possible to "attach" event handling subroutines to each of the interface's controls.
As part of the Form Mode goodies, a menu editor was available.
Unlike its Windows siblings, VBDOS is able to generate complete executable files. Having to distribute a separate runtime module along was just an option.
Like QuickBASIC, the IDE allowed for a program to be tested and debugged in "interpreter mode".
Noteworthy characteristics
The biggest thing about VBDOS was undoubtedly its bundled windowing library. With native mouse support, something severely missed on QuickBASIC programs.
As Tom Button explains, the library was derived from the same one used in Microsoft Works for DOS. Inside Microsoft, it was known as COW, for "Character-Oriented Windows", and it was a development from the previous TWIN (for Text Windows) used in QuickBASIC's IDE for example.
Not without its problems, both the IDE and the programs written with VBDOS struggled with the 640k "low memory" barrier imposed by DOS. "The event runtime was larger than most runtimes on DOS, so programmers had to be careful with their memory use and code size. And we didn’t have Windows' virtual memory managers to work with", recalls Tom.
Extensions
Many of the numerous libraries and tools made for QuickBASIC are said to work with VBDOS. Specific VBDOS components and libraries are not so common, but will be added here when known.
Curiosities
"VBDOS took up a lot of RAM, leaving like 100K for your code. It was a pig", remembers Carl Franklin, who worked at Crescent Software, one of the largest 3rd party suppliers of components and tools for Microsoft BASICs of this era.
QuickBASIC legend and writer Ethan Winer, also from Crescent Software and Full Moon Sofware, remembers that string operations were remarkably slow in VBDOS: "It supported far strings only, with no option for near strings".
Tom Button shows a lot of pride of the team he had behind QB, VBDOS and VB. "Our guys were Assembly craftsmen… all team first, not self-promoters". Technical leader Len Oorthuys, Jonathan Zuck and Tim Patterson (yes, the author of what came to be MS-DOS) were some of the 20 or so staff members. While mostly any material about the history of VB and VBDOS points to another direction, Button assures that this team wrote VB "from near scratch" and the biggest influence to VBDOS was the rather forgotten HyperPAD application from Syracuse, NY-based Brightbill-Roberts.
Related to...
Influenced by
- Brightbill-Roberts' HyperPAD - Not a BASIC implementation, this 1989 program inspired by contemporary hypermedia tools such as Apple Hypercard and Roger Wagner's HyperStudio used its proprietary PADtalk scripting language behind text-mode buttons, menus and windows. It was admittedly "experimented" by the QuickBASIC development team, and apparently a cooperation with its developers led to VBDOS.
- Microsoft QuickBASIC - More than an influence, QB lent its BASIC engine and structure to VBDOS.
Influence for
Unknown so far.
Versions and successors
Visual Basic for DOS had only a 1.0 version, but magazine ads of the time mention the existence of a "Professional" version which included "an optimising compiler, database ISAM, charting and presentation graphics toolkit, custom control development kit and MOVE overlays". 1)
As of this writing, no similar BASIC implementation was known.
References
- LEINECKER, Richard C. HyperPAD Review. COMPUTE! Magazine, issue 115, pg. 104. December 1989. Available at https://www.atarimagazines.com/compute/issue115/406_1_REVIEWS_HYPERPAD.php by 2023-11-03.