[Dashboard\Infinity\Kansey 93C66.cal]

Size(320,280); // ширина и высота

Form 
{    	
	Group("Пробег",5,5,150,50)
 	{
	Digit(Distance," ",5,18,90);
	}
	Group("",5,55,150,30)
	{
	CheckBox(conversion,"   Сделать Конверсию",5,10);
	}
	Group("Информация",5,88,310,45)
    	{Label(message," ",0,18);}
    	Group("Описание",5,135,310,100) 
    	{
	Label(lb4,"Калькулятор пробега для Nissan\Infiniti Kansey 93C66.",0,20);
        Label(lb5,"EEPROM 93C66, панель Kansey.",0,35);
        Label(lb2,"Введите нужное значение в окне ПРОБЕГ",0,50);
        Label(lb3,"и нажмите кнопку <Применить>.",0,65);
    	}
    Picture(Picture1,"Nissan.bmp",160,5,0,0);
    Picture(Picture2,"Infiniti.bmp",230,5,0,0);
}

OnShow

{
	message.Color=0x0000FF;
	message.Bold=1;
	Message.Alignment=1;

	// определяем систему единиц
	Var1=0;
	Var0=((@0x7A)<<8)|(@0x7B);
	if(Var0=0xFFFF) // мильный признак
	{
	Var1=0x8AF4; Var2=3300;
	message="Дамп в Милях. Введите новый пробег.";
	}
    	if(Var0=0x3FFE) // километровый признак
	{
	Var1=0xB73D; Var2=5400;
	message="Дамп в Км. Введите новый пробег.";
	}
	if(Var1=0) {message="Неверный дамп!";}
	else
	{Distance=(Var1-(@0x69<<8|@0x68))*Var2/100;}
}

OnApply

{	// определяем систему единиц
	Var0=((@0x7A)<<8)|(@0x7B);
	if(Var0=0xFFFF) // мильный признак
	{
	Var1=0x8AF4; Var2=3300;
	message="Дамп в Милях. Введите новый пробег.";
	}
    	if(Var0=0x3FFE) // километровый признак
	{
	Var1=0xB73D; Var2=5400;
	message="Дамп в Км. Введите новый пробег.";
	}
	if(conversion=0) {Var4=Distance;Var0=0;} 
	else
		{
		if(Var0=0xFFFF) {Var4=(Distance*16093)/10000;@0x7A=0x3F; @0x7B=0xFE;Var1=0xB73D; Var2=5400;} 											
		//пересчет милей в км
		if(Var0=0x3FFE) {Var4=(Distance*1000000)/16093; Var14=Var4%100; if (Var14<50) {Var4=Var4/100;} else {Var4=(Var4/100)+1;}@0x7A=0xFF; @0x7B=0xFF;Var1=0x8AF4; Var2=3300;}	
		//пересчет км в мили
    		}
	
	if(Var4>999999) {message.Color=0x0000FF; message="Пробег должен быть не более 999999.";}
    	else
	{
        Var5=Var1-(Var4*100/Var2);     	      	@0x69=Var5>>8;@0x68=Var5&255;   
        Var5=((Var5&0x8000)>>15)|(Var5<<1);   	@0x6B=Var5>>8;@0x6A=Var5&255;   
       	Var3=Var5-2;			      	@0x73=Var3>>8;@0x72=Var3&255;   
        Var5=((Var5&0x8000)>>15)|(Var5<<1);   	@0x6D=Var5>>8;@0x6C=Var5&255;   
       	Var3=Var5-4;				@0x75=Var3>>8;@0x74=Var3&255;   
        Var5=((Var5&0x8000)>>15)|(Var5<<1);     @0x6F=Var5>>8;@0x6E=Var5&255;   
        message.Color = 0xFF0000;
        message.Bold = 1;
        message = "Дамп OK. Новый пробег записан.";
	Distance=Var4;
    	}
}









