struct my_data	*p_info;
struct	appel_proc	*p_data_proc;
int	width,height;
struct	RastPort	*rp,*rps;
struct	Screen		*s;

struct	Library	*GadToolsBase;
struct	Library	*IntuitionBase;
struct	Library	*GfxBase;

extern	struct	tom_gadget	my_gadg[];
extern	void	__saveds	dark();
extern	void	proc_init();
extern	void	proc_end();
extern	char	*p_text_info;


/* Note: The folloing SPrintf Routine is taken from the program "FracBlank " */
/* by:									     */
UWORD PutChar[2] = {0x16C0,0x4E75};

/* dirty hack to avoid assembler part :-)
   16C0: move.b d0,(a3)+
   4E75: rts
*/

#define VOID_STDARGS   void __stdargs
#define VOID_REGARGS   void __regargs

VOID_STDARGS SPrintF(char *Buffer,char *FormatString,...)

{
 RawDoFmt (FormatString,(APTR)((LONG *)&FormatString+1L),
           (void *)PutChar,Buffer);
}
void	_main(line)
register	char	*line;
{
    struct	MsgPort	*mp;

   /****************************************************************/
   /* Recherche du port qui contient les infos relatives a l'ecran */
   /* Ce port permet de passer des donnes de la tache main vers ici*/ 
   /****************************************************************/

   IntuitionBase=(struct Library *)OpenLibrary("intuition.library",0);
   GfxBase=(struct Library *)OpenLibrary("graphics.library",0);
   if((mp=FindPort("That's Dark!"))==0){
	dark();
	return;
   }else{
	/*********************************************/
	/* On recupere les informaitons ainsi passee */
	/*********************************************/
	p_data_proc=(struct appel_proc *)mp;
	rp=p_data_proc->rp;
	rps=p_data_proc->rps;
	s=p_data_proc->s;
	width=p_data_proc->width;
	height=p_data_proc->height;

	p_info=p_data_proc->p_info;

	GadToolsBase=p_data_proc->GadToolsBase;

	switch(p_data_proc->action){
		case ACT_DARK:
			dark();
			break;
		case ACT_INIT:
			p_data_proc->p_gadg=my_gadg;
			p_data_proc->p_texte=p_text_info;
			
			p_data_proc->p_func_dark=&dark;
			p_data_proc->code_ret=DARK_WB_13;
			proc_init();
			break;
		case ACT_PARAM:
			break;
		case ACT_END:
			proc_end();
			break;
		default:
			break;
	}
     }
}

