Once upon I time I had a PC that ran DOS. Naturally, I had to write some programs for it. As does is currently so dead it's not funny they're not really worth much these days; but, hey, disk space is cheap and someone might find them useful.
One thing I was particularly keen on was PC/GEM; more popular on the Atari ST, Digital Research did a version for the PC. Caldera inherited it when Digital Research folded and released it as open source. While quite pathetic by today's standards it's still surprisingly functional. I wrote a few things for it, which are included here.
This was an experiment at using the multitasking features built in to Caldera OpenDOS. I was pleasantly surprised; the interface is simple and it all works nicely... this program will allow you to view and switch tasks from the command line. Borland C 3.1 source is provided. Documentation included.
If you're interested in GEM, John Elliot's web site is a good starting place. As well as links to everywhere else in the PC/GEM world, he wrote C GEM bindings for Pacific C and DJGPP. These follow the original API as much as possible and work well. The DJGPP bindings also comprise a protected-mode to real-mode interface layer, allowing you to write fully 32-bit GEM programs.
GEM installer package
This is my installer for GEM, including some basic packages to get you started. To install, unzip this into a directory of its own with the -d option if you use PKUNZIP (the paths are important) and run the SETUP program. Be warned that the installer is highly beta and may blow up on you. Feedback was highly desirable but it's now unmaintained. Feel free to mail me your comments, but while I can offer advice I'm not going to do any more with it.
Advanced GEM Toolkit (non-working version)
This is a development snapshot of my C++ bindings for the GEM API. When I say development snapshot, I mean I zipped up the entire contents of \projects\gem\agt, dead binaries, backups, temporary files and all. It doesn't work. It's all highly incomplete and probably needs rewriting. You will need DJGPP, GEM and the DJGPP GEM bindings for this.