/* 0 */
/*-----------------------------------------------------------------------*/
/*-									-*/
/*-	FILE:	 BACKPARS.H						-*/
/*-									-*/
/*-	PURPOSE: Defines structures and DEFINES for the DOS PARSE	-*/
/*-		 service routines.					-*/
/*-									-*/
/*-	DATE:  	 6/5/87							-*/
/*-									-*/
/*-----------------------------------------------------------------------*/


/**********************************************************/
/* STRUCTURE TO DEFINE ADDITIONAL COMMAND LINE DELIMITERS */
/**********************************************************/
struct p_parms								/*;AN000;4*/
	{								/*;AN000;4*/
	 WORD	parmsx_ptr;		/* POINTER TO PARMS STRUCTURE *//*;AN000;4*/
	 BYTE	p_num_extra;		/* 1 SAYS THAT A DELIMITER LIST FOLLOWS */ /*;AN000;4*/
	 BYTE	p_len_extra_delim;	/* NUMBER OF ADDITIONAL DELIMITERS *//*;AN000;4*/
	 BYTE	p_extra_delim[2];	/* ADDITIONAL DELIMITERS */	/*;AN000;4*/
	};								/*;AN000;4*/

/**************************************************/
/* STRUCTURE TO DEFINE BACKUP SYNTAX REQUIREMENTS */
/**************************************************/
struct	p_parmsx							    /*;AN000;4*/
	{								    /*;AN000;4*/
	 BYTE  p_minpos;       /* THERE ARE 2 REQUIRED POSITIONAL PARMS*/   /*;AN000;4*/
	 BYTE  p_maxpos;       /* THERE ARE 2 REQUIRED POSITIONAL PARMS*/   /*;AN000;4*/
	 WORD  pos1_ptr;       /* POINTER TO SOURCE FILESPEC DEF AREA*/     /*;AN000;4*/
	 WORD  pos2_ptr;       /* POINTER TO TARGET DRIVE DEF AREA*/	    /*;AN000;4*/
	 BYTE  num_sw;	       /* THERE ARE 7 SWITCHES (/S, /F, /M, /A, /L:, /T:, /D:)	*/ /*;AN000;4*/
	 WORD  sw1_ptr;        /* POINTER TO FIRST  SWITCH DEFINITION AREA*//*;AN000;4*/
	 WORD  sw2_ptr;        /* POINTER TO SECOND SWITCH DEFINITION AREA*//*;AN000;4*/
	 WORD  sw3_ptr;        /* POINTER TO THIRD  SWITCH DEFINITION AREA*//*;AN000;4*/
	 WORD  sw4_ptr;        /* POINTER TO FOURTH SWITCH DEFINITION AREA*//*;AN000;4*/
	 WORD  sw5_ptr;        /* POINTER TO FIFTH  SWITCH DEFINITION AREA*//*;AN000;4*/
	 WORD  num_keywords;   /* NUMBER OF KEYWORDS IN BACKUP SYNTAX*/     /*;AN000;4*/
	};								    /*;AN000;4*/

/****************************************/
/* STRUCTURE TO DEFINE POSITIONAL PARMS */
/****************************************/
struct p_pos_blk							/*;AN000;4*/
	{								/*;AN000;4*/
	 WORD	match_flag;		/* Controls type matched */	/*;AN000;4*/
	 WORD	function_flag;		/* Function should be taken */	/*;AN000;4*/
	 WORD	result_buf;		/* Result buffer address */	/*;AN000;4*/
	 WORD	value_list;		/* Value list address */	/*;AN000;4*/
	 BYTE	nid;			/* # of keyword/SW synonyms (0) *//*;AN000;4*/
	};								/*;AN000;4*/

/********************************/
/* STRUCTURE TO DEFINE SWITCHES */
/********************************/
struct p_sw_blk 							/*;AN000;4*/
	{								/*;AN000;4*/
	 WORD	p_match_flag;		/* Controls type matched */	/*;AN000;4*/
	 WORD	p_function_flag;	/* Function should be taken */	/*;AN000;4*/
	 WORD	p_result_buf;		/* Result buffer address */	/*;AN000;4*/
	 WORD	p_value_list;		/* Value list address */	/*;AN000;4*/
	 BYTE	p_nid;			/* # of switches */		/*;AN000;4*/
	 BYTE	switch1[3];		/* Save area for switch */	/*;AN000;4*/
	 BYTE	switch2[3];		/* Save area for switch */	/*;AN000;4*/
	 BYTE	switch3[3];		/* Save area for switch */	/*;AN000;4*/
	 BYTE	switch4[3];		/* Save area for switch */	/*;AN000;4*/
	};								/*;AN000;4*/
/**/
/*---------------------------------------------------------------------------*/
/*---------------------------------------------------------------------------*/

/**************************/
/* RETURN BUFFER FOR TIME */
/**************************/
struct timebuff 							/*;AN000;4*/
	{								/*;AN000;4*/
	 BYTE	t_type;        /* TYPE RETURNED*/			/*;AN000;4*/
	 BYTE	t_item_tag;    /* SPACE FOR ITEM TAG*/			/*;AN000;4*/
	 WORD	t_synonym_ptr; /* pointer to Synonym list returned */	/*;AN000;4*/
	 BYTE	hours;							/*;AN000;4*/
	 BYTE	minutes;						/*;AN000;4*/
	 BYTE	seconds;						/*;AN000;4*/
	 BYTE	hundreds;						/*;AN000;4*/
	};								/*;AN000;4*/

/**************************/
/* RETURN BUFFER FOR DATE */
/**************************/
struct datebuff
	{								/*;AN000;4*/
	 BYTE	d_type;        /* TYPE RETURNED*/			/*;AN000;4*/
	 BYTE	d_item_tag;    /* SPACE FOR ITEM TAG*/			/*;AN000;4*/
	 WORD	d_synonym_ptr; /* pointer to Synonym list returned */	/*;AN000;4*/
	 WORD	year;							/*;AN000;4*/
	 BYTE	month;							/*;AN000;4*/
	 BYTE	day;							/*;AN000;4*/
	};								/*;AN000;4*/


/*******************************************/
/* RETURN BUFFER FOR POSITIONAL PARAMETERS */
/*******************************************/
struct p_result_blk							/*;AN000;4*/
	{								/*;AN000;4*/
	 BYTE	p_type; 		/* Type returned */		/*;AN000;4*/
	 BYTE	p_item_tag;		/* Matched item tag */		/*;AN000;4*/
	 WORD	p_synonym_ptr;		/* pointer to Synonym list returned *//*;AN000;4*/
	 DWORD	p_string_ptr;		/* Pointer to string		/*;AN000;4*/
	};								/*;AN000;4*/

/****************************************/
/* RETURN BUFFER FOR SWITCH INFORMATION */
/****************************************/
struct	switchbuff							/*;AN000;4*/
	{								/*;AN000;4*/
	 BYTE	sw_type;	 /* TYPE RETURNED*/			/*;AN000;4*/
	 BYTE	sw_item_tag;	 /* Matched item tag */ 		/*;AN000;4*/
	 WORD	sw_synonym_ptr;  /* pointer to synonym */		/*;AN000;4*/
	 DWORD	sw_string_ptr;	 /* Pointer to string */		/*;AN000;4*/
	};								/*;AN000;4*/


/********************************/
/* VALUE LIST FOR /F: PARAMETER */
/********************************/
struct	val_list_struct 					     /*;AN000;pxxxx*/
	{							     /*;AN000;pxxxx*/
	 BYTE	nval;						     /*;AN000;pxxxx*/
	 BYTE	num_ranges;					     /*;AN000;pxxxx*/
	 BYTE	num_choices;					     /*;AN000;pxxxx*/
	 BYTE	num_strings;					     /*;AN000;pxxxx*/
	 BYTE	item_tag01;					     /*;AN000;pxxxx*/
	 WORD	val01;						     /*;AN000;pxxxx*/
	 BYTE	item_tag02;					     /*;AN000;pxxxx*/
	 WORD	val02;						     /*;AN000;pxxxx*/
	 BYTE	item_tag03;					     /*;AN000;pxxxx*/
	 WORD	val03;						     /*;AN000;pxxxx*/
	 BYTE	item_tag04;					     /*;AN000;pxxxx*/
	 WORD	val04;						     /*;AN000;pxxxx*/
	 BYTE	item_tag05;					     /*;AN000;pxxxx*/
	 WORD	val05;						     /*;AN000;pxxxx*/
	 BYTE	item_tag06;					     /*;AN000;pxxxx*/
	 WORD	val06;						     /*;AN000;pxxxx*/
	 BYTE	item_tag07;					     /*;AN000;pxxxx*/
	 WORD	val07;						     /*;AN000;pxxxx*/
	 BYTE	item_tag08;					     /*;AN000;pxxxx*/
	 WORD	val08;						     /*;AN000;pxxxx*/
	 BYTE	item_tag09;					     /*;AN000;pxxxx*/
	 WORD	val09;						     /*;AN000;pxxxx*/
	 BYTE	item_tag10;					     /*;AN000;pxxxx*/
	 WORD	val10;						     /*;AN000;pxxxx*/
	 BYTE	item_tag11;					     /*;AN000;pxxxx*/
	 WORD	val11;						     /*;AN000;pxxxx*/
	 BYTE	item_tag12;					     /*;AN000;pxxxx*/
	 WORD	val12;						     /*;AN000;pxxxx*/
	 BYTE	item_tag13;					     /*;AN000;pxxxx*/
	 WORD	val13;						     /*;AN000;pxxxx*/
	 BYTE	item_tag14;					     /*;AN000;pxxxx*/
	 WORD	val14;						     /*;AN000;pxxxx*/
	 BYTE	item_tag15;					     /*;AN000;pxxxx*/
	 WORD	val15;						     /*;AN000;pxxxx*/
	 BYTE	item_tag16;					     /*;AN000;pxxxx*/
	 WORD	val16;						     /*;AN000;pxxxx*/
	 BYTE	item_tag17;					     /*;AN000;pxxxx*/
	 WORD	val17;						     /*;AN000;pxxxx*/
	 BYTE	item_tag18;					     /*;AN000;pxxxx*/
	 WORD	val18;						     /*;AN000;pxxxx*/
	 BYTE	item_tag19;					     /*;AN000;pxxxx*/
	 WORD	val19;						     /*;AN000;pxxxx*/
	 BYTE	item_tag20;					     /*;AN000;pxxxx*/
	 WORD	val20;						     /*;AN000;pxxxx*/
	 BYTE	item_tag21;					     /*;AN000;pxxxx*/
	 WORD	val21;						     /*;AN000;pxxxx*/
	 BYTE	item_tag22;					     /*;AN000;pxxxx*/
	 WORD	val22;						     /*;AN000;pxxxx*/
	 BYTE	item_tag23;					     /*;AN000;pxxxx*/
	 WORD	val23;						     /*;AN000;pxxxx*/
	 BYTE	item_tag24;					     /*;AN000;pxxxx*/
	 WORD	val24;						     /*;AN000;pxxxx*/
	 BYTE	item_tag25;					     /*;AN000;pxxxx*/
	 WORD	val25;						     /*;AN000;pxxxx*/
	 BYTE	item_tag26;					     /*;AN000;pxxxx*/
	 WORD	val26;						     /*;AN000;pxxxx*/
	 BYTE	item_tag27;					     /*;AN000;pxxxx*/
	 WORD	val27;						     /*;AN000;pxxxx*/

	};							     /*;AN000;pxxxx*/

/*********************************/
/* VALUE TABLE FOR /F: PARAMETER */
/*********************************/
struct	val_table_struct					     /*;AN000;pxxxx*/
	{							     /*;AN000;pxxxx*/
	 BYTE	val01[7];					     /*;AN000;pxxxx*/
	 BYTE	val02[7];					     /*;AN000;pxxxx*/
	 BYTE	val03[7];					     /*;AN000;pxxxx*/
	 BYTE	val04[7];					     /*;AN000;pxxxx*/
	 BYTE	val05[7];					     /*;AN000;pxxxx*/
	 BYTE	val06[7];					     /*;AN000;pxxxx*/
	 BYTE	val07[7];					     /*;AN000;pxxxx*/
	 BYTE	val08[7];					     /*;AN000;pxxxx*/
	 BYTE	val09[7];					     /*;AN000;pxxxx*/
	 BYTE	val10[7];					     /*;AN000;pxxxx*/
	 BYTE	val11[7];					     /*;AN000;pxxxx*/
	 BYTE	val12[7];					     /*;AN000;pxxxx*/
	 BYTE	val13[7];					     /*;AN000;pxxxx*/
	 BYTE	val14[7];					     /*;AN000;pxxxx*/
	 BYTE	val15[7];					     /*;AN000;pxxxx*/
	 BYTE	val16[7];					     /*;AN000;pxxxx*/
	 BYTE	val17[7];					     /*;AN000;pxxxx*/
	 BYTE	val18[7];					     /*;AN000;pxxxx*/
	 BYTE	val19[7];					     /*;AN000;pxxxx*/
	 BYTE	val20[7];					     /*;AN000;pxxxx*/
	 BYTE	val21[7];					     /*;AN000;pxxxx*/
	 BYTE	val22[7];					     /*;AN000;pxxxx*/
	 BYTE	val23[7];					     /*;AN000;pxxxx*/
	 BYTE	val24[7];					     /*;AN000;pxxxx*/
	 BYTE	val25[7];					     /*;AN000;pxxxx*/
	 BYTE	val26[7];					     /*;AN000;pxxxx*/
	 BYTE	val27[7];					     /*;AN000;pxxxx*/
	};							     /*;AN000;pxxxx*/
