From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,80d377389f1801b0 X-Google-Attributes: gid103376,public From: jerry@jvdsys.nextjk.stuyts.nl (Jerry van Dijk) Subject: Re: Interrupt overhead with DJGPP's extender Date: 1996/07/18 Message-ID: #1/1 X-Deja-AN: 169541101 references: <31EC2DD4.7A94@ee.ubc.ca> organization: JerryWare HQ, Haarlem, Holland followup-to: comp.os.msdos.djgpp,comp.lang.ada newsgroups: comp.lang.ada Date: 1996-07-18T00:00:00+00:00 List-Id: Greg Bond (bond@ee.ubc.ca) wrote: : I understand that DJGPP programs run with the help of a DOS extender to : enable execution in a 32 bit protected address space under DOS. More or less... DJGPP versions before 2.0 used a real dos extender called go32. Current versions run straigth under DPMI. So, if you want to call Windows a DOS extender... :-)) : I'm : curious what overhead DJGPP's DOS extender imposes on programs in : general (I've been able to find no documentation on-line pertaining to : the functionality of DOS extenders). It depends on what you call overhead. For normal functionality like assigning memory or redirecting interrupts it simply relies on DPMI. Now, if you want to call the virtual memory management overhead... :-) : In particular, I'd like to know what overhead is imposed by DJGPP's DOS : extender for interrupt handling (in GNAT Ada - although I can't see why : it should be any different in C). You are right, there is no difference between C and Ada here. Neither allow you to write reliable interrupt handlers under DOS. The problem is that you cannot lock all memory needed by the interrupt handler. And imagine what would happen if your ISR is swapped out by the memory manager just when an interrupt occurs. As for overhead, that isn't related to the dos extender, but to the nature of DOS. Remember that even a protected mode program has to call real-mode DOS functions. So an interrupt could occur in either protected mode (which requires an protected mode interrupt handle) or in real mode (which, depending on the setup could be redirected to protected mode by DPMI -costly- or an specific real-mode interrupt handler). Although it can be done, interrupt handing in the djgpp enviroment is tricky to say the least. Hope this helps. Jerry. -- ----------------------------------------------------------------------- -- Jerry van Dijk -- e-mail: jerry@jvdsys.nextjk.stuyts.nl -- -- Banking Consultant -- Member Team-Ada -- -- Ordina Finance BV -- Located at Haarlem, The Netherlands --