This page is dedicated to my past, present and future software projects
for the Atari ST compatible series of computers.
Last update: 23-01-1998
A versatile utility for James Cox' MiNT Component Manger. It's main use is to load components, coz' I couldn't figure out how to use the loader in the CM archive (get this at Craig Graham's page, in the Download Bay)
FooPaint is an attempt to create a powerful and versatile bitmap art program with a user interface based on that of Arabesque. Features include: modular effects and file loading/saving using the new MiNT Component Manager (CM) by James Cox, fully GEM, optimized for speed, will run on any TOS compatible OS, VDI color modes up to 24 bit supported, etc, etc.
I started work on FooPaint in december 1995, but unfortunately my knowledge of C and good programming has advanced such that I have to rewrite most of the code. You may take a look at the old user interface which I was working on before I saw the light and started all over again, but be warned though, its full of weird bugs and far from finished... You will also need NVDI, MagiC or the freeware VDI Enhancer to run this.
I hope to have a first working version ready for testing early next year.
In order to continue work on FooPaint I have to design a system of nonmodal dialogs complete with cool 3D objects like radio buttons, checkboxes, scrolling lists and the lot... Ofcourse, routines already exist for this kind of thing, but they're all either crap, huge or they won't work with Sozobon C's XGEMFAST lib.
The libs I've designed can be used both as statically linked code and as a CM component. This last option is interesting because it allows other programs to use the routines as well, without extra memory overhead.
The XGEM library consists of two parts: XObjLib and XDialog.
The first lib is almost finished and will take care of installing user defined objects into the resource trees. It comes complete with a set of standard objects ((radio)buttons, checkboxes, sections, etc) and a set of special objects (sliders, lists, popups, etc.). The standard set of objects is mostly MyDial compatible. The objectsets are the actual objectlibs and are loaded and installed by an objectmanager which also offers a set of utility functions for the objlibs to use.
The second part, XDialog, is not yet finished, but it should be pretty clear from the name what it is. The extended dialog routines in this lib will be either modal or nonmodal (whatever the programmer wants), and will feature things like scrollable lists (in combination with the special objlib), cut & paste, callback functions, popups and keyboard shortcuts. The nonmodal dialogs will ofcourse be placed inside a window.
As soon as both libs are relatively free of bugs and somewhat more portable then they are now, I will release XGEMLib under the GNU Public (library) License. Because of its modular nature, it can be expanded in the future by other programmers.
Utility to mount disk images (.MSA or .ST) as disks.
More info on this coming soon...
I haven't worked on this one for quite some time, but it's supposed to be a utility to aid data extraction from a broken FAT filesystem. It can be used to read files from damaged (or intact) floppy's and harddisk partitions. I'll continue work on this Real Soon Now (TM).
Also waiting to be finished is an Atari port of the Unixoid MIDI file player Timidity, which'll play MIDI files over the soundsystem using GUS instrument patches. I have written sound drivers for Falcon and DMA soundsystems, but I can't compile the thing without GCC, which I can't install without a new harddisk. I suspect that a standard Falcon will be much to slow to play the sound in realtime, but an accellerated one might just be able to do it, and so should some of the >=40Mhz Atari clones fitted with a DMA or Falcon compatible soundsystem. Or someone should port part of the program to the DSP...
More on this in a few weeks, as soon as I've installed an extra 1Gb of harddiskspace or so. :-) (I will too! :)
Formerly called DeadParrot and Echo-O, this tibny program will repeat Falcon microphone input with a programmable delay. This enables one to hear oneself talk, which is quite amusing. Kids love it, although I was hoping to use it to pester my neighbours... :-)
An old, buggy and unfinished version is available here. It works, sort of, but has the nasty habbit of crashing now and then. Don't pay to much attention to what I wrote in the docs, especially the part about me not being able to get the **œ%($! nonmodal dialog libs to work. I'm working on it (see above).
I'll probably finish this in the spring, as soon as the neighbours start shouting in public (ie. outside) again. :)
VidSleep is a little utility to switch (S)VGA monitors with power saving abilities (EPA) into standby. It only works on machines with a Falcon compatible videosystem (ie. as far as I know, just the Falcon :)
I would suggest you also get "Sleep" somewhere. This utility will put the DSP to sleep. Also saves power.
This very tiny utility will simply unlock the Falcon soundsubsystem (eg. after an audio program crash). Get it here.
Another miniscule program. BlitMode will switch between sofware and hardware blitting on machines fitted with a blitter chip. Blitting is normally sone by hardware, although NVDI switches it to software. You won't notice much difference in speed though.
Econet Interface + Fileserver
Predator Project (BASS Bots)
From the dark ages of GFA Basic Atari ST Programming. Those
were the days when debugging was easy. So was starting a new program.
This pathetically named utility will switch your Falcon video vertical sync to 50 Hz on pressing
I wrote UnHTML to remove those irritating HTML tags from documents so I could print them. Turned out there already were a bunch of utils around for this (this one's quite good, though), including some with the same name, and I was better off using "lynx -dump" to do the job anyway.
If you haven't got Lynx though, do try UnHTML, as it works, sort of...
Blub -- The Aquarium Simulator was a somewhat, er, strange attempt at humour. We wrote the original in QBasic during a lunch break at school a few years back when we were bored to death. The Atari version doesn't work in monochrome yet. Have a look, you might be amused. Then again, you might not be.
Is a plan to further develop FooPaint into a fully fledged bitmap animation program when it is finished.
Also on my wishlist is a yet unnamed sample editor based on CM components and a user-friendly interface, like FooPaint.
Two extra programs to go with and based on FooPaint: FooView and FooPrint. Actually, I started writing FooView long before FooPaint. I never got far, though, due to lack of programming experience and knowledge (I had only just learned C). I later started on FooPrint, but got stuck trying to figure out a good way to build 1 bitplane rasters. Both programs can be built for the most part out of FooPaint code, I just have to design a user interface and add some specific code. Oh, and finish FooPaint. :-)
Featuring lots of cows, a rabbit, lots of explosions, and a really old guy. And a monk. And an elephant on a motorcycle. Nice, eh?
This one's a space-flightsim, with an object-oriented environment, TCP/IP multiplayermode, versions for Linux, DOS, Atari, Amiga, etc. One can dream, can't one? :-)
We're actually working on this. Don't ask me when it's finished, or if we'll ever finish it... (Psst... Max! Have we started yet?)
This one's still Top Secret. It involves Genetic Algorithms and we're working on it. That's all I can say, er, write...
A multimedia chat program written in GFA Basic. My first GEM userinterface as well. Never finished it. Shame.
The PantherSoft CommandLine Interpreter. It actually worked as well! But not as good as Bash. And it was written in GFA Basic. Ugh.
A terminal program capable of handling the graphic BBS language RIPScript. Never worked. Was, you guessed it, written in GFA.
Econet Interface + Fileserver
Predator Project (BASS Bots)
From the dark ages of GFA Basic Atari ST Programming. Those were the days when debugging was easy. So was starting a new program. Finishing, however...