VARIOUS NOTES ABOUT C25SIM01.ZIP This is the first time I've released this code under the GNU license. When I can, I want to do some fixes and improvements, so I'm naming this version C25SIM01.ZIP. 1. There is a list of four bugs that I don't have in front of me at the moment. As best I remember, they are: A. The BIOZ instruction branches on the wrong sense of the BIO signal. B. In C25LIB.C, c25_reset() does some things it shouldn't do, and fails to do some things it should. C. My memory on this is foggy. Apparently there are three bits in an instruction when you do indirect addressing, which specify what register the instruction should use, and the C25LIB routines always read those bits as 101, rather than selecting different registers. D. ??? 2. All of this code was originally written for DOS, and it has a number of non-portable DOS idioms that would not translate gracefully to Unix or Linux. Here are the ones I can think of right off the top of my head: A. With DOS, you can use kbhit() and getch() to respectively determine whether a key was pressed, and to get the key. B. The windowing functions make assumptions that are valid for EGA and VGA graphics hardware, about where in memory to find the text buffer. This is done in order to quickly switch between windows for the simulator, the help screen, and the source code. If you were running in X Windows, there would be no need for this to be handled by C25SIM. C. C25LIB.C assumes that an "int" is 16 bits and a "long" is 32 bits. This is true for the Microsoft and Borland C compilers that I was using at the time. I don't know if the code would break if ints became 32 bits, as I believe they are under GCC. 3. As time permits, I will check into all of this stuff, fix the bugs, and make the code compile graciously under both DOS and Linux.