Перейти к содержимому


Утилиты для работы с .С_ файлами


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 48

#41 Гость__*

Гость__*
  • Гости

Отправлено 28 января 2010 - 16:56

Ну и с ипо так же, пишешь ips, компилируешь, на выходе ipo :-)

#42 anton_mai

anton_mai

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 158 сообщений

Отправлено 28 января 2010 - 19:32

Точно также пишеш, потом INPACOMP.
Но писать тяжко. Только while, if, else.
Массивов нет. Есть конструкции типа структуры.
К ним отдельные функции для записи и считывания.
Ну очень странный С.

#43 chemist

chemist

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 382 сообщений

Отправлено 28 января 2010 - 22:22

Точно также пишеш, потом INPACOMP.
Но писать тяжко. Только while, if, else.
Массивов нет. Есть конструкции типа структуры.
К ним отдельные функции для записи и считывания.
Ну очень странный С.


Нет-потому что не нужны очевидно. чисто описать структуру экрана, меню и реализовать запросы в ЭБУ и получение ответа от него. Все. Это для INPA. IPO для winkfp и NCS-имеют другую структуру совсем...

#44 anton_mai

anton_mai

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 158 сообщений

Отправлено 29 января 2010 - 09:44

Другую согласен но похожую. А убогость компилятора , я думаю , из за того что сделали его сами и на скорую руку. Вот чисто описать структуру экрана и обработку ответов ЭБУ уже выливается в нетривиальную задачу хотябы из за отсутствия CASE. В ncs таже структура , нет только меню и экранов.

#45 Air

Air

    Продвинутый пользователь

  • Модераторы
  • 89 сообщений

Отправлено 01 февраля 2010 - 23:55

Алгоритм там простейший crc8, просто у стандартного crc8 xor по 0x31, а у бмв xor по 0x1


Млин, странно, яж его вроде перебирал....
Спасибо, Миш. Гляну еще раз...

#46 Гость__*

Гость__*
  • Гости

Отправлено 02 февраля 2010 - 01:37


Алгоритм там простейший crc8, просто у стандартного crc8 xor по 0x31, а у бмв xor по 0x1


Млин, странно, яж его вроде перебирал....
Спасибо, Миш. Гляну еще раз...

Гляди, вот пример из педовикии:
/*
  Name  : CRC-8
  Poly  : 0x31    x^8 + x^5 + x^4 + 1
  Init  : 0xFF
  Revert: false
  XorOut: 0x00
  Check : 0xF7 ("123456789")
  MaxLen: 15 байт(127 бит) - обнаружение
    одинарных, двойных, тройных и всех нечетных ошибок
*/
unsigned char Crc8(unsigned char *pcBlock, unsigned char len)
{
    unsigned char crc = 0xFF;
    unsigned char i;
 
    while (len--)
    {
        crc ^= *pcBlock++;
 
        for (i = 0; i < 8; i++)
            crc = crc & 0x80 ? (crc << 1) ^ 0x31 : crc << 1;
    }
 
    return crc;
}
В "классическом" crc8 у нас 0x31, в "бмвшном" 0x1
crc = crc & 0x80 ? (crc << 1) ^ 0x31 : crc << 1;

#47 Air

Air

    Продвинутый пользователь

  • Модераторы
  • 89 сообщений

Отправлено 05 февраля 2010 - 00:45

Не - тут фигня получится, если так понимать....
0х31 - это репрезентация полинома x^8 + x^5 + x^4 + 1.
Соотв. 0x1 - фактически будет означать полином Х+1. А это CRC1 - фактически бит четности. БИТ!!! А нам нужно получить байт.
Ну и сам посмотри, Миш - если заменить внизу 0х31 на 0х1, то получится мы возводим в степень 1!. Т.е. ничего не делаем, просто делаем смещение на 1 бит.
Не то, - явно. Там в файла нормальный контрольный байт, принимающий полный диапазон значений, а не два из них: 0х00 и 0х01

#48 Гость__*

Гость__*
  • Гости

Отправлено 13 февраля 2010 - 04:11

Поскольку моё сообщение потерялось во время турецкой атаки, повторяю. Air - ^ - это XOR в Си, а не возведение в степень.

#49 Dimonaff

Dimonaff

    Новичок

  • Пользователи
  • Pip
  • 1 сообщений

Отправлено 15 января 2011 - 00:45

Кто нибудь может помочь с форматом .prg и .ipo? интересует редактирование содержимого, локализация данных




Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных