From: Tom Alsberg Newsgroups: comp.os.msdos.djgpp Subject: void movedata (...) source (coding a GFX lib) Date: Tue, 04 Jan 2000 12:11:49 +0200 Organization: NetVision Israel Lines: 47 Message-ID: <3871C765.829384D4@softhome.net> NNTP-Posting-Host: ras7-p34.jlm.netvision.net.il Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Trace: news.netvision.net.il 947239896 27976 62.0.165.34 (7 Jan 2000 10:11:36 GMT) X-Complaints-To: abuse AT netvision DOT net DOT il NNTP-Posting-Date: 7 Jan 2000 10:11:36 GMT X-Mailer: Mozilla 4.5 [en] (Win98; I) X-Accept-Language: en To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Reply-To: djgpp AT delorie DOT com Howdy all. I'm lately coding a Graphics Library in C++, which goes on pretty well. The problem is, that it crashes many times. * It crashes under RHIDE sometimes, and when I look at the traceback, I see that it crashes in ___dj_movedata+33, which is called at ___dosmemput+38, which is called by vidBMP::blit2vidmem (void), which is a function I've written to blit the double buffer to video memory. * It crashes every time when running under pure DOS (not RHIDE). There, when I do a SYMIFY to it, I get the same traceback info. * It never crashed when running under GDB (GNU Debugger). I wanted to check how exactly it crashes, so I downloaded the Standard Library source (v2.03), and searched it for 'dosmemput' using directory recursive Turbo GREP. I found the implementation of dosmemput (...) in PC_HW\MEM\DMP.C (in the libc source tree). I opened it, and saw the following code: void dosmemput(const void *buffer, size_t length, unsigned long offset) { movedata((unsigned)_my_ds(), (unsigned)buffer, (unsigned)_dos_ds, (unsigned)offset, length); } So the obvious next thing for me to do was to look for the movedata (...) source implementation. But, I couldn't find it, in the entire libc source tree, and the gcc-2.952 source tree (I searched with Turbo GREP in non case sensitive directory recursive mode, and looked in all files which contained 'movedata') . My questions are: 1. Does anyone know in case why my program crashes all the time under pure DOS, never under GDB, and sometimes under RHIDE? 2. Where can I find the source for the function movedata (...)? Note that my graphics library crashes only when using it's VESA (1.2) modes. It doesn't crash when I use its VGA modes. Thank you, Tom Alsberg