2009-05-08 21:45:28 +04:00
;08.05.2009 - bugfix
2009-04-15 16:18:53 +04:00
;14.04.2009 - a macros for code load library the box_lib.obj from '/sys/lib/' or current dirrectory.
; The macros for load any library/libraries:
; Copyright (c) 2009, <Lrz>
; All rights reserved.
;
; Redistribution and use in source and binary forms, with or without
; modification, are permitted provided that the following conditions are met:
; * Redistributions of source code must retain the above copyright
; notice, this list of conditions and the following disclaimer.
; * Redistributions in binary form must reproduce the above copyright
; notice, this list of conditions and the following disclaimer in the
; documentation and/or other materials provided with the distribution.
; * Neither the name of the <organization> nor the
; names of its contributors may be used to endorse or promote products
; derived from this software without specific prior written permission.
;
; THIS SOFTWARE IS PROVIDED BY Alexey Teplov aka <Lrz> ''AS IS'' AND ANY
; EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
; DISCLAIMED. IN NO EVENT SHALL <copyright holder> BE LIABLE FOR ANY
; DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
; (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
; ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
; (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
; SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
;*****************************************************************************
; This macros based on source code:
; <Lrz> - Alexey Teplov / <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
; Mario79, Mario - Marat Zakiyanov / <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
; Diamondz - Evgeny Grechnikov / <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
;------------------------
; DESCRIPTION
; Macro load_library
; Logick of work.
; A first time we must to check system path, where I belive find a system library. System path is "/sys/lib/".
; If I cannot found my library, i must to check second way. Second way is current dirrectory.
; If we cannot load library, we must show the error message:
; "I'm sorry,the programm cannot found system library box_lib.obj."
; "The find was make on 2 ways: /sys/lib/ and current dirrectory."
2009-05-08 21:45:28 +04:00
;
2009-04-15 16:18:53 +04:00
;
;---------------------------------------------------------------------
2009-05-08 21:45:28 +04:00
; Macro sys_load_library
2009-04-15 16:18:53 +04:00
; A first time we must to check own path in current dirrectory the program, where I belive find a system library.
; If I cannot found my library, i must to check second way. Second way is system path a "/sys/lib/".
; If we cannot load library, we must show the error message:
; "I'm sorry,the programm cannot found system library box_lib.obj."
; "The find was make on 2 ways: /sys/lib/ and current dirrectory."
2009-05-08 21:45:28 +04:00
;
;---------------------------------------------------------------------
; How can I use it?
;---------------------------------------------------------------------
;-Example using single load library
;-universal load library/librarys
2009-07-06 18:27:36 +04:00
;load_library library_name__, cur_dir_path__, library_path__, system_path__, \
;err_message_found_lib__, head_f_l__, myimport, err_message_import__, head_f_i__
2009-05-08 21:45:28 +04:00
;-if return code =-1 then exit, else normally work
; cmp eax,-1
; jz exit
;- Well, if you get
;
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;DATA <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> .
2009-07-06 18:27:36 +04:00
;system_path__ db '/sys/lib/'
;library_name__ db 'box_lib.obj',0
2009-05-08 21:45:28 +04:00
; <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> , <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
2009-07-06 18:27:36 +04:00
;system_path__ db '/sys/lib/box_lib.obj',0
2009-05-08 21:45:28 +04:00
;... <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> .
2009-07-06 18:27:36 +04:00
;library_name__ db 'box_lib.obj',0
2009-05-08 21:45:28 +04:00
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2009-07-06 18:27:36 +04:00
;err_message_found_lib__ db 'Sorry I cannot found library box_lib.obj',0
;head_f_i__:
;head_f_l__ db 'System error',0
;err_message_import__ db 'Error on load import library box_lib.obj',0
2009-05-08 21:45:28 +04:00
;myimport:
;
;edit_box_draw dd aEdit_box_draw
;edit_box_key dd aEdit_box_key
;edit_box_mouse dd aEdit_box_mouse
;version_ed dd aVersion_ed
;
;check_box_draw dd aCheck_box_draw
;check_box_mouse dd aCheck_box_mouse
;version_ch dd aVersion_ch
;
;option_box_draw dd aOption_box_draw
;option_box_mouse dd aOption_box_mouse
;version_op dd aVersion_op
2009-04-15 16:18:53 +04:00
2009-05-08 21:45:28 +04:00
; dd 0
; dd 0
;
;aEdit_box_draw db 'edit_box',0
;aEdit_box_key db 'edit_box_key',0
;aEdit_box_mouse db 'edit_box_mouse',0
;aVersion_ed db 'version_ed',0
;aCheck_box_draw db 'check_box_draw',0
;aCheck_box_mouse db 'check_box_mouse',0
;aVersion_ch db 'version_ch',0
;aOption_box_draw db 'option_box_draw',0
;aOption_box_mouse db 'option_box_mouse',0
;aVersion_op db 'version_op',0
;---------------------------------------------------------------------
macro @use_library
{
2009-07-06 18:27:36 +04:00
2009-05-08 21:45:28 +04:00
local __sc
local lp
2009-07-06 18:27:36 +04:00
local lp1
2009-05-08 21:45:28 +04:00
local correction
2009-07-06 18:27:36 +04:00
local exit_
2010-06-09 01:43:19 +04:00
library_fun_memory_alloc equ 0 ;<3B> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 'lib_init'
2009-05-08 21:45:28 +04:00
err_message1 equ dword [esp+8]
head1 equ dword [esp+4]
__sc.frame equ dword [__sc+0]
__sc.grab equ dword [__sc+4]
__sc.grab_button equ dword [__sc+8]
__sc.grab_button_text equ dword [__sc+12]
__sc.grab_text equ dword [__sc+16]
__sc.work equ dword [__sc+20]
__sc.work_button equ dword [__sc+24]
__sc.work_button_text equ dword [__sc+28]
__sc.work_text equ dword [__sc+32]
__sc.work_graph equ dword [__sc+36]
;;;;;;;;;;;CALC WIDTH & HIGHT WINDOW & CENTER MONITOR POSITION;;;;;;;;;;
2009-07-06 18:27:36 +04:00
show_err_:
;check memory
push dword [arrea_xx]
pop eax
test eax,eax
jnz @f
mcall 68,11
mcall 68,12,4096
push eax
pop dword [arrea_xx]
push head1
pop dword[eax]
push 0x0
pop dword[eax+4]
@@:
2009-05-08 21:45:28 +04:00
mov eax,48 ;get system color
mov ebx,3
mov ecx,__sc
mov edx,sizeof.system_colors
mcall
2009-07-06 18:27:36 +04:00
;-----------------------------------
2009-05-08 21:45:28 +04:00
xor eax,eax
mov esi,err_message1
mov ecx,30
align 4
2009-07-06 18:27:36 +04:00
lp: add ecx,7
lodsb
2009-05-08 21:45:28 +04:00
test eax,eax
2009-07-06 18:27:36 +04:00
jnz lp
2009-05-08 21:45:28 +04:00
2009-07-06 18:27:36 +04:00
push dword [arrea_xx]
pop ebp
2009-05-08 21:45:28 +04:00
2009-07-06 18:27:36 +04:00
align 4
@@: add ebp,4
mov eax,dword [ebp]
test eax,eax
jnz @b
2009-05-08 21:45:28 +04:00
2009-07-06 18:27:36 +04:00
push err_message1
pop dword[ebp]
2009-05-08 21:45:28 +04:00
2009-07-06 18:27:36 +04:00
mov dword [ebp+4],eax
mcall 48,5 ;get system window
cmp word[on_x],cx
jae @f; <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
sub eax,ecx
shl eax,15
mov ax,cx
2009-05-08 21:45:28 +04:00
mov dword [on_x],eax
2009-07-06 18:27:36 +04:00
@@:
add word [on_y],12
sub bx,word [on_y]
shl ebx,15
mov bx,word [on_y]
2009-05-08 21:45:28 +04:00
mov dword [on_y],ebx
2009-07-06 18:27:36 +04:00
ret
2009-05-08 21:45:28 +04:00
;;;;;;;;;;;DRAW WINDOW;;;;;;;;;;;;;;
2009-07-06 18:27:36 +04:00
align 4
start__:
2009-05-08 21:45:28 +04:00
mcall 40,0x5 ;set mask on events rewraw window and get id button.
2009-07-06 18:27:36 +04:00
.red_win:
2009-05-08 21:45:28 +04:00
;draw_window:
mcall 12,1
xor eax,eax
2009-07-06 18:27:36 +04:00
mov ebp,dword [arrea_xx] ; set point
2009-05-08 21:45:28 +04:00
mov ebx,dword [on_x]
mov ecx,dword [on_y]
mov edx,__sc.work
or edx,0x33000000
mov esi,__sc.grab_text
2009-07-06 18:27:36 +04:00
xor edi,edi
mov edi,dword [ebp] ;head1
2009-05-08 21:45:28 +04:00
mcall
2009-07-06 18:27:36 +04:00
mov ebx,(10*65536+25-12)
add ebp,4 ;inc index
@@:
2009-05-08 21:45:28 +04:00
mov eax,4
2009-07-06 18:27:36 +04:00
add bx,12
2009-05-08 21:45:28 +04:00
mov ecx,__sc.grab_text
or ecx,0x90000000
2009-07-06 18:27:36 +04:00
mov edx,dword [ebp] ;err_message1
2009-05-08 21:45:28 +04:00
mcall
2009-07-06 18:27:36 +04:00
add ebp,4 ;inc index
mov eax,dword [ebp]
test eax,eax
jnz @b
2009-05-08 21:45:28 +04:00
mcall 12,2
align 4
2009-07-06 18:27:36 +04:00
.still: ;main loop
2009-05-08 21:45:28 +04:00
mcall 10 ;wait event
dec eax
2009-07-06 18:27:36 +04:00
jz .red_win
2009-05-08 21:45:28 +04:00
sub eax,2
2009-07-06 18:27:36 +04:00
jnz .still ;go to main loop
2009-05-08 21:45:28 +04:00
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2009-07-06 18:27:36 +04:00
.button:
2009-05-08 21:45:28 +04:00
mcall 17 ;get id button
test ah,ah ;if in ah 0, then go to still
2009-07-06 18:27:36 +04:00
jz .still
mcall -1
2009-05-08 21:45:28 +04:00
ret
2009-07-06 18:27:36 +04:00
align 4
__sc system_colors
on_x dd 0x0
on_y dd 0x0000004E
arrea_xx dd 0x0
rb 0x50
end_tr:
2009-05-08 21:45:28 +04:00
;---------------------------------------------------------------------
2009-10-12 12:25:30 +04:00
@library_name equ dword [esp+16]
@cur_dir_path equ dword [esp+12]
@library_path equ dword [esp+8]
@point_dir_name equ dword [esp+4]
2009-05-08 21:45:28 +04:00
align 4
@copy_path:
2009-10-12 12:25:30 +04:00
; mov ebx,@library_name
2009-05-08 21:45:28 +04:00
mov esi,@cur_dir_path
mov edi,@library_path
xor eax,eax
cld
2009-10-12 12:25:30 +04:00
align 4
2009-05-08 21:45:28 +04:00
.lp1:
lodsb
stosb
test eax,eax
jnz .lp1
mov esi,edi
std
2009-10-12 12:25:30 +04:00
align 4
2009-05-08 21:45:28 +04:00
.lp2:
lodsb
cmp al,'/'
jnz .lp2
mov edi,esi
2009-10-12 12:25:30 +04:00
2009-05-08 21:45:28 +04:00
add edi,2
2009-10-12 12:25:30 +04:00
cld
; mov esi,@library_name
2009-05-08 21:45:28 +04:00
2009-10-12 12:25:30 +04:00
mov esi,@point_dir_name
test esi,esi
jz .str_lp4
2009-05-08 21:45:28 +04:00
2009-10-12 12:25:30 +04:00
align 4
2009-05-08 21:45:28 +04:00
.lp3:
lodsb
stosb
test eax,eax
jnz .lp3
2009-10-12 12:25:30 +04:00
dec edi
.str_lp4:
mov esi,@library_name
align 4
.lp4:
lodsb
stosb
test eax,eax
jnz .lp4
2009-05-08 21:45:28 +04:00
;---------------------------------------------------------------------
2009-07-06 18:27:36 +04:00
ret
2009-05-08 21:45:28 +04:00
}
2010-06-09 01:43:19 +04:00
macro @use_library_mem mem_alloc,mem_free,mem_realloc,dll_load
{
@use_library
library_fun_memory_alloc equ mem_alloc
library_fun_memory_free equ mem_free
library_fun_memory_realloc equ mem_realloc
library_fun_dll_load equ dll_load
}
2009-10-12 12:25:30 +04:00
macro sys_load_library library_name__, cur_dir_path__, library_path__, system_path__, err_message_found_lib__, head_f_l__, myimport, err_message_import__, head_f_i__,point_dir_name__
2009-04-15 16:18:53 +04:00
{
local end_steep
2009-05-08 21:45:28 +04:00
local exit
2009-04-15 16:18:53 +04:00
;---------------------------------------------------------------------
; loading Box_Lib library
2009-07-06 18:27:36 +04:00
mcall 68,19,system_path__ ; load of sys directory
2009-04-15 16:18:53 +04:00
test eax,eax
jnz end_steep
2009-10-12 12:25:30 +04:00
if point_dir_name__ eq
copy_path library_name__, cur_dir_path__, library_path__,0x0
else
copy_path library_name__, cur_dir_path__, library_path__,point_dir_name__ ;the macros making way /current pach a program/+ name system library
end if
2009-04-15 16:18:53 +04:00
2009-07-06 18:27:36 +04:00
mcall 68,19,library_path__ ; load of alternative
2009-04-15 16:18:53 +04:00
test eax,eax
jnz end_steep
2009-07-06 18:27:36 +04:00
show_error_window err_message_found_lib__, head_f_l__ ;show error message /create window
2009-05-08 21:45:28 +04:00
jmp exit
2009-04-15 16:18:53 +04:00
2009-05-08 21:45:28 +04:00
align 4
2009-04-15 16:18:53 +04:00
end_steep:
2009-07-06 18:27:36 +04:00
import_boxlib myimport, err_message_import__, head_f_i__ ;import
2009-05-08 21:45:28 +04:00
exit:
2009-07-06 18:27:36 +04:00
test eax,eax
jz @f
mcall 51,1,start__,end_tr ; <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
or eax,-1
@@:
2009-04-15 16:18:53 +04:00
;---------------------------------------------------------------------
}
2009-10-12 12:25:30 +04:00
macro load_library library_name__, cur_dir_path__, library_path__, system_path__, err_message_found_lib__, head_f_l__, myimport, err_message_import__, head_f_i__,point_dir_name__
2009-04-15 16:18:53 +04:00
{
local end_steep
2009-05-08 21:45:28 +04:00
local exit
2009-04-15 16:18:53 +04:00
;---------------------------------------------------------------------
; loading Box_Lib library
2009-10-12 12:25:30 +04:00
if point_dir_name__ eq
copy_path library_name__, cur_dir_path__, library_path__,0x0
else
copy_path library_name__, cur_dir_path__, library_path__,point_dir_name__ ;the macros making way /current pach a program/+ name system library
end if
2009-04-15 16:18:53 +04:00
2009-07-06 18:27:36 +04:00
mcall 68,19,library_path__ ; load of alternative
2009-04-15 16:18:53 +04:00
test eax,eax
jnz end_steep
2009-07-06 18:27:36 +04:00
mcall 68,19,system_path__ ; load of sys directory
2009-04-15 16:18:53 +04:00
test eax,eax
jnz end_steep
2009-07-06 18:27:36 +04:00
show_error_window err_message_found_lib__, head_f_l__ ;show error message /create window
2009-05-08 21:45:28 +04:00
jmp exit
2009-04-15 16:18:53 +04:00
2009-05-08 21:45:28 +04:00
align 4
2009-04-15 16:18:53 +04:00
end_steep:
2009-07-06 18:27:36 +04:00
import_boxlib myimport, err_message_import__, head_f_i__ ;import
2009-05-08 21:45:28 +04:00
exit:
2009-07-06 18:27:36 +04:00
test eax,eax
jz @f
mcall 51,1,start__,end_tr ; <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
or eax,-1
@@:
2009-04-15 16:18:53 +04:00
;---------------------------------------------------------------------
}
2009-05-08 21:45:28 +04:00
macro sys_load_libraries _start,_end
2009-04-15 16:18:53 +04:00
{
2009-07-06 18:27:36 +04:00
local exit_lp2
local lp2
2009-05-08 21:45:28 +04:00
local lp
2009-04-15 16:18:53 +04:00
local end_steep
2009-05-08 21:45:28 +04:00
local next
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2009-07-06 18:27:36 +04:00
library_name__ equ [ebp]
cur_dir_path__ equ [ebp+4]
library_path__ equ [ebp+8]
system_path__ equ [ebp+12]
err_message_found_lib__ equ [ebp+16]
head_f_l__ equ [ebp+20]
2009-10-12 12:25:30 +04:00
my_import equ [ebp+24]
2009-07-06 18:27:36 +04:00
err_message_import__ equ [ebp+28]
head_f_i__ equ [ebp+32]
2009-10-12 12:25:30 +04:00
point_dir_name__ equ [ebp+36]
adr_load_lib equ dword [ebp+40]
status_lib equ dword [ebp+44]
2009-05-08 21:45:28 +04:00
mov ebp,_start
mov ecx,((_end-_start)/ll_struc_size)
2009-04-15 16:18:53 +04:00
2009-05-08 21:45:28 +04:00
align 4
lp: push ecx
2009-07-06 18:27:36 +04:00
mcall 68,19,system_path__ ; load of sys directory
2009-04-15 16:18:53 +04:00
test eax,eax
jnz end_steep
2009-10-12 12:25:30 +04:00
copy_path library_name__, cur_dir_path__, library_path__,point_dir_name__ ;the macros making way /current pach a program/+ name system library
2009-04-15 16:18:53 +04:00
2009-07-06 18:27:36 +04:00
mcall 68,19,library_path__ ; load of alternative
2009-04-15 16:18:53 +04:00
test eax,eax
jnz end_steep
2009-05-08 21:45:28 +04:00
or status_lib,0x1 ; status of code - enable error - not found library
2009-10-12 12:25:30 +04:00
show_error_window err_message_found_lib__, head_f_l__, ;show error message /create window
2009-05-08 21:45:28 +04:00
jmp next
2009-04-15 16:18:53 +04:00
2009-05-08 21:45:28 +04:00
align 4
2009-04-15 16:18:53 +04:00
end_steep:
2009-05-08 21:45:28 +04:00
mov adr_load_lib,eax ;save adr lib in memory
2009-07-06 18:27:36 +04:00
import_boxlib my_import, err_message_import__, head_f_i__ ;import
2009-04-15 16:18:53 +04:00
2009-05-08 21:45:28 +04:00
test eax,eax
jz next
2009-04-15 16:18:53 +04:00
2009-05-08 21:45:28 +04:00
or status_lib,0x2 ; status of code - enable error - import error
2009-04-15 16:18:53 +04:00
2009-05-08 21:45:28 +04:00
next:
pop ecx
add ebp,ll_struc_size
dec ecx
jnz lp
2009-07-06 18:27:36 +04:00
;----------------------------------
mov ebp,_start
mov ecx,((_end-_start)/ll_struc_size)
align 4
lp2:
mov eax,status_lib
test eax,eax
jz @f
mcall 51,1,start__,end_tr ; <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
or eax,-1
jmp exit_lp2
@@:
add ebp,ll_struc_size
dec ecx
jnz lp2
exit_lp2:
2009-05-08 21:45:28 +04:00
}
2009-04-15 16:18:53 +04:00
2009-05-08 21:45:28 +04:00
macro load_libraries _start,_end
2009-04-15 16:18:53 +04:00
{
2009-07-06 18:27:36 +04:00
local lp2
local exit_lp2
2009-05-08 21:45:28 +04:00
local lp
local end_steep
local next
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2009-07-06 18:27:36 +04:00
library_name__ equ [ebp]
cur_dir_path__ equ [ebp+4]
library_path__ equ [ebp+8]
system_path__ equ [ebp+12]
err_message_found_lib__ equ [ebp+16]
head_f_l__ equ [ebp+20]
2009-10-12 12:25:30 +04:00
my_import equ [ebp+24]
2009-07-06 18:27:36 +04:00
err_message_import__ equ [ebp+28]
head_f_i__ equ [ebp+32]
2009-10-12 12:25:30 +04:00
point_dir_name__ equ [ebp+36]
adr_load_lib equ dword [ebp+40]
status_lib equ dword [ebp+44]
2009-05-08 21:45:28 +04:00
mov ebp,_start
mov ecx,((_end-_start)/ll_struc_size)
2009-04-15 16:18:53 +04:00
2009-05-08 21:45:28 +04:00
align 4
lp: push ecx
2009-10-12 12:25:30 +04:00
copy_path library_name__, cur_dir_path__, library_path__,point_dir_name__ ;the macros making way /current pach a program/+ name system library
2009-05-08 21:45:28 +04:00
2009-07-06 18:27:36 +04:00
mcall 68,19,library_path__ ; load of alternative
2009-04-15 16:18:53 +04:00
test eax,eax
2009-05-08 21:45:28 +04:00
jnz end_steep
2009-07-06 18:27:36 +04:00
mcall 68,19,system_path__ ; load of sys directory
2009-05-08 21:45:28 +04:00
test eax,eax
jnz end_steep
2009-04-15 16:18:53 +04:00
2009-05-08 21:45:28 +04:00
or status_lib,0x1 ; status of code - enable error - not found library
2009-04-15 16:18:53 +04:00
2009-07-06 18:27:36 +04:00
show_error_window err_message_found_lib__, head_f_l__ ;show error message /create window
2009-05-08 21:45:28 +04:00
jmp next
align 4
end_steep:
mov adr_load_lib,eax ;save adr lib in memory
2009-07-06 18:27:36 +04:00
import_boxlib my_import, err_message_import__, head_f_i__ ;import
2009-04-15 16:18:53 +04:00
test eax,eax
2009-05-08 21:45:28 +04:00
jz next
or status_lib,0x2 ; status of code - enable error - import error
next:
pop ecx
add ebp,ll_struc_size
dec ecx
jnz lp
2009-07-06 18:27:36 +04:00
;-----------------------------------------------
mov ebp,_start
mov ecx,((_end-_start)/ll_struc_size)
align 4
lp2:
mov eax,status_lib
test eax,eax
jz @f
mcall 51,1,start__,end_tr ; <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
or eax,-1
jmp exit_lp2
@@:
add ebp,ll_struc_size
dec ecx
jnz lp2
exit_lp2:
2009-04-15 16:18:53 +04:00
}
2009-05-08 21:45:28 +04:00
2009-10-12 12:25:30 +04:00
macro copy_path lib_name,dir_path,lib_path,point_dir_name
2009-04-15 16:18:53 +04:00
{
2009-05-08 21:45:28 +04:00
pushad ;save all registers
push dword lib_name
push dword dir_path
push dword lib_path
2009-10-12 12:25:30 +04:00
push dword point_dir_name
2009-05-08 21:45:28 +04:00
call @copy_path
2009-10-12 12:25:30 +04:00
add esp,16
2009-05-08 21:45:28 +04:00
popad ;restore all registers
2009-04-15 16:18:53 +04:00
}
2009-05-08 21:45:28 +04:00
macro show_error_window err_message, head
{ pushad ;save all registers
push dword err_message
push dword head
call show_err_
add esp,8
popad ;restore all registers
2009-07-06 18:27:36 +04:00
or eax,-1 ;<3B> <> <EFBFBD>
2009-05-08 21:45:28 +04:00
}
2010-06-09 01:43:19 +04:00
;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> :
;eax - <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
;myimport - <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
2009-07-06 18:27:36 +04:00
macro import_boxlib myimport, err_message_import__, head_f_i__
2009-04-15 16:18:53 +04:00
{
local import_loop
local import_find
local lp
local import_find_next
local import_found
local import_done
local exit
2009-05-08 21:45:28 +04:00
local e.exit
local import_not_found
2009-04-15 16:18:53 +04:00
; initialize import
2009-05-08 21:45:28 +04:00
2009-04-15 16:18:53 +04:00
mov edx, eax
mov esi,myimport
import_loop:
2010-06-09 01:43:19 +04:00
lodsd ;mov eax,dword[esi] ;add esi,4 ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> eax <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
2009-04-15 16:18:53 +04:00
test eax, eax
2010-06-09 01:43:19 +04:00
jz import_done ;<3B> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> = 0 (<28> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> )
push edx ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
2009-04-15 16:18:53 +04:00
import_find:
mov ebx, [ds:edx]
test ebx, ebx
2010-06-09 01:43:19 +04:00
jz import_not_found ;<3B> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> = 0 (<28> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> )
push eax ;eax - <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> (<28> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> )
2009-04-15 16:18:53 +04:00
lp:
mov cl, [ds:eax]
2010-06-09 01:43:19 +04:00
cmp cl, [ds:ebx] ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
jnz import_find_next ;<3B> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
2009-04-15 16:18:53 +04:00
test cl, cl
2010-06-09 01:43:19 +04:00
jz import_found ;<3B> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> , <20> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> (cl=0)
2009-04-15 16:18:53 +04:00
inc eax
inc ebx
jmp lp
import_find_next:
pop eax
2010-06-09 01:43:19 +04:00
add edx, 8 ;8 = 4 <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> 4 <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
2009-04-15 16:18:53 +04:00
jmp import_find
import_found:
2010-06-09 01:43:19 +04:00
pop ebx ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> (<28> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <20> eax) <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD>
mov eax, [ds:edx+4] ;eax = <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> (<28> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> )
mov [esi-4], eax ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> (<28> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ) <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> , -4 <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> esi <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> lodsd
pop edx ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> edx <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
;--- <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> 'lib_init'
if library_fun_memory_alloc eq 0
else
cmp dword[ebx],'lib_'
jne import_loop
cmp dword[ebx+4],'init'
jne import_loop
;--- <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> 'lib_init' <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD>
;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
;push eax
;call dll.Init
pushad
mov esi,eax
mov eax,library_fun_memory_alloc
mov ebx,library_fun_memory_free
mov ecx,library_fun_memory_realloc
mov edx,library_fun_dll_load
call dword esi
popad
end if
2009-04-15 16:18:53 +04:00
jmp import_loop
2009-05-08 21:45:28 +04:00
import_not_found:
2009-04-15 16:18:53 +04:00
add esp,4
2009-07-06 18:27:36 +04:00
show_error_window err_message_import__, head_f_i__ ;show error message /create window
2009-05-08 21:45:28 +04:00
jmp e.exit
2009-04-15 16:18:53 +04:00
import_done:
2010-06-09 01:43:19 +04:00
xor eax,eax ;=0 <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
2009-05-08 21:45:28 +04:00
e.exit:
2009-04-15 16:18:53 +04:00
;---------------------------------------------------------------------
2009-05-08 21:45:28 +04:00
}
2009-10-12 12:25:30 +04:00
ll_struc_size = 48;($-library_name__) ; constant size of struct
struc l_libs library_name__, cur_dir_path__, library_path__, system_path__, err_message_found_lib__, head_f_l__, my_import, err_message_import__, head_f_i__,point_dir_name; struct for loading libraries
2009-05-08 21:45:28 +04:00
{
2009-07-06 18:27:36 +04:00
.library_name__ dd library_name__ ; <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
.cur_dir_path__ dd cur_dir_path__ ; <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
.library_path__ dd library_path__ ; <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> , <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> , <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> , <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> , <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD>
2009-10-12 12:25:30 +04:00
.complete_path dd system_path__ ; <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD>
2009-07-06 18:27:36 +04:00
.err_message_found_lib__ dd err_message_found_lib__
.head_f_l__ dd head_f_l__
2009-10-12 12:25:30 +04:00
.my_import dd my_import
2009-07-06 18:27:36 +04:00
.err_message_import__ dd err_message_import__
.head_f_i__ dd head_f_i__
2009-10-12 12:25:30 +04:00
if point_dir_name eq
.point_dir_name__ dd 0x0
else
.point_dir_name__ dd point_dir_name ; <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> .
end if
2009-07-06 18:27:36 +04:00
.adr_load_lib dd 0x0
.status_lib dd 0x0 ;status of load library
2009-05-08 21:45:28 +04:00
;
}