Tim Teulings Blog www.framstag.com

Amiga

WRITE

WRITE was a small but powerful text editor for the Amiga. It had the following features (and much more):

It was possibly initially written in Modula-2 (I do not remember anymore), definitely later on written in Draco before I finally switched to Oberon-2. The final version also included some C code.

The editor was placed over time on a number of Public Domain disks, was mentioned in a number of magazines and I had a medium number of paying users.

Other software

As far as I remember I also did some more development for the Amiga. There was a boot block and OS jump table check program (things current anti-virus solutions do, too), some (likely unpublished) work for the UMS (Universal Message System) and some other tools.

I also briefly worked on the build tool of the AmigaOberon suite. The idea was to use some community people to do some further development on the compiler and its tool suite after its initial author lost interest (at lest, this is what I remember).I finished my work but other parts of the system were not in so good shape and the changes never went public.

What did I learn?

Writing an text editor is a good initial project (though I wrote some software before). I learned much about data structures, performance and memory optimizations. The restricted resources of the development environment (5MB main memory!) forced me to optimize and reduce the code base again and again. The use of a configuration and later on scripting language was a mind opener for me.

Why did I stop?

Development not only stopped because of the general fall of the Amiga and the expected decline of users but also because the Oberon-2 compiler (AmigaOberon) required more main memory than I had. After Commodore went bankrupt it would have been very unwise to spent more money on new hardware. I bought a PC and installed Linux on it (Suse 4.x AFAIK, later RedHat and then Debian). Thankfully there was an Oberon-2 implementation for Linux, too. So I started writing VisualOberon

Table of contents