Кое-что добавлено http://basmp.narod.ru за ошибку с памятью прошу пока не критиковать. Разве что словите ее.
новый вер (па-5) внял критике осени и поправил ряд ошибок (ряд не поправил). в основном по ГЦ. небольшое добавление - ресайзимые диалоги можно ресайзить драганьем правой кнопкой (идея Critical Error с рсдн). (есть небольшой глюк: при пересечении при ресайзе правой или нижней границ окно поведет себя странно) Да. Интересует ваше мнение. Написал скрипт-авторасставлялку контролов на диалоге - autodlg. Находится в файле autodlg.b , описан в changes.txt . Помоему удобнее и быстрее чем визуальные расставлятели для большинства случаев. Вот думаю в Цэшную либу такое вбить, но может кто еще чего интересного предложит/поправит/добавит (знаю, что не я это подход изобрел. я его честно-благородно слямзил). Пример описания диалога (подробности в changes.txt): Код (Text): d = autodlg{ name = 'Search/Replace', w = 300, h = 120, 5, { -40, 'Find what', 2, edit{ name = "from" } }, 5, { -40, 'Replace to', 2, edit{ name = "to" } }, 10, -90, { 20, checkbox{ name= "regular expression" }, 20 }, 10, 10, { 2, button{ name = "Search" }, 2, button{ name = "Replace" }, 2 }, 10 }; basmp:ins( d ); по поводу поворота лицом к людям: - пункты в <Main Menu> - независимые утили (там и хелпник и туториал), - словарик <mueller> без соответствующей бд в папке (см тамже ниже) не работает и прога вылетает (докалечу БД чуть попозже). ну и вобщем на пока все. в changes.txt - подробнее.
Как народ вообще с Фасмом работает, если нет среды программирования? Пару строк поправит, потом в Олли, потом в Фасм, потом опять в Олли, потом опять в Фасм? Редактор этот поддерживает отладку по шагам хотя бы, показ содержимого регистров?
Пошаговую отладку поддерживает Оля - обычно вполне хватает. Если программа перед написанием сначала продумывается, то отлаживаются в основном только критические точки. Есть поползновения в сторону символьной отладки в последнее время, а также всякие финты
Сабжевый редактор я не скачивал и не смотрел, т.к. моя квалификация как асмера довольно низкая, пока не нужно мне оно. Но что мешает вставить хотя бы жесткий шаг CC, мягкий шаг для своих прог вобщем-то не нужен. Вотчер можно сделать для начала без FPU - тоже не сложно. Извиняюсь, если чего не то говорю...
Кажется, опять глупости говорю... CC - это под ДОС_ом было, а под Виндой аппаратные точки останова? Ну вам асмерам виднее будет, как трассировку делать...
persicum кодить надо так чтоб было мало ошибок для бряков забиваю int3, дебажу олькой, и весьма доволен
Оригинальный редактор для фасма - просто редактор с подсветкой синтаксиса. Другие самодельные ИДЕ в этом смысле то же самое. Однако эти ИДЕ (я имею в виду в частности winasm studio и radasm) обычно имеют плагинный механизм расширения, т.е. теоретически возможно написание такого отладчика как надстройки. Просто никто этим не занимается - вот и всё. И задача это непростая. Хотя для масма для winasm studio такая надстройка написана, но она требует ассемблирования с отладочной информацией, которая в фасме не выдается (по крайней мере не выдавалась). Но трудно обычно только поначалу. если регулярно писать на асме - появляется опыт, и все идет (почти) как по маслу. Дело в том, что в ЯВУ код в редакторе и отладчике сильно разнится, поэтому там и есть потребность в таком представлении отлаживаемой программы, а при написании кода на чистом асме код в отладчике практически соответствует коду в редакторе, поэтому нет острой нужды в таком представлении.
Только подсветка синтаксиса - не помогает для больших проектов. Нужен также Intelli-Sense а также информационные возможности: - переход на код, где элемент кода был определён - переход на код, где элемент кода был использован - Tooltip-ы всяческие при наведении на элементы кода (например, при наведении курсора на имя структуры хочу видеть её элементы или при наведении на константу - её значение) Такой IDE сейчас у меня в разработке, но дело движется медленно.
persicum Ща я вас разочарую. Такого не планировалось даже в самом начале, зачем дублировать олю? Хотя такие возможности на уровне скриптов на сегодняшний день и есть (асм, дизасм, винапи). Изначально планировался именно редактор с подсветкой и навигацией как писал AsmGuru62 тк заранее неизвестно чего захочется дальше, а начинать писать плугин - не всегда удобно, то была использована более старая разработка (я тогда по выездам много работал, на компе заказчика - всегда голо, желания аж брыжжут, места на винте нет. Как быть? Не найдя по теме - намалевал сам такой себе быстрый построитель утилит на колене). Потом познакомился с SI и необходимости большей частью пропала. Впрочем, сам движок помаленьку развиваю, тк актуальность его не пропала для меня досе. Вот например простейший нотепаб с нумерацией строк, чтением/записью и регулярным поиском Код (Text): _ed = multiedit{}; _ed.command = function() if reason == 1 then this.parent.parent.ed = this; this.style.margin[1] = { type = 'n', w = '999' }; end end _path = edit{ name = pwd(), comment = "Path/Name" }; _path.command = function() if reason == 1 then this.parent.parent.path = this; end end _load = button{ name = "Load file" }; _load.command = function() local p = this.parent.parent; if reason == 10 then local fn = p.path.name; local a = attr( fn ); local f; if a ~= nil and a.size ~=nil then f = io.open( fn, "r" ); p.ed.name = f:read("*a"); f:close(); else p.ed.name = ""; end end end _save = button{ name = "Save file" }; _save.command = function() local p = this.parent.parent; if reason == 10 then local fn = p.path.name; local f; f = io.open( fn, "w" ); if f ~= nil then f:write( p.ed.name ); f:close(); end end end _that = edit{comment = "regexp search mask"} _that.command = function() if reason == 1 then this.parent.parent.that = this; end end _seek = button{ name = "Seek" }; _seek.command = function() local p = this.parent.parent; if reason == 10 then local t = p.ed.name .. "\n"; local l; local z = 0; local pat = p.that.name; for l in t:gmatch("([^\\n]*)\\n") do if l:match(pat) then p.ed.line = z; break; end z = z + 1; end end end dlg = autodlg{ name = "Simply Notebap", w = 500, h = 400, 1, // отступ -7, {-10, _seek, 1, _that}, // верхняя строка 1, // отступ _ed, // окно редактора 1, // отступ -7, {-20, _load, 1, -20, _save, 1, _path}, // нижняя строка 1 // отступ } basmp:ins(dlg):show(); копипастить и запускать удобней всего из окна туториала впрочем, кто знает..
в продолжение разговора с киберманьяком намалевал своего рода векторный граф редактор. - основное достоинство - маленький. - позволяет работать с прямыми, бета-сплайнами, безье и текстом (не редактируется). - позволяет заливать цветом и картинками с альфа каналом (картиночная заливка пока не сохраняется) - позволяет маскировать с любой глубиной вложености (был слегка доведен gi и исправлено пару помарок) демка (не стреляйте в пианиста он играет как умеет) в аттаче она же, но с сорцом еешным http://basmp.narod.ru/
новая версия. чего нового из того что помню вкратце: в движке - исправления ошибок - контролы не имеющие запрошенных свойств возвращают false - добавлен встроеный дизассемблер (атт) - в асм движке в описаниях функциональных членов появилась возможность задавать типы входных и выходного параметра - описал задание стилей и колоризера для мультиедита в скриптах - повыносил разные части в разные файлы - в файлпикер диалоге появился необязательный параметр (регексп) маски файлов - filter - кроме того, из callback доступно поле this.filePeekDlg указывающее на топлевел файлпикер диалог - для внесения своих действий в постинициализационную предзапускную процедуру atstart() не обязательно искать и править ее. достаточно добавить свою функцию в конец массива startup - добавлен файл pe/exepe.inc со структурами и дефайнами для работы с ms-pe форматом. (спасибо Sekretarsha-е с васма) в changes.txt подробнее