Mail Archives: djgpp/1995/03/04/11:40:08
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.
- Raw text -