Mail Archives: djgpp/1999/12/10/07:10:09
| From:  | ido_b AT my-deja DOT com
 | 
| Newsgroups:  | comp.os.msdos.djgpp
 | 
| Subject:  | __dpmi_allocate_dos_memory causes program to abort
 | 
| Date:  | Fri, 10 Dec 1999 10:45:48 GMT
 | 
| Organization:  | Deja.com - Before you buy.
 | 
| Lines:  | 29
 | 
| Message-ID:  | <82qlkr$lfp$1@nnrp1.deja.com>
 | 
| NNTP-Posting-Host:  | 212.25.87.118
 | 
| X-Article-Creation-Date:  | Fri Dec 10 09:43:53 1999 GMT
 | 
| X-Http-User-Agent:  | Mozilla/4.0 (Windows 95;US) Opera 3.60 [en]
 | 
| X-Http-Proxy:  | 1.0 x35.deja.com:80 (Squid/1.1.22) for client 212.25.87.118
 | 
| To:  | djgpp AT delorie DOT com
 | 
| DJ-Gateway:  | from newsgroup comp.os.msdos.djgpp
 | 
| Reply-To:  | djgpp AT delorie DOT com
 | 
hi,
I read chapter 18 of the FAQ and didn't fully understand how to use software
interrupts from within my program. I used something like: __dpmi_regs regs;
regs.x.ax = ...
...
__dpmi_int(..., ®s);
but I need to pass a memory address of a buffer in DS:SI.
I cannot use FP_SEG and FP_OFF, so I tried
__dpmi_allocate_dos_memory  in order to get the segment.
when I call that function like this:
__adpmi_raddr adr;
adr.segment =
  __dpmi_allocate_dos_memory, it sends an abort signal and exits;
1. What's wrong with my code?
2. Is there a better way to do this?
Thanks, in advance,
Ido.
Sent via Deja.com http://www.deja.com/
Before you buy.
- Raw text -