[Dashboard\Chevrolet\Rezzo HC05H12]


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,"Калькулятор пробега для Chevrolet Rezzo.",0,20);
        Label(lb2,"Процессор MC68HC05H12 (0H57A).",0,35);
        Label(lb3,"Введите нужное значение в окне <Пробег>.",0,50);
        Label(lb4,"Нажмите кнопку <Применить>.",0,65);
    }
    Picture(Logo,"Chevrolet.bmp",165,17,0,0);
}

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

                Var9 = (@0x58 << 16) | (@0x59 << 8) | @0x5A;     
		
		Var10 = (((Var9 >> 20) & 0xF) * 100000);
		Var10 = Var10 + (((Var9 >> 16) & 0xF) * 10000);
		Var10 = Var10 + (((Var9 >> 12) & 0xF) * 1000);
		Var10 = Var10 +  (((Var9 >> 8) & 0xF) * 100);
		Var10 = Var10 +  (((Var9 >> 4) & 0xF) * 10);
		Var10 = Var10 + (Var9 & 0xF);

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

OnApply
{
    Var1 = Distance;

	
    Var0 = 0;

    if(Var1 < 100)      { Var0 = Var0 + 1; }
    if(Var1 > 999900)   { Var0 = Var0 + 1; }

    if(Var0 != 0)
    {

        msg.Color = 0x0000FF;

        Msg = "Пробег должен быть от 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;

        Var0 = 0x58;
          while(Var0 != 0x100)
               
                {
                @Var0 = Var2 >> 16; Var0 = Var0 + 1; 
		@Var0 = Var2 >> 8; Var0 = Var0 + 1;
		@Var0 = Var2; Var0 = Var0 + 1;
                Var15 = (@0x58 + @0x59 + @0x5A + 0xA5) & 0xFF;
                @Var0 = Var15; Var0 = Var0 + 11;
                }

    

        msg.Color = 0xFF0000;

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