User Tag List

Страница 2 из 2 ПерваяПервая 12
Показано с 11 по 14 из 14

Тема: Контрольная сумма

  1. #11

    Регистрация
    16.01.2005
    Адрес
    California, USA
    Сообщений
    828
    Спасибо Благодарностей отдано 
    108
    Спасибо Благодарностей получено 
    114
    Поблагодарили
    73 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Pyk Посмотреть сообщение
    Из исходников Emu80. Возможно, будет понятнее:

    Код:
            uint16_t cs = 0;
            for (uint16_t i = 0; i < fileSize - 1; i++) {
                cs += buf[i];
                cs += (buf[i] << 8);
            }
            cs = (cs & 0xff00) | ((cs + buf[fileSize - 1]) & 0xff);
    Это типа бага изначального монитора, что старший байт последнего суммирования теряется и вместо него используется его предыдущее значение?
    Последний раз редактировалось Shaos; 22.04.2024 в 10:04.
    Администратор сетевого сообщества nedoPC.org
    Урал 8/64К, Sp2000, ZX48K+, ZX16K (спалил), TS1000 (американский ZX81), TS2068, Дельта-С, 20 лет собираю ATM Turbo 2+
    Неспектрумы: Электроника МК-85 и МК-85М, ПК-01 Львов, БК-0011, Вектор-06Ц, Лик (спец), Апогеи, Radio-86RK SRAM 32K & 128K (всё ещё собираю)

    Этот пользователь поблагодарил Shaos за это полезное сообщение:

    cy6(22.04.2024)

  2. #12

    Регистрация
    27.04.2015
    Адрес
    г. Пенза
    Сообщений
    500
    Спасибо Благодарностей отдано 
    334
    Спасибо Благодарностей получено 
    90
    Поблагодарили
    59 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    А где условие то?
    Код:
        if (lastChunk)
            --len;
    
        if (lastChunk)
            baseCs = (baseCs & 0xff00) | ((baseCs + data[len]) & 0xff);
    Цитата Сообщение от Pyk Посмотреть сообщение
    Последняя строка
    Код:
    cs = (cs & 0xff00) | ((cs + buf[fileSize - 1]) & 0xff);
    lastChunk нет

    - - - Добавлено - - -

    Точнее, в Вашем примере, lastChunk всегда равен true.
    wtf

  3. #13

    Регистрация
    05.04.2013
    Адрес
    Починки, Нижегородская обл.
    Сообщений
    1,371
    Спасибо Благодарностей отдано 
    403
    Спасибо Благодарностей получено 
    647
    Поблагодарили
    255 сообщений
    Mentioned
    26 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Shaos Посмотреть сообщение
    Это типа бага изначального монитора, что старший байт последнего суммирования теряется и вместо него используется его предыдущее значение?
    Похоже на то, только младший байт.

  4. #14

    Регистрация
    27.04.2015
    Адрес
    г. Пенза
    Сообщений
    500
    Спасибо Благодарностей отдано 
    334
    Спасибо Благодарностей получено 
    90
    Поблагодарили
    59 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Pyk Посмотреть сообщение
    Похоже на то, только младший байт.
    lastChunk включает именно это, так?
    Цитата Сообщение от Shaos Посмотреть сообщение
    Это типа бага изначального монитора, что старший байт последнего суммирования теряется и вместо него используется его предыдущее значение
    Вот это.
    wtf

Страница 2 из 2 ПерваяПервая 12

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •