From: jb3207 AT eclipse DOT co DOT uk (Jason Barstow) Newsgroups: comp.os.msdos.djgpp Subject: Re: VESA DoubleBuffer flicker and SetGetDisplayStart func 0x07h Date: Sun, 02 Mar 1997 16:17:45 GMT Organization: Jabber Interactive Lines: 38 Message-ID: <5fc9e3$q9d@news.cableinet.net> References: <5f77ph$bf8 AT news DOT cableinet DOT net> <5fblr1$a0r AT news DOT cableinet DOT net> Reply-To: jb3207 AT eclipse DOT co DOT uk NNTP-Posting-Host: 195.188.32.83 To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Okay, I checked my code and it _is_ correct. But I've worked out why the flicker occurs. The waitforVR (80h) causes a wait *before* the page (CRT Start Address) change. My game loop goes: 1. Change working page to non-visual 2. Do stuff 3. Make visual page = working page 4. Repeat from 1. I think the pages are switched, but (as Shawn suggested), I start writing to the (now) back page before the actual switch takes place, thus I see the changes happening. I changed my code. Now I don't wait for VR in the set CRT Start Address, but I do an explicit wait for VR *after*. Everything is now rock-solid. But now my question is: What is the real purpose of the wait for VR flag? Do some cards cause snow if this is not used? I don't want to have to wait for two VRs within one game loop just to make sure. Any more thoughts anyone? Jason.