[Dashboard\Mazda\Mazda 626\Mazda 626 - 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,"Калькулятор пробега Mazda 626",0,20);
        Label(lb2,"выпуска после 2000 г. EEPROM 93С56.",0,35);
        Label(lb3,"Введите нужное значение в окне ПРОБЕГ.",0,50);
        Label(lb4,"Нажмите кнопку <Применить>.",0,65);
    }
    Picture(Logo,"Mazda.bmp",185,15,0,0);
}

OnShow
{
    		
    	// --------------- проверяем правильность дампа
	// проверяем правильность дампа
	Var0 = 0;
	Var1 = 0x70; 
	while(Var1 != 0x80)
	{
		Var2 = @Var1;
		if(Var2 != 0xFF) { Var0 = 1;}
		Var1 = Var1 + 1;
	}
	if(Var0 = 0)
	{
		msg.Color = 0x0000FF;
		msg.Bold = 1;
		msg = "Неверный дамп!";
		Distance = 0;
	}

	else
	{	
       Var20 = 0;                          
       Var16 = 0x40;
       Var17 = 0x41; 
    		// --------------- текущий пробег

    	Var1 = ((@0x46 ^ 0x000F) & 0x000F) * 100000;
        Var1 = Var1 + (((@0x44 ^ 0x000F) & 0x000F) * 10000);
        Var1 = Var1 + (((@0x42 ^ 0x000F) & 0x000F) * 1000);
        Var1 = Var1 + (((@0x40 ^ 0x000F) & 0x000F) * 100);

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

	}
	
}

OnApply
{
    Var10 = Distance;
    Var0 = 0;
    if(Var10 < 100)     {Var0 = 1;}
    if(Var10 > 999900)  {Var0 = 1;}

    if(Var0 = 1)
    {
        msg.Color = 0x0000FF;
        msg.Bold = 1;
        msg = "Пробег должен быть от 100 до 999900 км";      
    }

    else
    {
        Var10 = Var10 / 100;    
        Var16 = 0x40;
        Var17 = 0x41;
        
        while(Var16 != 0x48)
        {
            Var1 = Var10 % 10;
            Var2 = Var1;

            
            Var4 = 0;
            Var5 = 0;           
            while(Var4 != 4)
            {
                if((Var1 & 0x0001) = 1) { Var5 = Var5 + 1;}
                Var1 = Var1 >> 1;
                Var4 = Var4 + 1;
            }
            Var5 = (Var5 & 0x0001) ^ 1;
            Var2 = Var2 | (Var5 << 4);
            Var2 = Var2 | (Var2 << 5) | (Var2 << 10);
            Var2 = Var2 ^ 0xFFFF;

            @Var16 = Var2;
            @Var17 = Var2 >> 8;
            
            Var16 = Var16 + 2;
            Var17 = Var17 + 2;
            Var10 = Var10 / 10;
        }
        msg.Color = 0xFF0000;
        msg.Bold = 1;
        msg = "Дамп OK. Новый пробег записан.";
        Distance = Distance;

 
    }
}




