ZXNet эхоконференция «code.zx»


тема: SJAsm + MultiEdit (красота и удобство)



от: Roman Fhyedorov
кому: All
дата: 04 Sep 2006
Hello, All

я начинал кодить в GENS`e? потом в PRIMUS`e. это была такая примочка к ZEUS`у.
типа интерфэйс и др. (кстати у кого оно есть? мне надо!). потом появился TASM и
все исходники были перенесены в его формат. затем MASM и опять конвертация
исхлдников. ну и в конце концов привыкнув к интерфейсу TASM`a я не смог обойти
вниманием ALASM, а исходники постигла участь очередной конвертации...
времена изменились, я повзрослел и у меня появились жуткая нехватка свободного
для кодинга времени и отстутствие места под реальный спекк в квартире. свой
навороченый скорп я отдал брату на сохранение, но тяга к спекку не пропала. я
стал писать в ALASM`e под эмулём, кстати несколько раз удачно. проблемы
проявились позже... то я случайно закрою эмуль (он конечно спрашивает
"сохранить вам диск? там чо-то поменялось", а я по запарке нажимал "нет", типа
не надо закрывать, а он закрывался хороня с собой набиваемые всю ночь тексты),
то свет отключат, а я давно не сохранял trd... короче ужос... позже в эмуль
добавили кнопку "отмена" для таких как я, но мне всё равно чего-то не
хватало...
я программист по профессии мне нужна нормальная среда разработки, т.е.
редактор, компилер, дебаггер. и чтобы всё работало вместе!!!
и тут волей судеб я натолкнулся на старое сообщение Kurles`a
http://zx.pk.ru/showpost.php?p=45452&postcount=10
в моём сознании появилось просветление! вот оно решение проблем!!! подумал я.
осталось только помучать Kurles`a на предмет того, как он это сделал... чем я
последние два дня и занимался...

итак, к делу, товарищи!

для начала нам нужны такие вещи:
1.sjasm http://trd.speccy.cz/sbor/SJASM+.ZIP
2.multiedit http://www.multiedit.com/downloads/upgrade/SetupMe910.exe (14
метров кстати!!!)
3.файлик из атачча написаный Kurles`ом, кстати

затем мы правдами и неправдами (последнее особенно) устанавливаем multiedit.
потом в директории куда он установился находим папку MAC и кладём туда
соответствующий файлик из атачча.

запускаем значит multiedit (надеюсь он уже не trial у вас)
идём в tools>customize>general>languages
создаём язык (Z80, например) кнопкой insert
заполняем поля reserved words;
1:; display macro endm rept dup edup org ent page savesna savebin savehob db
defb dw defw ds defs if endif else disp equ labelslist incbin include

2; neg; ccf rl cpl scf inc dec sub sbc add adc ei di halt ld rlca rla rrca rra
rlc rr sla sra srl rld rrd bit ldir ldi lddr ldd cpi cpir cpd cpdr cp xor and
or set res ex exx nop im call jp jr ret reti retn rst in ini inir ind indr out
outi otir outd outr sli djnz push pop

3; a; b c d e f h l af hl de bc af' bc' de' hl' iy ix r i sp

4; z; nz c nc pe po p m

потом поля
symbols; @=*+-/.,^:;;

brackets; ()[]<>;

strings; "';

numerics; #; $

дальшe идём к полям block comment;

open1:; /*

close1; */;

ещё одни поля end of line comments;

1:; ;

2; //;

в поле tag file пишем: z80.tag
ниже в поле find tag пишем: Z80^Z80FindTag

ну в этом окошке всё. идём дальше не расслабляемся.
после нажатия ok>close нажимаем filename extension
тут мы создаём тип файла, опять же кнопкой insert, например 'a80' (чтоб ЧВ
открывать)
в поле extension так и пишем a80
ставим галочку associate to desktop shell, чтобы расширение a80 открывалось
multiedit`ом по умолчанию
в поле language выбираем созданый нами ранее z80
внизу справа есть кнпочка compiler/program setup, дык нажмите же её!!!
уже привычной кнопкой insert создаём описание компилера
в description пишем sjasm
в command что-то типа c:sjasmplus.exe -md .
ниже в поле program type создаём тип z80, естественно не без кнопки insert
внизу есть поля regular expressions, дык вот заполняем их:
search; ^([^; ]+) line (): (.*)$
replace; /F=/L=1/M=2;

и всё блиать!!!!

теперь мы можем компилить текст прямо из multiedit`a (кнопкой F9, например)
получая на выходе файлик с метками для эмуля UNREAL и объектный код! кстати как
захотите так и настроите (хоть trd), но для этого почитайте manual по sjasm`у
также мы можем перескакивать по ошибкам выдаваемым компилятором в нижнем
окошечке output
а для того чтобы видеть метки нажмите view>tags
потом меню tags>scan tags for current file
и ПРАВИЛЬHЫЕ МЕТКИ появятся в окошечке tags!!! причем, по ним можно переходить
и даже если они в другом файле!!!

ПРАВИЛЬHЫМИ МЕТКАМИ являются метки после которых нет никаких символов (ну как в
ALASM`е короче)

а если почитать manual по multiedit`у, то можно найти ещё больше всяких фич
облегчающих наш программерский труд. например при нажатии shift+F11 если курсор
стоит в ссылке на метку мы на неё перейдём.

а теперь, пользуясь случаем я хочу передать привет моему брату и сказать
ОГРОМHОЕ СПАСИБО Aprisobal`у и Kurles`у!!! авторы multiedit`a перебьются - у
них работа такая.

творческих успехов ребята!!!
новых игр и софта!!!
не только cpu loves you, но и я!!!

p.s. исходники своей стратегии я уже перевёл в *.a80
щас попрёт маза!!!

Файл: Multiedit.zip http://zx.pk.ru/attachment.php?attachmentid=3698

от: Сергей Кузнецов
кому: All
дата: 04 Sep 2006
Hello, bugsy

Если не секрет, в чём фишка использования именно MultiEdit? Имхо есть
достойные, кастомизируемые и менее монструозные редакторы. SciTE например.

от: Roman Fhyedorov
кому: All
дата: 04 Sep 2006
Hello, 736b

ну его удалось качественно прикрутить зато.
я не спорю что есть другие.

от: Roman Fhyedorov
кому: All
дата: 04 Sep 2006
Hello, CHRV

а что там с буквой Я?

от: Чунин Роман
кому: All
дата: 04 Sep 2006
Hello, bugsy

bug> а что там с буквой Я?

Hе переваривает он букву Я в конце строки (правда это токо для виндоз режима
кажеться актуально).

от: Чунин Роман
кому: All
дата: 04 Sep 2006
Hello, bugsy

bug> ну его удалось качественно прикрутить зато.
bug> я не спорю что есть другие.

Я пользуюсь мультиэдитом версии наверно с пятой, уже лет 12 наверно.
Омонстрел он конечно и вечная проблема с буквой "я".

от: Roman Fhyedorov
кому: All
дата: 05 Sep 2006
Hello, moroz1999

ты же хотел ME?!?!? какой тут может быть SCI?!?!?

от: moroz1999
кому: All
дата: 05 Sep 2006
Hello, 736b

736> SciTE например.

кто-нибудь к нему кстати z80 asm раскраску встречал? я по-быстрому накидал
команд в стандартный asm для минимальной раскраски, но это даже выкладывать
стыдно.

от: Андрей Савичев
кому: All
дата: 05 Sep 2006
Hello, CHRV

CHR> Я пользуюсь мультиэдитом версии наверно с пятой, уже лет 12 наверно.

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

от: Aprisobal
кому: All
дата: 05 Sep 2006
Hello, andrews

MultiEdit - имхо пока единственный редактор, который нормально подсвечивает
синтаксис, разбирает output, действия build и debug на горячих клавишах,
поддерживает ведение проектов и имеет внятный интерфейс.

Crimson Editor; есть; проекты, подсветка синтаксиса, но нету горячих клавиш для
Tools.
Programmer's Notepad 2; есть; проекты, разбирает output, горячие клавиши для
Tools, но неудобная настройка подсветки синтаксиса и вообще глюки всё портят.
Хотя в нем я полностью написал игру для Твоя Игра 3.
UltraEdit; есть; проекты, макросы и ещё много чего, но странная настройка
подсветки синтаксиса, нет разбора output, нет горячих клавиш для Tools.

Все остальные в большинстве своём либо не имеют настраиваемую подсветку
синтаксиса либо нету горячих клавиш на Tools(это очень важно) либо имеют
неудобный интерфейс.

Интересно было бы узнать, кто какой редактор использует. Только в отдельной
ветке плз, чтобы не разводить тут оффтопик.

от: Aprisobal
кому: All
дата: 05 Sep 2006
Hello, key-jee

key> Вообще-то горячие кнопки на tools/macros в CE работают..

Hаверное я что-то пропустил... :v2_wacko; Сам; ведь и расцветку для него
выкладывал - http://zx.pk.ru/attachment.php?attachmentid=346

Глянул ещё на редактор ConTEXT; есть; проекты, tools на горячих клавишах,
подсветка синтаксиса и разбор output'a. Hеплохая альтернатива. В аттачменте
подсветка синтаксиса Z80 (разархивировать в папку Highlighters).

Файл: z80 assembler highlighter.zip
http://zx.pk.ru/attachment.php?attachmentid=3705

от: moroz1999
кому: All
дата: 05 Sep 2006
Hello, bugsy

bug> ты же хотел ME?!?!? какой тут может быть SCI?!?!?

это кому было адресовано? я всю жизнь на scite.

от: Иван Петухов
кому: All
дата: 05 Sep 2006
Hello, Aprisobal

Apr> Crimson Editor; есть; проекты, подсветка синтаксиса, но нету горячих
Apr> клавиш для Tools.

Вообще-то горячие кнопки на tools/macros в CE работают..

от: Roman Fhyedorov
кому: All
дата: 22 Sep 2006
Hello, moroz1999

в связи с выходом 1.07 надо немного поднастроить мультиэдит. я там в первом
сообщении 'ахтунг' красными буквами написал

от: Roman Fhyedorov
кому: All
дата: 13 Oct 2006
Hello, bugsy

найдена наикрутейшая фича мультиэдита!!!
он умеет сворачивать процедуры и функции в одну строку! как я раньше не
замечал?!?!? фича называется "collapse".
например строки
┌─- code ───

org #6000
call somecode
ret

;*************************************
;+ somecode
;* in; none;
;* out; none;
;*************************************
somecode
ld hl,#0000
ret

└── code ───
свернутся в
┌─- code ───

org #6000
call somecode
ret

;*************************************
+;+ somecode


└── code ───
а если нажать "плюсик" развернётся обратно!!!

такие фичи я раньше видел только в полноценных IDE, в 1Сv8 например ;)
применимо к ZX до сегодняшнего дня я об этом только мечтал...

от: Дмитрий Васильевич Терентьев
кому: All
дата: 16 Oct 2006
Hello, bugsy

UltraEdit спокойно сворачивает и разворачивает, можно настроить и код между
macro endm будет сворачивать и разворачивать, да плюсь ко всему еще спокойно
переваривает ошибки выдаваемые SJasm'ом и щелкнув на ошибочку можно попасть на
нужную строку в исходнике

от: Roman Fhyedorov
кому: All
дата: 16 Oct 2006
Hello, demon_zx

dem> можно настроить и код между macro endm будет сворачивать и
dem> разворачивать

вот это круто!!!

dem> да плюсь ко всему еще спокойно переваривает ошибки выдаваемые
dem> SJasm'ом и щелкнув на ошибочку можно попасть на нужную строку в
dem> исходнике

если бы ты прочитал моё первое сообщение, ты бы понял что так можно и в
multiedit`e. ещё есть такая фича как переход по меткам. как в аласме по EXT+L.
только тут метки отображаются в маленьком окошке справа, что очень удобно

от: Дмитрий Васильевич Терентьев
кому: All
дата: 17 Oct 2006
Hello, bugsy

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

от: Roman Fhyedorov
кому: All
дата: 18 Oct 2006
Hello, demon_zx

это всё хорошо...
а как в УльтраЭдите по меткам шариться?

от: Roman Fhyedorov
кому: All
дата: 20 Oct 2006
Hello, bugsy

пока кернальщики бьются с компоновщиками
[http://zx.pk.ru/showthread.php?t=3973] я хочу рассказать вам, дорогие друзья
пограммисты о том как получать от кодинга ещё больше удовольствия. товарищ
demon zx [http://zx.pk.ru/member.php?u=1141] пару дней назад сооблазнил (!)
меня попробовать ultraedit [http://ultraedit.com] совместно с нашим любимым
асмом...
оказалось что я был не прав... естественно только в том что multiedit рулит...
забудте об этом, друзья!
ultraedit foreva!!!
он гораздо красивее!
он не менее, а может и более удобен.
в нём есть возможность нормальной настройки фолдинга процедур (ну сворачивать
их в строку можно!)
если ВАМ дорогие товарищи ЭТО интересно, я могу рассказать как HАСТРОИТЬ
ultraedit под sjasm.

от: elfh
кому: All
дата: 25 Oct 2006
Hello, bugsy

рассказывай, я все-же решил попробовать.

от: Знахарь
кому: All
дата: 30 Oct 2006
Hello, elfh

ДА!!!

И как потом отлаживать красиво в дебугере в унреале ???

от: Знахарь
кому: All
дата: 30 Oct 2006
Hello, Знахарь

Кста!

А что критики скажут про notepad++ 3.9 - свиду тоже "мал клоп, да вонюч"

от: Алексей Гончаров
кому: All
дата: 31 Oct 2006
Hello, Знахарь

Я им пользуюсь, но для другого, тк это именно notepad, а не IDE. Он сейчас
заменяет мне bred3.

от: Дмитрий Васильевич Терентьев
кому: All
дата: 31 Oct 2006
Hello, NovaStorm

Отладка такая: ставишь в коде jr $ (типа токча останова), а дальше уже
разбираешься (можно в принципе ставить di:halt, но первый вариант лучше, на
надо прерывания восстанавливать вручную)

от: Знахарь
кому: All
дата: 01 Nov 2006
Hello, demon_zx

Боже... а вот так как в СТС ? Сразу звучит страшно :)

Т.е. если, скажем, нам надо как в аласм+СТС: т.е. напр, компилишь процедурку и
хочешь тут же видеть её в деБуггере сначала - то jr $ надо ставить первой
командой... Т.е. получим то же что и при таких действиях в аласме+стс выполняя
команды assemble и затем сразу debug ???

от: Дмитрий Васильевич Терентьев
кому: All
дата: 02 Nov 2006
Hello, Знахарь

Почти, унрил напишет "cpu stopped", нажимаем escape и мы в дебугере, забиваем
jr $ нулями и вперед!

от: Roman Fhyedorov
кому: All
дата: 02 Nov 2006
Hello, psndcj

можно я завтро напишу?

от: poisoned cyberjack
кому: All
дата: 02 Nov 2006
Hello, demon_zx

Hу так что там насчет UltraEdit???

от: elfh
кому: All
дата: 26 Nov 2006
Hello, elfh

если кому-то интересно, я настроил multiedit 9.10, чтобы иметь возможность
переходить по ошибкам компиляции

tools>execute compiler> reset original line numbers - выставляем current,
tools>рядом program type ...> edit> regular expressions> search> заполняем вот
tools>этим: ^(

)(()):(error:.#)$
ниже идет replace - заполняем:
/F=/L=3/M=4


от: elfh
кому: All
дата: 02 Dec 2006
Hello, elfh

похоже, я сам с собой в этой теме разговариваю ;) у меня еще одна проблема.
периодически в multiedit получаю ошибку error 3032, level 2 - типа файл занят
другим приложением, мой текст, я имею в виду. и не сохранить ничего. потом
проходит само собой. неприятно. у кого-нибудь было подобное? как решили?

от: Roman Fhyedorov
кому: All
дата: 03 Dec 2006
Hello, elfh

elf> ... у кого-нибудь было подобное? как решили?

я решил юзанием ultraedit

от: poisoned cyberjack
кому: All
дата: 03 Dec 2006
Hello, bugsy

bug> я решил юзанием ultraedit

кстати... вроде ктото чтото обещал... или "завтра"? =)

от: Roman Fhyedorov
кому: All
дата: 04 Dec 2006
Hello, psndcj

я же говорил ЗАВТРА! а вы всё время СЕГОДHЯ прходите! ;)

если честно то у меня творческий кризис

от: Roman Fhyedorov
кому: All
дата: 05 Dec 2006
Hello, CHRV

надо подумать... ;)

от: Roman Fhyedorov
кому: All
дата: 15 Dec 2006
Hello, elfh

интересненько...

от: elfh
кому: All
дата: 15 Dec 2006
Hello, elfh

Я разобрался, почему виснет unrealspeccy debugger! Это происходит если длина
метки где-то в районе 12 символов - точно не знаю.




Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Лия, Алёша и Наташа - На восьмой день похода я понял, что дальше идти не могу.
От редакции - накануне: переписка авторов журнала с корреспондентами.
Enlight'97 - Краткий отчет от ROM Corp.

В этот день...   24 октября