[comp.lang.ada] Meridian Ada and IBM PC serial ports

mfeldman@seas.gwu.edu (Michael Feldman) (01/23/91)

In article <mskuhn.664466478@faui09> mskuhn@faui09.informatik.uni-erlangen.de (Markus Kuhn) writes:
>I am developing an (public domain) application with Meridian
>Open Ada 4.1 (was AdaZ) with lots of pre-emptive tasking
>and access to the serial ports (an OSI system!).
>
>Can this problem also be solved with Meridian's interrupt
>entry mechanism? Somebody wrote here a few weeks ago that this
>would be to slow.
>
I assume you have access to the AdaZ documentation. Their DOS Environment
Library has a package called Interrupt. Gives you direct access to the
DOS interrupts without using the "right" Ada way to do it, which is the
interrupt entry. Looks similar to what you're used to in TP.

I have no idea what the comparative timings are. There is a commonly-held
view that ANYTHING done with the Ada tasking constructs MUST be much
slower than doing it "the old way" without tasking. This seems to be true
sometimes, but not always.

I'd be VERY interested in seeing a comparative implementation of (a
simple version) of your program, done both ways. I think the net would be
interested as well. If you can get this working, we'd all appreciate your
posting the code. Try something simple first.


---------------------------------------------------------------------------
Prof. Michael Feldman
Department of Electrical Engineering and Computer Science
The George Washington University
Washington, DC 20052
202-994-5253
mfeldman@seas.gwu.edu
---------------------------------------------------------------------------

case@shamash.cdc.com (Steven V. Case) (01/23/91)

In article <2583@sparko.gwu.edu>, mfeldman@seas.gwu.edu (Michael Feldman) writes:
> In article <mskuhn.664466478@faui09> mskuhn@faui09.informatik.uni-erlangen.de (Markus Kuhn) writes:
> >I am developing an (public domain) application with Meridian
> >Open Ada 4.1 (was AdaZ) with lots of pre-emptive tasking
> >and access to the serial ports (an OSI system!).
> >
> >Can this problem also be solved with Meridian's interrupt
> >entry mechanism? Somebody wrote here a few weeks ago that this
> >would be to slow.
> >
> I assume you have access to the AdaZ documentation. Their DOS Environment
> Library has a package called Interrupt. Gives you direct access to the
> DOS interrupts without using the "right" Ada way to do it, which is the
> interrupt entry. Looks similar to what you're used to in TP.

Sorry, but the DOS Environment Library does not help here.  The Interrupt
package provides 'calls' to the interrupt vectors.  The original post was
looking for information on how to implement their own handler to respond
to calls to the interrupt vectors.

As it turns out, the 4.0 version of Meridian Ada does not appear to support
user implemented interrupt handlers for the RS-232 interrupts.  I don't know
if the 4.1 version will provide the capability.  I am (im)patiently waiting
for my upgrade.  As soon as it arrives I will port my 4.0 code over and 
see what happens.

-- 
  ____  ____        Steve Case - HQG526           email: case@shamash.cdc.com
 / ___||___ \       Control Data Corporation      AT&T : (612) 853-3345
| |___  ___| |      3101 East 80th Street                 
 \____||____/       Bloomington, MN 55425