#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#include <snd.h>
#include <egb.h>

#include <..\concorde.h>


#define XBUF 16
#define SRAND 79154726  /* wДԍ(^_^;) */
#define TIMES 1000
#define EDGES 5


char EGB_work[EgbWorkSize];
PAGE p;

int vx1=10;
int vy1=10;
int vx2=309;
int vy2=229;

void frame()
{
	YGH_clearPage(&p,32767);
	YGH_clearView(&p,0);
}

void main()
{
	int x,y;
	int j,ms;
	short v[4];
	struct {
		short x,y,len;
		char dat[5];
	} para = {0,0,4,"YS11"};


	EGB_init(EGB_work,EgbWorkSize);
	EGB_resolution(EGB_work,0,10);
	EGB_resolution(EGB_work,1,10);

	EGB_writePage(EGB_work,0);
	EGB_displayStart(EGB_work,0,0,0);
	EGB_displayStart(EGB_work,2,2,2);
	EGB_displayStart(EGB_work,3,320,240);
	EGB_clearScreen(EGB_work);

	EGB_writePage(EGB_work,1);
	EGB_displayStart(EGB_work,0,0,0);
	EGB_displayStart(EGB_work,2,2,2);
	EGB_displayStart(EGB_work,3,320,240);
	EGB_clearScreen(EGB_work);

	EGB_displayPage(EGB_work,1,2);

	v[0]=vx1; v[1]=vy1; v[2]=vx2; v[3]=vy2;
	EGB_viewport(EGB_work,(char *)v);

	YGH_initPage(&p,SEG_VRAMP,0x40000,512,256);
	YGH_viewPort(&p,vx1,vy1,vx2,vy2);


	srand(SRAND);

	frame();

	ms=clock();
	for(j=0; j<TIMES; j++)
	{
		EGB_color(EGB_work,0,rand()%32768);
		para.x=rand()%320;
		para.y=rand()%240;
		EGB_asciiString(EGB_work,0,(char *)&para);
	}
	ms=(clock()-ms)*1000/CLOCKS_PER_SEC;

	printf("EGB\n");
	printf("%d ms as %d YS11s.\n",ms,TIMES);
	printf("%d ms as a YS11.\n",ms/TIMES);
	printf("%d clocks as a YS11.\n",16000*ms/TIMES);



	srand(SRAND);

	frame();

	ms=clock();
	for(j=0; j<TIMES; j++)
	{
		YGH_color(&p,rand()%32768);
		x=rand()%320;
		y=rand()%240;
		YGH_print8font(&p,x,y,"YS11");
	}
	ms=(clock()-ms)*1000/CLOCKS_PER_SEC;

	printf("YGHIGH\n");
	printf("%d ms as %d YS11s.\n",ms,TIMES);
	printf("%d ms as a YS11.\n",ms/TIMES);
	printf("%d clocks as a YS11.\n",16000*ms/TIMES);
}
