Проверяй
Исходник
И листинг...
xolod(14.10.2025)
А нельзя-ли программу сделать не RequestWare а там ну не знаю даже ShareWare шаровары одним словом. Чтобы можно было вот зайти в первую страницу - увидеть ссылку "скачать".
Пофигу там рабочий не рабочий вариант (специально написать мол софт всегда в разработке, матюками крыть меня не надо).![]()
Но чтобы его одним словом сразу можно было скачать. Софт хороший я юзал древнюю версию какую-то и вполне даже помогала.
Шедевр портирования на УКНЦ - игра Highway Encounter
Эмуляторы: UKNCBTL, EmuStudio (респект авторам)
Есть такое в мыслях. Но точно не раньше, чем DisAsm будет разделён на части. Визуализирующую и дизассемблирующую.
Это, в частности, позволит решить проблему сеансов - сейчас сеанс, созданный в одной "версии" программы - с большой вероятностью не загрузиться в более новой. Когда то думал над написанием конвертеров (из более старой в более новую версию), но.. там конвертеры получались больше самой программы.
После распила будет .exe-шник, который собственно будет визуализировать, ну и некоторые сервисные функции выполнять (типа открыть файл, сохранить сеанс, сгенерировать разное) и dll, которая будет дизасмить и выполнять всякие команды типа - пометить ячейку как Ascii или ещё как-то. Вот эти dll можно сделать версионными и тогда сеанс будет подгружаться и отправляться в работу в нужную версию dll. Коих может быть сколько угодно. Не только на разные процы, но и разные версии под один проц.
Чем, по большей части, я сейчас и занимаюсь. В частности, за выходные получилось так:
То, что выделено - пока ещё жестко зашито (подумать надо, как отвязать)
Остальное (ну кроме самой первой линии с кнопками типа Открыть, Сохранить, Сгенерировать) - генерируется по всякой информации из модулей дизасма, коих сейчас два.
Кнопки первой линии тоже не зависят от конкретного проца, но показываются всегда, так как с них начинается работа)
На текущий момент - так...
... и вот так
То, что в окне - всё определяется по соотвествущим описаниям дизассемблируемой сущности и отрисовывается динамически.
То, что за окном (без кнопок, только шоткаты) - вставка и редактирование комментариев, копи-паст и поиск - пока зашито. Вырезание этого - следующие шаги
На текущий момент остались жёстко зашитыми команды редактирования комментария, поиск (в трёз вариантах) и копи-паст. Учитывая, что они, фактически, не зависят от процессора - скорее всего они такими и останутся..
- - - Добавлено - - -
Вдогонку. Бонус переделок стало - возможность добавлять не только блочный комментарии - но и некоторые другие типы ячеек-операторов MACRO-11. Так что возможность добавить, скажем, условную трансляцию - стала ближе![]()
Более менее монолит DisAsm11 порезан, даже набросан метод, который проверяет dll библиотеки и подгружает те, которые реализуют нужный функционл дизассемблирования и добавляет поддерживаемые ими процессора в список. Так что теперь без этих библиотек DisAsm11 показывается только "Сохранённый сеанс", а с ними - плюс ещё PDP-11 и VAX-11. Это из хороших новостей
Из плохих - я стараюсь оставить в модуле, отвечающий за визуализацию, только нужный функционал, а всё остальное вынести в модули дизассемблирования. Но есть некоторые нюансы, которые надо понять и решить создаваемыми ими проблемы. В процессе..
- - - Добавлено - - -
Некоторое количество проблем пофиксино.. Но ещё остались..
Подгрузка библиотек более менее отлажена - и в варианте .NET 4.0 и в варианте .NET 9.0 (да, теперь девятка - перешёл с семерки), но пока без работы с несколькими версиями библиотек (то есть подгрузить то она подгрузит все и... покажет в какой-то степени все - и как будет бедный пользователь выбирать между несколькими PDP-11???)
Помимо этого воевал с некоторым количеством ошибок из-за внутренних изменений, связанных с распилом монолита и просто моих ошибок. Один из выводов - работу с векторами надо несколько переделать
На вскидку - вроде как осталось только слегка поправить вывод листинга - а то после изменений, связанных с поддержкой VAX-11 - листинг VAX-11 выводится ок, а вот листинг PDP-11 - не очень. А так же проверить сохранение-восстановление сеанса
Ну и - версионность модулей дизасма![]()
Листинг поправил, сеанс вроде тоже сохраняется-восстанавливается..
Уф... Война с .NET-ами, версиями dll и динамической загрузкой
Теперь можно иметь несколько версий библиотек дизассемблирования. На скриншотах красным выделены версии библиотеки дизассемблирования PDP-11
Для сохранённого сеансы была использована "версия" 0.9.9.9, она и подгрузилась
Если же просто открыть файл для дизассемблирования, будет подгружена "последняя" (1.0.0.0 на скриншоте) версия
Пока это только отладка - отличия в версиях созданы искусственно - в 0.9.9.9 убрана кнопка Asciz
Есть ещё некоторая заморочка с сохранением сеанса, но она пока никак не влияет на процесс загрузки сеансов, хотя попробую её тоже пофиксить
- - - Добавлено - - -
Даже две заморочки, но вторую скорее всего быстро исправлю - почему-то в обеих случая светится, что открывали Сохранённый сеанс, но для версии 1.0.0.0 это не так - открывался файл для дизасма...
- - - Добавлено - - -
Да, с проблемой показа "Сохранённого сеанса" разобрался быстро - старый код, теперь не нужен.
А вот первая заморочка (которая вроде ни на что не должна влиять)... надо подумать... Вроде действительно не должна ни на что влиять, но пока не понял - точно ли..
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)