From: "David Dean - [DS]Deaner666" Newsgroups: comp.os.msdos.djgpp Subject: Virtual Screens Date: Thu, 1 Jul 1999 19:28:26 +0100 Organization: Customer of Planet Online Lines: 38 Message-ID: <7lgctl$7r4$1@news5.svr.pol.co.uk> NNTP-Posting-Host: modem-146.name33.dialup.pol.co.uk X-Trace: news5.svr.pol.co.uk 930854645 8036 62.136.176.146 (1 Jul 1999 18:44:05 GMT) NNTP-Posting-Date: 1 Jul 1999 18:44:05 GMT X-Complaints-To: abuse AT theplanet DOT net X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 5.00.2014.211 X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2014.211 To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Reply-To: djgpp AT delorie DOT com I'm currently trying to get to grasps with graphics programming in DJGPP. I've managed to get round the protected mode quirks using (the albeit annoying AT&T) assembly, and can now put pixels to the video segment. My question now regards setting up a _virtual_ screen to put pixels to, so I can set up the screen in the background and flip it to VGA without flicker. I'm using mode 13h, so what is the best way of setting up the 64000 (320 * 200) bytes I need and then being able to reference this virtual screen? Could I combine a function for putting pixels to this virtual screen with my current function for putting pixels to VGA by adding another parameter? Here's my current putpixel function: /*Puts a pixel of colour col to (x,y) on the VGA screen*/ void PutPixelVGA(int x, int y, unsigned char col) { short global_selector; global_selector = _dos_ds; __asm__ __volatile__(" movw %3, %%es\n movl $0xA0000, %%edi\n movw %0, %%ax\n imulw $320, %%ax\n addw %1, %%ax\n addw %%ax, %%di\n movb %2, %%al\n stosb" : :"g" (y), "g" (x), "g" (col), "g" (global_selector) ); } Thanks in advance, David Dean (DJGPP really is quirky isn't it?)