From: Till Harbaum 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: 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