www.delorie.com/archives/browse.cgi   search  
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>&nbsp;</DIV>
<DIV><FONT size=3D2>1) Remove evrything related to DJGPP from your=20
system.</FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</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>&nbsp;</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>&nbsp;</DIV>
<DIV><FONT size=3D2>#include &lt;streambuf.h&gt;</FONT></DIV>
<DIV>&nbsp;</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>&nbsp;</DIV>
<DIV><FONT size=3D2>#include &lt;streambu.h&gt;</FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</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>&nbsp;</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>&nbsp;</DIV>
<DIV><FONT size=3D2>Good luck,</FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</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 &lt;<A=20
    =
href=3D"mailto:ChristianHofrichter AT gmx DOT de">ChristianHofrichter AT gmx DOT de</A>=
&gt;<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> &lt;<A=20
    =
href=3D"mailto:djgpp AT delorie DOT com">djgpp AT delorie DOT com</A>&gt;<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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=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&nbsp; the values =
of the=20
    <BR>CPU-Registers. But now I&nbsp; 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) ?&nbsp; 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&nbsp; this method only make sense =
when I=20
    <BR>want to change, read or write the bytes in the memory ?&nbsp; I =
have to=20
    know this because of my Vesa-Functions. =
</P></BLOCKQUOTE></BODY></HTML>

--Boundary_(ID_9ASZzZ0uK5IM1R/wv4c+sA)--

- Raw text -


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