[Dashboard\Isuzu\D-Max 93c66 Yazaki]

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

Form
{
    Group("Пробег",5,5,140,50)
    {
        Digit(Distance," ",5,18,90);
        Label(lb1,"KM",110,20);
    }
    Group("Информация",5,58,270,45)
    {
        Label(message," ",0,18);
    }
    Group("Описание",5,105,270,100) 
    {
        Label(lb4,"Калькулятор пробега для Isuzu D-Max .",0,20);
        Label(lb5,"EEPROM 93C66",0,35);
        Label(lb2,"Введите нужное значение в окне ПРОБЕГ",0,55);
        Label(lb3,"и нажмите кнопку <Применить>.",0,70);
    }
    Picture(Picture1,"Isuzu.bmp",180,5,0,0);
}

OnShow
{
    Message.Bold=1;
    Message.Alignment=1;

    // проверяем правильность дампа

        Var0=((@0x21<<8)|(@0x20));
        if(Var0<0xFFFF)
        {
            message.Color = 0xFF0000;
            message =  "Дамп ОК. Введите пробег.";
            	Var4=0; // точное вычисление пробега, добавка
		Var5=0; // точное вычисление пробега, смещение
			while(Var5!=0x22)
				{	
					Var6=((@(Var5+1)<<8)|(@Var5));
						if(Var6>Var0) {Var4=Var4+1;}
					Var5 = Var5+2;
				}
	   Distance=(Var0*17)+Var4;
        }
      else
       {
        message.Color=0x0000FF;
        Message="Неверный дамп!";
        Distance=0;   
    }
        
    }


OnApply
{
    	Var1=Distance;
    	Var4=Distance;
    	if(Var4>999999)

    	{
        message.Color=0x0000FF;
        Message = "Пробег должен не более 999999 км.";
    	}
    	else
    	{
        Var0=Var1/17;
        Var1=(Distance%17)*2; // Вычисление добавки
        Var2=0;
		//запись старшей группы
		while(Var2<Var1) 
			{	
				@Var2=Var0+1;
				Var2=Var2+1;
		        	@Var2=Var0>>8;
				Var2=Var2+1; 
			}

		//запись младшей группы
		while(Var2<0x22) 
			{	
				@Var2=Var0;
				Var2=Var2+1;
		        	@Var2=Var0>>8;
				Var2=Var2+1; 
			}
	//запись контрольной суммы
	Var3=Var0%2; // Расчет знака контрольки, FF или 00

		while(Var2<(0x22+Var1)) 
			{	
				if(Var3=0) {@Var2=0xFF;} else {@Var2=0x00;}
				Var2=Var2+1;
				if(Var3=0) {@Var2=0xFF;} else {@Var2=0x00;}
				Var2=Var2+1;
			}
		while(Var2<0x44) 
			{	
				if(Var3=0) {@Var2=0x00;} else {@Var2=0xFF;}
				Var2=Var2+1;
				if(Var3=0) {@Var2=0x00;} else {@Var2=0xFF;}
				Var2=Var2+1;
			}
		

	
        message.Color=0xFF0000;
        message="Дамп ОК. Новый пробег записан.";

    	}
}









