Фуцк Mihip-у за не правильную (не подсчитанную) контрольную сумму ;)
Как её считать? Очень просто! Вот, процедурка для i8080
// процедура подсчёта контрольной суммы Радио-86РК/Апогей/Партнёр/Специалист (версия для i8080/Z80)
// вх: HL - указатель на начало буфера
// DE - указатель на конец буфера
// вых: BC - контрольная сумма
AB AA AA // очищаем BC (здесь будет КС)
HP IB EO // обновляем с мл.байт КС
OF // сохранение флагов
MN CC AA // 1я проверка на конец блока
MK BN AA // да, конец
OB // восстановление флагов
HI IP EH // обновляем с ст.байт КС
MN BH AA // 2я проверка на конец блока и инкремент указателя
MD AD AA // на начало цикла
// сравнение HL и DE,
// если равны, то выход из процедура вызвавшей эту,
// иначе инкремент HL
MN CC AA
MC CA AA
DD DD MJ
CD MJ
// сравнение HL и DE
HM LK MA
HN LL MJ
Неужели не понятно?!
Хм… oк, тогда для i8086
// процедура подсчёта контрольной суммы Радио-86РК/Апогей/Партнёр/Специалист (версия для i8086)
// вх: di - указатель на начало буфера
// cx - количество байт
// вых: bx - контрольная сумма
LL AA AA // очищаем bx (здесь будет КС)
EJ HE AJ // это случай, когда cx=1
IK AF // байт из буфера
EH // инкремент указателя
IK PA // копируем в старший
AD NI // складываем
PC OH // если не последний байт, на начало цикла
IK AF // последний байт
AC NI // складываем
MD // выход из процедуры
— — — Если серьёзно, то присоединюсь к introspec-у и заминусую пост потому_что_он_про_Wct
Как её считать? Очень просто! Вот, процедурка для i8080
Неужели не понятно?!
Хм… oк, тогда для i8086
— — — Если серьёзно, то присоединюсь к introspec-у и заминусую пост потому_что_он_про_Wct