October 31, 2001 DISCLAIMERS: I should say that I'm not a professional programmer; my real job is designing chips. Also, although I've developed a small number of Win32 apps, they've all been hacked together affairs. Solace is no different. There has been no master plan and no well thought-out framework. If you dare look through the code, you'll see ample evidence. Still, I've tried to add some structure after the fact, but it could use a lot more of it. The code was developed by a long series of slight improvements and one or two large undertakings (the debugger interface is one of the latter). I've learned a lot so far about Win32 programming, frustrating as it is. Often times I'd implement a feature knowing nothing about the "correct" way to do it. Typically I'd peruse one of the half dozen Win32 books I have, do some web searches, and sometimes look at source code from other windows apps. Often it was enough to see the existance of a key function or message and it would be enough for me to get on with the solution; othertimes I'd take it as black magic and just rip a snippet of code from elsewhere and trust that the voodoo would work for me. I think a lot of windows programmers work this way too. BUILDING SOLACE: Solace was built using MSVS C++ 6.0, SP4, Standard Edition, and was developed under MS Windows 95, OSR2. It has been lightly tested on Windows 98 and Windows NT 4.0 SP3 and seems to work on those platforms as well. If you want to build Solace yourself and you have MSVS C++, you should just be able to load up the solace.dsw file via the File/Load Workspace menu item. Pick your build target (debug or release) and then build. Note that a few files are loaded from Solace assuming a certain directory hierarchy (namely, the HTML help files, the .INI file, and the SOLOS ROM image). If you execute Solace from MSVS, the notion of "current directory" at program startup is from the build directory, and those files won't be found. Either copy the resulting binary up a level, use the .INI file to point at the proper ROM directory, or edit the source to access whatever directory you desire. CODE OWNERSHIP: If you want to take pieces of code out of Solace, feel free. If you take large parts of code, I'd like to be given a bit of credit for my work; including it in a comment in the code itself would be nice. Please drop me a line if you make use of my code; I'd get a kick out of knowing that somebody found it useful. Should you feel motivated to improve Solace in a major way, or even a minor way, that you think would be of interest to the three other Solace users in the world, please let me know and I'll integrate your change (if I also think it is useful to a larger audience) to the "official" Solace.