Программирование MCS51 О выборе текстового редактора для программирования Tue, October 08 2024  

Поделиться

Нашли опечатку?

Пожалуйста, сообщите об этом - просто выделите ошибочное слово или фразу и нажмите Shift Enter.

О выборе текстового редактора для программирования Печать
Добавил(а) microsin   

Еще с давних-стародавних времен, когда компьютеры с процессором 286 считались самыми крутыми, я думал, что самым лучшим текстовым редактором для программиста является связка Volkov Commander и MultiEdit 6.0. Volkov Commander позволял настроить целых 3 варианта на обработку файла по клавишам Enter, F3, F4 на файле, и еще вызывать дополнительно настроенный редактор по клавишам Alt+F4 - такой возможности я еще не нашел ни у одного современного файлового менеджера (может, плохо искал?). А текстовый редактор MultiEdit 6.0 перекрывал тогда все мыслимые и немыслимые потребности программиста - подсветка синтаксиса, настраиваемый вызов компилятора, перехват вывода сообщений об ошибках компиляции, работа с буфером обмена, выделение текста потоком, строками и колонками, сохранение блока текста, возможность работать с несколькими файлами, макросы, поиск и замена, повтор последнего поиска, поиск в файлах, таблица ASCII, удобная работа с разделителями страниц, пометка измененных строк текста, переход к произвольной строке по её номеру, калькулятор, рисование линий псевдографикой настраиваемые цвета текста, бэкграунда и чего только возможно, настраиваемые горячие клавиши, поддержка командной строки - праздник для души.

Но время не стоит на месте, и все меняется. В новых операционных системах Windows (семейства NT) начал глючить вызов компилятора, работать стало не очень удобно. Начались поиски нового идеала. Пока остановился на UltraEdit32 [1] версии 10.10a (хотя сегодня доступна уже 12-я). Программа не бесплатная, но свою цену она оправдывает, работать, по крайней мере, можно. Очень похожа по идеологии на MultiEdit, наверняка автор постарался взять оттуда все самое лучшее. Самые главные проблемы - отображение неформатированного (plain) текста в разных кодировках русского, цветовая настраиваемая подсветка, вызов компилятора и перехват его вывода, настраиваемые клавиши - решены, остальные стандартные возможности текстового редактора тоже реализованы хорошо. Недостаток - не ясно, где хранятся настройки, чтобы их перенести на другой компьютер или забэкапить (исключение - файл подсветки синтаксиса языков wordfile.txt, и на том спасибо), программа не русифицирована (не самая большая беда).

Чтобы настроить удобную работу с компилятором ассемблера MCS51, мне пришлось несколько повозиться. Процесс по шагам:

1. Установил программу, полазил слегка по меню, поверхностно ознакомился с возможностями.

2. Настроил расширение для моих ассемблерных текстов (*.s03) - меню Advanced -> Configuration... -> закладка File Associations, в поле выпадающего списка File Types/Extensions пишу .s03, в поле ввода Description: пишу MCS51 asm, жму кнопу Add. В списке UltraEdit Associations: появляется новый тип файла "MCS51 asm". Теперь двойной щелчок на нем будет вызывать UltraEdit.
3. Прикручиваем запуск компилятора. Меню Advanced\DOS Command... (мне надо было BAT-файл для запуска консольных компилятора и линкера), в строке Command пишем путь до BAT-файла и опции для него. Мне нужно было указать просто имя редактируемого файла без расширения, поэтому я указал просто в качестве одной опции %N (подробный справочник по командной строке в help - просто нажмите в этом окошке кнопку Help, или в основном разделе help найдите "DOS Command (Advanced menu)"). В строке Working Directory напишите путь до рабочей директории командного файла. Я указал просто точку (.), что означает текущую директорию, из которой был открыт компилируемый файл. Можно поставить галочку "Show DOS box", тогда во время компиляции будет открываться консольное окошко, где будет виден вывод работы BAT-файла. Кроме того, этот вывод будет перехватываться в виде нового текстового файла, что меня вполне устраивало.

4. Настраиваем цвета отображения текста. Меню View\Set Colors, я задал следующие цвета:

Text- серый
Active Line              - белый
Background               - черный
Active Line Background   - темно-фиолетовый
Bookmarks                - грязно-зеленый, оставил без изменения
Selected Text            - белый
Column Markers           - черный, пока оставил без изменения
Sel. Text Background     - синий
Line/Col Text            - черный, пока оставил без изменения
Line/Col Background      - белый, пока оставил без изменения

Поставил там же галочку Enable Active Line Coloring.

Внимание! Настройки в этом диалоге смешиваются с настройкой цветовой подсветки синтаксиса, поэтому будьте внимательны при выборе цветов.

5. Настраиваем подсветку синтаксиса - с этим пришлось повозиться подольше, потому что примера для ассемблерного текста у меня под рукой не было. Сначала выяснил, где настраивается подсветка синтаксиса - Advanced\Configuration...\закладка Syntax Highlighting. Там указан файл для настройки подсветки разных языков - строка ввода Full path name for wordlist: (по умолчанию там было указано C:\Program Files\UltraEdit\WORDFILE.TXT). Открыл этот файл и начал изучать. Как выяснилось, ничего в общем, страшного, вполне можно разобраться. Файл состоит из нескольких больших секций, каждая соответствует определенному языку - /L1, /L2, /L3 (Language 1, 2, 3...) и так далее. В каждой секции есть комментарий, который виден в выпадающем списке Language: меню Advanced\Configuration...\закладка Syntax Highlighting. Кроме того, в каждой секции языка есть цветовые группы - разделы /C1, /C2, /C3 и т. д. (помеченные соответствующим комментарием, например, Keywords, Operators, Mnemonics1, Mnemonics2; эти комментарии видны в выпадающем списке Color Group:), которые отвечают за цветовую подсветку слов (Color 1, 2, 3...). Некоторые цветовые разделы уже заданы, и их комментарии/название нельзя изменить, например, Normal Text, Comment, String и проч. В каждом разделе /C1, /C2, /C3 и т. д. перечислены ключевые слова ассемблера, которые распознаются для выделения цветом. Каждый цветовой раздел имеет несколько строк, в каждой из которых перечислены ключевые слова, начинающиеся на одну и ту же букву (это правило важно выполнить, иначе некоторые ключевые слова не будут подсвечиваться). Цвета для каждой группы настраиваются в том же меню - Advanced\Configuration...\закладка Syntax Highlighting. Кажется, я слишком много тут наговорил, и получилось слишком сложно, лучше продемонстрировать мою секцию MSC51 на примере, как она получилась:

/L10"MCS51 asm" Line Comment = ; Block Comment On = /* Block Comment Off = */ Escape Char = \ String Chars = "' File Extensions = S03 ASM H
/Delimiters = ~!@%^&*()-+=|\/{}[]:"'< > ,.?
/Function String = ""
/Indent Strings = ""
/Unindent Strings = ""
/C1"Keywords"
ASEG
COMMON
DATE DEFINE
END ENDMOD EXTERN EQU ELSE ENDIF ENDMAC
equ
SFB SFE
RSEG
STACK
PROM PUBLIC PAGSIZ PAGE PTITL PSTITL
RAM RSEG
IF
LOCSYM LSTOUT LSTCND LSTCOD LSTEXP LSTMAC LSTWID LSTFOR LSTPAG
MODULE MACRO
NAME
ORG
SET STITL
TITL
/C2"Operators"
+
-
*
/
NOT
LOW HIGH
LWRD HWRD
MOD
SHR SHL
AND OR XOR
EQ =
NE < >
GE >=
LE < =
GT >
LT <
UGT >>
ULT <<
/C3"Mnemonics1"
add acall ajmp addc anl
ADD ACALL AJMP ADDC ANL
cjne clr cpl
CJNE CLR CPL
dec div djnz
DEC DIV DJNZ
inc
INC
ljmp lcall
LJMP LCALL
mov movx mul movc
MOV MOVX MUL MOVC
nop
NOP
jc jnc jz jnz jb jbc jnb jmp
JC JNC JZ JNZ JB JBC JNB JMP
orl
ORL
xrl xch xchd
XRL XCH XCHD
rrc rlc rr
RRC RLC RR
sjmp subb setb swap
SJMP SUBB SETB SWAP
/C4"Mnemonics2"
push pop
PUSH POP
ret reti
RET RETI

Пояснения:

- Последняя секция в моем файле WORDFILE.TXT была L9, поэтому я добавил секцию L10 и назвал её MCS51 asm,  просто скопировав содержимое секции L1"C/C++" и потом переправив её содержимое.
- Line Comment изменил на ;
- File Extensions поменял на S03 ASM H (для чего это нужно, непонятно)
- Многие параметры, в которых сомневался, оставил без изменения - Escape Char, Delimiters
- Очистил параметры Function String, Indent Strings и Unindent Strings
- Отредактировал разделы /C1"Keywords", /C2"Operators", создал разделы /C3"Mnemonics1", /C4"Mnemonics2",   назначил необходимые цвета в меню Advanced\Configuration...\закладка Syntax Highlighting.
- для того, чтобы распознавался синтаксис с маленькими и большими буквами, пришлось соответственно каждую строку задублировать в двух регистрах.

[Ссылки]

1. UltraEdit site:ultraedit.com

 

Добавить комментарий


Защитный код
Обновить

Top of Page