[Dashboard\Volkswagen\VW Vento TRW CRC generator]

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

Form
{
    HexDigit(CalcCRC,"Calculated checksumm",29,10,50,4);
    HexDigit(DumpCRC,"Dump checksumm",40,35,50,4);
    Label(lb1,"Wrong checksumm.",60,60);
    Group(" Instruction ",5,85,265,50) {
      Label(lb2,"If you wont ,",20,15);
      Label(lb3,"нажмите кнопку <Применить>.",50,30);
    }
}

OnShow
{
    // подсчет контрольной суммы
    Var0 = 0x50;
    Var1 = 0;
    Var2 = 0;
    while(Var0 != 0x7e)
    {
        Var1 = @Var0 << 8;
        Var0 = Var0 + 1;
        Var1 = Var1 | @Var0;
        Var0 = Var0 + 1;
        Var2 = Var2 ^ Var1;        
    }
    Var1 = @Var0 << 8;
    Var0 = Var0 + 1;
    Var1 = Var1 | @Var0;
    Var0 = Var0 + 1;
    Var3 = Var1 ^ Var2;
    CalcCRC = Var2 ^ 0x695A;
    if(Var3 = 0x695A)
    {
        lb1 = "   Контрольная сумма OK";
    }
    DumpCRC = (@0x7E << 8) | @0x7F;
}

OnApply
{
    // подсчет контрольной суммы
    Var0 = 0x50;
    Var1 = 0;
    Var2 = 0;
    while(Var0 != 0x7e)
    {
        Var1 = @Var0 << 8;
        Var0 = Var0 + 1;
        Var1 = Var1 | @Var0;
        Var0 = Var0 + 1;
        Var2 = Var2 ^ Var1;        
    }
    Var1 = @Var0 << 8;
    Var0 = Var0 + 1;
    Var1 = Var1 | @Var0;
    Var0 = Var0 + 1;
    Var3 = Var1 ^ Var2;
    CalcCRC = Var2 ^ 0x695A;

    @0x7E = (CalcCRC >> 8) & 255;
    @0x7F = CalcCRC & 255;
    DumpCRC = (@0x7E << 8) | @0x7F;
    lb1 = "   Контрольная сумма OK";
}
