rem: ClearSemaphore (&GraphicsSem);
add: ClearSemaphore (GraphicsSem);
context: flash_planet_loc_func(void *blah){	DWORD TimeIn;	BYTE c, val;	PRIMITIVE p;	SetPrimType (&p, STAMPFILL_PRIM);	SetPrimNextLink (&p, END_OF_LIST);	p.Object.Stamp.origin.x = p.Object.Stamp.origin.y = -1;	p.Object.Stamp.frame = SetAbsFrameIndex (misc_data, FLASH_INDEX);	c = 0x00;	val = -0x02;	TimeIn = 0;	for (;;)	{		DWORD T;		CONTEXT OldContext;		T = SetSemaphore (&GraphicsSem);		if (p.Object.Stamp.origin.x != pMenuState->flash_rect0.corner.x				|| p.Object.Stamp.origin.y != pMenuState->flash_rect0.corner.y)		{			c = 0x00;			val = -0x02;		}		else		{			if (T < TimeIn)			{				ClearSemaphore (&GraphicsSem);				TaskSwitch ();				continue;			}			if (c == 0x00 || c == 0x1A)				val = -val;			c += val;		}		p.Object.Stamp.origin = pMenuState->flash_rect0.corner;		SetPrimColor (&p, BUILD_COLOR (MAKE_RGB15 (c, c, c), c));		OldContext = SetContext (ScanContext);		DrawBatch (&p, 0, 0);		SetContext (OldContext);		TimeIn = T + (ONE_SECOND >> 4);		ClearSemaphore (&GraphicsSem);				TaskSwitch ();	}	(void) blah;  /* Satisfying compiler (unused parameter) */	return(0);}