Far Manager в качестве IDE для masm64

Тема в разделе "IDE. Интегрированные среды разработки", создана пользователем Mikl___, 16 июн 2024.

  1. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.786
    FAR Manager — консольный файловый менеджер для операционных систем семейства Microsoft Windows и Linux.
    Автор программы — Евгений Рошал. С 18 июня 2000 года разработкой FAR Manager занимается группа FAR Group. Начиная с версии 2.0 программа распространяется под модифицированной лицензией BSD. Предыдущие версии имели проприетарную лицензию, по которой коммерческое использование программы являлось платным.

    Интерфейс

    Программа FAR Manager наследует двухоконную идеологию, стандартную расцветку и управление с клавиатуры у файлового менеджера Norton Commander.
    FAR поддерживает работу с файловой системой NTFS, различные кодировки текстов, может использовать системные функции для копирования файлов, имеет многоязычный интерфейс и систему помощи.
    FAR Manager был с самого начала ориентирован на платформу Windows, поддерживал длинные имена файлов.

    Подключаемые модули (плагины)

    Окно FAR развёрнуто на весь экран, в одной панели открыт «быстрый просмотр». Используется плагин Multimedia viewer
    Возможности FAR расширяются плагинами различного назначения:
    • управление принтерами, как подключёнными к ПК, так и сетевыми;
    • подсветка синтаксиса в исходных текстах программ;
    • работа с FTP-серверами (с поддержкой доступа через различные типы прокси, автоматической докачкой и прочее);
    • работа с SFTP-серверами (плагин WinSCP);
    • работа с любым ssh-сервером по протоколу FISH (только в far2l);
    • поиск и замена символов одновременно во множестве файлов с применением регулярных выражений;
    • средства переименования групп файлов с возможностью использования сложных составных масок из символов подстановки и шаблонов;
    • NNTP-/SMTP-/POP3-/IMAP4-клиенты и отправка сообщений на пейджер;
    • работа при нестандартных размерах текстового экрана;
    • перекодировка текстов с учётом национальных кодовых таблиц;
    • манипуляции с содержимым корзины;
    • управление приоритетами процессов на локальном или на сетевом ПК;
    • автозавершение слов в редакторе и работа с шаблонами;
    • редактирование реестра Windows;
    • создание и изменение ярлыков Windows;
    • всевозможные манипуляции с файлами и текстом, делающие комфортной работу с фидонетовскими материалами;
    • кодирование и декодирование файлов в формате UUE;
    • симметричное и асимметричное шифрование файлов;
    • управление программой Winamp и модификация комментариев MP3-файлов;
    • просмотр и редактирование содержимого ресурсов различных игр;
    • работа с различными серверами через ODBC + работа с серверами Oracle через OCI;
    • управление службой RRAS;
    • запуск внешних программ (компиляторов, конвертеров и проч.) при редактировании текстов в редакторе FAR;
    • отображение содержимого файлов справки Windows (.hlp и .chm);
    • калькуляторы с разными возможностями;
    • различные игры;
    • функции проверки орфографии при обработке текста в редакторе FAR;
    • работа с файл-образами дисков для ZX Spectrum и ПК Вектор-06Ц;
    • подготовка каталога сменных накопителей;
    • вычисление и проверка CRC и криптографических хеш значений файлов (SHA-1; SHA-2; Whirlpool и других).
    • Отображение скрытой файловой системы на сотовых телефонах SonyEricsson.
    Некоторые плагины (работа с FTP, печати, сравнения файлов, работы с архивами, сетью) входят в поставку FAR. Остальные плагины доступны для скачивания в интернете, пользователь может устанавливать их в соответствии со своими задачами. В настоящее время насчитывается более 700 плагинов для FAR.
    Большинство плагинов написано на Си/C++ и Паскале с использованием оригинального FAR API. Существуют и современные альтернативы: FarNet предоставляет API и инструменты для написания .NET-модулей; модуль PowerShellFar реализует поддержку Windows PowerShell и открывает объектную модель FarNet для управления из скриптов или командной строки; модуль LuaFAR предоставляет API для написания скриптов и плагинов на языке Lua.

    Создаем bat-файл для компиляции и линковки

    Пишем bat-файл, который по щелчку мыши или по нажатию на Enter создает исполняемые файлы под Windows, причем, если в той же папке будет rc-файл с тем же именем, тогда к нашему obj-файлу будет добавлен res-файл.

    Запускаем Far. Нажимаем F4+Shift
    Создаем текстовый файл «asm2.bat». Набираем в нем следующие строки:
    Код (Text):
    1. cls <-- очистить экран
    2. set masm64_path= <-- путь к папке, где находится masm64
    3. set filename=%1 <-- имя asm-файла без расширения
    4. if exist errors.txt del errors.txt <-- если существует errors.txt файл -- удаляем его
    5. call :read_settings %filename% <-- вызов подпрограммы, которая определит дальнейшие действия с asm-файлом
    6. @echo %kind_of_file% <-- выводим сообщение о том как мы будем компилировать asm-файл
    7. goto %kind_of_file%
    8. :CONSOLE
    9.     del %filename%.exe
    10. %masm64_path%bin\ml64 /Cp /c /I"%masm64_path%Include" %filename%.asm >> errors.txt
    11.    if errorlevel 1 exit
    12. %masm64_path%bin\link /SUBSYSTEM:CONSOLE /LIBPATH:"%masm64_path%Lib" ^
    13. /entry:WinMain %filename%.obj /LARGEADDRESSAWARE:NO ^
    14. /ALIGN:16 /SECTION:.text,W /BASE:0x400000 /STUB:%masm64_path%\bin\stubby.exe >> errors.txt
    15.     if errorlevel 1 exit
    16.     del %filename%.obj
    17.     goto exit1
    18. :GUI
    19.     if exist %filename%.exe del %filename%.exe
    20.     if exist %filename%.obj del %filename%.obj
    21.     if exist errors.txt del errors.txt
    22. %masm64_path%bin\ml64 /Cp /c /I"%masm64_path%Include" %filename%.asm >> errors.txt
    23. if errorlevel 1 exit
    24. if exist %filename%.rc (
    25. %masm64_path%bin\RC /r /i"%masm64_path%\Include" %filename%.rc >> errors.txt
    26. %masm64_path%bin\link /LIBPATH:"%masm64_path%Lib" ^
    27. /LARGEADDRESSAWARE:NO /BASE:0x400000 /STUB:%masm64_path%bin\stubby.exe ^
    28. /SECTION:.text,W /ALIGN:16 /entry:WinMain /MERGE:.rdata=.text ^
    29. /fixed /nocoffgrpinfo %filename%.obj %filename%.res >> errors.txt
    30.     if exist %filename%.res del %filename%.res
    31. ) else (
    32. %masm64_path%bin\link /SUBSYSTEM:WINDOWS /LIBPATH:"%masm64_path%Lib" ^
    33. /LARGEADDRESSAWARE:NO /BASE:0x400000 /STUB:%masm64_path%bin\stubby.exe ^
    34. /SECTION:.text,W /ALIGN:16 /entry:WinMain /MERGE:.rdata=.text ^
    35. /fixed /nocoffgrpinfo %filename%.obj >> errors.txt
    36. )
    37.     if errorlevel 1 exit
    38.     goto exit1
    39. :DLL
    40.     if exist %filename%.dll del %filename%.dll
    41. %masm64_path%bin\ml64 /c /Cp /I %masm64_path%include %filename%.asm >> errors.txt
    42.     if errorlevel 1 exit
    43. if exist %filename%.rc (
    44. %masm64_path%bin\RC /r  %filename%.rc >> errors.txt
    45. if errorlevel 1 exit
    46. %masm64_path%bin\link /SUBSYSTEM:WINDOWS /LIBPATH:%masm64_path%lib ^
    47. /ENTRY:DllMain /DLL /DLL /section:.bss,S /stub:%masm64_path%bin\stubby.exe  ^
    48. %filename%.obj %filename%.res /DEF:%filename%.def >> errors.txt
    49.     if exist %filename%.res del %filename%.res
    50. ) else (
    51. %masm64_path%bin\link /SUBSYSTEM:WINDOWS /LIBPATH:%masm64_path%lib ^
    52. /ENTRY:DllMain /DLL /DLL /section:.bss,S /stub:%masm64_path%bin\stubby.exe  ^
    53. %filename%.obj /DEF:%filename%.def >> errors.txt
    54. )
    55.     if errorlevel 1 exit
    56.     del %filename%.exp
    57. :exit1
    58.     del %filename%.obj
    59.     del errors.txt
    60.     exit
    61. :read_settings
    62. for /f "eol=# tokens=2-3" %%A in (%filename%.asm) do (
    63. set kind_of_file=%%A
    64. if %%B == # exit /b )
    65. exit /b
    Нажимаем на F2 и сохраняем bat-файл. Жмем на F10 ― выходим из файла.
    Far Manager, так же как до этого Norton commander, можно «приучить» к определенным действиям с файлами, имеющими одинаковое расширение. Far Manager поддерживает ассоциации файлов, которые позволяют задавать разнообразные действия на запуск, редактирование и просмотр файлов, заданных маской (в данном случае маска «*.asm»). Можно добавлять новые ассоциации с помощью команды «Ассоциация файлов» в «Меню команд».
    Можно задать несколько ассоциаций для одного типа файлов и выбрать желаемую ассоциацию из меню. В списке ассоциаций доступны следующие действия:
    • Ins ― добавить новую ассоциацию;
    • F4 ― изменить настройки текущей ассоциации;
    • Del ― удалить текущую ассоциацию.
    При запуске компиляции и линковки asm-файла из командной строки, мы бы набрали на клавиатуре примерно следующее:
    > asm2.bat msgbox.asm
    bat-файл должен проанализировать командную строку, взять первый аргумент после своего имени, выделить из него название файла без расширения «.asm» и подставить это имя в переменную filename. Первый аргумент после имени программы обозначают как %1. Осталось научиться, как из полного имени файла выделять название файла без расширения. В ассоциированных командах используются специальные метасимволы, среди которых «!» означающий длинное имя без расширения.
    Жмем на F9 → «Команды» → «Ассоциации файлов» → Enter
    Жмем на Insert
    «Одна или несколько масок файлов:» → Набираем «*.asm» → «Команда, выполняемая по Enter» → Набираем полный путь к asm2.bat и «asm2.bat !», жмем на «ОК».
    Теперь достаточно по любому asm-файлу щелкнуть мышью или навести курсор и нажать на Enter, как будет запущен процесс компиляции и линковки.
    Наш bat-файл разделен на несколько частей, в одной части bat-файла есть строки, которые собирают EXE-файлы для Windows (причем, когда нам нужен GUI подставляется параметр /SUBSYSTEM:WINDOWS а когда нужна консоль ― параметр /SUBSYSTEM:CONSOLE), в другой ― DLL-файлы, в третьей ― SYS-файлы и т.д., а часть строк asm2.bat будет общей ― удаление «мусора» в виде obj-файлов, res-файлов и т.п.
    Первая строка нашего asm-файла подскажет bat-файлу какой тип файла должен получиться в результате компиляции и линковки.
    Если первую строку в asm-файле закомментировать, то она будет игнорироваться компилятором, но будет восприниматься командным процессором, который, в свою очередь, игнорирует символ «точка с запятой». Вернемся к содержимому asm2.bat и посмотрим в завершающие строки, где описана процедура read_settings
    Код (Text):
    1. :read_settings
    2. for /f "eol=# tokens=2-3" %%A in (%filename%.asm) do (
    3. set kind_of_file=%%A
    4. if %%B == # exit /b )
    5. exit /b
    Процедура read_settings читает первую строку asm-файла и работает с первыми тремя лексемами, разделенными пробелами или табуляцией и сопоставляет их с переменными начиная с %%A. Первое поле ― знак «;» экранирует всю строку от компилятора, значение из второго поля помещаем в переменную kind_of_file, если третье поле равно «#» ― выходим из процедуры. Далее по значению в переменной kind_of_file обрабатываем asm-файл. Возможны следующие значения
    kind_of_fileописание
    CONSOLEПриложение в символьном режиме (CUI). Операционная система предоставляет консоль для приложений. Взаимодействие между пользователем и Windows через отправку команд, представляющих собой последовательность символов.
    GUIПриложение в графическом режиме (GUI). Консоль не требуется, потому что приложение создает собственные окна для взаимодействия с пользователем. Взаимодействие пользователя с Windows с использованием графических элементов, таких как окна, кнопки и меню
    DLLБудет выполнена сборка динамически подключаемой библиотеки DLL
    NATIVEСоздание драйвера режима ядра. Этот параметр зарезервирован для системных компонентов Windows.
     

    Вложения:

    • 00.jpg
      00.jpg
      Размер файла:
      125,1 КБ
      Просмотров:
      197
    • 01.jpg
      01.jpg
      Размер файла:
      136,3 КБ
      Просмотров:
      194
    • 02.jpg
      02.jpg
      Размер файла:
      105,6 КБ
      Просмотров:
      141
    • 03.jpg
      03.jpg
      Размер файла:
      16,8 КБ
      Просмотров:
      114
    • 04.jpg
      04.jpg
      Размер файла:
      116,1 КБ
      Просмотров:
      112
    R81... нравится это.
  2. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.786

    Общие действие с файлами

    F1 ― помощь
    F1+Shift ― архивировать​
    F2 ― меню пользователя
    F2+Shift ― распаковать​
    F3 по имени файла ― файл открывается для просмотра
    F3+Shift ― архивные команды​
    F4 по имени файла ― файл открывается для редактирования
    F4+Shift ввести имя asm-/rc-файла ― будет создан новый файл​
    F5 по имени файла ― файл копируется
    F6 по имени файла ― файл переносится
    F6+Alt ― меню создать ссылку на файл​
    F7 ― создание каталога
    F7+Alt ― поиск файла​
    F8 по имени файла ― файл удаляется
    F8+Alt ― история команд​
    F9, щелчок левой клавишей мыши на верхней строке экрана ― активация конфигурационного меню
    F9+Alt ― видеорежим​
    F10 ― выход из Far Manager
    F10+Shift ― выбрать последний использованный пункт меню​
    F11 ― Меню команд плагинов
    F11+Alt ― история просмотра​
    F12 ― Экраны
    F12+Alt ― история папок
    F12+Ctrl ― режимы сортировки​

    A+Ctrl ― атрибуты файлов
    G+Ctrl ― применить команду
    I+Ctrl ― фильтр панели файлов
    L+Ctrl ― панель информации
    M+Ctrl ― восстановить пометку
    N+Ctrl ― показывать длинные имена
    O+Ctrl ― панели «Включить/Выключить»
    Q+Ctrl ― быстрый просмотр
    R+Ctrl ― перечитать
    U+Ctrl ― поменять панели
    W+Ctrl ― список задач
    Z+Ctrl ― описание файлов
    Enter по имени exe-файла ― запуск exe-файла на исполнение

    находимся внутри файла

    F1 ― помощь
    F2 ― в режиме просмотра, переключить режим переноса текста «Развернуть/Свернуть» или изменить режим просмотра
    F2 ― в режиме редактирования, сохранение содержимого файла
    F2+Shift ― «сохранить файл как»​
    F3, Numpad5 ― в режиме просмотра ― выход из файла
    F4
    F4 ― в режиме редактирования ― выход из файла
    F4 ― в режиме просмотра ― переключение на Hex-режим​
    F5
    F6 ― переключение между режимами просмотра/редактирования
    F7 ― поиск
    F7+Ctrl ― замена
    F7+Shift ― продолжить поиск/замену
    F7+Alt ― продолжить поиск/замену в обратном направлении​
    F8 ― переключить кодовую страницу между OEM и ANSI
    F8+Shift ― выбрать кодовую страницу из меню
    F8+Alt ― перейти на указанную строку​
    F9
    F9+Alt ― максимизировать или восстановить размер окна Far Manager
    F9+Alt+Shift ― вызов диалога «Настройка программы просмотра»​
    F10, Esc ― выход из файла
    F11 ― Плагины
    F12 ― Экраны

    Alt+Backspace, Z+Ctrl ― Отмена действия (Undo)
    Z+Ctrl+Shift ― Повтор действия (Redo)
    Y+Ctrl ― удалить строку
    Home+Ctrl ― в начало файла
    End+Ctrl ― в конец файла
    B+Ctrl+Shift ― спрятать/показать статусную строку
    Подсветка синтаксиса
    Интеграция с компилятором и диагностика:
    Интегрированное управление проектом и системой сборки:
    Отладчик с точками останова, трассировкой стека и т.п:
    справочное руководство:
     
    Последнее редактирование: 18 июн 2024
    R81... нравится это.