-
Повылазившее на тестировании (в том числе и не умевшее отношение к переделке) - пофиксил, теперь все типы файлов обрабатываются новым способом. И я всё ещё косюсь на оверлеи и страницы. Не знаю только, сколько сегодня успею сделать.. Если успею :)
- - - Добавлено - - -
Думаешь сделать одно, а получается (быстрее) другое :) Это не окончательный вариант, а просто пристрелка - что бы увидеть - а как оно вообще :)
Теперь видна структура LDA файла
В частности то, что очередной блок может иметь нечётную длину и нечётный адрес загрузки :) Добро пожаловать в мир восьмибитных носителей :)
-
Упорство и упрямство, а так же - неожиданные шатания по поводу того - что делать следующим.
Тем не менее :)
И - это пока концепт, причём идёт отработка внутренностей, так что совсем не факт, что ОНО так будет выглядеть потом :)
Пока так, дальше буду думать - как :)
-
Multiuser EDT, прилинкованный к supervisor FCSRES выносил мозг полдня :) Но - мы не привыкли отступать. Не совсем (далеко не совсем) ещё разобрался, но уже начинает что-то вырисовываться :)
Красота :)
Или :)
- - - Добавлено - - -
Multiuser EDT, прилинкованный к обычной FCSRES - тоже сволочь.. Тоже не зашёл с первого раза...
-
Определённые подвижки есть, скажем, теперь все три варианта EDT нормально грузятся в программу, с показом структуры перекрытий. Но по прежнему идёт борьба за правильно определение структуры перекрытий и подгрузки частей программы в хранилище для анализа. Что играет против :) меня:
- программы с перекрытиями, резидентными на диске и автоматической загрузкой
- программы с перекрытиями, резидентными в памяти и автоматической загрузкой
- программы с перекрытиями, резидентными на диске и ручной загрузкой
- программы с перекрытиями, резидентными в памяти и ручной загрузкой
- многопользовательские программы
- программы с поддержкой пространств с кодом и данными
- программы, прилинкованные к резидентным библиотекам
- программы, прилинкованные к резидентным библиотекам в режиме супервизора
- программы, прилинкованные к общим блокам
И всё это в перемешку и по отдельности :)
Надо ещё будет добавить код, который будет контролировать - все ли блоки из дизассемблируемого файла попали под раздачу :)
И - пока идёт борьба с загрузкой, потом начнётся допиливание модуля дизассемблирования :)
А ещё значительная часть этой хрени есть и в RT-11 :)
-
Вроде как осталось только сделать правильную подгрузку программ с поддержкой пространств с кодом и данными и оверлеями и подгрузку резидентных библиотек (а так же разбор их STB файлов)
Ну и проверять-проверять-проверять.
Так же нужна доработка декодировщика команд для поддержки оверлеев, а вот тут ещё и отработка определения - в какой оверлей полез код. Вниз по дереву немного проще, вверх, вбок и в другое дерево - сложней, надо разбирать вектора загрузки. Ну и генерация меток.
Пока по прежнему ВСЯ программа загоняется в один .MAC файл (что не есть правильно) и не генерируется файл для TKB.
Кстати, надо сделать и генерацию файла для компиляции и сборки для всех типов файлов :)
-
Добавление подтипов файлов
Начало добавления кода интеллектуальной обработки подтипов
Начало работы автогенерации обращения к макросам (в зависимости от типа и подтипа, пока отработка концепции)
Активное использование и, как следствие, активное исправление ошибок и шерховатостей
-
Очень ранний концепт
Список .MCALL генерируется автоматом (но надо допилить, что бы разбивался при необходимости на несколько строк) (готово)
Надо дописать генерацию метки на макрос, если первая его команда - с меткой (готово)
Отработка концепта идет (та-дам!) на RT11 v1.15 - в силу простоты иховых макросов
Ну и пока это ЕДИНСТВЕННЫЕ и НЕ ДО КОНЦА сделанный (у него есть второй аргумент) макрос. Просто ещё идёт отработка концепта в целом - как встраивать, визуализировать и какие нюансы (типа меток) могут при этому вылезти. Хотя в принципе могу уже накидать примерно так порядка трёх десятков макросов :)
- - - Добавлено - - -
А, да, надо, помимо автоматической генерации макро-вызовов, добавить и ручную работу с ними :) (частично готово, но на предмет отдельной кнопки Макро - размышления, пока автооопределение по кнопке Код)
-
Двигаюсь вперёд
Практически все замеченные кривоватости из предыдущего сообщения пофиксины.
Добавлены почти всё макросы из RT11 v1.15 - с учётом того, что разбирается максимум один аргумент - номер канала, но это следующая цель - остальные аргументы макроса.
Из следующих целей - макросы из следующих версий, а так же возможность генерировать программу под определённую (исходно подразумевается - под родную) версию RT - такой функционал БЫЛ заложен в макросы RT, посмотрим, насколько получится это определить.
-
На свежую голову пофиксил ещё тройку сценариев - не критично для генерируемого MAC файла, но как-то неаккуратненько.
Теперь подход генерации остальных аргументов макросов...
-
Очередной первый шаг :)
В левом (основном) окне - пример .LOOKUP с двумя аргументами, в правом верхнем - пример .LOOKUP без параметров, в правом нижнем - список макросов, которые были найдены на текущий момент в PIP.SAV
Ну и поскольку отработка механизма и отладка - пока только для .LOOKUP
.LOOKUP - это ещё из более простых макросов, .TTYIN будет посложней, но... Мы не привыкли отступать :)