delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1998/11/01/09:07:03

Date: Sun, 1 Nov 1998 14:38:49 +0200 (IST)
From: Eli Zaretskii <eliz AT is DOT elta DOT co DOT il>
X-Sender: eliz AT is
To: Christian Hofrichter <ChristianHofrichter AT gmx DOT de>
cc: djgpp AT delorie DOT com
Subject: Re: Djgpp-Compiler
In-Reply-To: <363B63D4.1082C192@gmx.de>
Message-ID: <Pine.SUN.3.91.981101143801.6846j-100000@is>
MIME-Version: 1.0
Reply-To: djgpp AT delorie DOT com

On Sat, 31 Oct 1998, Christian Hofrichter wrote:

> When I want to link my C-programs, I get the error message under DOS :
> ld.exe: cannot open -lstdcx: No such file or directory (ENOENT)
> although I followed the instuctions, listed in the problems.txt. But
> under Windows 95 everthing works fine. What did I do
> wrong ?

If you want your installation to work in plain DOS mode as well as
under Windows 9X, you need some additional setup.  Please read section
22.18 of the DJGPP FAQ list (v2/faq211b.zip from the same place you
get DJGPP) which explains this special setup.

> Do I really have to copy the value of the Registers in a variable
> and print the variable instead of the Registers ?

In general, yes.  But you need to ask yourself, do you really need the
pseudo-register variables in the DJGPP version.  GCC's syntax for
inline assembly makes it possible to refer to C variables from the
inline assembly code, so in general, you don't need to mess with
pseudo-registers at all.

See also section 17.8 of the DJGPP FAQ list.

> In Real-Mode I could move a block of memory by storing the values of the
> Segements in the ES and DS Register, and
> 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 assembler) ?

Do you really need to do that in assembly?  If not, DJGPP has a
library function `movedata' that will do that for you, which is very
fast, since it moves 4 bytes at a time and is written in assembly.

See also section 18.4 of the FAQ which discusses other methods of
moving data between your program and conventional-memory addresses.

> Do the Djgpp - C++ - Copy - Routines move 4 bytes at one time or only 1
> or 2 byte(s) ?

If you use `movedata' or `dosmemget'/`dosmemput', they move 4 bytes at
a time.

> Can I improve the performance by using the Fat Ds Method when I copy
> memory-blocks,

No, FAT DS doesn't improve performance of block moves.

> or do this method only make sense when I want to change, read or
> write the bytes in the memory ?

Yes.

- Raw text -


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