aviator, что-то не одна программа на эмуляторе b2m не загружается.
aviator, что-то не одна программа на эмуляторе b2m не загружается.
Последний раз редактировалось fifan; 14.01.2017 в 12:26.
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Странно. Проверял именно в b2m. Те, которые с именованным заголовком (загружаются по "I" в монитор-2, монитор-4, я проверил все - и контрольные суммы совпадают и запускаются и работают.
Которые без именованных заголовков - загружаются по "R". Есть такие, в которых контрольная сумма не сходится, но сама программа (например шахматы) работает без сбоев. Скорее всего это алгоритм расчёта контрольной суммы изменился.
Есть без именованных заголовков для РК86. Они не грузятся в специалист опять же из-за другого алгоритма расчёта контрольной суммы.
Бейсиковские программы должны загружаться все. Но там могут быть единичные опечатки, так как контрольной суммы в них нет, и я их проверял глазами.
Само интересное, что попадаюся. Например, кассета 1, файл Цирк-часть-1-0100-1D4F.rks и т.д. Сегодня попытался для флеш диска игр собрать и не получилось.
С данной программой это не прокатило.
Берём, например, Шахматы-0000-17FF.rks. Первые 2 байта это начало в ОЗУ, вторые 2 байта это конец в ОЗУ, little-endian. Далее идёт сама программа. И заканчивается, байт-в-байт с 0 по 17FF (включительно). Контрольная сумма этого безобразия 96AA, подсчитана через М-4. НЕ СОВПАДАЕТ С CRC-16 В ОБЩЕМ СЛУЧАЕ!!! (мда...) Далее берём, и добавляем в конец этого файла 2 байта: AA и 96. И наши шахматы начинают грузиться директивой "R". Наверное, аналогичная вещь и с другими файлами без заголовка. И, кстати, там есть файлы где начало, конец, и контрольная сумма с big-endian порядком байт.
Да, если просто загрузить файл, а потом прервать директиву командой "стоп", то в памяти получается правильный дамп. Проверил сейчас на обеих частях "цирка". Грузим обе части и стартуем с адреса 100. Работает.
Это всё выгружалось на каком-то мониторе, который не писал в конец контрольную сумму...
- - - Добавлено - - -
Орионовские записи я пропустил. Они все уже тут есть и бродят во многих архивах. Есть только РКшные и Специалистовские.
И вся засада в том, что в конце дампа без заголовка должна была быть контрольная сумма, но выгружалось таким монитором, который эту контрольную сумму не формировал. Вот поэтому оно на эмуляторах "не грузится". На самом деле всё грузится в память...
- - - Добавлено - - -
Да, если начало и конец идут в big-endian порядке, то это РК86. Там, похоже, и контрольная сумма одним байтом представлена. А если 2-мя то по идее тоже big-endian порядок должен быть.
Да это не важно. В эмуляторе подгружаем Dump_MX.exe. Загружаем туда код, он подсчитывает контрольную сумму - переписываем в конец файла. Можно проще, не через МХ. Также загружаем код (View/Start debug/Ctrl+L) и набираем в Мониторе: К, начальный адрес, конечный адрес.
Последний раз редактировалось fifan; 14.01.2017 в 18:39.
Не знал...
В общем, все файлы с именованными заголовками имеют правильные контрольные суммы и грузятся в М-4, например, через директиву "I". Исходные тексты на ассемблере и бейсике я проверял визуально, чтобы не было явного мусора.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)