Главная Описание Функции Вакансии Контакты Заказ функции

Функции AI (Artificial Intelligence).

Ассоциативные списки Ddar.

Текст 32 бит (юникод UTF-32LE).

Графика.

Пиксельная графика.

Пиксельный процессор 128 бит.

Графика сложная.

Видео.

Звук.

Интернет.

Служебные.

Специальные.

Время и дата.

Математические.

Контроллы.

Файлы.

Ресурсы, буфер обмена.

Переменные.

Пазлы (динамические базы данных).

Списки Arr (одномерные массивы).

Списки2 Dar (двумерные массивы).

Списки высоких измерений.

Макросы.

Функции VendorPint.

Функции PintLang.

Функции TulkoPint.

Функции VideoPint.

Функции PhotoPint.

Функции VardPint.

Функции SmartPint.

Функции WavePint.

Функции DataBase.

Макросы.


АртикулНаименованиеЦена, от
NewVar Создание новой переменной длиной 0 байт без регистрации. Вых: Var1, EAX=адр нач. кластера новой переменной. Портит только EAX.
NewVar Var1
NewIfNone Создать Var1, если не существует. JZ - признак создания новой переменной. Регистры не портит.
NewIfNone Var1
NewPzl Создание нового Пазла типа 0 с параметрами по умолчанию.
NewPzl Pzl1
Строка умолчания PzzzL STRUC.
NewParPzl Создание нового Пазла Pzl1 типа Type1, максимального размера Max1.
NewParPzl Pzl1, Type1, Max1
На основе макроса NewPzl.
ZtoVar Добавление текста в переменную из Z-строки, кратно 2 байтам
ZtoVar Var1, AZst, Len_Max
StoVar Добавление байта в переменную из линейной строки AZst, выход только по достижению Len_Max (не включая).
StoVar Var1, AZst, Len_Max
На основе макроса VarEAX. Длина строки не ограничена.
StoVar32 Добавление в переменную-32 из линейной строки, по 4 байта, выход только по Len_Max.
StoVar32 Var1, AZst, Len_Max
На основе макроса VarEAX4.
StoUniVar32 Добавление в переменную-32 из линейной строки юникода 16LE, по 4 байта из 2, выход только по Len_Max.
StoUniVar32 Var1, AZst, Len_Max
SByteToVar32 Добавление в переменную-32 из строки по 4 байта из 1, выход только по Len_Max.
SByteToVar32 Var1, AZst, Len_Max
VarZStr Перенос переменной в Z-строку
VarZStr Var1, AZst, Len_Max
Var32ZStr Перенос переменной-32 Var1 в Z-строку. Выход по окончанию переменной или при превышении Len_Max.
Var32ZStr Var1, AZst, Len_Max
Var32ZStr16 Перенос 2 бит из 4 переменной Var1 в Z-строку. Выход по окончанию переменной или при превышении Len_Max (байт).
Var32ZStr16 Var1, AZst, Len_Max
Получает в строке стандартный юникод UTF16Le.
Var32ZStr8 Перенос 1 бита из 4 переменной Var1 в Z-строку. Выход по окончанию переменной или при превышении Len_Max.
Var32ZStr8 Var1, AZst, Len_Max
Обратная функция SByteToVar32. Выход по окончанию переменной или при превышении Len_Max.
VarEmp32 Определяет (признак JL), если переменная Var1 некорректна, пустая или короче 4 байт. Регистры не портит.
VarEmp32 Var1
Hex4Reg Преобразует младшие 4 бита Reg1 в шестнадцатеричное значение. Портит Reg1.
Hex4Reg Reg1
VarDat32 Добавление в переменную Var1 числа Dat32. Не портит регистры, EAX сохраняется неизменным.
VarDat32 Var1, Dat32
На основе банального макроса VarEAX4
StartVR Инициализация цикла с начала Ad0CL=перемен, R1=адр, Rubez=стоп-адрес. Портит R1, Rubez.
StartVR Ad0CL, R1, Rubez
Защита по адресу переменной отключена!
StartAdr Инициализация цикла с Adr1 Var1=перемен, R1=счетчик, Rubez=стоп-адрес. JZ = выход перед циклом (адр за концом данных), EAX=исходный M0Lx. Портит EAX, R1, Rubez.
StartAdr Var1, Adr1, R1, Rubez
StartPN Инициализация цикла с текущ. параметров Ad0CL=перемен, R1=адр, Rubez
StartPN Ad0CL, R1, Rubez
StartStopPN Инициализация цикла с текущ. параметров до стоп-адр.StpAdr, Ad0CL=перемен, R1=адр, Rubez=стоп-адрес
StartStopPN Var1, StpAdr, R1, Rubez
StartRevPN Инициализация реверсивного цикла с текущ. параметров до нуля Ad0CL=перемен, R1=адр, Rubez=
StartRevPN Var1, R1, Rubez
StartRev Инициализация реверсивного цикла Var1=перемен с конца до нуля без текущих параметров, R1=адр, Rubez=стоп-адрес, JZ - вых до цикла, признак ошибки.
StartRev Var1, Stp1, R1, Rubez
Точно работает с ECX, EDX.
VarPos Установка адреса переменной Var1 на позицию LnStr, не изменяет M0Pn/M0Lx. вых: EAX=адрес данных, EBX=кластер, запись в M0Pn/M0Lx. Портит EAX, EBX.
VarPos Var1, LnStr
Очень медленный макрос, строго не рекомендуется для больших переменных - каждый раз ищет кластера по циклу подряд.
VarPosPn Установка адреса переменной Var1 на позицию LnStr, запись в M0Pn/M0Lx
VarPosPn Var1, LnStr
Очень медленный макрос, строго не рекомендуется для больших переменных - каждый раз ищет кластера по циклу подряд. Длину можно передавать в регистре.
NextPn Просмотр следующего адреса переменной (списка) Arr1 (+ 8 от текущего в M0Pn/M0Lx). Вых: EAX=Старший адрес (переменная списка), EBX=младший адрес (тип). Вых. JZ-конец переменной, портит только EAX, EBX.
NextPn Arr1
Выдаёт адреса переменных, а не сами переменные.
Next4Pn Увеличение адреса списка (переменной) Var1 на 4 от текущего в M0Pn/M0Lx; Вых: EAX=искомый адрес, JZ-конец переменной
Next4Pn Var1
BackPn Уменьшение текущих параметров M0Lx/M0Pn на Stp1=шаг циклаВых: JZ-конец переменной, EBX=Старший искомый адрес, EAX=младший искомый адрес,ECX=Начало данных кластера конца данных
BackPn Var1, Stp1
Rd4Adr Чтение 4 байт переменной по адресу Adr1 с шагом Stp1 (1,2,3,4). Вых: EAX=значение по адресу Adr1, EBX- следующий адрес/0 .
Rd4Adr Adr1, Stp1
VarEAX Добавление значения из EAX длиной LnStr (1,2,3,4) в переменную Var1
VarEAX Var1, LnStr
VarEAX2 Добавление значения из EAX длиной 2 округленный вниз до четного адрес Var1
VarEAX2 Var1
VarEAX4 Добавление значения из EAX длиной 4 округленный вниз до четного адрес Var1. Не портит регистры, EAX сохраняется неизменным
VarEAX4 Var1
Корректоно работает только с 32-разрядными переменными. Не портит регистры, EAX сохраняется неизменным.
GetClast Выделяет 1 кластер (вых:нач. адр. в EAX) из цепочки 0-кластеров. Если память кончилась - получаем 6% от уже выделенной памяти.
GetClast
ClastPlus Прибавляет кластер (вых: EAX=адр.кл.) в конец цепочки (Ad0CL=адр.0 кл.), портит только EAX. JL - ошибка.
ClastPlus Ad0CL
ClastInitEAX Инициализация заголовка (EAX=адр нач. кластера). MsF1, MsF2, MsDn, MsUp, M0Ln=0.
ClastInitEAX
QlClast Число байтов длины из EAX преобразуется в число необходимых кластеров в EAX, остаток длины в последнем кластере в EDX. Изменяет EAX, EDX.
QlClast
CleVar Обрезание переменной Ad0CL до 1 кластера и 0 длины. При отсутствии/ошибке переменной Ad0CL создает новую.
CleVar Ad0CL
CleArr Обрезание списка Arr1 до переменной 1 кластера и 0 длины. Не портит регистры.
CleArr Arr1
CleArrVar Обрезание только переменных списка Arr1 до 1 кластера и 0 длины, не удаляя их полностью. Не портит регистры.
CleArrVar Arr1
Основная переменная Arr с огрызками переменных остаются!
CleDar Очистка списка2 Dar1. Регистры не изменяет.
CleDar Dar1
FreCla Возврат 1 кластера AdCL в зону 0-кластеров. Не портит регистры совсем!
FreCla AdCL
VarCopy Var1= Var2. JL - ошибка. Не портит регистры совсем!
VarCopy Var1, Var2
Копирует переменные любой длины. Отрабатывает некорректность Var2 (=0).
VarMsCopy Полное копирование Var1= Var2. Копируются также MsF1, MsF2. JL - ошибка. Не портит регистры совсем!
VarMsCopy Var1, Var2
Модификация макроса VarCopy. Копирует переменные любой длины. Отрабатывает некорректность Var2 (=0).
ArrCopy Копирует список любой размерности Arr1 в Arr2.
ArrCopy Arr2, Arr1
На основе макроса CleArr и функции ArrPlus. Возможно непосредственное использование регистров для передачи параметров.
DarCopy Копирует Dar1 в Dar2 с копией фильтра MsF1
DarCopy Dar2, Dar1
На основе макроса CleDar и функции DarPlusDar. Возможно непосредственное использование регистров для передачи параметров.
DarCopyMs Копирует Dar1 в Dar2 с копией фильтра MsF1 и MsF2.
DarCopyMs Dar2, Dar1
На основе макроса CleDar и функции DarPlusDarMs. Возможно непосредственное использование регистров для передачи параметров.
VarInVar Количество вхождений Var2 в Var1. Результат в EAX.JZ - нет вхождений
VarInVar Var1, Var2
VarEqu Var1= Var2? Результат: JZ-равны
VarEqu Var1, Var2
VarEqu32 Var1= Var2? Результат: JZ-равны. Не портит регистры совсем!
VarEqu32 Var1, Var2
Максимально быстрый скрипт. Сначала проверяет переменные на совпадение длины.
TestRubez Коррекция адреса перемен R1 до конца данных, Rubez-граница кластера. JNZ - возврат в цикл. Портит только ЕАХ, R1.
TestRubez R1, Rubez
TestRever Коррекция адреса перемен R1 реверс до начала данных, Rubez-граница кластера, Stp=1, 2, 4, 8; выход из цикла по JZ.
TestRever R1, Rubez, Stp
TestReverPN Коррекция адреса перемен R1 реверс до начала данных, Rubez-граница кластера, Stp=4,8...
TestReverPN R1, Rubez, Stp
TestRubStop коррекция адреса перемен R1 до стоп-адр. StpAdr, Rubez-граница кластера
TestRubStop R1, StpAdr ,Rubez
VarPlus Var1= Var1+Var2. При Var2=0 ничего не происходит. Не портит регистры совсем!!
VarPlus Var1, Var2
На основе макросов StartVR и VarEAX.
VarPlus32 Var1= Var1+Var2. Не портит регистры совсем!
VarPlus32 Var1, Var2
Обе переменные должны быть 32 бита - при сложении округляется адрес макросом VarEAX4. Возможна запись VarPlus32 Var1, EAX.
VarFragPN Var1=Var1+ Фрагмент Var2 от текущ до Rubez
VarFragPN Var1,Var2,Rubez
ArrFirst Находит в EAX первую строку списка Arr1 при наличии, EBX - адрес типа переменной. JL - ошибка. Портит EAX, EBX.
ArrFirst Arr1
Использует макрос VarByte32.
DelEl Удаляет элемент с позиции Pos1 длиной 8 байт. EAX= адр. 1 удаленного куска EBX= адр. 2 удаленного куска.
DelEl Arr1, Pos1
NewZClast Расширяет память и создает NCl нулевых кластеров (только в пределах выделенной, новая память не запрашивается!).
NewZClast NCl
Может вызывать API HeapReAlloc.
KillVar Возврат переменной Var1 в зону 0-кластеров, JL ошибка адреса.
KillVar Var1
Допустима запись KillVar EAX.
KillArr Удаление списка переменных Arr1. Регистры не портит.
KillArr Arr1
KillDar Удаление списка2 переменных Dar1. Регистры не изменяет.
KillDar Dar1
RemVar Замена без копирования: Kill Var1, Var1=Var2;
RemVar Var1, Var2
Возможна запись RemVar Var1, EAX. Удобна для записи результатов функций.
VarRemove Переименование Var2 в Var1 без копирования: KillVar Var1, Var1=Var2, NewVar Var2
VarRemove Var1, Var2
RemArr Замена без копирования: Kill Arr1, Arr1=Arr2;
RemArr Arr1, Arr2
RemDar Замена без копирования: Kill Dar1, Dar1=Dar2
RemDar Dar1, Dar2
ArrNewEl Создание нового последнего элемента списка Arr1 как пустой переменной типа SgnStr без регистрации. Вых: EAX=адр нач. кластера новой переменной. Портит EAX.
ArrNewEl Arr1
Простейший макрос на основе двух вызовов VarEAX4.
AddEl Добавление переменной Var1 типа Sng1 новым последним элементом списка Arr1
AddEl Arr1, Var1, Sng1
Простейший макрос на основе VarEAX4. Чаще всего, применяется константа строки: AddEl Arr1, Var1, SgnStr. Есть защита от некорректного списка.
ResPn Сброс текущих параметров M0Lx/M0Pn за нулевую позицию. Вых: EAX - текущий указатель=Начало данных первого кластера, JL- ошибка адреса переменной.
ResPn Var1
MaxPn Установка текущих параметров M0Lx/M0Pn в макс. позицию, Stp=шаг цикла. Вых: JZ-конец переменной, EBX=Старший искомый адрес, EAX=младший искомый адрес,ECX=Начало данных кластера конца данных
MaxPn Var1, Stp1
VarFil Заполнение переменной Var1 числом NumX
VarFil Var1, NumX
VarFill32 Заливка переменной Var1 числом NumX32
VarFill32 Var1, NumX32
На основе макроса StartVR.
GetPnLx Получение текущих параметров M0Lx/M0Pn: EAX=M0Pn, EBX=M0Lx, JL -выход, если M0Lx < 0
GetPnLx Var1
SetPnLx Установка текущих параметров M0Lx/M0Pn
SetPnLx Arr1, M_Pn, M_Lx
LenVar (LnVr и EAX)=длина переменной. Портит EAX. JL - шибка.
LenVar Var1, LnVr
VarByte32 EAX=макс (целый)(0, 1, 2..) индекс 32-битных слов. JL - ошибка. Портит EAX.
VarByte32 Var32
Делит значение макроса LenVar на 4. Допустима запись VarByte32 EAX.
GetMaxPos EAX=Позиция (длина до) начала последней записи
GetMaxPos Arr1
DefCod32 Определяет в регистре Reg1 в юникоде-32/16 латиницу EAX=1, кириллицу EAX=2, расширенную еврокодировку EAX=3, цифры EAX=4, прочее EAX=0,. Другие регистры не изменяет.
DefCod32 Reg1
HighLow Определяет в регистре Reg1 заглавные буквы в юникоде-32/16 (в латинице, кириллице и латышском). Другие регистры не изменяет. JG - буква заглавная. JZ - не найдено.
HighLow MACRO Reg1
TestAdr Проверка корректности адреса переменной: EAX=Var1, JL - не прошла. Портит EAX.
TestAdr Var1
Проверка на превышение адреса начала физической памяти кластеров ClstSt.
Claster4 EСX/EBX/EAX: адреса 2/3/4 кластера, JL - ошибка
Claster4 Var1
LenArr EAX=макс целый(1,2,3..) индекс. JL - ошибка, JZ - длина 0. Портит EAX.
LenArr Arr1
Результат макроса LenVar, деленный на 8 (т.е., число строк-индексов). Список можно указывать в регистрах: LenArr REG.
MaxIndArr EAX=макс индекс (0,1,2..). -1: пустой список.
MaxIndArr Arr1
SizePzl EAX= индекс(PSize), JL- ошибка. Портит регистр EAX.
SizePzl Pzl1
Очень быстрый макрос.
TypePzl EAX= тип (PType), JL- ошибка. Портит регистр EAX.
TypePzl Pzl1
Очень быстрый макрос.
Root16 Корень Nc16 [16.16] степени из числа Num16 [16.16].
Root16 F16, Num16, Nc16
Инициализация FINIT не проводится, должна быть внешняя! Результат в ST(0).
RootFp Корень переменной NcF [FPU] степени из числа NumF в ST(0)[FPU]. Результат в ST(0).
RootFp NcF
Инициализация FINIT не проводится, должна быть внешняя! Данные в формате FPU, корень во внешней переменной, само число в ST(0). Результат в ST(0). Используется в функции GeoProg
Degree16 Число Num16 [16.16] в степени Nc16 [16.16]. Nc16, Num16-переменная, F16 переменная = H16. Регистры CPU не использует.
Degree16 F16, Num16, Nc16
Инициализация FINIT не проводится, должна быть внешняя! Результат в ST(0).
Degree2 Целое число Num1 в целой степени Nc1. Результат в EDX:EAX. Портит EAX, EDX.
Degree2 Num1, Nc1
Простой цикл на процессоре. Для Num1=10 Nc1 (0,1….18).
Expriment Експремент Exp1[16.16]
Expriment Exp1


Страница "Макросы." обновлена -

Бесплатная консультация:

Позвоните нам по телефону: +7 499 677-1694
или введите короткое сообщение
Макросы. | © 2008-2015 | Все права защищены. | Создание сайта WebOptimal |
При полном или частичном использовании материалов сайта ссылка на http://PowerIntellect.com обязательна.