CCC68 Home Page

When I was studying for my HND in Computer Studies back in 1990, the official language for my Real Time Programming Methods class was Modula-2. I reasoned (rightly as it turned out) that C was more likely to be used in the real world than Modula-2, so I wrote all of my class assignments in C. I figured that by writing the assignments in C I was still learning the bit twiddling lessons the assignments set out to teach, so it was all good.

The assignments involved writing programs for the 68000-based Flight Board, a single board computer made by Flight Electronics, and its companion multi applications board. The latter contained various I/O devices such as LEDs, an analogue input, a fan, and other such doodads (yes, that is a technical term).

This went well for a few months, until we got to the final assignment. For the final assignment, we had to combine all of the tasks we’d done so far (things like flash LEDs, control the fan fan’s speed, read from the analogue input, etc.) into one program that made use of Modula-2’s coroutine facility to perform all of these tasks concurrently. Of course, there was just one tiny problem: C didn’t offer any concurrent programming primitives (this was years before pthreads).

I’d just about resigned myself to the fact that I’d have to implmement the final assignment in Modula-2, when someone half-jokingly suggested that I “just” write a library containing the necessary functions to give C the coroutine primitives offered Modula-2, and then write the final assignment using my new library. Oh, and I only had three or four weeks to write the whole shebang. Challenge accepted!

A little less than three weeks later I’d written the software, and fortunately for me, it worked (after I’d fixed a bug caused by being given the wrong register layout for one of the chips)!

Even though the code leaves a bit (OK, a lot) to be desired, I thought I’d make it available, if only for historical curiosity’s sake, so here’s the ccc68 source code. It should at least compile, but no guarantees so caveat emptor. Enjoy!