/*
 * repeater.h
 *
 * [Generated from repeater, 25 September 1996]
 */

#if !defined(__CC_NORCROFT) || !defined(__arm)
  #error You must use the Norcroft ARM Compiler for Sapphire programs
#endif

#pragma include_only_once
#pragma force_top_level

#ifndef __repeater_h
#define __repeater_h

#ifndef __sapphire_h
  #include "sapphire.h"
#endif

/*----- Overview ----------------------------------------------------------*
 *
 * Functions provided:
 *
 *  repeater
 *  rpt_end
 */

/* --- repeater --- *
 *
 * On entry:	R0 == pointer to routine to call
 *		R1 == R10 value to pass to routine
 *		R2 == R12 value to pass to routine
 *
 * On exit:	--
 *
 * Use:		Calls a routine (a) immediately, (b) after the configured
 *		keyboard delay rate and (c) repeatedly after the configured
 *		keyboard repeat rate.  Calls stop when the user stops
 *		pressing the mouse button.
 *
 *		The routine is called with R0 containing either the number
 *		of missed calls since the last one (normally this is 1) --
 *		this is intended to be used to implement a kind of buffering
 *		of repeats if the operation being performed is a lengthy one
 *		-- and with 0 to indicate that the operation is now
 *		completed.
 */

extern routine repeater;

/* --- rpt_end --- *
 *
 * On entry:	--
 *
 * On exit:	--
 *               
 * Use:		Ends a repeater before the drag is released. No final
 *		0 is sent to the handler.
 */

extern routine rpt_end;

/*----- That's all, folks -------------------------------------------------*/

#endif
