Turbo Pascal

A Pascal development system for DOS, CP/M and later MS Windows that evolved out of a Pascal compiler for the British NASCOM computer called COMPAS Pascal that was also sold as Poly Pascal for CP/M x80/Z80 and x86 systems. There never materialised an OS/2 version of Turbo Pascal or the follow on product lines of Borland Pascal or Borland Delphi even though IBM actually paid Borland to ship a 32 bit version for OS/2 v2. However a number of tools, libraries and hacks were available that allow the Borland compilers to put out OS/2 compatible 16 and 32 bit code that then was linked with IBM's OS/2 linker and could be executed as OS/2 programs and tools and libraries to access the OS/2 API.

History
Turbo Pascal is important as an informal standard, it created something of a revolution in the industry when it was introduced even though it was a Pascal subset rather than a full Pascal compiler like most of the competing products. But the original list price of 49.95 US$ alongside a built in IDE (a novelty at the time) and extremely fast compile times due to the single pass compilation, made the system wildly popular and a de-facto industry standard on the IBM PC. It was something of a bait-and-switch product though, as features supplied as standard with other implementations were sold as add-ons by Borland, 8087 support was an extra 89.95 US$ for instance and when you added up all the available add-ons you had reached, and in some cases exceeded the price point of products like Microsoft Pascal that in addition offered features not available at all in the Turbo Pascal ecosystem.

The fact that the code quality and execution speed of programs developed in the system was always way behind the competition that used two to four pass compilers made no difference to its intended market, most programmers that bought the system had previously been working with slow interpreted languages such as Basic, FOCAL, PILOT and COMAL, making the TP code appear fast to them. The slowness of the TP code created quite a healthy market for third party optimisers and alongside the large number of interpreted UCSD and ETH derived Pascal systems available in the early days of the PC however gave rise to the incorrect perception amongst PC coders that Pascal and related languages such as Modula-2 and Oberon were somehow slower than languages in the C family.

This was demonstrated in a somewhat emphatic fashion in 1989 when Borland ported the Surpass spreadsheet to Turbo Pascal 5.5 in order to release it as Quattro Pro. Although Surpass had been written in a rather amateur in-house Modula-2 development system called ITC STS-XP and the company spent considerable time and money re-factoring the code to be faster during the TP port, the end result was actually considerably slower than what Surpass had been and something of an embarrassment to the company as the port delayed the release of the product by a year. Note that a number of sites including Wikipedia state that Quattro Pro was ported to C but that is incorrect, the Windows version of Quattro Pro was written in C++, not C, but it was a completely different codebase.

Note that early versions of Turbo Pascal did not support overlays (for DOS, they were supported for CP/M), numeric co-processors and had very limited memory model support as they only compiled to .com files and were thus bound to 64k executables. The company would sell you add-on products for 8087 support however. Turbo Pascal 6 and higher however do contain a better than average numeric co-processor emulator for systems without x87 co-processors, however little that will help you in the present day. With version 4 of TP the company finally changed the memory model to Huge, but as before only supported one memory model meaning that you had to literally port code from older versions of the software.

Borland did from time to time claim that their Borland/Turbo Pascal and Delphi systems were ISO Pascal compatible, they are not and have never been, in fact their Object Pascal implementation is not full either and has started to diverge from other OP implementation to such a degree that it is prudent to talk about "Borland Object Pascal" rather than Object Pascal per se.

See also: Borland Pascal

List of Turbo Pascal compatible tools
A list of programming tools that offer full or partial compatibility to the Turbo Pascal or Borland Pascal. Note that some of the products were primarily standard (ETH, UCSD or ISO) Pascal tools that offered some compatibility features or libraries as aids to port Turbo Pascal programs to their systems while other tools were straight clones of the Borland systems, usually with added capabilities on top of the ability to generate OS/2 compatible programs.


 * Compilers
 * Cabot UCSD Pascal (TP & BP)
 * Free Pascal (TP, BP & Delphi)
 * NDP Pascal (TP & BP)
 * Pecan UCSD Pascal (TP)
 * SpeedSoft Speed-Pascal/2 (TP & BP)
 * Stony Brook Pascal+ (TP)
 * TMT Pascal (TP, BP and some Delphi)
 * TopSpeed Pascal (TP)
 * Virtual Pascal (TP, BP & Delphi)


 * Utilities
 * Turbo Pascal Lex/Yacc - Parser generator

Versions

 * 1.0 (Nov 1983)
 * 2.0 (May 1984) - Introduced automatic overlays in CP/M. Available for CP/M-80, CP/M-86 and DOS
 * 3.0 (Sep 1986)
 * 4.0 (Dec 1987) - introduced units
 * 5.0 (Oct 1988)
 * 5.5 (May 1989) - Object-oriented extensions - Available as a free download from Borland and now Embarcadero.
 * 6.0 (Nov 1990) - includes Turbo Vision
 * 7.0 (1992)
 * 7.01 (1993) - bugfix, still needs T7TplFix on faster machines


 * Turbo Pascal for Macintosh
 * 1.0 (1985)
 * 1.1 (Nov 1987)


 * Turbo Pascal for Windows
 * 1.0 (1991) - Update: Windows 3.1 Compatibility Files (1992)
 * 1.5 (1992)

Publications

 * Tom Wadlow: Turbo Pascal - A review from BYTE Magazine vol 09-07, July 1984, pages 267~278
 * Bob Swart: Borland Pascal Efficiency
 * Kris A. Jamsa; Steven Nameroff: Turbo PASCAL Programmer's Library: Version 4 2nd edition – Osborne/McGraw-Hill 1988, ISBN 0-07-881368-9
 * Kris A. Jamsa: Turbo PASCAL Version 4: Pocket Reference - Osborne/McGraw-Hill 1988, ISBN 0-07-881379-4
 * Andrew C. Staugaard Jr.: Structuring Techniques: An Introduction Using Turbo Pascal - Prentice Hall 1988, ISBN 0-13-853425-X

Author & publishers

 * Anders Hejlsberg (Original author & main developer)
 * Poly Data (Original publisher)
 * Borland

Links

 * Patch for Turbo Pascal 5.5 - Including the later freeware version.
 * Turbo Pascal Compiler Internals
 * Turbo Pascal V3 Reference Manual from a Bitsavers mirror.