kolibrios-fun/programs/media/zsea/w_error.inc

92 lines
2.1 KiB
PHP
Raw Normal View History

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
;---------------------------------------------------------------------