forked from KolibriOS/kolibrios
d7b0867c02
v.1.0 rс3 12.06.2011 git-svn-id: svn://kolibrios.org@1951 a494cfbc-eb01-0410-851d-a64ba20cac60
92 lines
2.1 KiB
PHP
92 lines
2.1 KiB
PHP
error_window:
|
|
test dword [status],32
|
|
jnz still
|
|
or dword [status],32
|
|
mcall 9, procinfo, -1
|
|
mov eax,[ebx+46]
|
|
test eax,eax
|
|
jnz @f
|
|
mov eax,100
|
|
mov [error_window_y+2],ax
|
|
mov [error_window_x+2],ax
|
|
jmp .end
|
|
@@:
|
|
shr eax,1
|
|
add eax,[ebx+38]
|
|
sub eax,50
|
|
mov [error_window_y+2],ax
|
|
mov eax,[ebx+42]
|
|
shr eax,1
|
|
add eax,[ebx+34]
|
|
sub eax,150
|
|
mov [error_window_x+2],ax
|
|
.end:
|
|
call get_memory_for_tread_stack
|
|
mov [thread_stack_6],eax
|
|
mcall 51,1,thread6 ;,thread_stack_6
|
|
ret
|
|
;---------------------------------------------------------------------
|
|
thread6:
|
|
mcall 9, procinfo_threads, -1
|
|
mov eax,[ebx+30]
|
|
mov [PID6],eax
|
|
mcall 40, 0x7
|
|
mov [error_pointer],string
|
|
.red:
|
|
call .draw_error_window
|
|
.still:
|
|
mcall 10
|
|
cmp eax,1
|
|
je .red
|
|
cmp eax,2 ; key in buffer ?
|
|
je .key
|
|
cmp eax,3
|
|
je .button
|
|
jmp .still
|
|
.key: ; key
|
|
.button:
|
|
xor dword [status],32
|
|
xor eax,eax
|
|
mov [PID6],eax
|
|
|
|
mcall 68,13,[thread_stack_6]
|
|
mcall -1
|
|
jmp .still
|
|
;---------------------------------------------------------------------
|
|
.draw_error_window:
|
|
mcall 12, 1
|
|
mcall 0,[error_window_x] ,[error_window_y], 0x03ff0000
|
|
mcall 71,1, errortext
|
|
mcall 4,<10,30>,0x80ffffff,[error_pointer]
|
|
cmp [return_code],0
|
|
je .continue
|
|
cmp [return_code],1
|
|
jne @f
|
|
mcall 4,<10,50>,0x90ffffff,error_not_supported_file
|
|
jmp .end
|
|
@@:
|
|
cmp [return_code],2
|
|
jne @f
|
|
mcall 4,<10,50>,0x90ffffff,error_not_enough_memory
|
|
jmp .end
|
|
@@:
|
|
mcall 4,<10,50>,0x90ffffff,error_unknown
|
|
jmp .end
|
|
.continue:
|
|
mcall 4,<10,50>,0x90ffffff,error_type
|
|
mcall 47,0x800a0000,[error_fs],<140,50>,0x10ffffff
|
|
mov edx,[error_fs]
|
|
cmp edx,0
|
|
jb .end
|
|
cmp edx,11
|
|
ja .end
|
|
shl edx,2
|
|
add edx,error_fs_text_pointers
|
|
mov edx,[edx]
|
|
mcall 4,<10,70>,0x90ffffff,
|
|
; mcall 47,0x800a0000,[error_locate],<140,5>,0x10ffffff
|
|
.end:
|
|
; mcall 47,0x80000,[PID6],<200, 5>,0xffffff
|
|
mcall 12, 2
|
|
ret
|
|
;--------------------------------------------------------------------- |