Tag: RC2014SC


Demos, demos, demos!

So this evening I went through a large number of the demo programs supplied with Benchmark Modula-2. Lots of the demos make heavy use of the Amiga system modules – each system module has a corresponding Modula-2 definition module.

Here are some of the highlights. I even managed to get a glorious Guru Meditation! The one monster demo I have yet to get working is Gravity Wars. Remember the blurb on the back of the manual? Attempting to get this demo compiled will be the remaining goal for this challenge. However, if I it requires a source file I don’t have I’ll be scuppered.




































Epic Fail!

My coding expedition had taken me to my final year project from University – a meta-assembler written in Modula-2. In my second year I had used Benchmark Modula-2 to write my Modula-2 assignments, but by the time I got into my third year I was using Topspeed Modula-2 under MS-DOS on the Twinhead 8088 with hard drive. I thought it would be ‘fun’ to attempt to back-port this project back onto my Amiga.

It’s worth explaining that one of Modula-2’s main tricks is to provide the ability to define an interface to a code module which is separate from the implementation. The interface is defined in a ‘definition’ module, and an implementation of that module is defined in the, yes you guessed it, implementation module. The idea being that you can swap out the implementation without affecting the interface. You might find a more efficient way of doing things, or in this case provide a machine/operating-system specific implementation without affecting the rest of the code base.

I had tried to isolate the code that interacts with the operating system into a single module and knew that this would take some effort to get working under the different environment presented by the Amiga. This work went quite well and I was able to leverage the Amiga-specific I/O modules and also improve on the separation between definition module and implementation to remove the last implementation specific type definitions from the definition module.

All good stuff. The meta-assembler takes a single program module called ADM that defines a machine for which the meta-assembler is targeted (a meta-assembler is an assembler that can be used to assemble to different machine architectures). The ADM module I provided as part of the project is for the 68000 processor.

When compiling the implementation module I think I have hit a hard limit. I get the following error message:

200 (not yet implemented)

The manual defines the issue as follows:

‘The source program uses an unimplemented function in the compiler. This error should not occur under normal circumstances.’

Error 200: Not yet implemented.

Error 200: Not yet implemented.

So there we have it. I think what has happened is that I’ve hit some sort of hard limit in the compiler. Now I have a decision to make – do I persevere or give up. Given how much time I have been able to dedicate to this Retrochallenge I think I might just quietly move on.


Back in the day…

So, what’s this all about then? Well, it’s the usual story – reconnecting with my youth.

I owned an Amiga following a CBM-64 during my A-Levels and into University. I used my Amiga to learn how to program in Modula-2 which was one of the set languages in my 2nd year at Uni. The version I chose was Benchmark Modula-2 by Avante-Garde Software. It came as a shrink wrapped 1,000-odd page manual and a couple of disks. I successfully used this on a two-floppy 512KB expanded Amiga 500.

The 100 odd page manual that cam with Benchmark Modula-2 (before I sliced it up for scanning!)

The 1000 odd page manual that came with Benchmark Modula-2 (before I sliced it up for scanning!)


Detail of the back of the manual. I’m not joking, I must had read that 100 times over the years!

During my 3rd year at Uni I ditched the Amiga in favour of a PC (first a twin-floppy Amstrad PPC-640 [some would say a distinct step backwards!] and then a Twinhead Desktop 8088 with a hard drive). At some point the Benchmark Modula-2 disks either became unreadable or got lost. The Amiga became very yellow and stopped working.

The search is on

In the intervening 22-ish years I kept the manual. In the past five or so years I have been actively looking for the software. This year, after some detective work, I managed to track down someone who had an ISO image of the compiler, editor, demo programs and source level debugger. Part of the deal was that I scanned the manual and made it available in PDF form. I scanned the entire manual by hand on a flat-bed scanner over about 3 long nights, and after a nervous wait was finally rewarded with a 5-ish MB ISO image.

Top trumps!

Several stalled attempts with WinUAE (copying Amiga files using Windows Explorer doesn’t work too well) I finally had the screen I had waited 20-some years to see again. M2Ed.


The startup screen for a freshly installed copy of Benchmark Modula-2. A Hello World program is waiting to be compiled, linked and run.

2014 Summer Challenge Entry

This year will be Amiga… Amiga… Amiga.

Definitely some Benchmark Modula-2.

Maybe creating a PC emulator inside an A500 case.

But definitely Amiga.


Powered by WordPress & Theme by Anders Norén