[Dashboard\Motobikes\Harley Davidson\Harley 93C46]

Size(280,250); 
Form
{
       Group("Пробег",5,5,150,50)
    {
        Digit(Distance," ",5,18,90);
        Label(lb1,"MILES",110,20);
        
    }
   
    Group("Информация",5,65,270,45)
    {
        Label(msg," ",0,18);
    }
    Group("Описание",5,110,270,95) 
    {
        Label(lb4,"Калькулятор пробега для Harley Davidson.",0,20);
        Label(lb5,"EEPROM 93C46",0,35);
        Label(lb2,"Введите нужное значение в окне <Пробег>.",0,55);
        Label(lb3,"и нажмите кнопку <Применить>.",0,70);
    }
    Picture(Logo,"Harley.bmp",170,10,0,0);
}


OnShow 
{   
     Var5 = 0;
     if (@0x18 != @0x1C) {Var5 = Var5 + 1;}
     if (Var5 != 0)
        {
        msg.Color = 0x0000FF;
        msg.Bold = 1;
        msg = "Неверный дамп!";
        Distance = 0;
        } 
     else 
        {
        Var0 = (@0x18 << 16)|(@0x19 << 8)|@0x1A;
       
	Var1 = ((Var0 >> 20) & 15) * 100000;
	Var1 = Var1 + (((Var0 >> 16) & 15) * 10000;
	Var1 = Var1 + (((Var0 >> 12) & 15) * 1000;
	Var1 = Var1 + (((Var0 >> 8) & 15) * 100;
	Var1 = Var1 + (((Var0 >> 4) & 15) * 10;
	Var1 = Var1 + (Var0 & 15);

        Var2 = 0xf423f - Var1;  
        msg.Color = 0xFF0000;
        msg.Bold = 1;
        msg = "Дамп ОК. Введите пробег.";
        Distance = Var2;
        }
      
}

OnApply 
{
  if (@0x18 = 0xFF)
   {msg.Color = 0x0000FF;
    msg.Bold = 1;
    msg = "Неверный дамп! Запись отменена!";
   }
   else
   {   
    Var5 = 0;
    Var3 = Distance;
    if(Var3 > 999900) {Var5 = 1;}
    if(Var3 < 100)   {Var5 = 1;}
    if(Var5 != 0)
    {
        msg.Color = 0x0000FF;
        msg.Bold = 1;
        msg = "Пробег должен быть от 100 до 999900 миль";
    }
    else
    {
         Var3 = 0xf423f - Var3;
         Var2 = Var3 % 10; Var3 = Var3 / 10;
	 Var2 = Var2 | ((Var3 % 10) << 4); Var3 = Var3 / 10;  
	 Var2 = Var2 | ((Var3 % 10) << 8); Var3 = Var3 / 10;  
	 Var2 = Var2 | ((Var3 % 10) << 12); Var3 = Var3 / 10;  
	 Var2 = Var2 | ((Var3 % 10) << 16); Var3 = Var3 / 10;  
	 Var2 = Var2 | ((Var3 % 10) << 20);   
	
       
        Var0 = 0x18;
        while (Var0 != 0x24)
        {
          @Var0 = Var2 >> 16; Var0 = Var0 + 1;
          @Var0 = Var2 >> 8;  Var0 = Var0 + 1;
          @Var0 = Var2 & 255; Var0 = Var0 + 2;
        }
        
            msg.Color = 0xFF0000;
            msg.Bold = 1;
            msg = "Новый пробег записан.";
        
       
    }
   }
}
