Вступление.
Когда меня заинтересовала КОС и её функции, а также пробы и эксперименты с функциями КОС, я обратил внимание, что использовать среду ОС “Windows” и компилятор FASM для “Windows” достаточно неудобно. Неудобство заключается в том, что скомпилированную программу, нельзя сразу же из компилятора FASM запустить и посмотреть результат выполнения написанного кода. Также отсутствие возможности, с пошаговой «прокруткой» программы, наблюдением за изменением переменных и результатом вывода на экран при пошаговой «прокрутки» программы и прочее. Для новичков, и не только новичков, это очень немаловажно!
Как я успел понять, такое наблюдается не только при использовании компилятора FASM, но в других средах программирования таких как Visual Studio.
Можно, конечно, определённо автоматизировать процесс, например, создав файл «Start_Proect.bat», в который прописать путь к эмулятору «KlbrInWin» и имя скомпилированного FASM-ом файла, и при запуску файла Start_Proect.bat, запускается эмулятор, который открывает компилированный файл, в общем, конце-концов увидеть результат. Меня, лично, подобное устраивало, но не надолго! Да и это не решило проблемы в целом.
Название «МЭФК».
У меня появилась мысль создать DLL-модуль, который будет эмулировать функции КОС и визуализировать результат выполнения кода в форме модуля и который будет универсален для использования в любых средах программирования, где возможно использование DLL-модулей. Долго и нудно думал, как правильно называть этот модуль, чтобы название характеризовало его как можно точнее... эмулятор?!... визуализатор ?! Эмулятор и визуализатор ?! Пришёл к мысли «почему бы его не назвать, названием характеризующим его полностью, а именно: «Модуль эмулирующий функции «Колибри», сокращенно МЭФК (думаю можно и МЭКФ )
Назначение и применение модуля.
Специалистов врядли заинтересует подобный модуль, во всяком случае, использование его, как вспомогательное средство для достижения какой-то цели. У них уже есть опыт написания программ, существующими методами и способами с использованием того, к чему они привыкли. Модуль ориентированны на новичков, пытающихся разобраться в функциях КОС, пытающихся написать какой нибудь код для КОС и при этом, хотят чувствовать себя достаточно комфортно, разбираясь и осваивая всё это.
Понятное дело, что сейчас, то что, представляет из себя МЭФК, назвать полноценным модулем, полностью готовым к применению, врядли возможно. Да и он никогда не будет окончательно готов. К всему сказанному, добавлю и то, что я и не планировал реализацию, абсолютно всех возможностей КОС в модуле. Достаточно реализации нескольких часто используемых функций, хотя у меня стремление есть, к тому чтобы была возможность с помощью модуля создавать какие нибудь простенькие программы, например, как игра «Косилка».
Обращение к специалистам.
Хотелось бы, чтобы специалисты не оставили этот модуль без внимания, а также хотелось бы конструктивной, существенной критики по модулю. Также, мне не помешала бы техническая поддержка для его совершенствования. На данный момент основной «штопор» у меня, это использование модуля в Visual Studio 6 и в C++Builder 6. Если кого не затруднит, попробуйте использовать данный модуль в какой-то среде, (не только вышеперечисленных), и отпишите как это делается, а лучше выложите, готовый пример, шаблон или черновик. Также не мешало бы, чтобы мне указали, какие функции необходимо в него реализовать в первую очередь, т. е. функции которые часто используются.
Архив и его содержимое.
Архив содержит каталоги «Demo1DLL», — демо пример с использованием KOS.dll и каталог «Demo1», пример этой же демки для которая компилирует код для КОС.
В каталогах файлы:
Pattern.prt, - проект FasmEditor 2.0, его и нужно открывать.
fkKOS.asm – модули содержащие, в данном случае, - макросы, одинаково названные, но по разному реализованные в «Demo1» и в «Demo1DLL».
Main.asm — главный модуль демо-примера, (использует fkKOS.asm)
KOS.txt — описание процедур и функций, а также соглашений по передачи данных, которые доступны в модуле KOS.dll (Вырезка из исходника, написанного на Дельфи7)
Внимание! На работоспособность проверялись лишь те макросы, которые используются в этих самих демо-программах!
Данным примером, я хочу показать как можно использовать модуль KOS.dll.
Как видите, можно создать шаблоны для написания программ, один с использованием KOS.dll, другой, - для компилирования в код-КОС, причём эти шаблоны могут быть созданы таким идеальным образом, что основной модуль программы (Main.asm), после написания и проверки программы, сможет быть про просто скопирован в другой шаблон для компилирования кода-КОС. И пусть вас не смущают макросы SetEAX и GetEAX и прочее, как вы сами прекрасно понимаете, в модулях fkKOS.asm, обоих шаблонов (демок) вполне могут быть созданы процедуры CreateWindow, PutPixel, DrawRect и другие, с которыми будет приятно работать и писать программы, основанные на таких ёмких процедурах.
В модуле реализованы некоторые функции, хотя возможно не полностью, не точно. Но всё равно, при желании, можно испробовать их возможности.
Реализованы функции:
Функция 0 - определить и нарисовать окно.
Функция 1 - поставить точку в окне.
Функция 5 - пауза
Функция 10 - ожидать события.
Функция 11 - проверить, есть ли событие, без ожидания.
Функция 13 - нарисовать прямоугольник в окне.
Функция 38 - нарисовать отрезок.
Заканчиваются работы над Функция 2 - получить код нажатой клавиши (сканкоды), кодировка которой, к тому же будет настраиваемая.
Можно написать еще о многом. Но об этом в следующий раз!
В общем, кому это интересно, дайте знать, и....
ПРОДОЛЖЕНИЕ СЛЕДУЕТ!
Spoiler:
P.S. За содержание (или осутствие) в архиве вирусов, о которых мне постоянно «толдычет» https://www.virustotal.com , автор не несёт никуда и никакой ответственности!От себя скажу так: какие-то проявлений вирусов у себя в компьютере или чего-то вредоносного я не обнаруживал!... сколько бы мне не «толдычил» об этом https://www.virustotal.com
На этот раз самое интересное, что обнаружено 5 вирусов в файле Pattern.exe (который я удалил из архива), который является результирующим кодом скомпилированной демки (в Fasme) с использованием KOS.dll, был в папке Demo1DLL. Так, вот, интересное в том, что: как это https://www.virustotal.com не «ткнул» на KOS.dll ?!... он любит «тыкать» на дельфийское exe-шники, dll-ки и всё что связанно с дельфями
В ОБЩЕМ, НА ДАННЫЙ МОМЕНТ АРХИВ «ЧИСТ», СМЕЛО КАЧАЙТЕ!
ЕСЛИ НЕ ВЕРИТЕ, - ПРОВЕРЬТЕ!