0,0 → 1,92 |
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 |
;--------------------------------------------------------------------- |