Mail Archives: djgpp/1998/10/31/23:39:18
Date: | Sat, 31 Oct 1998 23:37:56 -0500
|
From: | Pierre Beaulieu <pbeaulie AT videotron DOT ca>
|
Subject: | Re: Djgpp-Compiler
|
To: | djgpp AT delorie DOT com
|
Message-id: | <004b01be0551$7faebb00$aaa960cf@default>
|
MIME-version: | 1.0
|
X-Mailer: | Microsoft Outlook Express 4.72.3155.0
|
X-MSMail-Priority: | Normal
|
X-MimeOLE: | Produced By Microsoft MimeOLE V4.72.3155.0
|
X-Priority: | 3
|
Reply-To: | djgpp AT delorie DOT com
|
This is a multi-part message in MIME format.
--Boundary_(ID_9ASZzZ0uK5IM1R/wv4c+sA)
Content-type: text/plain; charset=iso-8859-1
Content-transfer-encoding: quoted-printable
I had a similar problem (probably it is the same) on the NT 4.0 =
platform. Here is what I suggest you to do in order to fix it:
1) Remove evrything related to DJGPP from your system.
2) Unpack/unzip the DJGPP package with a utility that will generate =
files with 8 characters long names and 3 characters long extension.
3) Once this is done, go under ...\DIGPP\LANG\CXX. There, you will find =
a bunch of include files. These files are used by the C++ compiler. It =
will be necessary to edit each of these files and modify the #include =
directives in such a way that every time you will encounter an #include =
directive containing the name of a file that is longuer than 8 =
characters, you will replace it by its 8 characters conter part. To =
illustrate that, let say we have the following #include statement:
#include <streambuf.h>
Once modified, it will look like this:
#include <streambu.h>
It is necessary to do that since the name of the file streambuf.h has =
been truncated in step 2).
If you follow these steps, I am pretty sure you will fix your problem. =
By the way, part of that solution come from DJ Delorie himself...
Good luck,
Pierre Beaulieu
-----Original Message-----
From: Christian Hofrichter <ChristianHofrichter AT gmx DOT de>
Newsgroups: comp.os.msdos.djgpp
To: djgpp AT delorie DOT com <djgpp AT delorie DOT com>
Date: Saturday, October 31, 1998 2:24 PM
Subject: Djgpp-Compiler
=20
=20
My version: Rhide 1.4=20
Djgpp 2.01=20
First Problem:=20
When I want to link my C-programs, I get the error message under DOS =
:=20
ld.exe: cannot open -lstdcx: No such file or directory (ENOENT)=20
although I followed the instuctions, listed in the problems.txt. But =
under Windows 95 everthing works fine. What did I do=20
wrong ?=20
Second Problem:=20
Under Borland C++ I could use the Pseudo-Registers to print, =
calculate and manipulate the values of the=20
CPU-Registers. But now I only have the Registers, defined in the =
UNION REGS, that means when I want to print a=20
Register-value which I have manipulated before with the inline =
assembler, the Pseudo-Registers are not updated. They=20
will only be updated when an interrupt is used. So what can I do ? =
Do I really have to copy the value of the Registers in a=20
variable and print the variable instead of the Registers ?=20
Third Problem:=20
In Real-Mode I could move a block of memory by storing the values of =
the Segements in the ES and DS Register, and=20
the Offset in the DI and SI Register. What do I have to do, to move =
a block of memory in the protected-mode (in=20
assembler) ? Do I need to store the selectors in one of these =
Registers ?=20
Do the Djgpp - C++ - Copy - Routines move 4 bytes at one time or =
only 1 or 2 byte(s) ? Can I improve the=20
performance by using the Fat Ds Method when I copy memory-blocks, or =
do this method only make sense when I=20
want to change, read or write the bytes in the memory ? I have to =
know this because of my Vesa-Functions.=20
--Boundary_(ID_9ASZzZ0uK5IM1R/wv4c+sA)
Content-type: text/html; charset=iso-8859-1
Content-transfer-encoding: quoted-printable
<!DOCTYPE HTML PUBLIC "-//W3C//DTD W3 HTML//EN">
<HTML>
<HEAD>
<META content=3Dtext/html;charset=3Diso-8859-1 =
http-equiv=3DContent-Type>
<META content=3D'"MSHTML 4.72.3510.1400"' name=3DGENERATOR>
</HEAD>
<BODY bgColor=3D#ffffff>
<DIV><FONT color=3D#000000 size=3D2>I had a similar problem (probably it =
is the=20
same) on the NT 4.0 platform. Here is what I suggest you to do in order =
to fix=20
it:</FONT></DIV>
<DIV><FONT color=3D#000000 size=3D2></FONT> </DIV>
<DIV><FONT size=3D2>1) Remove evrything related to DJGPP from your=20
system.</FONT></DIV>
<DIV><FONT size=3D2></FONT> </DIV>
<DIV><FONT size=3D2>2) Unpack/unzip the DJGPP package with a utility =
that will=20
generate files with 8 characters long names and 3 characters long=20
extension.</FONT></DIV>
<DIV><FONT size=3D2></FONT> </DIV>
<DIV><FONT size=3D2>3) Once this is done, go under ...\DIGPP\LANG\CXX. =
There, you=20
will find a bunch of include files. These files are used by the C++ =
compiler. It=20
will be necessary to edit each of these files and modify the #include =
directives=20
in such a way that every time you will encounter an #include directive=20
containing the name of a file that is longuer than 8 characters, you =
will=20
replace it by its 8 characters conter part. To illustrate that, let say =
we have=20
the following #include statement:</FONT></DIV>
<DIV><FONT size=3D2></FONT> </DIV>
<DIV><FONT size=3D2>#include <streambuf.h></FONT></DIV>
<DIV> </DIV>
<DIV><FONT color=3D#000000 size=3D2>Once modified, it will look like=20
this:</FONT></DIV>
<DIV><FONT color=3D#000000 size=3D2></FONT> </DIV>
<DIV><FONT size=3D2>#include <streambu.h></FONT></DIV>
<DIV><FONT size=3D2></FONT> </DIV>
<DIV><FONT size=3D2>It is necessary to do that since the name of the =
file=20
streambuf.h has been truncated in step 2).</FONT></DIV>
<DIV> </DIV>
<DIV><FONT color=3D#000000 size=3D2>If you follow these steps, I am =
pretty sure you=20
will fix your problem. By the way, part of that solution come from DJ =
Delorie=20
himself...</FONT></DIV>
<DIV><FONT color=3D#000000 size=3D2></FONT> </DIV>
<DIV><FONT size=3D2>Good luck,</FONT></DIV>
<DIV><FONT size=3D2></FONT> </DIV>
<DIV><FONT size=3D2>Pierre Beaulieu</FONT></DIV>
<BLOCKQUOTE=20
style=3D"BORDER-LEFT: #000000 solid 2px; MARGIN-LEFT: 5px; PADDING-LEFT: =
5px">
<DIV><FONT face=3DArial size=3D2><B>-----Original =
Message-----</B><BR><B>From:=20
</B>Christian Hofrichter <<A=20
=
href=3D"mailto:ChristianHofrichter AT gmx DOT de">ChristianHofrichter AT gmx DOT de</A>=
><BR><B>Newsgroups:=20
</B>comp.os.msdos.djgpp<BR><B>To: </B><A=20
href=3D"mailto:djgpp AT delorie DOT com">djgpp AT delorie DOT com</A> <<A=20
=
href=3D"mailto:djgpp AT delorie DOT com">djgpp AT delorie DOT com</A>><BR><B>Date:=20
</B>Saturday, October 31, 1998 2:24 PM<BR><B>Subject:=20
</B>Djgpp-Compiler<BR><BR></DIV></FONT>
<P><B>My version: Rhide 1.4</B>=20
=
<BR><B> =
=20
Djgpp 2.01</B>=20
<P><B>First Problem:</B> <BR>When I want to link my C-programs, I =
get the=20
error message under <B>DOS</B> :<B></B> <BR><B>ld.exe: cannot open =
-lstdcx:=20
No such file or directory (ENOENT)</B> <BR>although I followed the=20
instuctions, listed in the problems.txt. But under <B>Windows 95=20
</B>everthing works fine. What did I do <BR>wrong ?=20
<P><B>Second Problem:</B> <BR>Under Borland C++ I could use the=20
Pseudo-Registers to print, calculate and manipulate the values =
of the=20
<BR>CPU-Registers. But now I only have the Registers, defined =
in the=20
UNION REGS, that means when I want to print a <BR>Register-value =
which I=20
have manipulated before with the inline assembler, the =
Pseudo-Registers are=20
not updated. They <BR>will only be updated when an interrupt is =
used. So=20
what can I do ? Do I really have to copy the value of the Registers =
in a=20
<BR>variable and print the variable instead of the Registers ?=20
<P><B>Third Problem:</B> <BR>In Real-Mode I could move a block of =
memory by=20
storing the values of the Segements in the ES and DS Register, and =
<BR>the=20
Offset in the DI and SI Register. What do I have to do, to move a =
block of=20
memory in the protected-mode (in <BR>assembler) ? Do I need to =
store=20
the selectors in one of these Registers ?=20
<P>Do the Djgpp - C++ - Copy - Routines move 4 bytes at one time or =
only 1=20
or 2 byte(s) ? Can I improve the <BR>performance by using the Fat Ds =
Method=20
when I copy memory-blocks, or do this method only make sense =
when I=20
<BR>want to change, read or write the bytes in the memory ? I =
have to=20
know this because of my Vesa-Functions. =
</P></BLOCKQUOTE></BODY></HTML>
--Boundary_(ID_9ASZzZ0uK5IM1R/wv4c+sA)--
- Raw text -