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