[comp.realtime] Language constructs for interrupt facility

cshen@maui.cs.ucla.edu (Chien Chung Shen) (11/15/89)

I am interested in language constructs for interrupt facility.
Ada has "address clauses" and entry calls. Are there any other
languages which support interrupt facility and how are they
implemented? Any direction is appreciated.

Chien-Chung <cshen@cs.ucla.edu>
Hello, this is Chien-Chung Shen

ejp@vixen (Ed Prochak) (11/22/89)

In article <29160@shemp.CS.UCLA.EDU> cshen@maui.cs.ucla.edu
(Chien Chung Shen) writes:
>I am interested in language constructs for interrupt facility.
>Ada has "address clauses" and entry calls. Are there any other
>languages which support interrupt facility and how are they
>implemented? Any direction is appreciated.
>
>Chien-Chung <cshen@cs.ucla.edu>
>Hello, this is Chien-Chung Shen

I haven't used it for a long time, but Intel's PL/M
has interrupt type procedures. The compiler is geared
to their hardware, bbut you did ask for any directions.

PL/M also had some other strange facilities, like the
ability to call an assembler routine stored as data.
For the things I used it for, it was an appropriate choice.


Edward J. Prochak        (216)646-4663       I think. 
{cwjcc,pyramid,decvax,uunet}!abvax!ejp       I think I am.
Allen-Bradley Industrial Computer Div.       Therefore, I AM!
Highland Heights,OH 44143                    I think?  --- Moody Blues

aurie@rhea.trl.oz.au (Alistair Urie - Radio and Satellite Networks) (11/27/89)

>In article <29160@shemp.CS.UCLA.EDU> cshen@maui.cs.ucla.edu
>(Chien Chung Shen) writes:
>>I am interested in language constructs for interrupt facility.
>>Ada has "address clauses" and entry calls. Are there any other
>>languages which support interrupt facility and how are they
>>implemented? Any direction is appreciated.
>>

I rather liked the way HP does it in there development systems, a $INTERRUPT
pre-complier command in the source sets the following routines as interupts
(in effect the routines compile to an RTI rather than RTS return - in 68K )

Alistair URIE                                     Radio and Satellite Networks
Phone:   +61 3 541 6370                           Telecom Research Laboratories
Fax:     +61 3 543 3339                           770 Blackburn Rd. Clayton Vic
Internet: aurie@rhea.trl.oz.au                                        AUSTRALIA

abrodnik@watdragon.waterloo.edu (Andrej Brodnik (Andy)) (11/28/89)

In article <836@trlluna.trl.oz> aurie@rhea.trl.oz.au.trl.oz (Alistair Urie - Radio and Satellite Networks) writes:
>>In article <29160@shemp.CS.UCLA.EDU> cshen@maui.cs.ucla.edu
>>(Chien Chung Shen) writes:
>>>I am interested in language constructs for interrupt facility.
>>>Ada has "address clauses" and entry calls. Are there any other
>>>languages which support interrupt facility and how are they
>>>implemented? Any direction is appreciated.
>>>
>
>I rather liked the way HP does it in there development systems, a $INTERRUPT
>pre-complier command in the source sets the following routines as interupts
>(in effect the routines compile to an RTI rather than RTS return - in 68K )

Modula-2 has IOTRANSFER and the new BSI standard tries to specify it even more
preceisley. It (Modula-2) assumes that interrupt routine is nothing else but
another process. So interrupt handling is just a special case of general
concept of process handling.

Andrej

peter@guardian.UUCP (peter) (12/16/89)

In article <29160@shemp.CS.UCLA.EDU> cshen@maui.cs.ucla.edu (Chien Chung Shen)
writes:
>I am interested in language constructs for interrupt facility.
>Ada has "address clauses" and entry calls. Are there any other
>languages which support interrupt facility and how are they
>implemented? Any direction is appreciated.

Intel's PL/M and C compilers allow you to identify procedures as interrupt
handlers, using PROCEDURE INTERRUPT and #pragma interrupt, respectively.

For the 8086/80186 et al, the interrupt handler is associated with a
particular interrupt level.  For the 80286 and above, the system builder
(e.g., Intel's BLD386) must make this association by setting up an
appropriate entry in the interrupt descriptor table (IDT).
-------------------------------------------------------------------------------
Peter Plamondon, Intel Corp, 5200 NE Elam Young Pkwy, Hillsboro, OR  97124-6497
Internet: peter@langlab1.hf.intel.com                           +1 503-696-5219
UUNET   : uunet!intelhf!langlab1!peter     "I speak for myself, as best I can."
UUCP    : tektronix!psueea!foobar!langlab1.hf.intel.com!peter    
-------------------------------------------------------------------------------

duncant@mbunix.mitre.org (Thomson) (12/18/89)

BSO's C and Pascal compilers also support a keyword (I think it's
"$INTERRUPT") which allows a routine to be identified as an interrupt
handler.  The compiler then generates the appropriate code, i.e. RTI rather
than RTS.  They also provide some kind of macro mechanism for initializing
the interrupt vector table to connect to your routine.  I forget exactly
how this works.

Duncan Thomson