[Dashboard\Toyota\Raum\Raum JECO - LC46a (rotated)]

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,"Калькулятор пробега для Toyota JECO",0,20);
        Label(lb5,"EEPROM LC46a - rotated",0,35);
        Label(lb2,"Введите нужное значение в окне ПРОБЕГ",0,55);
        Label(lb3,"и нажмите кнопку <Применить>.",0,70);
    }
    Picture(Picture1,"Toyota.bmp",180,5,0,0);
}

//$WrongDump = "Неверный дамп!";
//$EnterDistance = "Дамп ОК. Введите пробег.";
//$WrongDistance = "Пробег должен быт от 100 до 999900 км.";
//$NewDumpOK = "Дамп ОК. Новый пробег записан.";

//Var Var0,Var1,Var2,Var3;

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

    // --------------- проверяем правильность дампа
    Var0=0;
    Var1=(@0x070);
    Var2=(@0x071);
    if(Var1 = 0x21) { Var0 = 1;}
    if(Var2 = 0x25) { Var0 =Var0 + 1;}
    if(Var0 = 2)

     {
     Var3 = (@0x3c);
     var4 = (@0x3d);
     var7 = 46;
            Var6 = ((Var4 >> 28) & 15) * 10000000;
		Var6 = Var6 + (((Var4 >> 24) & 15) * 1000000);
		Var6 = Var6 + (((Var4 >> 20) & 15) * 100000);
		Var6 = Var6 + (((Var4 >> 16) & 15) * 10000);
		Var6 = Var6 + (((Var4 >> 12) & 15) * 1000);
		Var6 = Var6 +  (((Var4 >> 8) & 15) * 100);
		Var6 = Var6 +  (((Var4 >> 4) & 15) * 10);
		Var6 = Var6 + (Var4 & 15);



     		Var5 = ((Var3 >> 28) & 15) * 10000000;
		Var5 = Var5 + (((Var3 >> 24) & 15) * 1000000);
		Var5 = Var5 + (((Var3 >> 20) & 15) * 100000);
		Var5 = Var5 + (((Var3 >> 16) & 15) * 10000);
		Var5 = Var5 + (((Var3 >> 12) & 15) * 1000);
		Var5 = Var5 +  (((Var3 >> 8) & 15) * 100);
		Var5 = Var5 +  (((Var3 >> 4) & 15) * 10);
		Var5 = Var5 + (Var3 & 15);

     
     Distance = (Var6)(Var5)(Var7);     

     Message.Color = 0xFF0000;
     Message.Bold = 1;
     Message = "Дамп ОК. Введите пробег.";
    }
    else
    {
     Message.Color = 0x0000FF;
     Message.Bold = 1;
     Message = "Неверный дамп!";
     Distance = 0;
    }




}

OnApply
{
    Var1 = Distance;

    Var0 = 0;
    if(Var1 < 100)      { Var0 = Var0 + 1; }
    if(Var1 > 999900)   { Var0 = Var0 + 1; }
    if(Var0 != 0)
    {
        message.Color = 0x0000FF;
        Message = "Пробег должен быть от 100 до 999900 км.";
    }
    else
    {
        // переводим из двоично-десятичного в двоичный вид
        Var0 = Distance;
	Var2 = Var0 % 10; Var0 = Var0 / 10;
	Var2 = Var2 | ((Var0 % 10) << 4); Var0 = Var0 / 10;  
	Var2 = Var2 | ((Var0 % 10) << 8); Var0 = Var0 / 10;  
	Var2 = Var2 | ((Var0 % 10) << 12); Var0 = Var0 / 10;  
	Var2 = Var2 | ((Var0 % 10) << 16); Var0 = Var0 / 10;  
	Var2 = Var2 | ((Var0 % 10) << 20); Var0 = Var0 / 10;  
	Var2 = Var2 | ((Var0 % 10) << 24); Var0 = Var0 / 10;  
	Var2 = Var2 | ((Var0 % 10) << 28);  

	
	// заполняем дамп
        Var0 = 0x3c;
      	
	@Var0 = Var2 >> 8; Var0 = Var0 + 1;
      @Var0 = Var2 >> 16;Var0 = Var0 + 1;
	
        Var0 = 0x3E;
        
	@Var0 = Var2 >> 8; Var0 = Var0 + 1;
	@Var0 = Var2 >> 16; Var0 = Var0 + 1;
	
        Var0 = 0x40;
        
	@Var0 = Var2 >> 8; Var0 = Var0 + 1;
	@Var0 = Var2 >> 16; Var0 = Var0 + 1;

	  Var0 = 0x42;
        
	@Var0 = Var2 >> 8; Var0 = Var0 + 1;
	@Var0 = Var2 >> 16; Var0 = Var0 + 1;

        Var0 = 0x44;
        
	@Var0 = Var2 >> 8; Var0 = Var0 + 1;
	@Var0 = Var2 >> 16; Var0 = Var0 + 1;




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