From: Shawn Hargreaves Newsgroups: comp.os.msdos.djgpp Subject: Re: Allegro and SB05_DJ2 problem Date: Wed, 5 Mar 1997 19:46:03 +0000 Organization: None Distribution: world Message-ID: References: <3319eaa3 DOT 7656395 AT ursa DOT smsu DOT edu> <5feeam$1u2a AT ausnews DOT austin DOT ibm DOT com> <331add31 DOT 3781849 AT ursa DOT smsu DOT edu> <5fh0jb$1u5k AT ausnews DOT austin DOT ibm DOT com> <331c94e6 DOT 815065 AT ursa DOT smsu DOT edu> NNTP-Posting-Host: talula.demon.co.uk MIME-Version: 1.0 Lines: 31 To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Tony O'Bryan writes: >Here is the interesting part, though. If I enable an Allegro timer interrupt >and put a long enough delay between interrupts (80 milliseconds works on my >machine), then the problem doesn't show itself. My timer interrupt just This is very possibly just a fluke: if you aren't doing the blit so often, the chances are than the soundcard interrupt will occur during your delay code rather than during the blit itself. I'd guess that you are just obscuring the trouble, rather that truly getting rid of it... >My first guess is that blit() my disable the timer interrupt long enough to make >SBLIB miss its timing mark, but a quick grep of the Allegro source doesn't blit() doesn't do anything nasty like that. The only hardware access it does is to change the write plane registers in mode-X... One possible cause for the trouble that occurs to me is that blit() loads _dos_ds (or some other selector if you are in an LFB mode), into %es. I would have expected the SB library to restore all the segments in it's interrupt handler, but if it is failing to do this for some reason, problems would result. Apart from that, I'm baffled. I know several people have used Allegro and SBLIB together without any trouble, so rest assured that it is possible... /* * Shawn Hargreaves - shawn AT talula DOT demon DOT co DOT uk - http://www.talula.demon.co.uk/ * Beauty is a French phonetic corruption of a short cloth neck ornament. */