;	FreeRTOS.org V5.1.2 - Copyright (C) 2003-2009 Richard Barry.
;
;	This file is part of the FreeRTOS.org distribution.
;
;	FreeRTOS.org is free software; you can redistribute it and/or modify
;	it under the terms of the GNU General Public License as published by
;	the Free Software Foundation; either version 2 of the License, or
;	(at your option) any later version.
;
;	FreeRTOS.org is distributed in the hope that it will be useful,
;	but WITHOUT ANY WARRANTY; without even the implied warranty of
;	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
;	GNU General Public License for more details.
;
;	You should have received a copy of the GNU General Public License
;	along with FreeRTOS.org; if not, write to the Free Software
;	Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
;
;	A special exception to the GPL can be applied should you wish to distribute
;	a combined work that includes FreeRTOS.org, without being obliged to provide
;	the source code for any proprietary components.  See the licensing section
;	of http://www.FreeRTOS.org for full details of how and when the exception
;	can be applied.
;
;	***************************************************************************
;	See http://www.FreeRTOS.org for documentation, latest information, license
;	and contact details.  Please ensure to read the configuration and relevant
;	port sections of the online documentation.
;	***************************************************************************
;
;------------------------------------------------------------------------------

;
; This file defines a wrapper for the interrupt generated each time the button
; on the target board is pushed.  The asm wrapper is used to save and restore
; the task context as a context switch may occur within the ISR itself.
; The C portion of the ISR is defined within ButtonTask.c.
;

; Include the portSAVE_CONTEXT and portRESTORE_CONTEXT macros.
#include "ISR_Support.h"

	PUBLIC    vButtonISRWrapper
	EXTERN    vButtonISRHandler

    RSEG CODE:CODE
	
vButtonISRWrapper:
	; Save the current task context.	
	portSAVE_CONTEXT

	; Call the C portion of the ISR.
	call vButtonISRHandler

	; Restore the context of whichever task is to run next - which might be
	; different from the task that was originally interrupted.
	portRESTORE_CONTEXT
	reti



	; Place the ISR into the vector table.
	COMMON INTVEC:CODE:ROOT(1)
	ORG 8
`??vButtonISRWrapper??INTVEC 8`:
	DW vButtonISRWrapper


	END
