Ну, ну про мегабайты - это, конечно, не про меняЕсли же посмотреть на мой способ восстановления текстов, то в нём 3 этапа:
- Получения исходника, который после компиляции и линковки на выходе даёт идентичный двоичный файл. Благодаря формату файлов .SAV и парочке хаков - я этот этап делаю с использованием RTПоскольку у меня сейчас нет (или пока не нашёл) программы, которая даёт на выходе сразу что то компиляторно-пригодное и пригодное для последующего решения вопроса - код или данные, приходится использовать пару дизассемблеров и ручное редактирование. Ещё одна проблема здесь - число в очередной команде - это данные или адрес (или смещение)
Вопрос часто сложно решить даже на более поздних этапах дизасма
- После того, как первый этап пройден, начинается анализ меток, что бы понять их характеристики - эта метка для данных или кода? - это метка процедуры? - это метка, на которую есть ссылка из нескольких или только одного места? - ну может ещё какие характеристики забыл. Если это метка из оператора условного перехода и на неё идёт ссылка только из одного места - идёт попытка замены кодового блока с её участием на структурные операторы типа IF WHILE REPEAT LOOP (спасибо пакету макросов структурного программирования) Если это метка процедуры - идёт попытка определения её границ и оформления как процедуры (пакет структурного программирования!). Как показывает практика - в программе бывает много однократных меток, которые таким образом удалить и так же бывают хорошо выделяемые процедуры. Но бывают и исключения - пример - 377 ПЗУ для ДВК
![]()
- Когда начинается второй этап и достаточно много (или в нужных местах) кода таким образом обработано - уже можно начинать анализировать логику и писать комментыНо точного начала третьего этапа обычно нет - часто я и на втором этапе оставляю комменты. И вот тут благодаря структурным операторам очень хорошо начинает просматриваться логика
Именно благодаря им текст 134-ого ПЗУ был довосстановлен недели за две (этой был первый опыт такого подхода), а ПЗУ для KDJ11-A (13 кб) дней за пять было восстановлено и модифицировано в части загрузчиков
Правда, там по прежнему сидит одна ошибка и пока не разобрался со способом упаковки текстовых сообщений помощи, ну и второй этап не весь закончен
Ну и прошерстил ПЗУ КЦГД, правда там ещё надо поработать - логика не вся описана
- - - Добавлено - - -
А откомментированный ПЗУ ПП есть в инете - правда, адрес с ходу не скажу, потряси Alex_K, вроде он знает
Все-таки УКНЦ пишет в порт 177132 во время записи CRC байты 0х4Е4Е (47116), вот кусок кода:
Скрытый текст
BIT #40000,@R4 ; Ожидаем начала записи CRC
BEQ 2$ ; Еще не началась
3$: MOV #47116,@R5 ; Передача слова в РДЗ и ожидание
4$: TSTB @R4 ; готовности контроллера для уверенности
BPL 4$ ; записи CRC на диск
[свернуть]
- - - Добавлено - - -
Да, я находил, по моему здесь на форуме или на фантоме.
Таких, насколько я знаю, нет ни для чего, что связано с компиляцией в исполняемый код.
Тут надо читать описание логики работы с ВП1-128, там есть какие то нюансы - типа - как заставить записать синхробайт (или как он там называется). Может и 4E чего то значит. Давно я с этим возился
- - - Добавлено - - -
Для PDP-11 были, надо только собраться и найти. Но. Оно всего лишь пройдёт компиляцию и даже есть шанс что на выходе даст идентичный результат. Но это будет далеко не пригодный для анализа логики текст. Просто мне сократит первый этап - сейчас он у меня много времени отнимает.
Ну и жужжит в голове идея написать прогу на PC, который бы много чего могла сделать за меня, но.... время..![]()
Вот, немного подправил флаги:
Скрытый текст
[свернуть]
Нуууу.... а почему 4E начинается не с 260?..
ZPilot, это от начала индекса? спрашиваю потому что GAP1 из байтов 4E тут длиной 36, у меня записано что должно быть 34: https://github.com/nzeemin/ukncbtl-doc/wiki/Floppy-ru
И вот эти два байта 40 40 по адресу 260 действительно подозрительные - место контрольной суммы?
- - - Updated - - -
Ну всмысле находил, много раз уже давали ссылку - http://www.emuverse.ru/wiki/%D0%A3%D...%A6_ROM_disasm
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)