Date: Sun, 5 Mar 1995 01:07:05 +1000 (+1000) From: Matthew Lamari Subject: Interrupt Handling Issues. ??? To: djgpp AT sun DOT soe DOT clarkson DOT edu Greetings to others with an interest in the DJGPP package. Over the Christmas break, I made some progress in a programming project I had been planning for some time, on DJGPP version 1.12m2. To anyone reading this list who is wondering whether or not this would be suitable for a gaming or other speed-dependant application, I have to say I have found the package to produce a quicker and more versatile program than the strict 16-bit Dos alternative, even where excessive graphical work is required (as in my case.) And the optimizations that the compiler can make can produce code almost as fast as hand-code assembly. However, a minor concern I have pertains to the way interrupts are handled within the package. I must state here that I was unable to read the mailing list between november last year and the present date, and understand that the situation may have changed with the new release, or the issue already discussed on this list. If the latter is the case, I hope that it may be explained again for my benefit. I thank you in advance. By the way, in my project as it stands, the program supports DPMI, and I hope to continue to support this mode. I understand from last year's list that in the new distribution this is a requirement. In 1.12m2, there was some Sound-Blaster code that was bugged, and crashed occasionally. I gave this a 'temporary' fix by removing the real-mode interrupts, and hoped to incorporate the code making use of the now protected-mode-only interrupts. The same went for my keyboard routines, which, to date, are also protected-mode only. Yet now, with further understanding of how GO32 etc. works, I understand that the CPU also spends some time in REAL mode for certain situations, which would effectively render the Protected mode vector useless for the duration. Yet in discussion on the list, it was explained that if a "real" mode interrupt was called (I forget the exact contributor of this) while a page-fault-caused disk-access, the program would crash. If this is true, more versatile and imperative interrupt handling would be impossible. I have also noticed, from time to time (as a result of only using Protected mode interrupts) that keys occasionally "stick" in the down position, when the interrupt is caused in real mode, and my own code doesn't trap this. Can anyone recommend a solution for either or both of my keyboard and SoundBlaster dilemma? Does the user merely have to pray that a page-fault doesn't occur when the (necessary) real-mode interrupt is called, or is there a remedy? I thank you for your time. Matthew C. Lamari, Townsville.