Mail Archives: djgpp/2000/01/07/09:48:48
From: | Tom Alsberg <alsbergt AT softhome DOT net>
|
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
|
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
- Raw text -