Mail Archives: djgpp/1995/01/14/23:06:13
Several weeks ago, I tried to post about this problem, but instead
somehow managed to unsubscribe myself to the list. Let's hope I get more
helpfull results this time.
I am writing a .MOD file player for the Gravis UltraSound, using GNU
C++. My first problem is that the GUS SDK, although it has Watcom 32 bit
libs along with the BC and MSC libs, all of the source is for BC, and I
don't really feel up to porting the whole mess. So, I rewrote what I
needed into a somewhat less user-friendly, but sufficient, chunk o'
source. So that problem's out of the way. Then I wrote some loading and
basic [timer IRQ driven] playback routines. But the problem is that with
certain files, it crashes, real unfriendly-like. It's sort of hard to
debug, since I never see a call-frame traceback, and everything that
happens happens in interrupt vectors, and thus can't even have debugatory
printf's in it. All it does is say "Unsupported Int 0x00" and then one
of two things happen.
1) Sometimes it just crashes. Right there, in the middle of the printf
that the "Unsupported INT 0x00" error message interrupted. When it does
this, it often does other weird stuff. (Putting a couple high ASCII
characters (in brilliant technicolour) on the screen, turning on the PC
speaker, etc)
2) Other times, and this is REALLY strange, it just keeps going with the
main program stream, but with all interrupts cut off, it seems. None of
the values get incremented, none of the playback calls are made, but the
while (!kbhit()) printf("%d, %d/%d: %d %d\n", A, bunch, of, status,
vars); keeps going. Any keyboard input (^C, Ctrl-Alt-Del included) are
ignored.
I see no pattern that might predict which of these crashes occur. Both
have happened with the same input file.
So, if anyone tells me what's wrong, I'll give them $47 000 000.
(Offer only valid while supplies last.)
Thank you.
-Jesse
- Raw text -