Xref: news2.mv.net comp.os.msdos.djgpp:3101 From: ghiggins AT cass DOT drao DOT nrc DOT ca (Geoffrey Higginson) Newsgroups: comp.os.msdos.djgpp Subject: Re: double buffering with GRX2.0 Date: 24 Apr 1996 17:02:39 GMT Organization: National Research Council, Canada Lines: 21 Message-ID: <4llmrf$emf@nrcnet0.nrc.ca> References: <4lksdb$jro AT lyra DOT csx DOT cam DOT ac DOT uk> NNTP-Posting-Host: cass.drao.nrc.ca To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp E. Young (ey200 AT hermes DOT cam DOT ac DOT uk) wrote: : void WaitRetrace() { : while(!inportb(0x03DA) & 0x08); : while(!inportb(0x03DA) & 0x08); : } Just from memory, doesn't 0x03DA have 0x08 set while in vertical retrace? Then you'd want to do: while (inportb(0x03DA) & 0x08); while (!inportb(0x03DA) & 0x08); This would return when the next verical retrace began. The code you have appears to return right away if you are *already in* vertical retrace when the routine is called, thus possibly causing flicker if it gets called near the end of a retrace (there not being enough time to write to the screen before the retrace ends). ----- Geoffrey Higginson (ghiggins AT gulf DOT csc DOT uvic DOT ca) -- Finger for PGP key ObQuote: "Dedicated to solving the intractable, no matter how long it takes." - Jason Cooper