		RSEG ICODE:CODE

		EXTERN vUARTRxISRHandler
		EXTERN vUARTTxISRHandler		
		
		PUBLIC vUARTRxISRWrapper
		PUBLIC vUARTTxISRWrapper		

; Wrappers for the serial port interrupt service routines.  These can cause a
; context switch so requires an assembly wrapper.

; Defines the portSAVE_CONTEXT and portRESTORE_CONTEXT macros.
#include "ISR_Support.h"

vUARTRxISRWrapper:

	portSAVE_CONTEXT				; Save the context of the current task.

	jarl	vUARTRxISRHandler, lp	; Call the ISR routine.

	portRESTORE_CONTEXT				; Restore the context of the current task -
									; which may be different to the task that
									; was interrupted.

vUARTTxISRWrapper:

	portSAVE_CONTEXT				; Save the context of the current task.

	jarl	vUARTTxISRHandler, lp	; Call the ISR routine.

	portRESTORE_CONTEXT				; Restore the context of the current task -
									; which may be different to the task that
									; was interrupted.


      COMMON INTVEC:CODE:ROOT(2)
      ORG 2c0H
`??vUARTRxISRWrapper??INTVEC 2c0`:
        JR vUARTRxISRWrapper

      COMMON INTVEC:CODE:ROOT(2)
      ORG 2d0H
`??vUARTTxISRWrapper??INTVEC 2d0`:
        JR vUARTTxISRWrapper

	END

