History of our Compilers

Main Menu | CPOC | C68 for QDOS | History | Feedback

The QDOS saga

The next major thrust came about with the release of C68 on the QDOS platform. QDOS is the operating system used by the Sinclair QL and is highly under-rated. It has been ported to a number of alternative hardware platforms and has a small but loyal following. It is still one of my favourite operating systems.

A QL software house called PDQL had decided that it would like to bring to the market a new C compiler, and gave it the working name of PDQ C. This was to be a full C development environment right from the editor through to the required runtime libraries and was intended to act as replacement for QLC (a QL version of Lattice C) which by then was no longer being actively marketed or supported on the QL. PDQL started advertising PDQ C product from late 1989. Although this product was never made generally available in the marketplace, it was not completely "vapourware". PDQ C was in fact ready by about December 1989 if licensing problems could have been sorted out.

The work to produce PDQ C had been done by Jeremy Allison. He had done this out of interest, and not as a result of a particular commission from PDQL to produce such a product. The reason that there were problems with the licensing was that the PDQ C product was based on Lattice C. PDQL never proved to the satisfaction of Jeremy Allison that they had the rights to distribute a product containing Lattice C, so the final product was never passed to PDQL.

This port of Lattice C was interesting in that it was done by writing an emulator for the QL that allowed it to emulate part of the Atari ST operating system. The details do not matter too much (if you are interested I have written a separate description of this emulator), but suffice to say that it:

The real improvement that PDQ C was going to have over QLC (and the area needing the most work) was that the C library had been extensively re-written. Some of the implications of this improvement in the C library were: I got involved late in the project to help with the testing and the last stage of work on the libraries. The development had by now progressed until it was largely completed. Unfortunately, as mentioned above, PDQL never completed the necessary licensing arrangements for Lattice C, and eventually PDQL went into receivership. Jeremy decided to wash his hands of the PDQC development and put the work he had done to date into the Public Domain.

This meant that there was a largely complete C system, but that it depended on a core component - the Lattice C compiler - that was not public domain., and this was where C68 came into the picture. It was a compiler for which the source was publicly available and that could be freely distributed. This could replace the Lattice C component of PDQC. Lattic C also had a built in pre-processor facility, and for this the public domain DECUS pre-processor (later the GNU one replaced DECUS) was ported to do the job. The product was released as "C68 for QDOS". This has become the dominant C compiler within the QDOS marketplace - and in fact a number of people have credited the arrival of C68 on the QDOS scene as being one of the factors that has allowed QDOS to survive as it allowed quality software to easily be ported from many other environments.

The "C68 for QDOS" product has gone through a number of major releases, and minor upgrades between those releases. The idea was that we changed the major version number when there might be object code incompatibilities, and the minor number was incremented for less severe changes. The major releases broke down as follows:

The above program was a major driving force for developments in the compiler itself. It gave both an incentive to make improvements, and also an eager user population willing to try things out. The major developments that took place in the compiler program itself during this phase is give below. Some developments were in the front-end syntax analysis phase of the compiler and this became available in all variants with no further work, while others were in the code generation side and thus specific to the target processor (which for this period was mainly the 68000 family):

By late 1994 the QDOS release of C68 was stable and all the immediate concerns had been addressed. While work has continued within the QDOS implementation it has tended to focus on aspects of the QDOS development system that do not concern the compiler itself. However any improvements to the compiler are fed back into the QDOS based releases very rapidly as it provides a good basis for us to get early feedback on any new features.

It was about this time that the Psion 3a and CPOC started to play its role in the story.

Main Menu | CPOC | C68 for QDOS | History | Feedback