comp.lang.ada
 help / color / mirror / Atom feed
* Meridian Ada and IBM PC serial ports
@ 1991-01-21 14:01 Markus Kuhn
  1991-01-22 17:07 ` Michael Feldman
  0 siblings, 1 reply; 3+ messages in thread
From: Markus Kuhn @ 1991-01-21 14:01 UTC (permalink / raw)


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!).

As the PC ports have only a 1 byte buffer, the software has
to respond quite fast (faster than 18,2 times/sec) on an
interrupt that indicates that a byte has been received.
I think, the fastest solution is to set the port's interrupt
on a small procedure that reads out the byte and puts it in
a FIFO queue. But when this procedure is called by the interrupt,
where can I get the required values in registers like DS, BP, ...?
The interrupt might occur at any time, so my procedure needs
to establish it's own environment in order to access the FIFO
(a task local variable).

Turbo Pascal allows to declare a special interrupt version
of a procedure. That's exactly what I need in Meridian Ada.
(Unfortunately Turbo knows no tasking :-( )

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.

Thanks for any hint.

Markus Kuhn, Germany
CS student
(nobody important)
mskuhn@faui09.informatik.uni-erlangen.de

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~1991-01-23  3:12 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1991-01-21 14:01 Meridian Ada and IBM PC serial ports Markus Kuhn
1991-01-22 17:07 ` Michael Feldman
1991-01-23  3:12   ` Steven V. Case

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox