User Tag List

Страница 21 из 31 ПерваяПервая ... 171819202122232425 ... ПоследняяПоследняя
Показано с 201 по 210 из 304

Тема: DisAsm-11

  1. #201

    Регистрация
    30.11.2015
    Адрес
    г. Самара
    Сообщений
    7,508
    Спасибо Благодарностей отдано 
    344
    Спасибо Благодарностей получено 
    714
    Поблагодарили
    596 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Некоторое уточнения. Для ускорения процесса, текстовый шаблон-описание макровызовов DisAsm при загрузке преобразует во внутренее представление и сохраняет в двоичном виде. В дальнейшем, если текстовый файл не менялся - определения загружаются из двоичного файла, а если изменился - двоичный пересоздаётся.

    На текущий момент

    - добавлены общие (в каталоге с DisAsm11.exe) шаблоны, которые подгружаются (в соотвествии с процессором, операционкой, типом и субтипом файла) при открытии программы на дизасм. Их измененение DisAsm не отслеживает и в будущем предполагается, что конечным пользователям на изменение они доступны не будут.

    - шаблоны для дизассемблируемой программы подгружаются динамически - при загружке программы на дизасм DisAsm11 подгружает их, если находит, а при использовании команды AltM или кнопки "Макрокоманда?" подгружает (если раньше не было) или обновляет определения (исходный файл изменился), причём, если какие-то макросы из старого определения были использованы - они аннулируются и вновь запускается процесс определения. Так что если по шаблону блок кода подходит - DisAsm покажет новый вариант макровызова.

    - код старого авто-определения макровызовов выпилен (то есть сейчас после загрузки программы на дизасм никаких макровызовов), а (программное) описание шаблонов будет переносится в файлы-описания и тоже выпиливаться

    - в связи с тем, что поставляемые с DisAsm-ом описания шаблонов будут закрыты на изменения (текстовые исходники будут доступны), скорее всего будет так же добавлена поддержка шаблонов уровня пользователя - которые будут подгружаться при загрузки программы. Будет ли или нет отслеживание изменения исходных файлов этих шаблонов - скорее всего да, но пока не обдумывал.

    Порядок загрузки шаблонов

    Пользовательский шаблон уровня программы
    Системный шаблон для субтипа файла
    Системный шаблон для типа файла
    Системный шаблон для операционки
    Системный шаблон для процессора

    Шаблоны ищутся в порядке загрузки - никакой сортировки или проверки на совпадение имен - это позволяет описать для макроса несколько вариантов шаблонов

  2. #202

    Регистрация
    30.11.2015
    Адрес
    г. Самара
    Сообщений
    7,508
    Спасибо Благодарностей отдано 
    344
    Спасибо Благодарностей получено 
    714
    Поблагодарили
    596 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Ахренеть, как удобно
    Нашёл очередной вызов (CtrlF в помощь), AltM.
    Если распознался - ищем дальше
    Если нет - посмотрел в RSXMAC.SML, добавил описание в файл шаблонов, AltM, ищем дальше
    На добавление очердного описания макровызова - меньше минуты

    - - - Добавлено - - -

    Вроде по шаблонам макро-вызовов сделал всё, что было в планах. Ну, может чего забыл или придёт в голову - тогда добавлю.

    Ааа, вспомнил - более дружелюбный вариант сообщений об ошибках парсинга шаблонов Сейчас - вообще никакого - или подгрузятся или нет Ну, это не сильно горит, так что...

    Тестирование и рефакторинг

    - - - Добавлено - - -

    Вдогонку. На то, что бы в дизассемблируемой сейчас программе найти все макро-вызовы и добавить ещё не описанные шаблоны (порядка 10, я добавлял парами - $ и $S формы) - ушло примерно полчаса

  3. #203

    Регистрация
    30.11.2015
    Адрес
    г. Самара
    Сообщений
    7,508
    Спасибо Благодарностей отдано 
    344
    Спасибо Благодарностей получено 
    714
    Поблагодарили
    596 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Поправил пару ошибк.

    Сценарий первой - файл сессии был создан, когда в каталоге в DisAsm11.exe шаблонов под программу не было. А при очередном восстановлении они уже были. Решил, что лучше сделать вариант, когда они (однократно) подгрузятся. Но этот сценарий навёл на мысли, что работу с системными шаблонами надо ещё продумать.

    Сценарий второй - я отрабатывал работу с шаблонами на файле сессии (в том числе, хакая его под VS по мере изменения объектов ), но вот проверить - а как DisAsm загрузить файл программы - как-то не проверил Оказалось (из-за некоторых изменений), что НИКАК Поправил.

    Ну и пришла в голову мысль, что есть ОС (типа CAPS-11), где вообще или в ранних версиях - ассемблер был ни разу не Macro Пока вариант - добавить для этого сценария флаг в описание макроса, что бы всё выглядело как работа с макросом, но комментировались не команды, входящие в макрос, а сам "вызов" макроса, а к командам, скажем, добавлялись комментарии

  4. #204

    Регистрация
    30.11.2015
    Адрес
    г. Самара
    Сообщений
    7,508
    Спасибо Благодарностей отдано 
    344
    Спасибо Благодарностей получено 
    714
    Поблагодарили
    596 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Для систем, где ассемблер не поддерживает макросы - раз -> два

    Тестирование и фикс некоторых шерховатостей.
    Ну и более внятные сообщения об ошибках в шаблонах

    - - - Добавлено - - -

    А, да - перенос старого варианта шаблонов Ну и в процессе может что вылезет или обнаружится

  5. #205

    Регистрация
    30.11.2015
    Адрес
    г. Самара
    Сообщений
    7,508
    Спасибо Благодарностей отдано 
    344
    Спасибо Благодарностей получено 
    714
    Поблагодарили
    596 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Ещё пример, как это может выглядить для операционок и ассемблеров, не поддерживающих макросы
    CAPS-11's PIP

  6. #206

    Регистрация
    06.02.2020
    Адрес
    г. Москва
    Сообщений
    484
    Спасибо Благодарностей отдано 
    139
    Спасибо Благодарностей получено 
    391
    Поблагодарили
    146 сообщений
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Товарищу Хунте выносится благодарность за дизассемблер. С его помощью удалось дизассемблировать тетрис для RT-11 (и в дальнейшем успешно скомпилировать).
    У меня конечно старая версия и возможно уже исправлено, но вообщем замечания/предложения:

    1) Не всегда пишет перевод в макрос например .print. Пример:
    Код:
    START:
    	MOV	#4747, R0
    	EMT	351
    	.PRINT  #4574
    ;	MOV	#4574, R0
    ;	EMT	351
    Второй emt подправило на .print, первый оставило как есть. Видимо из-за нечетного адреса.

    2) Было-бы круто расставлять на такие вещи метки сразу. Пришлось прилично потыкать руками в подобные адреса превращая их в метки. Ну то-есть если и так превратило в .print - то тут наверняка лучше метку поставить.

    3) Переводы данных в .ascii .. В принципе работает. Что бы было круто для удобства - когда жмешь на ascii high byte допустим - туда бы метку проставляло ну вида А12345: .. как бы тут сказать. Вообщем есть произвольный адрес (четный или нечетный). Хочется его выбрать и чтобы там была метка и затем шли байты ascii
    Шедевр портирования на УКНЦ - игра Highway Encounter
    Эмуляторы: UKNCBTL, EmuStudio (респект авторам)

    Этот пользователь поблагодарил BlaireCas за это полезное сообщение:

    anasana(19.11.2024)

  7. #207

    Регистрация
    30.11.2015
    Адрес
    г. Самара
    Сообщений
    7,508
    Спасибо Благодарностей отдано 
    344
    Спасибо Благодарностей получено 
    714
    Поблагодарили
    596 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    По 1 - идёт работа. Поскольку в отданном варианте - старый вариант работы с макросами - даже проверять не буду. Но если бросишь ссылку - откуда этот тетрис можно скачать - посмотрю на новом варианте - что вылезет. Ну и по идее - в данном варианте не должно блокировать нечётный адрес, но.. мог и неправильно описать (старый) шаблон

    По 2 - в новых шаблонах адрес СРАЗУ превратится в метку Такая возможность в шаблоны заложена (самому лень дополнительно тыкать)

    По 3 - пока это (.ASCII) несколько больная тема Работаю над ней - периодически. По поводу меток - они ставятся (в том числе и на нечётные адреса) - если есть ссылка. Есть ссылка на младший байт (или всё слово) - будет метка, есть ссылка на старший байт - будет ссылка

    - - - Добавлено - - -

    Вдогонку по третьему - если в середине строки .ASCII появляется ссылка - строка режется в месте ссылки. Ну и я ещё часто пользуюсь тем (для удобной визуализации), что если где-то в середине длинной строки тыкнуть "Ascii Low Byte" или "Ascii High Byte" - строка в этом месте разрежется

    - - - Добавлено - - -

    Как бы подводя итог - сейчас идёт работа надо новым механизмом нахождения и визуализации макро-вызовов, практически всё задуманное вначале - реализовано, сейчас идёт этап тестирования-отладки-исправления и параллельно - перевод старых описания макросов (много было сделано под DOS-11 и RT-11) в новые шаблоны. С 9.12 я в отпуске - и интенсивность процесса возрастёт. И просить текущий вариант я бы не советовал

    Этот пользователь поблагодарил Hunta за это полезное сообщение:

    BlaireCas(19.11.2024)

  8. #208

    Регистрация
    06.02.2020
    Адрес
    г. Москва
    Сообщений
    484
    Спасибо Благодарностей отдано 
    139
    Спасибо Благодарностей получено 
    391
    Поблагодарили
    146 сообщений
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Hunta Посмотреть сообщение
    Но если бросишь ссылку - откуда этот тетрис можно скачать - посмотрю на новом варианте - что вылезет.
    Вот есть набор игр под какой-то (vt52?) из терминалов RT-11: https://ia904500.us.archive.org/11/i...ames/games.dsk
    Конкретно дизассемблировал самую маленькую TET2.SAV (некий вариант тетрис-пентикса).
    Шедевр портирования на УКНЦ - игра Highway Encounter
    Эмуляторы: UKNCBTL, EmuStudio (респект авторам)

  9. #209

    Регистрация
    30.11.2015
    Адрес
    г. Самара
    Сообщений
    7,508
    Спасибо Благодарностей отдано 
    344
    Спасибо Благодарностей получено 
    714
    Поблагодарили
    596 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от BlaireCas Посмотреть сообщение
    Вот есть набор игр
    Аха, спасибо. Правда, не сильно обещаю, что на неделе посмотрю на этот тетрис, скорее всего - в выходные.
    Пока опять воюю с одной старой проблемой в DisAsm, которая периодически мне на нервы действует

  10. #210

    Регистрация
    30.11.2015
    Адрес
    г. Самара
    Сообщений
    7,508
    Спасибо Благодарностей отдано 
    344
    Спасибо Благодарностей получено 
    714
    Поблагодарили
    596 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Вроде проблему победил (наверное и в очередной раз), так что теперь поразвлекаюсь с TET2.SAV - с прицелом на перенос макросов RT11

    - - - Добавлено - - -

    Цитата Сообщение от BlaireCas Посмотреть сообщение
    первый оставило как есть. Видимо из-за нечетного адреса.
    Сложно сказать, как оно было (и смысла проверять нет), но скорее всего - действительно косяк был.

    В новом, кстати, тоже сначала - макрос распознался, а то что аргумент - указатель - нет. Поправил возможность указывать для указателя на данные - байтовый или словный

    И этот сценарий, кстати, навёл на мысль, что неплохо так же иметь возможность указать, что указатель указывает на строку .ASCIZ Надо будет допилить - ибо удобно

    - - - Добавлено - - -

    Не вытерпел Теперь - одним движением пальцев на AltM..
    Ну ладно ладно - тремя AltM и четырьмя стрелками вниз брюки превращаются ...

    Как выглядит шаблон

    Код:
    .PRINT srcAddr
      [BPointer, AsciZ] 01XX00 srcAddr	; Address
                        104351
    Пока это первый и единственный макрос Остальные буду переносить по мере нахождения в .SAV (что бы сразу проверять )

    - - - Добавлено - - -

    Цитата Сообщение от Hunta Посмотреть сообщение
    Ахренеть, как удобно
    Сам тащусь!!

    - - - Добавлено - - -

    В общем...

    пункт первый - готов

    пункт второй - готов+

    пункт третий - как я уже сказал - если есть ссылка - метка будет сделана автоматом. Если нет ссылки - как вариант - можно прописать самому метку.

    И напоминаю - на ячейку, для которой DisAsm генерит метку автоматом (есть ссылка(и)) - можно прописать и свою метку - тогда будет использована она. Ручные метки можно ставить где угодно и удалять откуда угодно. Если ручную метку удалить, но на ячейку есть ссылка(и) - DisAsm поставит автоматическую метку

    И ещё - для ручных меток НЕТ ПРОВЕРКИ на повторное использование Периодически подумываю, но пока нет

    - - - Добавлено - - -

    Загрузился, поискал EMT, в найденных ткнул AltM и сгенерил исходник
    Результат
    Результат не проверялся ни взглядом, ни компиляцией-сборкой-сравнением с оригиналом Так сказать - девственно-чистый-от-DisAsm11

    На беглый взгляд (в процессе) была замечана только одна ошибка - когда ссылка вела внутрь макро-расширения. Про этот сценарий мне известно, в процессе решения

    Позже (скорее всего сегодня вечером) попробую скопмилить-собрать. О результатах напишу

    Этот пользователь поблагодарил Hunta за это полезное сообщение:

    BlaireCas(20.11.2024)

Страница 21 из 31 ПерваяПервая ... 171819202122232425 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Disasm with Sts 7.5...
    от Stl75 в разделе Софт
    Ответов: 3
    Последнее: 25.06.2018, 11:28

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •