[Dashboard\Toyota\Mark\Mark II 93c46 VDO]

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

Form 

{	Group("Пробег",5,5,150,50){Digit(Distance," ",5,20,90); Label(lbkm,"км",100,23);}
	Group("Информация",5,110,310,45)	{Label(message," ",0,20);}
	Group("Описание",5,155,310,80) 
    	{
	Label(lb1,"Калькулятор для Toyota Mark II",0,15);
        Label(lb2,"1997-1998 г.",0,30);
	Label(lb3,"EEPROM 93C46, панель VDO.",0,45);
        Label(lb4,"Выберите Вариант и Нажмите Кнопку <Применить>.",0,60);
    	}
    	Picture(Picture1,"Toyota.bmp",190,15,0,0);
}

OnShow

{	Message.Bold=1; Message.Alignment=1;
        Var0=((@0x1F<<8)|(@0x1E));
       	Var4=0; // точное вычисление пробега, добавка
	Var5=0; // точное вычисление пробега, смещение
		while(Var5<=0x1F)
			{	
			Var6=(@(Var5+1)<<8)|(@Var5);
			if(Var6>Var0) {Var4=Var4+1;}
			Var5=Var5+2;
			}
	Distance=(Var0*16)+Var4;
	if (Distance<=999999) {message.Color=0xFF0000; message="Дамп ОК. Введите пробег.";} // проверяем правильность дампа
	else {message.Color=0x0000FF; Message="Неверный дамп!"; }
}

OnApply

{
    	if(Distance>999999)	{message.Color=0x0000FF; Message="Пробег должен не более 999999 км.";}
    	else
    	{
        Var0=(Distance/16);
        Var1=(Distance%16)*2; // Вычисление добавки
        Var2=0;
		//запись старшей группы
		while(Var2<Var1) 
			{	
			@Var2=Var0+1;
			Var2=Var2+1;
		    @Var2=(Var0+1)>>8;
			Var2=Var2+1; 
			}

		//запись младшей группы
		while(Var2<=0x1E) 
			{	
			@Var2=Var0;
			Var2=Var2+1;
	        @Var2=Var0>>8;
			Var2=Var2+1; 
			}
        message.Color=0xFF0000; message="Дамп ОК. Новый пробег записан.";
 	}
}
