[Dashboard\Fiat\Multipla\Multipla 93C56]



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

Form
{

    Group("Пробег",35,13,120,50)
    {
        Digit(Distance," ",5,18,70);
        Label(lbkm,"КМ",90,20);
    }
    Group("Информация",5,80,270,45) 
    {
        Label(msg," ",0,18);
    }    
    Group("Описание",5,130,270,90) 
    {
        Label(lb1,"Калькулятор пробега для Fiat Multipla.",0,20);
        Label(lb2,"EEPROM 93C56.",0,35);
        Label(lb3,"Введите нужное значение в окне <Пробег>.",0,50);
        Label(lb4,"Нажмите кнопку <Применить>.",0,65);
    }
    
}

OnShow 
{
        Var0 = 0;
        Var20 = 0x22;Var21 = 0x23;         
        Var1 = ((@0x20 << 8)+@0x21);
        Var10 = 1;Var11 = 0;Var12 = 0;
        while(Var10 != 15)
        {
            Var1 = Var1 << 1; if((Var1 & 0x10000) != 0) { Var1 = Var1 | 1; }
            Var1 = Var1 & 0xFFFF;
            Var11 = (@Var20 << 8) | @Var21;
            if(Var1 != Var11) 
            {
                Var12 = Var10;
                Var10 = 14;   
            } 
            Var10 = Var10 + 1;Var20 = Var20 + 2;Var21 = Var21 + 2;
        }
        msg.Color = 0x00FF00;
        msg.Bold = 1;
        msg = "Дамп OK. Введите пробег.";
        Distance = (((((@0x20 << 8)+@0x21) ^ 0xFFFF) - 1) << 5) + (Var12 * 2);

}


OnApply 
{
    Var5 = 0;
    Var2 = Distance;
    
    if(Var2 > 999900) {Var5 = 1;}
    if(Var2 < 100)   {Var5 = 1;}
    if(Var5 != 0)
    {
        msg.Color = 0x0000FF;
        msg.Bold = 1;
        msg = "Пробег должен быть от 100 до 999900 км";
    }
    else
    {
        Var7 = (Var2 & 0x1F) >> 1;
        Var3 = Var2 + 32;
        Var2 = ((Var2 >> 5) & 65535) ^ 0xFFFF;
        Var3 = ((Var3 >> 5) & 65535) ^ 0xFFFF;
        Var20 = 0x20;Var21 = 0x21;
                
        while(Var20 != 0x40)
        {
            if(Var7 = 0)
            {
                @Var20 = Var2 >> 8;@Var21 = Var2;    
            }
            else
            {
                @Var20 = Var3 >> 8;@Var21 = Var3;
            }
            Var20 = Var20 + 2;Var21 = Var21 + 2;
            Var2 = Var2 << 1; 
            if((Var2 & 0x10000) != 0) { Var2 = Var2 | 1; } 
            Var2 = Var2 & 0xFFFF;
            Var3 = Var3 << 1;
            if((Var3 & 0x10000) != 0) { Var3 = Var3 | 1; } 
            Var3 = Var3 & 0xFFFF;
            if(Var7 > 0)
            {
                Var7 = Var7 - 1;
            }
        }
        msg.Color = 0xFF0000;
        msg.Bold = 1;
        msg = "Новый пробег записан.";       
    }
}
