/kernel/trunk/core/syscall.inc |
---|
213,6 → 213,7 |
dd sys_debug_services ; 69-Debug |
dd file_system_lfn ; 70-Common file system interface, version 2 |
dd syscall_windowsettings ; 71-Window settings |
dd sys_sendwindowmsg ; 72-Send window message |
times 255 - ( ($-servetable) /4 ) dd undefined_syscall |
/kernel/trunk/docs/sysfuncr.txt |
---|
2198,14 → 2198,15 |
* eax = 47 - ®¬¥à äãªæ¨¨ |
* ebx = ¯ à ¬¥âàë ¯à¥®¡à §®¢ ¨ï ç¨á« ¢ ⥪áâ: |
* bl = 0 - ecx ᮤ¥à¦¨â ç¨á«® |
* bl = 1 - ecx ᮤ¥à¦¨â 㪠§ ⥫ì dword-ç¨á«®, «¨¡® qword-ç¨á«® |
* bl = 1 - ecx ᮤ¥à¦¨â 㪠§ ⥫ì dword/qword-ç¨á«® |
* bh = 0 - ®â®¡à ¦ âì ¢ ¤¥áïâ¨ç®© á¨á⥬¥ áç¨á«¥¨ï |
* bh = 1 - ®â®¡à ¦ âì ¢ è¥áâ ¤æ â¥à¨ç®© á¨á⥬¥ |
* bh = 2 - ®â®¡à ¦ âì ¢ ¤¢®¨ç®© á¨á⥬¥ |
* ¡¨âë 16-21 = ᪮«ìª® æ¨äà ®â®¡à ¦ âì |
* ¡¨âë 22-29 § १¥à¢¨à®¢ ë ¨ ¤®«¦ë ¡ëâì ãáâ ®¢«¥ë ¢ 0 |
* ¡¨â 30 - ãáâ ®¢«¥ ¢ 1, ¥á«¨ âॡã¥âáï ¢ë¢®¤ qword (64-¡¨â®£®) ç¨á« |
* ¡¨â 31 - ãáâ ®¢«¥ ¢ 1, ¥á«¨ âॡã¥âáï ¢ë¢®¤ ç¨á« ¡¥§ ¯ãáâëå ã«¥© ¢ áâ àè¨å à §àï¤ å |
* ¡¨â 30 ãáâ ®¢«¥ = ¢ë¢®¤¨âì qword (64-¡¨â®¥ ç¨á«®); |
¯à¨ í⮬ ¤®«¦® ¡ëâì bl = 1 |
* ¡¨â 31 ãáâ ®¢«¥ = ¥ ¢ë¢®¤¨âì ¢¥¤ã騥 㫨 ç¨á« |
* ecx = ç¨á«® (¯à¨ bl=0) ¨«¨ 㪠§ ⥫ì (¯à¨ bl=1) |
* edx = [ª®®à¤¨ â ¯® ®á¨ x]*65536 + [ª®®à¤¨ â ¯® ®á¨ y] |
* esi = 0xX0RRGGBB: |
4593,6 → 4594,20 |
* ⮡ë ã¡à âì § £®«®¢®ª, ¯¥à¥¤ ©â¥ NULL ¢ ecx. |
====================================================================== |
================ ãªæ¨ï 72 - ¯®á« âì á®®¡é¥¨¥ ®ªã. ================ |
====================================================================== |
--- ®¤äãªæ¨ï 1 - ¯®á« âì á®®¡é¥¨¥ á ¯ à ¬¥â஬ ªâ¨¢®¬ã ®ªã. ---- |
à ¬¥âàë: |
* eax = 72 - ®¬¥à äãªæ¨¨ |
* ebx = 1 - ®¬¥à ¯®¤äãªæ¨¨ |
* ecx = ª®¤ ᮡëâ¨ï: 2 ¨«¨ 3 |
* edx = ª®¤ ª« ¢¨è¨ ¤«ï ecx=2, ¨¤¥â¨ä¨ª â®à ª®¯ª¨ ¤«ï ecx=3 |
®§¢à é ¥¬®¥ § 票¥: |
* eax = 0 - ãá¯¥è® |
* eax = 1 - ¡ãä¥à § ¯®«¥ |
====================================================================== |
========== ãªæ¨ï -1 - § ¢¥àè¨âì ¢ë¯®«¥¨¥ ¯®â®ª /¯à®æ¥áá ========= |
====================================================================== |
à ¬¥âàë: |
/kernel/trunk/docs/sysfuncs.txt |
---|
2169,14 → 2169,14 |
* eax = 47 - function number |
* ebx = parameters of conversion number to text: |
* bl = 0 - ecx contains number |
* bl = 1 - ecx contains pointer to dword-number, or qword-number |
* bl = 1 - ecx contains pointer to dword/qword-number |
* bh = 0 - display in decimal number system |
* bh = 1 - display in hexadecimal system |
* bh = 2 - display in binary system |
* bits 16-21 = how many digits to display |
* bits 22-29 reserved and must be set to 0 |
* bit 30 - set in 1, if the output of qword (64-bites) number |
* bit 31 - set in 1, if the output of number without empty zero in high bits is required |
* bit 30 set = display qword (64-bit) number (must be bl=1) |
* bit 31 set = do not display leading zeroes of the number |
* ecx = number (if bl=0) or pointer (if bl=1) |
* edx = [coordinate on axis x]*65536 + [coordinate on axis y] |
* esi = 0xX0RRGGBB: |
4548,6 → 4548,20 |
* Pass NULL in ecx to remove caption. |
====================================================================== |
=============== Function 72 - send message to a window. ============== |
====================================================================== |
- Subfunction 1 - send message with parameter to the active window. -- |
Parameters: |
* eax = 72 - function number |
* ebx = 1 - subfunction number |
* ecx = event code: 2 or 3 |
* edx = parameter: key code for ecx=2, button identifier for ecx=3 |
Returned value: |
* eax = 0 - success |
* eax = 1 - buffer is full |
====================================================================== |
=============== Function -1 - terminate thread/process =============== |
====================================================================== |
Parameters: |
/kernel/trunk/gui/event.inc |
---|
493,6 → 493,40 |
mov [esp+36], eax |
ret |
sys_sendwindowmsg: |
dec eax |
jnz .ret |
cmp ebx, 3 |
jz .sendbtn |
cmp ebx, 2 |
jnz .ret |
.sendkey: |
pushf |
cli |
movzx eax, byte [KEY_COUNT] |
cmp al, 120 |
jae .overflow |
inc eax |
mov [KEY_COUNT], al |
mov [KEY_COUNT+eax], cl |
jmp .ok |
.overflow: |
popf |
mov dword [esp+36], 1 |
ret |
.sendbtn: |
pushf |
cli |
cmp byte [BTN_COUNT], 0 |
jnz .overflow |
mov byte [BTN_COUNT], 1 |
mov [BTN_BUFF], ecx |
.ok: |
popf |
and dword [esp+36], 0 |
.ret: |
ret |
get_event_for_app: |
pushad |
/kernel/trunk/kernel.asm |
---|
1454,7 → 1454,8 |
jne .continue |
dec eax |
cmp eax,1 |
jne @r |
ja @r |
mov al,1 |
.continue: |
and eax,0x3f |
ret |