[Contents] [Index] [Help] [Retrace] [Browse <] [Browse >]


   NAME
        SetICR -- cause, clear, and sample icr interrupts.

   SYNOPSIS
        oldMask = SetICR( Resource, mask )
        D0                A6        D0

        WORD SetICR( struct library *, word );

   FUNCTION
        This function provides a means of reseting, causing, and
        sampling 8520 cia interrupt control registers.

   INPUTS
        mask            A bit mask indicating which interrupts to be
                            effected. If bit 7 is clear the mask
                            indicates interrupts to be reset.  If bit
                            7 is set, the mask indicates interrupts to
                            be caused. Bit positions are identical to
                            those in 8520 ICR.

   RESULTS
        oldMask         The previous interrupt register status before
                            making the requested changes.  To sample
                            current status without making changes,
                            call the function with a null parameter.

   EXAMPLES
        Get the interrupt mask:
            mask = SetICR(0)
        Clear serial port interrupt:
            SetICR(0x08)

   NOTE
        The cia resources are special in that there is more than one
        of them in the system. Because of this, the C language stubs
        in amiga.lib for the cia resources require an extra parameter
        to specify which cia resource to use. the synopsis for the
        amiga.lib stubs is as follows:

        oldMask = SetICR( Resource, mask )
        D0                A6        D0

        WORD SetICR( struct library *, word );

        ***WARNING***

        Never read the contents of the cia interrupt control registers
        directly.  Reading the contents of one of the cia interrupt
        control registers clears the register.  This can result in
        interrupts being missed by critical operating system code, and
        other applications.

   EXCEPTIONS
        Setting an interrupt bit for an enabled interrupt will cause
        an immediate interrupt.

   SEE ALSO
        cia.resource/ableicr()