Описание Miraculix API (версии 0.56)
[версия документа: 0.2]
От 04.11.2006


Этот документ содержит описание основного API операционной системы Miraculix
(На данный момент описано функций: 19)

Draw_StdWindow End_of_redraw SendMessage
ReceiveMessage GetPID PutPixel
Get_screen_param DrawPicture KillWindow
WriteText WriteHex StdHandler
GetWinParams Create_StdButton Create_CheckButton
Draw_BLine Get_FileAddress CreateProcess
TaskInfo

Draw_StdWindow - Создать стандартное окно
Вызов:
    invoke Draw_StdWindow,coords, size, title, buttons

Параметры:
    * coords - координаты окна (x_coord*65536+y_coord)
    * size - размеры окна (x_size*65536+y_size)
    * title - заголовок окна
    * buttons - атрибуты окна (см. приложение 1)

Возвращаемое значение:
    * EAX - идентификатор окна
    * ESI - координаты окна (x_coord*65536+y_coord)
    * EDI - размеры окна (x_size*65536+y_size)

Примечание:
    * Вам необходимо сохранить идентификатор окна (EAX)

Пример:
    example01.asm

Скриншот:

Назад

End_of_redraw - Сообщить системе об окончании отрисовки окна
Вызов:
    call [End_of_redraw]

Параметры:
    нет

Возвращаемое значение:
    нет

Примечание:
    нет

Пример:
    нет

Скриншот:
    нет


Назад

SendMessage - Послать сообщение
Вызов:
    invoke SendMessage,PID, message*256+param_1, param_2, param_3

Параметры:
    * PID - Идентификатор процесса, которому посылается сообщение
    * message - Само сообщение(bh)
    * param_1 - Первый параметр(bl)
    * param_2 - Второй параметр(esi)
    * param_3 - Третий параметр(ebp)

Возвращаемое значение:
    * EAX - 0, если произошла ошибка

Примечание:
    * Можно посылать любые сообщения процессам

Пример:
    example02.asm

Скриншот:
    нет


Назад

ReceiveMessage - Принять сообщение
Вызов:
    call [ReceiveMessage]

Параметры:
    нет

Возвращаемое значение:
    * EDI - PID отправителя
    * EBX,ESI,EBP - сообщение

Примечание:
    * В каких именно регистрах сообщение, а в каких параметры - целиком и полностью зависит от пославшего сообщение процесса, но если сообщение послала система, то сообщение всегда находится в регистре bh, а параметры в остальных регистрах (зависит от типа сообщения см. Система сообщения)

Пример:
    example03.asm

Скриншот:
    нет


Назад

GetPID - Узнать свой PID
Вызов:
    call [GetPID]

Параметры:
    нет

Возвращаемое значение:
    * EAX - PID

Примечание:
    нет

Пример:
    example04.asm

Скриншот:
    нет


Назад

PutPixel - Поставить точку
Вызов:
    invoke PutPixel,coord_x, coord_y, color

Параметры:
    * coord_x - координата по оси x
    * coord_x - координата по оси y
    * color - цвет точки

Возвращаемое значение:
    нет

Примечание:
    нет

Пример:
    example05.asm

Скриншот:
    нет


Назад

Get_screen_param - Получить параметры экрана
Вызов:
    call [Get_screen_param]

Параметры:
    нет

Возвращаемое значение:
    * ESI - размер экрана по оси x
    * EDI - размер экрана по оси y

Примечание:
    нет

Пример:
    example06.asm

Скриншот:
    нет


Назад

DrawPicture - Вывести изображение
Вызов:
    invoke DrawPicture,coord_x, coord_y, pointer

Параметры:
    * coord_x - координата по оси x
    * coord_x - координата по оси y
    * pointer - Указатель на изображение

Возвращаемое значение:
    нет

Примечание:
    нет

Пример:
    example07.asm

Скриншот:

Назад

KillWindow - Удалить окно
Вызов:
    invoke KillWindow, WinID

Параметры:
    * WinID - идентификатор окна

Возвращаемое значение:
    нет

Примечание:
    нет

Пример:
    нет

Скриншот:
    нет


Назад

WriteText - Написать текст в окне
Вызов:
    invoke WriteText,coord_x, coord_y, color, FontID, TestStr

Параметры:
    * coord_x - координата по оси x
    * coord_x - координата по оси y
    * color - цвет текста
    * FontID - идентификатор шрифта (стандартный системный шрифт - 4)
    * TestStr - Указатель на строку текста

Возвращаемое значение:
    нет

Примечание:
    нет

Пример:
    example08.asm

Скриншот:
    нет


Назад

WriteHex - Написать HEX-число в окне
Вызов:
    invoke WriteHex,coord_x, coord_y, color, FontID, Number

Параметры:
    * coord_x - координата по оси x
    * coord_x - координата по оси y
    * color - цвет текста
    * FontID - идентификатор шрифта (стандартный системный шрифт - 4)
    * Number - Число

Возвращаемое значение:
    нет

Примечание:
    нет

Пример:
    example09.asm

Скриншот:
    нет


Назад

StdHandler - Стандартный обработчик событий
Вызов:
    call [StdHandler]

Параметры:
    нет

Возвращаемое значение:
    нет

Примечание:
    нет

Пример:
    example10.asm

Скриншот:
    нет


Назад

GetWinParams - Получить параметры окна
Вызов:
    call [GetWinParams]

Параметры:
    нет

Возвращаемое значение:
    * ESI - [Координата по оси X] *65536+ [Координата по оси Y]
    * EDI - [Размер по оси X] *65536+ [Размер по оси Y]

Примечание:
    нет

Пример:
    example11.asm

Скриншот:
    нет


Назад

Create_StdButton - Создать кнопку
Вызов:
    invoke Create_StdButton,coords, size, Text, ButtonID, BtnAttr

Параметры:
    * coords - координаты кнопки (x_coord*65536+y_coord)
    * size - размеры кнопки (x_size*65536+y_size)
    * Text - Указатель на текст на кнопке
    * ButtonID - Идентификатор кнопки
    * BtnAttr - Атрибуты кнопки (см. приложение 2)

Возвращаемое значение:
    нет

Примечание:
    нет

Пример:
    example12.asm

Скриншот:
    нет


Назад

Create_CheckButton - Создать CheckBox
Вызов:
    invoke Create_CheckButton,coords, ButtonID, BtnAttr

Параметры:
    * coords - координаты кнопки (x_coord*65536+y_coord)
    * ButtonID - Идентификатор кнопки
    * BtnAttr - Атрибуты кнопки (см. приложение 2)

Возвращаемое значение:
    нет

Примечание:
    нет

Пример:
    example13.asm

Скриншот:
    нет


Назад

Draw_BLine - Нарисовать прямоугольник в окне
Вызов:
    invoke Draw_BLine, x_coord, y_coord, x_size, y_size, color, WinID

Параметры:
    * x_coord - Координата по оси x
    * y_coord - Координата по оси y
    * x_size - Размер по оси x
    * y_size - Размер по оси y
    * color - Цвет прямоугольника
    * WinID - Идентификатор окна

Возвращаемое значение:
    нет

Примечание:
    нет

Пример:
    example14.asm

Скриншот:
    нет


Назад

Get_FileAddress - Получить адрес файла на Ram-диске
Вызов:
    invoke Get_FileAddress, Name

Параметры:
    * Name - Имя файла

Возвращаемое значение:
    * ESI - Адрес файла
    * EBX - размер файла

Примечание:
    Если ESI=0, значит файла нет на Ram-диске

Пример:
    example15.asm

Скриншот:
    нет


Назад

CreateProcess - Создать процесс
Вызов:
    invoke CreateProcess, Address, Size, Name

Параметры:
    * Address - Адрес файла процесса (на ram-диске, можно получить функцией Get_FileAddress)
    * Size - Размер файла процесса
    * Name - Имя процесса (На ваше усмотрение)

Возвращаемое значение:
    * EAX - PID созданного процесса

Примечание:
    Если ESI=0, значит файла нет на Ram-диске

Пример:
    example15.asm

Скриншот:
    нет


Назад

TaskInfo - Получить информацию о процессе
Вызов:
    invoke TaskInfo, TaskID, TaskBuffer

Параметры:
    * TaskID - Идентификатор приложения, о котором нужно получить информацию
    * TaskBuffer - Буфер, который будет заполнен этой информацией (см. Приложение 3)

Возвращаемое значение:
    * EAX - PID созданного процесса

Примечание:
    нет

Пример:
    example16.asm

Скриншот:
    нет


Назад