delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1997/03/17/02:19:11

From: enigma AT erols DOT com (enigma)
Newsgroups: comp.os.msdos.djgpp
Subject: copying from real more to pm...
Date: Sun, 16 Mar 1997 22:36:24 GMT
Organization: djgpp, i luv u ;)
Lines: 36
Message-ID: <332c7487.7195759@news.erols.com>
NNTP-Posting-Host: dam-as11s58.erols.com
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp

ok.. this has been bugging me for a little why...
i'm trying to copy memory from a real pointer to a protected mode
pointer.  well, i got the copying of bytes to work, but my func for
copying unsigned words isn't working.  i could use a little help here
folks

code:

#define RM_TO_LINEAR(addr)    (((addr & 0xFFFF0000) >> 12) + (addr &
0xFFFF))

UWORD *PMcopyWordtoLocal(UWORD *RMptr) {

   UWORD buffer[256], *p;
   UWORD count = 0;
   ULONG addr;

   addr = RM_TO_LINEAR((ULONG)RMptr);
   _farsetsel(_dos_ds);
   while (_farnspeekw(addr) != 0xFFFF) {
      buffer[count++] = _farnspeekw(addr++);
      addr++;
   }
   buffer[count] = 0xFFFF;
   p = (UWORD *)malloc(count);
   memcpy(p,buffer,count);
   return p;

}

feel free to criticize my code as much as necessary.  style,
bugs,etc..
just gimme my mistake ;) 

mint
enigma AT erols DOT com

- Raw text -


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