/*
 * screen.h
 *
 * [Generated from screen, 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 __screen_h
#define __screen_h

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

/*----- Overview ----------------------------------------------------------*
 *
 * Functions provided:
 *
 *  screen_getInfo
 *  screen_cache
 *  screen_justChangedMode
 *  screen_init
 */

/* --- screen_getInfo --- *
 *
 * On entry:	--
 *
 * On exit:	R0 == pointer to screen information block
 *
 * Use:		This call returns a pointer to a block of information
 *		about the current screen modes.  The format of this block
 *		is defined above.
 */

extern routine screen_getInfo;

/* --- screen_cache --- *
 *
 * On entry:	R12 points to workspace
 *
 * On exit:	--
 *
 * Use:		Caches screen information for the current mode.
 */

extern routine screen_cache;

/* --- screen_justChangedMode --- *
 *
 * On entry:	--
 *
 * On exit:	CS if last event was a mode change, CC otherwise
 *
 * Use:		Informs the caller if the last event was a mode change.
 *		The system ignores open window requests when making it's
 *		decision.
 */

extern routine screen_justChangedMode;

/* --- screen_init --- *
 *
 * On entry:	--
 *
 * On exit:	--
 *
 * Use:		Initialises the screen unit.
 */

extern routine screen_init;

/*----- Data offsets ------------------------------------------------------*/

#define screen_xEig 0
#define screen_yEig 4
#define screen_bpp 8
#define screen_width 12
#define screen_height 16
#define screen_dx 20
#define screen_dy 24

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

#endif
