User Tag List

Страница 16 из 31 ПерваяПервая ... 121314151617181920 ... ПоследняяПоследняя
Показано с 151 по 160 из 304

Тема: DisAsm-11

  1. #151

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

    По умолчанию

    Поигрался (в смысле - и потестировал малость) с новым вариантом. Из непонравившегося - в командной строке надо указывать полный набор, типа - /pdp11 /rt11 /sav
    Надо будет реализовать вариант поиска по принципу - минимально достаточной инфы - то есть - /sav - он только в описании pdp11+rt11 встречается - значит - /pdp11 и /rt11 подразумевается. Но это завтра, в смысле - спать хочется, вот встану и попробую допилить

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

  3. #152

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

    По умолчанию

    Допилил разборку командной строки до разборки по принципу разумной достаточности, то есть - указал ключ, скажем, /tsk - программа сама поймет, что то /pdp11 и /rsx.

    Попутно пришла в голову мысль, что одинаковые файлы могут быть в разных ОС (DOS-11 и XXDP).

    И (внезапно)! обнаружилось, что если в командной строке не указать ключ /generate - то программа просто откроет (и первоначально обработает) файл в графическом режиме. Автор забыл про то, что умеет произведение. Но вот параметры в выпадающих списках она по загруженному файлу не выставила (так и остался висеть Сохранённый сеанс), что с одной стороны - фиолетово (ибо дальше они не на что не влияют - только при открытии файла - а это уже было задано ключами), а с другой стороны - "Неаккуратненько как то, доктор!"

    Второе поправить проще, поэтому начну с него

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

    Другое дело - теперь правильная инфа о файле

    Первый пункт в работе...

  4. #153

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

    По умолчанию

    Разбор командной строки поправил. Фаза тестирования. Ну, по мере использования, а не специально гонянние тестов

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

    А, да, чего-то мне стукнуло в голову - сделал возможным изменение размеров окошек с исходным текстом Не то, что бы это ОЧЕНЬ нужно было, но вдруг захотелось. А поскольку это дело на 5 минут правок описания интерфейса и ни одной строчки кода - пуркуа бы и не па

  5. #154

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

    По умолчанию

    Для полноты картинки добавил в список так же CAPS-11 Формат у неё тот же - LDA (по крайне мере для основной массы файлов), но, как и в случае XXDP/DOS-11 - свои системные вызовы. Кстати, одна из операционок для PDP-11, в которой ассемблер не поддерживает макросы, то есть - вариант PAL-11. Надо посмотреть по документации - как вообще в CAPS-11 происходят вызовы системы В принципе - можно добавить в дизасм и макросы под это дело, только транслировать придётся под чем-нибуть типа RT-11. Надеюсь - OBJ у них с CAPS-11 похожие

  6. #155

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

    По умолчанию

    "Неожиданное" применение кода из DisAsm

    Код:
    8.842.006-12.Редактор текста.var.1.ptap
    
     **        **   **   **        **   **   **         *   **
    *  *      *  * * *  *  *      *  * *  * *          **  *  *
     **        **  ****   *       *  * *  * ***   ***   *    *
    *  *  **  *  *   *   *    **  *  * *  * *  *        *   *
     **   **   **    *  ****  **   **   **   **        *** ****
    
    С адреса       : 000004
    По адрес       : 012607
    Стартовый адрес: 012416
    
    
    000245 Начало записи 001 000
      Счётчик байт      52
      Адрес загрузки 000550
    КС 045
    
    ...

  7. #156

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

    По умолчанию

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

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

    P.S. На вопрос - чё за код такой странный в раскрытии макроса - не отвечу. Оно так былО в программе

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

    Добавил ещё некоторое количество макросов. Дальше - вечером, после работы..

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

  8. #157

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

    По умолчанию

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

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

    На выходные попробую добавить что-нибудь из RSX

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

    В общем, макросы описываются ака "Жуткая жуть" с некоторыми неочевидностями, но.. Работает!

  9. #158

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

    По умолчанию

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

    Пока в проверках работы описанных макросов для XXDP и фиксах мелких недочётов...

  10. #159

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

    По умолчанию

    В процесс игр - обнуления флагов ячеек и выставления признака - Код (с автоопределением макровызовов) наткнулся на то, что обнуление флагов на макровызове осколками цепляет предыдущий макровызов, причём цепляет фатально - сам макровызов не обнуляется, а вот с его ячеек сбрасывается флаг, что они из макровызова. Разбираясь, наткнулся на (свой!) непонятный код. Такое впечатление, что была какая-то ошибка в определении макросов (а может были мыли про вложенные макросы - что, как мне сейчас кажется - глупость) - и вот она рванула. Закомментил, оставил комментарии, пофиксил - играюсь дальше...

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

    Наткнулся так же на ошибку DisAsm и одновременно особенность дизассемблируемого файла. Выглядит так
    Код:
       5599	036272				M36272:
    U  5600	036272	016765 	002540 	000006 		MOV	M36276, 6(R5)	; Ошибка! Должно быть K41036
       5602	036300	001402 				BEQ	M36306
    
    
       6294	040632				M40632:
       6295	040632	104405 				TRAP	5
       6296	040634					RETURN
    					; 40636:			; Этот адрес уже за пределами файла
    То есть, я предполагаю, что в исходнике было что-то типа
    Код:
       6294	040632				M40632:
       6295	040632	104405 				TRAP	5
       6296	040634					RETURN
    					; 40636:			; Этот адрес уже за пределами файла
    						.BLKB 200
       .... 041036				K41036:
    						...
    но особенность LDA формата в том, что .BLKB и .BLKW в выходной файлы не попадос
    Я уже рисовал код для правильной работы с такими ОТСУТСТВУЮЩИМИ ячейками в LDA, но, видимо, не всё корректно в датском королевсте Будем смотреть и фиксить

    Интересно, как с таким справляется всеми любимый IDA (да ещё что бы и на выходе был файл, который проходит компиляцию стандартным MACRO-11 !)

  11. #160

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

    По умолчанию

    В целом, ошибка - да, именно ошибка. Так как в не LDA это как несколько нестандартная и, возможно, недопустимая ситуации. Особенно если учесть 67-ой режим адресации. DisAsm пытался пометить операнд как указатель, но не получалось (об этом дальше), а оно без проверки результата шло дальше. Это - пофиксил. Хотя (написанный мной ранее) код не понравился - в DisAsm есть несколько мест, где он начинает какие-то изменения во флагах ячеек, а потом по разным причинам сделанное отменяет. Вот этот подход - сделать и отменить - не понравился. Ещё и по причине того, что визуализация дёргается ажж два раза. Как сделать лучше - подумаю.

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

    Играюсь дальше.

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

    После исправленных в коде косяков сброса-генерации макровызовов (а потом в DisAsm-е много команд Clear и одна команда Code на каждый случай) и исправленного косяка и фичи генерации ссылок за пределы программы (а потом одна команда Clear и одна команда Code на каждый случай) результат автоматической генерации исходников из исходного .BIN файла и .BIN файла, полученного трансляцией и сборкой восстановленного .MAC) файла - идентичен. Из-за особенностей LDA формата сравнивать именно двоичные файлы бесполезно - не совпадут с вероятностью почти 100 процентов...

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

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

    Разборки с векторами, когда они не в адресном пространстве Ну примерно тоже, как с 67, только в этом случае DisAsm а) генерит правильный код (и будет с 67-ым) и б) отказывается делать вектор вектором (по секретной команде V)

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

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

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

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

Похожие темы

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

Ваши права

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