Меньше чем в моих 8-) Ты гораздо аккуратнее.
Вид для печати
Ну вот и всё.
Остался один байт различия, в заголовке - как мы уже давно знаем, это обусловлено различием в линковщике.
Alex_K, вопрос наверное - какие у тебя дальше планы по восстановленному исходнику? Будешь изучать детально что как работает?
Для себя я вижу, что можно это переписать в программу на FreePascal и/или на C++.
Да собственно особо планов нет. Добить главный модуль, привести в порядок двоичным сравнением. Ну можно понять, какая процедура за что отвечает, понять структуру записей. Ну собственно и всё.
Сам я начал переводить в Паскаль только из интереса. Понял, что написана на Паскале, ну и захотелось понять, как они это на Паскале сделали.
- - - Добавлено - - -
Вспомнил, что где-то год назад на гитхабе нашел ещё один DECOBJ - https://github.com/DimaRU/Decobj. Там же был ещё один проект DECSAV - https://github.com/DimaRU/Decsav. Программы написаны на MACRO-11, но снабжены прекрасными комментариями. Смотрел только DECOBJ. В нём есть ручное и декодирование и автоматическое. Но автоматическое не очень, всё-таки у Паскалевского DECOBJ "интеллект" чуточку получше. Сами файлы у меня перекачались в кодировке UTF-8, были некоторые проблемы с кириллицей в командах ассемблера. Всё это подчистил и перевёл в КОИ-8. В приложенном файле исходники и собранная программа.
Закончил комментарии в 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, другого пути не вижу.
Всем привет. Этот decobj на Паскале проходил через мои руки. Давно, в 80х, на кафедре М9 МВТУ им. Баумана. Куча кода и zero comments. После чего написал свой. Попробую отыскать исходники. У меня есть кучка заархивированных образов дисков RK05, нужно поднять эмулятор PDP-11 и посмотреть что там.
- - - Добавлено - - -
Да, есть вопрос - какая основная цель восстановления кода decobj?