From: "Mark Figura" Newsgroups: comp.os.msdos.djgpp Subject: Re: Using a memory buffer in VGA mode 13h Date: Thu, 20 Aug 1998 23:20:15 -0400 Organization: "SNET dial access service" Lines: 66 Message-ID: <6riout$b8q@news1.snet.net> References: <01bdc2bb$36b2c3c0$2856f482 AT s-64584> NNTP-Posting-Host: sttn-sh4-port195.snet.net To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Precedence: bulk Hello! Don't know what the problem is really. It seems to me that the structure "size_t" isn't being declared or something. Either that or there's no comma before it in the function decleration for dosmemput(). Here's the dec... void dosmemput(const void *_buffer, size_t _length, unsigned long _offset); So that's where the size_t thing comes from anyway. But, there is a better way of doing this. The easiest way is to do this... #include char d_buffer; // the buffer you're gonna copy to the screen // draw stuff into that ^^^ before you call "buffer_to_video" void buffer_to_video() { unsigned char *dest, *src; // makes it more readable. not really needed __djgpp_nearptr_enable(); // ^^ this allows you do do stuff without using assembly dest=(unsigned char *)__djgpp_conventional_base+0xA0000; // ^^ set dest to be 0xA0000 (video memory) src=(unsigned char *)d_buffer; memcpy(dest,src,64000); __djgpp_nearptr_disable(); // ^^ make sure you do that, or your program's more likely to take down the system if it crashes! } This should also be faster than dosmemput(). (In general, the dos functions are slow). You can also do it in assembly, but that's more complicated, and it's only a little bit faster. BTW, this will work with 320x200x256. It won't work with higher resolutions. For that, you'll need to switch memory banks and other more complicated stuff. There's a couple good tutorials for that kind of thing at the docs section at www.delorie.com. If that doesn't work, then I probably typo'd. Let me know and I'll try again... :) Good luck! Mark >Hya, I just started learning graphic and I just run into a problem. Using >the guide to VGA mode 13h at: >http://www.delorie.com/djgpp/doc/ug/graphics/vga.html >using a memory buffer to store a picture before I draw it on te screen I >got some errors. The code snippet is on the above address, didn't won't to >paste it here. Compiling using DJGPP like this: >C:\>djgpp\gcc -c -Wall graphic.c -lm >I got the following error: >c:/djgpp/include/sys/movedata.h:22 parse error before `size_t' >(actually there was 12 of these on different lines but anyway). > >What did I do wrong? >