[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()