Сделал грубый дизасм KINGOM - https://github.com/nzeemin/uknc-vari...GOM/KINGOM.MAC
По объёму примерно в полтора раза больше чем STALK. И всё во FLOAT сверху донизу.
Код на Паскале - https://github.com/nzeemin/uknc-vari.../KINGOM-PASCAL
Сделал грубый дизасм KINGOM - https://github.com/nzeemin/uknc-vari...GOM/KINGOM.MAC
По объёму примерно в полтора раза больше чем STALK. И всё во FLOAT сверху донизу.
Код на Паскале - https://github.com/nzeemin/uknc-vari.../KINGOM-PASCAL
Последний раз редактировалось nzeemin; 05.01.2022 в 22:31.
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Надо мой дизасмер научить FIS понимать.
Эйфория с диска disk2.dsk - который ещё со старого SVN-репо - https://github.com/troosh/ukncbtl/bl...isks/disk2.dsk
Я уже не помню откуда этот диск взялся.
hobot (24.04.2021)
nzeemin (23.04.2021)
"Королевство Эйфория":
Код на MACRO-11, постепенно пополняется комментариями - https://github.com/nzeemin/uknc-vari...GOM/KINGOM.MAC
Код на Паскале, незакончено - https://github.com/nzeemin/uknc-vari.../KINGOM-PASCAL
По моим прикидкам, общий объём работы - около 20 дней - на первые 20% ушло 4 дня.
Последний раз редактировалось nzeemin; 16.05.2021 в 02:09.
По поводу переменной VAR224 - она типа INTEGER.
Функция L57170 получается что-то типа местного рандомайзера.
Хотя можно было сделать проще: B:=B*5 AND 4095;Код:FUNCTION L57170(A:INTEGER; VAR B:INTEGER):REAL; LABEL 1; BEGIN IF A<>0 THEN B:=A; B:=B*5; 1: IF B>=16384 THEN B:=B-16384; IF B>=8192 THEN B:=B-8192; IF B>=4096 THEN B:=B-4096; IF B>4096 THEN GOTO 1; L57170:=B/4096; END;
nzeemin (15.05.2021), Oleg N. Cher (16.05.2021)
Спасибо, это сэкономило мне время.
Пока не понял что в процедуре L60060 заставляет сохранять SP в R4 - пока воткнул там NOP для выравнивания.
В конце 4-го .PAS модуля (KINGM4.PAS) стоит какой-то заполнитель из слов 011404 - пока не понял что это.
- - - Updated - - -
В общем, первый проход по основному модулю (KINGOM.PAS) - сделан.
Недоделаны процедуры в остальных модулях (KINGM3.PAS, KINGM4.PAS, KINGM5.PAS).
Приготовил всё ко второму проходу по основному модулю - дальше пока буду этим заниматься.
Alex_K (16.05.2021)
В дополнительных модулях везде при вызове своих подпрограмм перед заносом параметров в стек стоит MOV SP,R4. В главном модуле такого нет.
Мне тоже воспроизвести не удалось.
- - - Добавлено - - -
Это есть в нескольких местах.
И команды MOV %6,%4 и MOV (%4),%4 присутствуют в исполнимом модуле транслятора Паскаля. Вот только при каких условиях они включаются в исходный код.
Последний раз редактировалось Alex_K; 16.05.2021 в 12:01.
nzeemin (16.05.2021)
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)