www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1997/02/08/21:51:15

From: Till Harbaum <harbaum AT ra DOT ibr DOT cs DOT tu-bs DOT de>
Newsgroups: comp.os.msdos.djgpp
Subject: caveat bc3.1 -> djgpp
Date: 08 Feb 1997 17:33:42 +0100
Organization: TU Braunschweig, Informatik (Bueltenweg), Germany
Lines: 25
Sender: harbaum AT logic
Distribution: world
Message-ID: <yks914z9s0p.fsf@ra.ibr.cs.tu-bs.de>
NNTP-Posting-Host: logic.ibr.cs.tu-bs.de
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp

Hi!

The last days i ported a program from bc3.1 to djgpp. I soon detected
that djgpp gives me a bc compatible int86(..) call with the appropriate 
REGS union. 

Sometimes i had very strange symptoms in my program: The 3d glasses 
were not detected or my mouse driver went mad. When and what went 
wrong relied somehow on the things i did before starting my program.

Then i realized that the x registers (ax,bx,cx..) are 32 bit in djgpp 
and sometimes return values greater than 16 bit. Using the __dpmi_int(..) 
call and its __dpmi_regs solved my problem.

Now the question:
Why are the x registers from the REGS union 32 bits long and
the x registers from __dpmi_regs 16 bit? (looking into the header 
file shows, that its author did mind about 16/32 things)

Perhaps someone (Eli?) should mention this in the faq?

Ciao,
  Till

T DOT Harbaum AT tu-bs DOT de

- Raw text -


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