User Tag List

Страница 22 из 31 ПерваяПервая ... 181920212223242526 ... ПоследняяПоследняя
Показано с 211 по 220 из 304

Тема: DisAsm-11

  1. #211

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

    По умолчанию

    Цитата Сообщение от Hunta Посмотреть сообщение
    Загрузился, поискал EMT, в найденных ткнул AltM и сгенерил исходник
    Результат
    Данный вариант получился уже очень хорошо на вид. Проставлены метки, аски стали аски (а то были ворды).

    Фигню написал, не заметил что поменялось с ttyinr на ttyin

    Тем не менее вот тут имхо бага (лишний комментарий получился, movb нужен всеж):
    M03214:
    .TTYIN K03300
    ;M03214:
    ; EMT 340
    ; BCS M03214
    ; MOVB R0, K03300

    CMPB R0, #60

    Должно быть так (в старом варианте дизасма верно):
    M03214:
    .TTINR
    ;M03214:
    ; EMT 340
    BCS M03214
    MOVB R0, K03300

    CMPB R0, #60
    [свернуть]
    Последний раз редактировалось BlaireCas; 20.11.2024 в 13:24.
    Шедевр портирования на УКНЦ - игра Highway Encounter
    Эмуляторы: UKNCBTL, EmuStudio (респект авторам)

  2. #211
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #212

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

    По умолчанию

    Цитата Сообщение от BlaireCas Посмотреть сообщение
    Фигню написал, не заметил что поменялось с ttyinr на ttyin
    Ну там вроде всё ок на беглый взгляд Но сам проверять буду позже, может - в обед (через полчаса) получится что-то прогнать успеть

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

    Есть ещё пара-тройка болячек и, возможно, что-то будет вылезать при переносе и описании новых макрошаблонов

    Пока тестирую...

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

    Цитата Сообщение от BlaireCas Посмотреть сообщение
    в старом варианте дизасм
    Там были описаны только варианты .TTINR и .TTOUT - поэтому там так

    А, да, пока работает только ручной режим определения макросов, надо подумать - как лучше сделать автоматический, как в старом

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

    И ещё - старый вариант я тестировал по сценарию - берем некую прогу, дизссемблируем, а потом результат проверяем - трансляция-сборка-автоматическое дизассемблирование и сравнение с результатм автоматического дизассемблирования исходного файла. Для некоторых файлов (.SAV например) - можно было сравнивать и бинарники, но .LDA формат так не получалось - блоки (из которых он состоит) могли быть разной длины от разных версий ассемблера и линкера - вот для это и делалось ещё автодизассемблирование

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

    А потом я занялся .TSK от RSX, а там до возможности сразу транслировать и собирать пока далековато, особенно если программа с оверлеями (это, кстати и RT-11 касается, но для неё я разборку оверлеев ещё не делал). Да и если простая программа - тоже командник для сборщика может понадобиться. Плюс - результат дизасма ещё надо в RSX перенести - варианты есть, но такого, как для RT-11 и эмулятора Патрона - увы... Поэтому и не проверял ничего по такому сценарию - нечего было проверять

    А вот сейчас (точнее говоря - скорее всего в отпуск) - опять начну автотесты гонять

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

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

  4. #213

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

    По умолчанию

    Цитата Сообщение от Hunta Посмотреть сообщение
    На беглый взгляд (в процессе) была замечана только одна ошибка - когда ссылка вела внутрь макро-расширения. Про этот сценарий мне известно, в процессе решения
    Это хорошо. А то такое да, случается сейчас. Навроде:
    Код:
    	MOV	#K02515, R0
    
    	ASR	R5
    	BCC	M01054
    	.PRINT  #K02607
    ;	MOV	#K02607, R0
    
    ;M01054:
    ;	EMT	351
    	RETURN
    Шедевр портирования на УКНЦ - игра Highway Encounter
    Эмуляторы: UKNCBTL, EmuStudio (респект авторам)

  5. #214

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

    По умолчанию

    Проверил. По уточнённым данным - четыре ошибки.
    1. Метка в середине макро-расширения (известно, пока не решил)
    2. Метка на один из операндов. Генерируется правильная метка и, почему то, ещё одна за командой (по идее - её не должно быть)
    -- Две штуки
    -- На ближайшие проверку-исправление
    3. Неправильная генерация в сценарии - есть .ASCII, а перед ней байт, на который ссылается .PRINT
    -- На ближайшие проверку-исправление
    4. Срезалось слово в конце программы
    -- Моя старая борьба о том - что такое диапазон адресов 0..776 (и похожий 0..777) - последний адрес слова или байта - это последний занятый или первый свободный Похоже для .SAV промахнулся
    -- На ближайшие проверку-исправление

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

    А, да, после фикса ошибок (не совсем очевидно было для 3, я и посчитал, что 7) и сборки - один в один

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

    Результат

  6. #215

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

    По умолчанию

    Пункт 2. Нууу... Видимо 5-ого ноября между 10:30 и 16:13 я был... э... пьян Потому как именно в этот промежуток я сделал одно мееееееееелкое изменение - и вылезла ошибка пункта 2. Вроде поправил.

    Пункт 3. Очередная попытка доработать AsciZ. Вроде теперь правильно генерит

    Пункт 4. Поправил

    Немного позже сгенерю .MAC по тому же сценарию (пройтись по EMT и сделать макросы) и посмотрю - шо будет

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

    Проверил - осталась ровно одна ошибка - пункт 1
    Последний раз редактировалось Hunta; 20.11.2024 в 21:47.

  7. #216

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

    По умолчанию

    Прошёлся по всем командам - вызовы кнопками или шоткатами - проверил, что бы после команды фокус ввода возвращался на следующию ячейку после последней, попавшей под действие команды. Вроде бы эпопея с выставлением фокуса ввода в списках закончилась.

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

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

    Кроме первого пункта - с остальным более менее можно жить

  8. #217

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

    По умолчанию

    Комментарии к макросам добавлены (на старший байт вводить можно, показываться не будет , хотя я думаю над этим - может сделать всё таки?...)

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

  9. #218

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

    По умолчанию

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

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

    Делалось с определённым прицелом на перетряхивание генерации меток (см про метки внутри макросов), к чему я и приступаю

  10. #219

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

    По умолчанию

    И ещё один внутренний перетрях, связанный с визуализацией команд.

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

    Теперь ссылка на описание команды тоже стала аттрибутом, а всё такие поля перестали быть атррибутами - они выдаются автоматом и изменить их уже не получится

    В целом как бы ни на что не влияет, но теперь анализатор команд стал проще - теперь он больше сосредоточен на логике выполнения команды, чем на её "написании". Соотвественно и при дальнейших его доработках будет работа над логикой команды без необходимости думать о её правильной визуализации.

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

    С самим механизмом формирования ссылок и меток фактически не работал, но слегка подправил его для более правильной расстановки меток, которые внутри макросов.

    Результат

    Выделенное красным - метки генерятся только необходимые, то есть если метка использовалась ТОЛЬКО внутри макроса - её не будет в сгенерированном исходнике Не стоит засорять исходник лишним

    Ну и исходник, который получен так же (протыканы макровызовы), но теперь он, без ручных правок, проходит компиляцию-сборку - без ошибок и результат ИДЕНТИЧЕН исходному

    Что дальше.

    Рефаторинг кода генерации меток для макросов - пока он написал в лоб и так себе

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

    Ещё была какая-то мысль, но отвлекли телефонным звонком и она вылетела. Вспомню - исправлю этот пункт

    Ну и общая причёска-рефакторнинг кода

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

    Вдогонку.

    Поскольку в исходном варианте генерации (пока) не используются мнемноники для регистров устройств, а так же макросы структурного программирования и мои макросы - соответствующие .INCLUDE теперь комментриуются. Файл сгенерировал новый и перевыложил, но всё остальное осталось как прежде
    Последний раз редактировалось Hunta; 24.11.2024 в 19:17.

  11. #220

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

    По умолчанию

    Всякие мелкие фиксы шерховатостей.

    Добавил доп проверку - если по шаблону идёт ссылка на слово данных, на код или макровызов (то есть чётный адрес) - щаблон не применяется, если обнаружится нечётный адрес. Такое бывает можно встретить в RSX - если на вершину стеку перед EMT 377 грузится НЕЧЁТНОЕ число - значит, блок параметров в стеке, а если ЧЁТНОЕ - то это ссылка на блок параметров. Так что теперь исключены ложные срабатывания типа DIR$ #<нечётный адрес> из-за ошибчного тыканья не в том месте блока инструкций потенциального макровызова.

    И добавляю макросы RT-11 в файл шаблонов - из ранее описанных кодом.

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

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

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

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

Похожие темы

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

Ваши права

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