www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1996/04/25/09:43:44

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

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019