/* Structure for the data block passed to DarkLord when a module is 
called. The data should include: */

typedef struct dkl_info {
	short dk_xres;				/* the screen width in pixels */
	short dk_yres;				/* the screen height in pixels */
	short dk_handle;			/* the VDI virtual workstation handle */
	short dk_pens;				/* the maximum number of available colour pens (e.g. ST high=2, ST low=16, Falcon True colour=256) */
	short dk_colsloaded;		/* the number of colours present in the palette contained in the currently loaded DKL file (0 if there is no DKL file loaded) */
	short dk_planes;			/* the number of bitplanes in this screen resolution (True Colour returns 16) */
	int tc_flag;				/* set to 1 if True Colour mode, 0 otherwise */
	int *dklord_flag;			/* the exit flag, set to non-zero on entry to the module */
	int *counter;				/* pointer to the countdown flag available to the module */
	short *loaded_palette;		/* pointer to the colour palette loaded when the DKL file was loaded (or to a copy of the existing colour palette if no DKL file was loaded) */
	void *screen_ram;			/* pointer to the start of screen RAM */
	unsigned long gdos;			/* flag for the presence of GDOS and which GDOS type */
	int dk_flag1;				/* the chosen state for flag 1, ranges from 1-6 */
	int dk_flag2;				/* as for flag 1 */
	int dk_flag3;				/* as for flag 1 */
	int dk_min1;				/* the minimum value of variable 1 (this is not user-changeable) */
	int dk_max1;				/* the maximum value of variable 1 (this is not user-changeable) */
	int dk_start1;				/* the value set by the user for variable 1 */
	int dk_min2;				/* as for variable 1 */
	int dk_max2;				/* as for variable 1 */
	int dk_start2;				/* as for variable 1 */
	int dk_min3;				/* as for variable 1 */
	int dk_max3;				/* as for variable 1 */
	int dk_start3;				/* as for variable 1 */
	char *dk_line1;				/* pointer to the first line of the message the user wishes to be displayed */
	char *dk_line2;				/* pointer to the second line of the message the user wishes to be displayed */
	char *dk_line3;				/* pointer to the third line of the message the user wishes to be displayed */
	char dk_errmes[35];			/* holder for the message the module can pass back to DarkLord */
	char *dk_fontname;			/* pointer to the chosen font name */
	} DKL_INFO;


/* GDOS codes - one of these is passed in the GDOS flag of the above
structure on entry to the module */
/* These codes are provided in vdi.h for Lattice users (version 5.6)
and are therefore commented out here */

/*
#define GDOS_NONE	0xfffffffe	/* no GDOS */
#define GDOS_FSM	0x5f46534d	/* _FSM */
#define GDOS_FNT	0x5f464e54	/* _FNT */
*/

/* Function prototype for main() */
int main(DKL_INFO *);
