Difference between revisions of "SysFn04/ru"
Jump to navigation
Jump to search
m (moved SysFn04 to SysFn04/ru: Add /ru) |
Punk Joker (talk | contribs) |
||
Line 3: | Line 3: | ||
---- | ---- | ||
− | + | Параметры: | |
− | * eax = 4 - номер функции | + | :* eax = 4 - номер функции |
− | * ebx = [координата по оси x]*65536 + [координата по оси y] | + | :* ebx = [координата по оси x]*65536 + [координата по оси y] |
− | * ecx = | + | :* ecx = 0xXYRRGGBB, где |
− | + | ::* RR, GG, BB задают цвет текста | |
− | + | ::* X=ABnn (биты): | |
− | + | ::::* nn задает используемый шрифт: 0=системный моноширинный, | |
− | + | ::::1=системный шрифт переменной ширины | |
− | + | :::* A=0 - выводить esi символов, A=1 - выводить ASCIIZ-строку | |
− | * edx = указатель на начало строки | + | :::* B=1 - закрашивать фон цветом edi |
− | * esi = для A=0 длина строки, должна быть не больше 255; | + | ::* Y=Cnnn (биты): |
− | + | :::* C=1 перенаправить вывод в область пользователя, задано в edi | |
− | + | :::* nnn - не используется в текущем виде, должно быть 0 (zero) | |
− | * функция не возвращает значения | + | :* edx = указатель на начало строки |
− | + | :* esi = для A=0 длина строки, должна быть не больше 255; | |
− | + | :::::для A=1 игнорируется | |
− | * Первый системный шрифт считывается при загрузке из файла char.mt, | + | :* edi = цвет для закраски фона, если B=1 |
− | * Оба шрифта имеют высоту 9 пикселей, ширина моноширинного шрифта равна 6 пикселей. | + | :* edi = указатель на область пользователя, если C=1 |
− | + | Возвращаемое значение: | |
+ | :* функция не возвращает значения | ||
+ | Замечания: | ||
+ | :* Первый системный шрифт считывается при загрузке из файла char.mt, | ||
+ | ::второй - из char2.mt. | ||
+ | :* Оба шрифта имеют высоту 9 пикселей, ширина моноширинного шрифта | ||
+ | ::равна 6 пикселей. | ||
+ | :* C=1, глубина точки = 32 бита, область пользователя выглядит так: | ||
+ | ::dword Xsize | ||
+ | ::dword Ysize | ||
+ | ::остаток области = Xsize * Y size * 4 | ||
+ | :* Нельзя одновременно использовать B=1 и C=1, поскольку в обоих | ||
+ | ::случаях использован регистр edi для разных целей. | ||
{{System_functions}} | {{System_functions}} | ||
[[Category: SysCalls]] | [[Category: SysCalls]] |
Revision as of 23:02, 15 December 2013
Функция 4 - вывести строку текста в окно
Параметры:
- eax = 4 - номер функции
- ebx = [координата по оси x]*65536 + [координата по оси y]
- ecx = 0xXYRRGGBB, где
- RR, GG, BB задают цвет текста
- X=ABnn (биты):
- nn задает используемый шрифт: 0=системный моноширинный,
- 1=системный шрифт переменной ширины
- A=0 - выводить esi символов, A=1 - выводить ASCIIZ-строку
- B=1 - закрашивать фон цветом edi
- Y=Cnnn (биты):
- C=1 перенаправить вывод в область пользователя, задано в edi
- nnn - не используется в текущем виде, должно быть 0 (zero)
- edx = указатель на начало строки
- esi = для A=0 длина строки, должна быть не больше 255;
- для A=1 игнорируется
- edi = цвет для закраски фона, если B=1
- edi = указатель на область пользователя, если C=1
Возвращаемое значение:
- функция не возвращает значения
Замечания:
- Первый системный шрифт считывается при загрузке из файла char.mt,
- второй - из char2.mt.
- Оба шрифта имеют высоту 9 пикселей, ширина моноширинного шрифта
- равна 6 пикселей.
- C=1, глубина точки = 32 бита, область пользователя выглядит так:
- dword Xsize
- dword Ysize
- остаток области = Xsize * Y size * 4
- Нельзя одновременно использовать B=1 и C=1, поскольку в обоих
- случаях использован регистр edi для разных целей.
|