Примерно сотая попытка пройти Зону:
Примерно сотая попытка пройти Зону:
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
shattered, зверь, который не нападает может быть превращён в еду, а может просто быть стоячим,
его надо проверять на "убегаемость"...
с отрицательным или 0-вым счётом в банке тебя в следующее подземелье не пустят
если рюкзак забит призраками - джин тебе в помощь!
Последний раз редактировалось hobot; 02.11.2019 в 18:39.
Что имею сказать...
По всей видимости, первоначально игра была написана на Паскале ДВК - судя по совпадающему блоку сообщений из PASDWK.OBJ.
Причём написана была под кодировку КОИ7.
Со временем видимо "хакеры" приспособили её под КОИ8.
Код:**************** Hacked by O l e g H. 25. 10. 91. **************** Corrected by LDN August 1993 Внимание !!! Программа выводит текстовые сообщения в коде КОИ-8, поэтому вы должны иметь драйвер, обслуживающий терминал в КОИ-8. (например, мой TS.SYS для УКНЦ). Олег Ховайко, (UB5AJV).
hobot(17.03.2021)
Для желающий поиграть в STALK без всякой настройки - выложил образ для онлайн-эмулятора:
https://nzeemin.github.io/ukncbtl-wa...alk.uknc&run=1
Ребят, подскажите ещё, не могу найти тему - @Alex_K говорил про какой-то конвертер для .OBJ-файлов, позволяющий получить что-то вроде исходников - помнится, какую-то графическую библиотеку он этим развернул. @hobot может ты помнишь?
svofski(04.04.2021)
Под RSX - DOB.
Под RT его вариант тоже вроде был - надо искать по лентам DECUS.
И что то похожее было под RT.
Но учитывая то, что формат общий и всегда можно было obj перегнать в RSX - RT-шными вариантами я никогда особо не интересовался.
в шапке ссылка "символьные игры" https://zx-pk.ru/threads/32383-ukncb...s-on-line.html
nzeemin, https://zx-pk.ru/threads/31445-rekon...=1#post1049443 нашёл упоминание - особо не вникал в ту тему...
Последний раз редактировалось hobot; 04.04.2021 в 10:56.
nzeemin(04.04.2021)
Да, спасибо. Но DECOBJ на этом PASDWK.OBJ что-то сразу умер.
Ну да ладно, этот Паскаль в MAC-файлы генерирует вывод, разберусь как-нибудь.
Задача "получить хоть какой-то дизасм" можно считать выполненной.
Сделал .MAC-файл, который компилируется в 1:1 тот же .SAV файл - здесь в аттаче.
Строки разобраны, но ссылки почти не проставлены.
Но зато очертания в целом уже видны.
Дальше видимо буду причёсывать и комментировать.
Alex_K(04.04.2021), hobot(05.04.2021), Oleg N. Cher(04.04.2021)
Мощно!!! Но разбираться в Паскале будет не очень приятно. Всё таки язык высокого уровня и особой оптимизации нет. Ещё не дизассемблированы команды FIS, есть там парочка. Соответственно присутствует и эмулятор FIS.
Желаю творческих успехов!!!
- - - Добавлено - - -
PASDWK.OBJ является библиотекой. Её сначала надо с помощью LIBR разбить на отдельные объектные файлы, а потом на каждый файл натравливать DECOBJ. DECOBJ требует много памяти, всё лишнее надо выгрузить, в том числе и SL.
nzeemin(04.04.2021)
http://www.kpxx.ru/Soft/Utils/Stalk
- - - Добавлено - - -
Какое то время назад (до DisAsm-11) начал дизассемблировать Digger, который тоже на Паскале написан. Очень помогает результат трансляции стандартных операторов Паскаля (FOR, CASE), а так же некоторые служебные действия (типа проверки выхода индекса за пределы массива) убирать в макросы. Сильно сокращается текст и улучшается понимание логики. Но вот что делать с переменными на стеке - пока особых мыслей нет. Пример кода:
Код:PROCEDURE M2070 BEGIN CALL M72264 ; 002070 004767 070170 P.FOR IDXVAR R5 AT #3654 FROM #1 TO #17 BEGIN LET R0 := 32(SP) + 3654(R5) - #1 ; 002134 016600 000032 PUSH R0 ; 002146 010046 PUSH 32(SP) ; 002150 016646 000032 LET R0 := 3654(R5) ; 002154 016500 003654 CHKARR INDEX R0 AT RANGE LOW #1 HIGH #17 LET R0 := R0 + SP ; 002200 060600 PUSH #0 ; 002202 005046 LET TOP :B= 13(R0) ; 002204 116016 000013 CALL M1352 ; 002210 004767 177136 P.END LET 24(SP) := TOP ; 002230 011666 000024 LET SP := SP + #24 ; 002234 062706 000024 RETURN ; 002240 000207 END M2070
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)