delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1999/07/18/02:05:58

Message-Id: <3.0.1.32.19990718140429.00686920@apiitkl.edu.my>
X-Sender: df990244 AT apiitkl DOT edu DOT my
X-Mailer: Windows Eudora Light Version 3.0.1 (32)
Date: Sun, 18 Jul 1999 14:04:29 +0800
To: djgpp AT delorie DOT com
From: Mark <rhosts AT bigfoot DOT com>
Subject: Re: still got double buffering prob. in 13h mode.
In-Reply-To: <3.0.32.19990718003516.007a55e0@mail.colba.net>
Mime-Version: 1.0
Reply-To: djgpp AT delorie DOT com
X-Mailing-List: djgpp AT delorie DOT com
X-Unsubscribes-To: listserv AT delorie DOT com

Hi Nate & GodOfWar (and others),

I replaced the '*double_buffer' with plain 'double_buffer', but while
compiling it comes back with:

48:warning: passing arg 2 of 'movedata' makes integer from pointer without
a cast.

(This is why I initially used the '*double_buffer') Somewhere else is this
giving me a headache, but where? Must have ovelooked something.

--
regards;
Mark.


#include <stdlib.h>
#include <dos.h>
#include <sys/movedata.h>
#include <dpmi.h>

typedef unsigned char byte;

short screen;
byte *double_buffer;

void mode(byte mode){
   union REGS regs;
   regs.h.ah=0x00;
   regs.h.al=mode;
   int86(0x10, &regs, &regs);
}
  
main(){
   mode(0x13);

   screen = __dpmi_segment_to_descriptor(0xa000);
   double_buffer = (byte *)malloc(320*200);
   memset(double_buffer,0,320*200);

   double_buffer[10*320+10] = 4;

   while (inportb(0x3da) & 8);
   while (!(inportb(0x3da) & 8));
   movedata(_my_ds(),double_buffer,screen,0,320*200);

   getch();
   mode(0x03);
}


- Raw text -


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