forked from KolibriOS/kolibrios
New f.18.1
git-svn-id: svn://kolibrios.org@2244 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
d00a3080c6
commit
6e5e6b3c02
@ -635,6 +635,15 @@
|
|||||||
Ά δ®ΰ¬ β¥ ―®¤δγ<CEB3>樨 2 δγ<CEB3>樨 37 Ά ¬®¬¥β η « ¦ β¨ο
|
Ά δ®ΰ¬ β¥ ―®¤δγ<CEB3>樨 2 δγ<CEB3>樨 37 Ά ¬®¬¥β η « ¦ β¨ο
|
||||||
<20>®―<C2AE>γ, § ¨α<C2A8>«ξ票¥¬ ¬« ¤θ¥£® ΅¨β (α®®βΆ¥βαβΆγξι¥£® «¥Ά®©
|
<20>®―<C2AE>γ, § ¨α<C2A8>«ξ票¥¬ ¬« ¤θ¥£® ΅¨β (α®®βΆ¥βαβΆγξι¥£® «¥Ά®©
|
||||||
<20>®―<C2AE>¥ ¬λθ¨), <20>®β®ΰλ© α΅ΰ αλΆ ¥βαο.
|
<20>®―<C2AE>¥ ¬λθ¨), <20>®β®ΰλ© α΅ΰ αλΆ ¥βαο.
|
||||||
|
======================================================================
|
||||||
|
= ”γ<CEB3>ζ¨ο 18, ―®¤δγ<CEB3>ζ¨ο 1 - ᤥ« βμ α ¬λ¬ ¨¦¨¬ ®<>® ―®β®<CEB2> . =======
|
||||||
|
======================================================================
|
||||||
|
<EFBFBD> ΰ ¬¥βΰλ:
|
||||||
|
* eax = 18 - ®¬¥ΰ δγ<CEB3>樨
|
||||||
|
* ebx = 1 - ®¬¥ΰ ―®¤δγ<CEB3>樨
|
||||||
|
* ecx = ®¬¥ΰ α«®β ―®β®<CEB2>
|
||||||
|
‚®§Άΰ ι ¥¬®¥ § 票¥:
|
||||||
|
* δγ<CEB3>ζ¨ο ¥ Ά®§Άΰ ι ¥β § 票ο
|
||||||
|
|
||||||
======================================================================
|
======================================================================
|
||||||
==== ”γ<CEB3>ζ¨ο 18, ―®¤δγ<CEB3>ζ¨ο 2 - § Ά¥ΰθ¨βμ ―ΰ®ζ¥αα/―®β®<CEB2> ―® α«®βγ. ====
|
==== ”γ<CEB3>ζ¨ο 18, ―®¤δγ<CEB3>ζ¨ο 2 - § Ά¥ΰθ¨βμ ―ΰ®ζ¥αα/―®β®<CEB2> ―® α«®βγ. ====
|
||||||
|
@ -626,6 +626,17 @@ Remarks:
|
|||||||
as in subfunction 2 of function 37 at the beginning
|
as in subfunction 2 of function 37 at the beginning
|
||||||
of button press, excluding lower bit, which is cleared.
|
of button press, excluding lower bit, which is cleared.
|
||||||
|
|
||||||
|
======================================================================
|
||||||
|
===================== Function 18, subfunction 1 =====================
|
||||||
|
============= Make deactive the window of the given thread. ==========
|
||||||
|
======================================================================
|
||||||
|
Parameters:
|
||||||
|
* eax = 18 - function number
|
||||||
|
* ebx = 1 - subfunction number
|
||||||
|
* ecx = number of the thread slot
|
||||||
|
Returned value:
|
||||||
|
* function does not return value
|
||||||
|
|
||||||
======================================================================
|
======================================================================
|
||||||
= Function 18, subfunction 2 - terminate process/thread by the slot. =
|
= Function 18, subfunction 2 - terminate process/thread by the slot. =
|
||||||
======================================================================
|
======================================================================
|
||||||
|
@ -1812,6 +1812,9 @@ window._.window_activate: ;////////////////////////////////////////////////////
|
|||||||
|
|
||||||
; if type of current active window is 3 or 4, it must be redrawn
|
; if type of current active window is 3 or 4, it must be redrawn
|
||||||
mov ebx, [TASK_COUNT]
|
mov ebx, [TASK_COUNT]
|
||||||
|
|
||||||
|
; DEBUGF 1, "K : TASK_COUNT (0x%x)\n", ebx
|
||||||
|
|
||||||
movzx ebx, word[WIN_POS + ebx * 2]
|
movzx ebx, word[WIN_POS + ebx * 2]
|
||||||
shl ebx, 5
|
shl ebx, 5
|
||||||
add eax, window_data
|
add eax, window_data
|
||||||
@ -1838,6 +1841,13 @@ window._.window_activate: ;////////////////////////////////////////////////////
|
|||||||
cmp eax, [TASK_COUNT]
|
cmp eax, [TASK_COUNT]
|
||||||
jae .move_self_up
|
jae .move_self_up
|
||||||
inc eax
|
inc eax
|
||||||
|
|
||||||
|
; push ebx
|
||||||
|
; xor ebx,ebx
|
||||||
|
; mov bx,[WIN_STACK + eax * 2]
|
||||||
|
; DEBUGF 1, "K : DEC WIN_STACK (0x%x)\n",ebx
|
||||||
|
; pop ebx
|
||||||
|
|
||||||
cmp [WIN_STACK + eax * 2], bx
|
cmp [WIN_STACK + eax * 2], bx
|
||||||
jbe .next_stack_window
|
jbe .next_stack_window
|
||||||
dec word[WIN_STACK + eax * 2]
|
dec word[WIN_STACK + eax * 2]
|
||||||
@ -1870,6 +1880,53 @@ window._.window_activate: ;////////////////////////////////////////////////////
|
|||||||
pop ebx eax
|
pop ebx eax
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
;------------------------------------------------------------------------------
|
||||||
|
window._.window_deactivate: ;////////////////////////////////////////////////////
|
||||||
|
;------------------------------------------------------------------------------
|
||||||
|
;? Deactivate window
|
||||||
|
;------------------------------------------------------------------------------
|
||||||
|
;> esi = pointer to WIN_POS+ window data
|
||||||
|
;------------------------------------------------------------------------------
|
||||||
|
push eax ebx
|
||||||
|
;------------------------------------------------------------------------------
|
||||||
|
.move_others_up:
|
||||||
|
; ax <- process no
|
||||||
|
movzx ebx, word[esi]
|
||||||
|
; ax <- position in window stack
|
||||||
|
movzx ebx, word[WIN_STACK + ebx * 2]
|
||||||
|
; up others
|
||||||
|
xor eax, eax
|
||||||
|
.next_stack_window:
|
||||||
|
cmp eax, [TASK_COUNT]
|
||||||
|
jae .move_self_down
|
||||||
|
inc eax
|
||||||
|
cmp [WIN_STACK + eax * 2], bx
|
||||||
|
jae .next_stack_window
|
||||||
|
inc word[WIN_STACK + eax * 2]
|
||||||
|
jmp .next_stack_window
|
||||||
|
;----------------------------------------------
|
||||||
|
.move_self_down:
|
||||||
|
movzx ebx, word[esi]
|
||||||
|
; this is the last (and the low)
|
||||||
|
mov [WIN_STACK + ebx * 2], word 1
|
||||||
|
; update on screen - window stack
|
||||||
|
xor eax, eax
|
||||||
|
.next_window_pos:
|
||||||
|
cmp eax, [TASK_COUNT]
|
||||||
|
jae .reset_vars
|
||||||
|
inc eax
|
||||||
|
movzx ebx, word[WIN_STACK + eax * 2]
|
||||||
|
mov [WIN_POS + ebx * 2], ax
|
||||||
|
jmp .next_window_pos
|
||||||
|
;-----------------------------------------------
|
||||||
|
.reset_vars:
|
||||||
|
mov byte[KEY_COUNT], 0
|
||||||
|
mov byte[BTN_COUNT], 0
|
||||||
|
mov word[MOUSE_SCROLL_H], 0
|
||||||
|
mov word[MOUSE_SCROLL_V], 0
|
||||||
|
pop ebx eax
|
||||||
|
ret
|
||||||
|
;------------------------------------------------------------------------------
|
||||||
align 4
|
align 4
|
||||||
;------------------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
||||||
window._.check_window_draw: ;//////////////////////////////////////////////////
|
window._.check_window_draw: ;//////////////////////////////////////////////////
|
||||||
|
@ -1941,7 +1941,7 @@ sys_end:
|
|||||||
iglobal
|
iglobal
|
||||||
align 4
|
align 4
|
||||||
sys_system_table:
|
sys_system_table:
|
||||||
dd exit_for_anyone ; 1 = obsolete
|
dd sysfn_deactivate ; 1 = deactivate window
|
||||||
dd sysfn_terminate ; 2 = terminate thread
|
dd sysfn_terminate ; 2 = terminate thread
|
||||||
dd sysfn_activate ; 3 = activate window
|
dd sysfn_activate ; 3 = activate window
|
||||||
dd sysfn_getidletime ; 4 = get idle time
|
dd sysfn_getidletime ; 4 = get idle time
|
||||||
@ -1966,7 +1966,7 @@ sys_system_table:
|
|||||||
dd sysfn_min_rest_window ; 22 = minimize and restore any window
|
dd sysfn_min_rest_window ; 22 = minimize and restore any window
|
||||||
sysfn_num = ($ - sys_system_table)/4
|
sysfn_num = ($ - sys_system_table)/4
|
||||||
endg
|
endg
|
||||||
|
;------------------------------------------------------------------------------
|
||||||
sys_system:
|
sys_system:
|
||||||
dec ebx
|
dec ebx
|
||||||
cmp ebx, sysfn_num
|
cmp ebx, sysfn_num
|
||||||
@ -1974,8 +1974,7 @@ sys_system:
|
|||||||
jmp dword [sys_system_table + ebx*4]
|
jmp dword [sys_system_table + ebx*4]
|
||||||
@@:
|
@@:
|
||||||
ret
|
ret
|
||||||
|
;------------------------------------------------------------------------------
|
||||||
|
|
||||||
sysfn_shutdown: ; 18.9 = system shutdown
|
sysfn_shutdown: ; 18.9 = system shutdown
|
||||||
cmp ecx,1
|
cmp ecx,1
|
||||||
jl exit_for_anyone
|
jl exit_for_anyone
|
||||||
@ -1992,7 +1991,7 @@ sysfn_shutdown: ; 18.9 = system shutdown
|
|||||||
uglobal
|
uglobal
|
||||||
shutdown_processes: dd 0x0
|
shutdown_processes: dd 0x0
|
||||||
endg
|
endg
|
||||||
|
;------------------------------------------------------------------------------
|
||||||
sysfn_terminate: ; 18.2 = TERMINATE
|
sysfn_terminate: ; 18.2 = TERMINATE
|
||||||
cmp ecx,2
|
cmp ecx,2
|
||||||
jb noprocessterminate
|
jb noprocessterminate
|
||||||
@ -2016,7 +2015,7 @@ sysfn_terminate: ; 18.2 = TERMINATE
|
|||||||
noatsc:
|
noatsc:
|
||||||
noprocessterminate:
|
noprocessterminate:
|
||||||
ret
|
ret
|
||||||
|
;------------------------------------------------------------------------------
|
||||||
sysfn_terminate2:
|
sysfn_terminate2:
|
||||||
;lock application_table_status mutex
|
;lock application_table_status mutex
|
||||||
.table_status:
|
.table_status:
|
||||||
@ -2043,7 +2042,34 @@ sysfn_terminate2:
|
|||||||
mov [application_table_status],0
|
mov [application_table_status],0
|
||||||
or dword [esp+32],-1
|
or dword [esp+32],-1
|
||||||
ret
|
ret
|
||||||
|
;------------------------------------------------------------------------------
|
||||||
|
sysfn_deactivate: ; 18.1 = DEACTIVATE WINDOW
|
||||||
|
cmp ecx,2
|
||||||
|
jb .nowindowdeactivate
|
||||||
|
cmp ecx,[TASK_COUNT]
|
||||||
|
ja .nowindowdeactivate
|
||||||
|
|
||||||
|
movzx esi, word [WIN_STACK + ecx*2]
|
||||||
|
cmp esi, 1
|
||||||
|
je .nowindowdeactivate ; already deactive
|
||||||
|
|
||||||
|
mov edi, ecx
|
||||||
|
shl edi, 5
|
||||||
|
add edi, window_data
|
||||||
|
movzx esi, word [WIN_STACK + ecx * 2]
|
||||||
|
lea esi, [WIN_POS + esi * 2]
|
||||||
|
call window._.window_deactivate
|
||||||
|
|
||||||
|
xor eax, eax
|
||||||
|
mov byte[MOUSE_BACKGROUND], al
|
||||||
|
mov byte[DONT_DRAW_MOUSE], al
|
||||||
|
mov byte[MOUSE_DOWN], 0
|
||||||
|
|
||||||
|
call syscall_display_settings._.calculate_whole_screen
|
||||||
|
call syscall_display_settings._.redraw_whole_screen
|
||||||
|
.nowindowdeactivate:
|
||||||
|
ret
|
||||||
|
;------------------------------------------------------------------------------
|
||||||
sysfn_activate: ; 18.3 = ACTIVATE WINDOW
|
sysfn_activate: ; 18.3 = ACTIVATE WINDOW
|
||||||
cmp ecx,2
|
cmp ecx,2
|
||||||
jb .nowindowactivate
|
jb .nowindowactivate
|
||||||
@ -2064,28 +2090,29 @@ sysfn_activate: ; 18.3 = ACTIVATE WINDOW
|
|||||||
call waredraw
|
call waredraw
|
||||||
.nowindowactivate:
|
.nowindowactivate:
|
||||||
ret
|
ret
|
||||||
|
;------------------------------------------------------------------------------
|
||||||
sysfn_getidletime: ; 18.4 = GET IDLETIME
|
sysfn_getidletime: ; 18.4 = GET IDLETIME
|
||||||
mov eax,[idleusesec]
|
mov eax,[idleusesec]
|
||||||
mov [esp+32], eax
|
mov [esp+32], eax
|
||||||
ret
|
ret
|
||||||
|
;------------------------------------------------------------------------------
|
||||||
sysfn_getcpuclock: ; 18.5 = GET TSC/SEC
|
sysfn_getcpuclock: ; 18.5 = GET TSC/SEC
|
||||||
mov eax,[CPU_FREQ]
|
mov eax,[CPU_FREQ]
|
||||||
mov [esp+32], eax
|
mov [esp+32], eax
|
||||||
ret
|
ret
|
||||||
|
;------------------------------------------------------------------------------
|
||||||
; SAVE ramdisk to /hd/1/menuet.img
|
; SAVE ramdisk to /hd/1/menuet.img
|
||||||
;!!!!!!!!!!!!!!!!!!!!!!!!
|
;!!!!!!!!!!!!!!!!!!!!!!!!
|
||||||
include 'blkdev/rdsave.inc'
|
include 'blkdev/rdsave.inc'
|
||||||
;!!!!!!!!!!!!!!!!!!!!!!!!
|
;!!!!!!!!!!!!!!!!!!!!!!!!
|
||||||
|
;------------------------------------------------------------------------------
|
||||||
align 4
|
align 4
|
||||||
sysfn_getactive: ; 18.7 = get active window
|
sysfn_getactive: ; 18.7 = get active window
|
||||||
mov eax, [TASK_COUNT]
|
mov eax, [TASK_COUNT]
|
||||||
movzx eax, word [WIN_POS + eax*2]
|
movzx eax, word [WIN_POS + eax*2]
|
||||||
mov [esp+32],eax
|
mov [esp+32],eax
|
||||||
ret
|
ret
|
||||||
|
;------------------------------------------------------------------------------
|
||||||
sysfn_sound_flag: ; 18.8 = get/set sound_flag
|
sysfn_sound_flag: ; 18.8 = get/set sound_flag
|
||||||
; cmp ecx,1
|
; cmp ecx,1
|
||||||
dec ecx
|
dec ecx
|
||||||
@ -2100,10 +2127,11 @@ sysfn_sound_flag: ; 18.8 = get/set sound_flag
|
|||||||
xor byte [sound_flag], 1
|
xor byte [sound_flag], 1
|
||||||
nosoundflag:
|
nosoundflag:
|
||||||
ret
|
ret
|
||||||
|
;------------------------------------------------------------------------------
|
||||||
sysfn_minimize: ; 18.10 = minimize window
|
sysfn_minimize: ; 18.10 = minimize window
|
||||||
mov [window_minimize],1
|
mov [window_minimize],1
|
||||||
ret
|
ret
|
||||||
|
;------------------------------------------------------------------------------
|
||||||
align 4
|
align 4
|
||||||
sysfn_getdiskinfo: ; 18.11 = get disk info table
|
sysfn_getdiskinfo: ; 18.11 = get disk info table
|
||||||
; cmp ecx,1
|
; cmp ecx,1
|
||||||
@ -2128,18 +2156,18 @@ sysfn_getdiskinfo: ; 18.11 = get disk info table
|
|||||||
cld
|
cld
|
||||||
rep movsd
|
rep movsd
|
||||||
ret
|
ret
|
||||||
|
;------------------------------------------------------------------------------
|
||||||
sysfn_lastkey: ; 18.12 = return 0 (backward compatibility)
|
sysfn_lastkey: ; 18.12 = return 0 (backward compatibility)
|
||||||
and dword [esp+32], 0
|
and dword [esp+32], 0
|
||||||
ret
|
ret
|
||||||
|
;------------------------------------------------------------------------------
|
||||||
sysfn_getversion: ; 18.13 = get kernel ID and version
|
sysfn_getversion: ; 18.13 = get kernel ID and version
|
||||||
mov edi,ecx
|
mov edi,ecx
|
||||||
mov esi,version_inf
|
mov esi,version_inf
|
||||||
mov ecx,version_end-version_inf
|
mov ecx,version_end-version_inf
|
||||||
rep movsb
|
rep movsb
|
||||||
ret
|
ret
|
||||||
|
;------------------------------------------------------------------------------
|
||||||
sysfn_waitretrace: ; 18.14 = sys wait retrace
|
sysfn_waitretrace: ; 18.14 = sys wait retrace
|
||||||
;wait retrace functions
|
;wait retrace functions
|
||||||
sys_wait_retrace:
|
sys_wait_retrace:
|
||||||
@ -2150,7 +2178,7 @@ sysfn_waitretrace: ; 18.14 = sys wait retrace
|
|||||||
jz WaitRetrace_loop
|
jz WaitRetrace_loop
|
||||||
and [esp+32],dword 0
|
and [esp+32],dword 0
|
||||||
ret
|
ret
|
||||||
|
;------------------------------------------------------------------------------
|
||||||
align 4
|
align 4
|
||||||
sysfn_centermouse: ; 18.15 = mouse centered
|
sysfn_centermouse: ; 18.15 = mouse centered
|
||||||
; removed here by <Lrz>
|
; removed here by <Lrz>
|
||||||
@ -2169,8 +2197,8 @@ sysfn_centermouse: ; 18.15 = mouse centered
|
|||||||
xor eax,eax
|
xor eax,eax
|
||||||
and [esp+32],eax
|
and [esp+32],eax
|
||||||
; pop eax
|
; pop eax
|
||||||
|
|
||||||
ret
|
ret
|
||||||
|
;------------------------------------------------------------------------------
|
||||||
align 4
|
align 4
|
||||||
sysfn_mouse_acceleration: ; 18.19 = set/get mouse features
|
sysfn_mouse_acceleration: ; 18.19 = set/get mouse features
|
||||||
test ecx,ecx ; get mouse speed factor
|
test ecx,ecx ; get mouse speed factor
|
||||||
@ -2217,7 +2245,7 @@ sysfn_mouse_acceleration: ; 18.19 = set/get mouse features
|
|||||||
mov [mouse_active],1
|
mov [mouse_active],1
|
||||||
.end:
|
.end:
|
||||||
ret
|
ret
|
||||||
|
;------------------------------------------------------------------------------
|
||||||
sysfn_getfreemem:
|
sysfn_getfreemem:
|
||||||
mov eax, [pg_data.pages_free]
|
mov eax, [pg_data.pages_free]
|
||||||
shl eax, 2
|
shl eax, 2
|
||||||
|
Loading…
Reference in New Issue
Block a user