Jump to content

Pascal/MT+: Difference between revisions

From EDM2
mNo edit summary
mNo edit summary
Line 13: Line 13:
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 the portion of the code that was needed at as each segment of the program runs.
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 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 on the other hand 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 floppy drives no floppy swapping was needed.
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 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/M68k 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+ that on 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 DR 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.
Brisk sales and rave reviews lead to 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/M68k 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+ that on 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 DR 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.

Revision as of 01:08, 6 February 2015

Pascal/MT+ is a Pascal compiler originally introduced for CP/M in 1979 by 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 80's 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, the average tape system giving you 120 to 2400 baud.

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 CEO's 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 an software emulated Sinclair Spectrums and Commodore 64's, 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 70's, 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 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 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/M68k 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+ that on 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 DR 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/M68k and CP/M86 were too much of niche operating systems to allow the Pascal/MT+ ports on 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 to no avail, by 1985 it had been completely forgotten and DR 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 Turbo Pascal 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 80's.

The DOS version of the tool runs fine under the DOS subsystem of OS/2 or eComStation if you can find a copy, the CP/M-86 version can be coaxed to run by running DOS+ as an original DOS from floppy image and it and the DOS+ operating system can be freely downloaded from the net.

Links

Authors