I've got my alternative GUI up and running with MinGW (ported over from DJGPP) and Allegro and got the keyboard tamed, using a combination of Allegro keyboard functions, allowing differentiation of things like shift+ctrl+[some arrow key] and clearing the keyboard buffer to rein in runaway scrolling with a text editor.  

Screenshot:
[url]http://i6.photobucket.com/albums/y247/LCARS24user/LC24W.png[/url]

But I still have some issues to work out. I have ideas, but some of you must know the proper way to do these things. 

1. Getting GCC to give me the local time instead of UCT. 

2. Letting the program set the time and date as input by the user. I don't see settimeofday in the headers. 

3. Running a child process. I tried this with a small test program. The parent receives and displays the return value but then hangs, even with SWITCH_BACKAMNESIA set. 

4: I suspect that my main loop has to constantly check some designated pixel and redraw the screen if it's not the right color, in case Windows power management grabs the screen and trashes its video memory. I haven't experimented with that yet. 