С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Ну вот и всё.
Остался один байт различия, в заголовке - как мы уже давно знаем, это обусловлено различием в линковщике.
Последний раз редактировалось nzeemin; 16.11.2022 в 02:28.
Alex_K(16.11.2022), Oleg N. Cher(17.11.2022)
Alex_K, вопрос наверное - какие у тебя дальше планы по восстановленному исходнику? Будешь изучать детально что как работает?
Для себя я вижу, что можно это переписать в программу на FreePascal и/или на C++.
Да собственно особо планов нет. Добить главный модуль, привести в порядок двоичным сравнением. Ну можно понять, какая процедура за что отвечает, понять структуру записей. Ну собственно и всё.
Сам я начал переводить в Паскаль только из интереса. Понял, что написана на Паскале, ну и захотелось понять, как они это на Паскале сделали.
- - - Добавлено - - -
Вспомнил, что где-то год назад на гитхабе нашел ещё один DECOBJ - https://github.com/DimaRU/Decobj. Там же был ещё один проект DECSAV - https://github.com/DimaRU/Decsav. Программы написаны на MACRO-11, но снабжены прекрасными комментариями. Смотрел только DECOBJ. В нём есть ручное и декодирование и автоматическое. Но автоматическое не очень, всё-таки у Паскалевского DECOBJ "интеллект" чуточку получше. Сами файлы у меня перекачались в кодировке UTF-8, были некоторые проблемы с кириллицей в командах ассемблера. Всё это подчистил и перевёл в КОИ-8. В приложенном файле исходники и собранная программа.
nzeemin(16.11.2022), Oleg N. Cher(17.11.2022)
Закончил комментарии в disasm.txt. Осталось сделать главный модуль на Паскале.
nzeemin, спасибо за тексты программы на гитхабе, тискал с неё методом копипастинга в комментарии в disasm.
Alex_K, пожалуйста. Тот паскалевский код что на гитхабе, уже собирается байт-в-байт в точности в тот же DECOBJ.SAV (за исключением одного байта в заголовке). В том коде что ты декодировал, я тоже исправил ошибки.
А вот и мои ошибки:
Скрытый текст
Код:BINCOM comparing/ DECOB1.SAV -- DECOBJ.SAV 000000 050/ 053346 053350 000016 000007 012/ 116300 116500 000600 014/ 001010 002426 003436 020/ 116501 116301 000600 022/ 002426 001010 003436 564/ 116504 105100 013404 566/ 002426 116504 114122 570/ 005104 002426 007522 572/ 140400 140004 000404 000010 472/ 005046 116600 113646 474/ 116616 000004 116612 476/ 000006 010046 010040 000011 166/ 000030 000006 000036 202/ 000030 000006 000036 206/ 000030 000006 000036 212/ 000030 000006 000036 522/ 103402 101402 002000 000012 442/ 062700 010601 072101 444/ 003712 062701 061013 446/ 010601 000004 010605 450/ 062701 062700 000001 452/ 000004 003712 003716 460/ 122021 122120 000101 000013 614/ 002402 003402 001000 770/ 103402 101402 002000 000014 104/ 000456 000340 000716 120/ 000324 000320 000004 000016 724/ 001724 002064 003740 000017 244/ 010200 010500 000700 250/ 000006 053402 053404 252/ 010501 010201 000700 256/ 053402 000006 053404 000025 060/ 000001 000006 000007 672/ 001002 001402 000400 000031 236/ 116601 105100 013701 240/ 000016 116601 116617 242/ 005101 000016 005117 244/ 140100 140001 000101 000032 744/ 000022 000014 000036 000033 120/ 000022 000014 000036 000037 010/ 010600 010500 000300 014/ 000004 053402 053406 016/ 010501 010601 000300 022/ 053402 000004 053406 106/ 010600 010500 000300 112/ 000004 053402 053406 114/ 010501 010601 000300 120/ 053402 000004 053406 246/ 010600 012700 002100 250/ 062700 012674 070174 252/ 000004 010601 010605 254/ 012701 062701 070000 256/ 012674 000004 012670 274/ 001002 001402 000400 000043 136/ 001402 001002 000400 000044 142/ 001402 001002 000400[свернуть]
- - - Добавлено - - -
Ну вот собственно всё и у меня. Переделал в процедуре L02020 аргумент VAL с char на integer, соответственно переделал её вызовы. А всё-таки с логическим выражением в L35532 я справился, ошибки там были в сравнении строк, аргументы надо было местами переставить.
Осталось что-то решить с ассемблерными вставками. Наверное придётся типы делать через RECORD CASE, другого пути не вижу.
nzeemin(18.11.2022), Oleg N. Cher(18.11.2022)
Всем привет. Этот decobj на Паскале проходил через мои руки. Давно, в 80х, на кафедре М9 МВТУ им. Баумана. Куча кода и zero comments. После чего написал свой. Попробую отыскать исходники. У меня есть кучка заархивированных образов дисков RK05, нужно поднять эмулятор PDP-11 и посмотреть что там.
- - - Добавлено - - -
Да, есть вопрос - какая основная цель восстановления кода decobj?
Alex_K(18.11.2022), nzeemin(18.11.2022), Oleg N. Cher(18.11.2022), Radon17(18.11.2022)
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)