Важная информация

User Tag List

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

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

  1. #11
    Master Аватар для Shaos
    Регистрация
    16.01.2005
    Адрес
    California, USA
    Сообщений
    805
    Спасибо Благодарностей отдано 
    98
    Спасибо Благодарностей получено 
    99
    Поблагодарили
    66 сообщений
    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 (всё ещё собираю)

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

    cy6 (22.04.2024)

  3. #12
    Activist Аватар для cy6
    Регистрация
    27.04.2015
    Адрес
    г. Пенза
    Сообщений
    370
    Спасибо Благодарностей отдано 
    251
    Спасибо Благодарностей получено 
    56
    Поблагодарили
    32 сообщений
    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

  4. #13
    Veteran Аватар для Pyk
    Регистрация
    05.04.2013
    Адрес
    с. Починки, Нижегородская обл.
    Сообщений
    1,181
    Спасибо Благодарностей отдано 
    265
    Спасибо Благодарностей получено 
    457
    Поблагодарили
    182 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

  5. #14
    Activist Аватар для cy6
    Регистрация
    27.04.2015
    Адрес
    г. Пенза
    Сообщений
    370
    Спасибо Благодарностей отдано 
    251
    Спасибо Благодарностей получено 
    56
    Поблагодарили
    32 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

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

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

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

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

Ваши права

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