forked from KolibriOS/kolibrios
3dee3b0598
git-svn-id: svn://kolibrios.org@2000 a494cfbc-eb01-0410-851d-a64ba20cac60
112 lines
2.6 KiB
PHP
112 lines
2.6 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_thread_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
|
|
;---------------------------------------------------------------------
|
|
; *********************************************
|
|
; ******* WINDOW DEFINITIONS AND DRAW ********
|
|
; *********************************************
|
|
.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
|
|
;--------------------------------------------------------------------- |