Pascal/MT+

From EDM2
Jump to: navigation, search
Pascalmt+.jpg

Pascal/MT+ is a Pascal compiler originally introduced for CP/M in 1979 by MT MicroSYSTEMS as Pascal/MT targeting 8080 and Z80 processors and later also targeting MOSTEK 6502 processors (Under the names Pascal/MT and also as Atari Pascal). In 1981 the distribution rights were acquired by Digital Research (the company behind CP/M) who published it until the latter half of the 80s in an improved version called Pascal/MT+. Over time the system was made available in versions that had MC68000 and i8086 back ends, and ran under CP/M-68k, CP/M-86, PC DOS and RMX-86.

History

Although by now largely forgotten, Pascal/MT+ was in its day a highly influential product. Prior to the release of the system it you wanted to use a compiler on microcomputer system you were forced to use overlays due to the extremely limited working memory the systems offered. This in turn meant disk swaps as the compiler moved data temporarily from memory to a disk or tape, making the development of a compiled program a pain, you had to open an editor, write the program, then close the editor, run the text file through a compiler with associated multiple disk swaps and then repeat the same process with the debugger and linker, compiling a large program took literally hours. Keep in mind that a hard disk is on average more than one hundred thousand times slower than RAM, the fastest floppy drives were one million times slower than memory, and typically a floppy drive was much slower than that, and as for tapes; the average tape system was giving you 120 to 2,400 baud so slower still.

Most people do not realise that the bulk of commercial software for early 8 and 16 bit computers was in fact written on mini or mainframe systems, lone wolfs did indeed develop on the same systems as their software was deployed on, but they invariably used either interpreters or machine code assemblers, usually the BASIC interpreter that came with each system. But commercial concerns like Microsoft for instance wrote all their systems on a VAX, and in the UK when the CEOs of the larger game publishers met in the pub it was not the brand of their sports car that they used to boast about, but the fact that their company was developing their games on a mainframe complete with a software emulated Sinclair Spectrum and Commodore 64, while their less successful counterparts had to make do with a VAX or Data General mini computers and were resigned to perform software testing on actual hardware and not on emulators.

This changed to a degree with the introduction of BDS C, a C compiler that was written in assembly language that was so small and efficient that it allowed you to compile and link in memory, shortening your development time by factors of 10 to 100, depending on set-up. Or it should have, were it not for the fact that the BDS compiler only supported a C subset that made ports of UNIX C code very difficult, it also had an unbelievable array of bugs and bizarre design choices made by someone that had obviously no prior development expertise, that combined to make life with it anywhere from difficult to unbearable, and the company selling it had no apparent interest in providing bug fixes or improvements.

Or in other words if you wanted to program your CP/M system in C in the late 70s, you had a choice of either wasting your life on endless disk swaps, opening and closing editors, compilers and linkers or other utilities or you wasting your life writing around the seemingly endless incompatibilities and bugs the BDS C system offered. This was one of the things that drove people from C and to battle hardened interpreters and intermediate compilers such as UCSD Pascal on small microcomputer systems, despite them having considerably slower execution speed and potential software distribution and compatibility problems.

Initially a Pascal subset, Pascal/MT leveraged the fact that it was much easier to write a compiler for the highly structured Pascal language than it was for the unstructured C or classic languages like Fortran, in addition to the fact that Pascal is a much smaller language. Written in assembly language it performed the same trick as BDS C of actually performing the compilation inside available memory and unlike the BDS product, the Pascal/MT system was relatively bug free, the documentation was clear and concise, if a tad Spartan, and the company did actively develop upgrades and bug fixes. The compiler also had a built in linker that automatically linked the object code when you compiled, a novelty at the time, had a symbolic debugger, editor and offered overlay support, whereby the compiled executable only loaded into memory the portion of the code that was needed at as each segment of the program runs.

This seemingly impossible trick of having a large high level language compile inside an available heap space is something that Turbo Pascal replicated a few years later but with the addition of an IDE that further cut down the time it took to develop software with the system. But unlike the later Borland product that put out notoriously sloppy code and meant that the developers of TP actually wrote the product in assembly. Pascal/MT's code output was good enough for the company to ditch assembly language and actually rewrite the toolkit from scratch in Pascal and compile the program in itself, which lead to the release of Pascal/MT+ in 1980 that was much closer to being a full Pascal development system but did require the use of overlays for larger programs. But if you had two drives no floppy swapping was needed (it would appear that Pascal/MT+ was written with that configuration in mind).

Brisk sales and rave reviews lead to MT MicroSYSTEMS being bought by systems house Digital Research in 1981 and under their auspices the system was enhanced and ported to 16 bit architectures and to operating systems such as CP/M-68k and MS-DOS. As a testament to its popularity, although UCSD Pascal and other p-code interpreters were still more popular than Pascal compilers at the time. By 1983 there were more books available on Pascal/MT+ than on all the other Pascal compilers combined. The company also placed emphasis on standards compliance at a time when everyone was introducing their own variant of the language, the compiler had ISO 7185 support, although it should be noted that the package was never 100% ISO Pascal compatible but the main differences were due to extensions to the standard introduced by DRI rather than design defects. Some of the Pascal/MT+ additions included separate module compilation a la Modula-2, and extended arithmetic functions and data types.

Pascal/MT+ and CBASIC advert from 1987

This changed overnight in 1983 when a Danish company called Borland entered the US market with a Pascal development kit called Turbo Pascal, while the Turbo compiler itself was not of the same quality as Pascal/MT+, offered only a subset of the language and differed quite a bit from the official standard it had a somewhat unique feature in being offered for sale for only 49.95 US$ vis a vis the around 400+ US$ that the Digital Research product came in at. Although a number of companies had previously offered high level language tools for as low as 20 US$ and a number of companies offered compilers, including Pascal compilers at just under the magical 50 US$ threshold, the difference was that it was always obvious that these were inferior products that often came without editors, debuggers or linkers even, while Turbo Pascal with its IDE and unusually extensive documentation, at first glance appeared if anything to be superior to more expensive offerings.

Initially decimating the sales of Pascal/MT+ for 8-bit CP/M, a few months later the release of the DOS version of Turbo Pascal did the same for the 16-bit version of Pascal/MT+, RMX-86, CP/M-68k and CP/M-86 were too much of niche operating systems to allow the Pascal/MT+ ports of them to make up for lost sales of the system on the more mainstream OS's. Digital Research persevered with development of the system but with only limited returns, by 1985 it had been completely forgotten and DRI in a panic move responded by offering the package at the same price as Turbo Pascal for DOS, and the CP/M version for 30% less than TP, but to no avail as by that time the Borland product was too well entrenched. Despite being decidedly superior in most ways to early Turbo Pascal products the low cost version of Pascal/MT+ did not even make a dent in the marketplace and the company dropped all marketing of the system in the latter half of the 80s.

The DOS version of the tool runs fine under the DOS subsystem of OS/2 if you can find a copy and unlike other DOS full Pascal development systems like IBM/Microsoft Pascal it can be downloaded legally, the CP/M-86 version can be coaxed to run by running DOS Plus as an original DOS from floppy image and can be freely (and legally) downloaded from the net.

The SpeedProgramming Package

This is an add-on package fro Pascal/MT+ that Digital Research started offering after they took over sales of the compiler. The SpeedProgramming Package included tools intended to increase the productivity of the Pascal/MT+ programmer. The package contains:

  • Supervisory program (supplied in source code)
  • Screen-oriented text editor
  • Interactive, on-demand, syntax scanner
  • On-demand source text reformat utility
  • On-demand variable spelling check utility
  • Disk based logging of all source code modifications
  • Hard disk backup utility
  • Complete capability for users to adapt the package to any terminal.
  • Complete capability for users to add their own tools to the SpeedProgramming Package environment

Versions

CP/M-80
  • Pascal/MT+ version 5.5 - 1982
  • Pascal/MT+ Version 5.6
  • Pascal/MT+ Version 5.6.1 - 1984 - Bugfix release
DOS
  • Pascal MT+86 Version 3.1 - 1983
  • Pascal MT+86 Version 3.1.1 - 1984

Publications

  • Lars Peter Jennergren: Discrete-Events Simulations Models in Pascal/MT+ on a Microcomputer - Brookfield 1985, ISBN 9144222211

Links

Authors

  • Michael Lehman - MT MicroSYSTEMS (Original developer)
  • Digital Research (Later publisher)