Xref: news2.mv.net alt.msdos.programmer:13469 comp.os.msdos.apps:8464 comp.os.msdos.desqview:3711 comp.os.msdos.djgpp:5935 comp.os.msdos.misc:35160 comp.os.msdos.programmer:26485 From: "Romano Signorelli" Newsgroups: alt.msdos.programmer,comp.msdos.programmer,comp.os.msdos.apps,comp.os.msdos.desqview,comp.os.msdos.djgpp,comp.os.msdos.misc,comp.os.msdos.programmer Subject: Is there any DPMI16 programmers out there? Date: Fri, 12 Jul 1996 08:44:49 +0200 Organization: Gefran S.p.A. Lines: 78 Message-ID: <01bb6fbd.9f2ab960$6fe8b8c2@uiemurs.gefran.it> NNTP-Posting-Host: uiemurs.gefran.it To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp I'm working with Borland BC 4.5 and Powerpack in DPMI16 Here are some specific comments about my problem. - I have a p-mode interrupt C function (handled with service 205h) - When i call a p-mode (not interrupt) C function from the interrupt, DS doesn't appear like i expect it. TD observations: - Standard p-mode C functions seems to assign DS=SS every time, in the standard entry-header. - It seems that the compiler assume DS=SS for all my program (although i've unchecked the relative compiler option). This is a function entry-header dump: mov ax,ss nop inc bp push bp mov bp,sp push ds mov ds,ax - Instead, interrupt p-mode C function, in the entry-header, load DS with a constant value and SS is unpredicable. This is a dump: push ax push bx push cx push dx push es push ds push si push di push bp mov bp,0C07 mov ds,bp mov bp,sp where 0C07 is a constant number equal to my data segment (preloaded runtime loader at startup) Like you can see, SS in the interrupt function is unpredicable and, performing a call to the standard procedure, force DS to be loaded with the actual SS value... and it CRASH! I can't believe that the problem is so hard to resolve. This is the first time i program DPMI16 interrupts and i, probably, make some mistake. Second problem: I've tried various solutions to handle the interrupt and i've found some problems. Deeply: may i intercept the p-mode interrupt with service 205h or must i intercept the r-mode interrupt also (201h service)? If so, how can i redirect the r-mode interrupt to the p-mode function (i've tried the callback but it seem to work not very well). Foot note: the purpose is to redirect the timer interrupt 8 and the UARTS interrupt. Thanks in advance. If you can not help me, please e-mail me some interesting DPMI resource addresses in internet (i've found NOTHING!). Powerpack manual seems to be a ZIPPED DPMI reference. -- Regards from Romano Signorelli Software research and development division Gefran S.p.A. Electronics and instrumentation for industry automation via Statale Sebina, 74 25050 Provaglio d'Iseo (BS) Italy Phone +39-30-98881 Fax: +39-30-9839063