C68 for QDOS

Status

The current release of "C68 for QDOS" that is on general circulation
is 4.22f. There are no bugs outstanding on this release of which
we are aware. This release was made generally available at the end of June 1997.
It is not a major "new facilties" release but merely a maintainance release that gets
into circulation a number of improvements that have been available separately.

The following give you some idea of the areas of improvement that are in this release:

Various bug fixes. Most of them are relatively minor as C68 is now a very stable
product, but there are still quite a few.

Improved code generation. We have managed to find a few more areas in which the
code can be improved.

Improved support for hardware Floating Point. The C68 package now includes as
standard George Gwilt's FPU support package that adds proper support for hardware
FPU to any QDOS compatible system. Also there are fixes in the code generated
by the compiler.

All files that make up this release is available for download
from this site.

Current developments and plans

The following is a short summary of any developments that have taken place since
the 4.21 release of C68 for QDOS; any developments that have
already started; and also any developments we are thinking of starting.

Runtime Link Libraries
September 2000

This development is now completed.

This facility brings to QDOS/SMS based system the concept of shareable libraries.

As part of
this development there are two new libraries that are being made available for developers.
These are:

The LIBSROFF library
which provides facilities to help with manipulating SROFF libraries.

The LIBRLL library
which provides facilities to help with manipulating RLL libraries.

The idea behind these two libraries is that it means it is possible to write programs and utilities
that manipulate SROFF or RLL libraries without being concerned with the fine detail of their
internal formats. As well as reducing the development effort, this makes it possible for us
to introduce changes to the file formats used, and by merely upgrading the libraries and then
relinking programs, they will automatically be able to handle the new file formats.

I have also been working with Joachim Van de Auwera of PROGS fame. As a result, we have added to
the RLL specification support for what are being called "modules". This is specfically aimed at
cases in which one wants to load one of a variety of modules that all support the same interface.
Examples would be printer drivers, or perhaps file transfer protocols in a terminal emulator.

Compiler improvements

The following are on the development path for future releases of C68.

Relocatable data area

We have made changes that allows the uninitialiased data segment be position
independent and accessed via a data register. This will be useful in building
RLL libraries to allow access to global variables. To finally finish off though
we need the same assembler improvement mentioned in the next point.

Relocatable code

We have finally worked out how to produce position independent code - something
that many users have requested for a long time.

The changes to the compiler have been done, and we are now working on changes to
the AS68 assembler that are needed to complement this change. Fundamentally
this involves getting AS68 to correctly handle 'label-label' constructs when
one or more of the labels are external to the current source file.

They will, however, be given a lower priority than finishing of the work to do with releasing
RLL library support, so the timescale is indeterminate.