[Dashboard\Mercedes\Vito\Vito 95640new]

Size(280,350); 

Form 
{
    Group("Пробег",5,13,110,50)
    {
        Digit(Distance," ",5,18,50);
        Label(lbkm,"КМ",80,20);
    }
    CheckBox(cbx1,"SERVICE",25,70);
    Group("Информация",5,90,270,40) 
    {
        Label(Message," ",0,17);
    }
    Group("Идентификация",5,130,270,65)
    {
        Label(pn," ",0,15);
        Label(nr," ",0,30);
        Label(data," ",0,45);	
    } 
    Group("Описание",5,195,270,90) 
    {
        Label(lb1,"Калькулятор пробега для Mercedes Vito.",0,20);
        Label(lb2,"JC. Eeprom 95640.",0,35);
        Label(lb3,"Введите нужное значение в окне <Пробег>.",0,50);
        Label(lb4,"Нажмите кнопку <Применить>.",0,65);
    }
    Picture(Logo,"Mercedes.bmp",165,5,0,0);
    Label(mssg," ",0,290);
}

OnShow 
{
	mssg.Color=0x0000FF; mssg.Bold=1; mssg="iProg groups 2010.";

	var0 = 1;
	if ( @0x97 != 0x36 ){ var0 = 0; }
	if ( @0x98 != 0x33 ){ var0 = 0; }
	if ( @0x99 != 0x39 ){ var0 = 0; }
	if ( var0 = 0 ){ message.Bold=1; message.Color=0x0000FF; message="Неверный дамп!"; Distance=0; }
    else
    {
	var1 = ( (@0x2A9 <<24) | (@0x2A6 <<16) | (@0x2A3 <<8) | @0X2A0 ) ^ 0xFFFFFFFF;
    
	Distance = var1 / 1000;

	message.Color=0xFF0000; message.Bold=1; message="Дамп ОК. Введите новый пробег.";

	pn = "MB: A"+#c.@0x97+#c.@0x98+#c.@0x99+" "+#c.@0x9A+#c.@0x9B+#c.@0x9C+" "+#c.@0x9D+#c.@0x9E+#c.@0x9F+#c.@0xA0;
	nr = "Nr: "+#b.@0x2D0+#b.@0x2D1+#b.@0x2D2+#b.@0x2D3+"-"+#b.@0x2D4;
	data = "Date: "+#b.@0x2D9+"-"+#b.@0x2DA+"-"+#b.@0x2DB;


    }
}
    
OnApply
{
	var0 = 1;
	if ( @0x97 != 0x36 ){ var0 = 0; }
	if ( @0x98 != 0x33 ){ var0 = 0; }
	if ( @0x99 != 0x39 ){ var0 = 0; }
	if ( var0 = 0 ){ message.Color=0x0000FF; message.Bold=1; message="Неверный дамп! Запись прекращена!"; Distance=0; }
    else
 {
	var0 = 0;
	var1 = Distance;
	if ( var1 > 999900) { var0 = 1; }
	if ( var0 = 1 ){ message.Bold=1; message.Color=0x0000FF; message="Пробег должен быть до 999900 км."; }
	if ( cbx1 = 0 ) 
  {
// вычисляем пробег
	var1 = Distance;
	var1 = var1 * 1000;
	var2 = (var1 >> 24) ^ 0xFF; var3 = (var1 >> 16) ^ 0xFF; var4 = (var1 >> 8) ^ 0xFF; var5 = (var1 & 0xFF) ^ 0xFF;
// начальный адресс
	var6 = 0x2A0;
// прописываем пробег
	@var6 = var5;		var6 = var6 + 1;
	@var6 = var5 ^ 0x0F;	var6 = var6 + 1;
	@var6 = var5 ^ 0xF0;	var6 = var6 + 1;
	@var6 = var4;		var6 = var6 + 1;
	@var6 = var4 ^ 0x0F;	var6 = var6 + 1;
	@var6 = var4 ^ 0xF0;	var6 = var6 + 1;
	@var6 = var3;		var6 = var6 + 1;
	@var6 = var3 ^ 0x0F;	var6 = var6 + 1;
	@var6 = var3 ^ 0xF0;	var6 = var6 + 1;
	@var6 = var2;		var6 = var6 + 1;
	@var6 = var2 ^ 0x0F;	var6 = var6 + 1;
	@var6 = var2 ^ 0xF0;
 
     	message.Color=0xFF0000; message.Bold=1; message="Дамп OK. Новый пробег записан.";
  }

	if (cbx1=1) 
   {
// вычисляем сервис
	var1 = Distance;
      var2 = (var1 >> 16) & 0xFF; var3 = (var1 >> 8) & 0xFF; var4 = var1 & 0xFF;
// начальный адресс
      var5 = 0xCDC;
// прописываем сервис
	@var5 = var4; var5 = var5 + 1;
	@var5 = var3; var5 = var5 + 1;
	@var5 = var2; var5 = var5 + 1;

// вычисляем пробег
	var1 = var1 * 1000;
	var2 = (var1 >> 24) ^ 0xFF; var3 = (var1 >> 16) ^ 0xFF; var4 = (var1 >> 8) ^ 0xFF; var5 = (var1 & 0xFF) ^ 0xFF;
// начальный адресс
	var6 = 0x2A0;
// прописываем пробег
	@var6 = var5;		var6 = var6 + 1;
	@var6 = var5 ^ 0x0F;	var6 = var6 + 1;
	@var6 = var5 ^ 0xF0;	var6 = var6 + 1;
	@var6 = var4;		var6 = var6 + 1;
	@var6 = var4 ^ 0x0F;	var6 = var6 + 1;
	@var6 = var4 ^ 0xF0;	var6 = var6 + 1;
	@var6 = var3;		var6 = var6 + 1;
	@var6 = var3 ^ 0x0F;	var6 = var6 + 1;
	@var6 = var3 ^ 0xF0;	var6 = var6 + 1;
	@var6 = var2;		var6 = var6 + 1;
	@var6 = var2 ^ 0x0F;	var6 = var6 + 1;
	@var6 = var2 ^ 0xF0; 
        
	message.Color=0xFF0000; message.Bold=1; message="Дамп OK. Новый пробег и сервис записан.";
   }
  }   
 }
}













