Long, long ago, when real ale was tuppence-ha'penny a firkin and personal computers were really personal, gentlemen of discernment were able to go into a shop on practically any High Street and emerge with a fully functional Atari ST.
In this new and tawdry millennium, the firkin beer is expensive slops and, unless your High Street includes a junk shop, your chance of finding an ST on it is zero, which is a shame, as the ST still has more than a snazzy case to recommend it.
Possibly at the behest of their friend Bill, a man with his eye to the future, Apple Computers used the legal system to prevent Digital Research from further developing a graphic user interface called GEM, based on ideas which Apple had themselves stolen from Rank Xerox.
GEM development was stopped in its tracks, and in IBM compatibles forced to take a few disastrous steps backwards, enough so that Bill's own GUI was able, despite its manifold inferiorities, to establish a foothold.
All of this is previously-owned beer under the bridge to the majority, who don't know how different life could have been, but the ST still contained the version of GEM which alerted Apple to the danger of competition from its rivals - several years before it realized there was any from its friends.
Many people continued to use the ST and program on it; in fact, many still do, including, occasionally, myself, and when I followed the Computer Role Playing Games to the PC, I intended to take my programming with me. The first result was a very bad case of culture shock.
After banging my head against several brick walls, I realized that the only way I was going to avoid rewriting all my graphic and input routines from scratch was to use other people's libraries to rewrite the most basic GEM routines and use these to build the more complicated ones that I use, and My Atari Derived library was born.
The first version was written in Borland C and failed because of its 640k limit , so I moved to Linux and svga, where I actually got my games up and running, Then I added JUGL to the mix, giving me X capability in a week of puzzling over the documentation and writing the wrappers. The actual game and editor source were of course unaffected and the graphics in the X window looked exactly like those on the console.
I went back to the dark side and experimented with djgpp/Allegro. When the Allegro Work In Progress version became stable in Linux, I switched over to that, which enabled me to cut down to maintaining only one wrapper library.
Meanwhile, I was still programming, and attempting to solve every problem I came across by asking how I would have done that on the Atari. Where I couldn't manage that (256 color graphics) I created routines with names and parameters which might have made it into GEM if it had been allowed to develop.
I've now produced a Resource Construction Set, a program as important to development in GEM as the compiler, so it's possible to build my resources on the PC instead of building them on the ST and converting them to a PC readable form.
Now that someone who doesn't have both a PC and an Atari can use my library, I'm going to make it generally available, under the terms of the BeWare licence. If you're curious, you can see a couple of bad games I produced or read the manual. My other programs and all the resources created with Madorcs are here.
The source for the library and RCS,
plus a sample resource, is available as a zip
. You'll also need Allegro; it's available as a recent, stable, Work
In Progress or by CVS from Sourceforge.
My main page is here; it might amuse you and is guaranteed advert-free - for some reason, nobody wants their banner on my page.