forked from KolibriOS/kolibrios
use @notify
new macros 'notify_window_run' git-svn-id: svn://kolibrios.org@3374 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
@@ -1,4 +1,6 @@
|
||||
;08.05.2009 - bugfix
|
||||
;13.03.2013 - use @notify
|
||||
;08.06.2010 - new macros @use_library_mem
|
||||
;08.05.2009 - bugfix
|
||||
;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>
|
||||
@@ -27,9 +29,9 @@
|
||||
; 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>
|
||||
; <Lrz> - Alexey Teplov / <20><><EFBFBD><EFBFBD>ᥩ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
; Mario79, Mario - Marat Zakiyanov / <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ﭮ<EFBFBD>
|
||||
; Diamondz - Evgeny Grechnikov / <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>筨<EFBFBD><EFBFBD><EFBFBD>
|
||||
;------------------------
|
||||
; DESCRIPTION
|
||||
; Macro load_library
|
||||
@@ -62,13 +64,13 @@
|
||||
;- Well, if you get
|
||||
;
|
||||
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
||||
;DATA <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
;<3B><EFBFBD><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>.
|
||||
;DATA <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
;<3B>ᥣ<EFBFBD><EFBFBD> ᮡ<><EFBFBD><EEA4A0> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⥫쭮<EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>.
|
||||
;system_path__ db '/sys/lib/'
|
||||
;library_name__ db 'box_lib.obj',0
|
||||
; <20><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><> <20><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
; <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><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><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
;system_path__ db '/sys/lib/box_lib.obj',0
|
||||
;... <20><EFBFBD><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>.
|
||||
;... <20><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⥫쭮<EFBFBD><EFBFBD><EFBFBD> <20><>㣨<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><>।<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
;library_name__ db 'box_lib.obj',0
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
@@ -112,158 +114,25 @@
|
||||
macro @use_library
|
||||
{
|
||||
|
||||
local __sc
|
||||
local lp
|
||||
local lp1
|
||||
local correction
|
||||
local exit_
|
||||
local file_name
|
||||
|
||||
library_fun_memory_alloc equ 0 ;<3B><> <20><EFBFBD><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><EFBFBD> <20><> <20><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 'lib_init'
|
||||
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;;;;;;;;;;
|
||||
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]
|
||||
|
||||
@@:
|
||||
mov eax,48 ;get system color
|
||||
mov ebx,3
|
||||
mov ecx,__sc
|
||||
mov edx,sizeof.system_colors
|
||||
mcall
|
||||
;-----------------------------------
|
||||
xor eax,eax
|
||||
mov esi,err_message1
|
||||
mov ecx,30
|
||||
align 4
|
||||
lp: add ecx,7
|
||||
lodsb
|
||||
test eax,eax
|
||||
jnz lp
|
||||
|
||||
push dword [arrea_xx]
|
||||
pop ebp
|
||||
library_fun_memory_alloc equ 0 ;<3B><> <20>ᯮ<EFBFBD>짮<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20>㭪樨 'lib_init'
|
||||
|
||||
align 4
|
||||
@@: add ebp,4
|
||||
mov eax,dword [ebp]
|
||||
|
||||
test eax,eax
|
||||
jnz @b
|
||||
|
||||
push err_message1
|
||||
pop dword[ebp]
|
||||
|
||||
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
|
||||
mov dword [on_x],eax
|
||||
|
||||
@@:
|
||||
add word [on_y],12
|
||||
sub bx,word [on_y]
|
||||
shl ebx,15
|
||||
mov bx,word [on_y]
|
||||
mov dword [on_y],ebx
|
||||
|
||||
ret
|
||||
|
||||
|
||||
;;;;;;;;;;;DRAW WINDOW;;;;;;;;;;;;;;
|
||||
align 4
|
||||
start__:
|
||||
mcall 40,0x5 ;set mask on events rewraw window and get id button.
|
||||
.red_win:
|
||||
;draw_window:
|
||||
mcall 12,1
|
||||
|
||||
xor eax,eax
|
||||
mov ebp,dword [arrea_xx] ; set point
|
||||
mov ebx,dword [on_x]
|
||||
mov ecx,dword [on_y]
|
||||
mov edx,__sc.work
|
||||
or edx,0x33000000
|
||||
mov esi,__sc.grab_text
|
||||
xor edi,edi
|
||||
mov edi,dword [ebp] ;head1
|
||||
mcall
|
||||
|
||||
mov ebx,(10*65536+25-12)
|
||||
add ebp,4 ;inc index
|
||||
|
||||
@@:
|
||||
mov eax,4
|
||||
add bx,12
|
||||
mov ecx,__sc.grab_text
|
||||
or ecx,0x90000000
|
||||
mov edx,dword [ebp] ;err_message1
|
||||
mcall
|
||||
|
||||
add ebp,4 ;inc index
|
||||
|
||||
mov eax,dword [ebp]
|
||||
test eax,eax
|
||||
jnz @b
|
||||
|
||||
mcall 12,2
|
||||
align 4
|
||||
|
||||
.still: ;main loop
|
||||
mcall 10 ;wait event
|
||||
dec eax
|
||||
jz .red_win
|
||||
sub eax,2
|
||||
jnz .still ;go to main loop
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
.button:
|
||||
mcall 17 ;get id button
|
||||
test ah,ah ;if in ah 0, then go to still
|
||||
jz .still
|
||||
mcall -1
|
||||
ret
|
||||
arrea_xx dd 0
|
||||
file_name db '/rd/1/@notify',0
|
||||
|
||||
align 4
|
||||
__sc system_colors
|
||||
on_x dd 0x0
|
||||
on_y dd 0x0000004E
|
||||
arrea_xx dd 0x0
|
||||
rb 0x50
|
||||
end_tr:
|
||||
|
||||
run_notify_struct:
|
||||
.Function dd 7
|
||||
.Position dd 0
|
||||
.Flags dd ?
|
||||
.Count dd 0
|
||||
.Buffer dd 0
|
||||
db 0
|
||||
.FileName dd file_name
|
||||
;---------------------------------------------------------------------
|
||||
|
||||
@library_name equ dword [esp+16]
|
||||
@@ -368,7 +237,7 @@ exit:
|
||||
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>
|
||||
notify_window_run [arrea_xx] ; ᮧ<><E1AEA7><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> @notify
|
||||
or eax,-1
|
||||
@@:
|
||||
|
||||
@@ -408,7 +277,7 @@ exit:
|
||||
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>
|
||||
notify_window_run [arrea_xx] ; ᮧ<><E1AEA7><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> @notify
|
||||
or eax,-1
|
||||
@@:
|
||||
|
||||
@@ -481,7 +350,7 @@ lp2:
|
||||
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>
|
||||
notify_window_run [arrea_xx] ; ᮧ<><E1AEA7><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> @notify
|
||||
or eax,-1
|
||||
jmp exit_lp2
|
||||
|
||||
@@ -561,7 +430,7 @@ lp2:
|
||||
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>
|
||||
notify_window_run [arrea_xx] ; ᮧ<><E1AEA7><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> @notify
|
||||
or eax,-1
|
||||
jmp exit_lp2
|
||||
|
||||
@@ -587,22 +456,57 @@ macro copy_path lib_name,dir_path,lib_path,point_dir_name
|
||||
popad ;restore all registers
|
||||
}
|
||||
|
||||
; <20><>⮢<EFBFBD><E2AEA2> ⥪<><E2A5AA> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>१ @notify:
|
||||
; 1) <20>뤥<EFBFBD>塞 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> [arrea_xx]
|
||||
; 2) <20><><EFBFBD><EFBFBD><EFBFBD>㥬 err_message <20> head <20> [arrea_xx]
|
||||
macro show_error_window err_message, head
|
||||
{ pushad ;save all registers
|
||||
push dword err_message
|
||||
push dword head
|
||||
{
|
||||
local lp0
|
||||
local lp1
|
||||
|
||||
call show_err_
|
||||
pushad
|
||||
mcall 68,11
|
||||
mcall 68,12,4096
|
||||
push eax
|
||||
pop dword [arrea_xx]
|
||||
|
||||
add esp,8
|
||||
popad ;restore all registers
|
||||
or eax,-1 ;<3B><><EFBFBD>
|
||||
mov edi,eax
|
||||
mov esi,dword head
|
||||
cld
|
||||
align 4
|
||||
lp0:
|
||||
movsb
|
||||
cmp byte[esi],0
|
||||
jne lp0
|
||||
mov word[edi],'. '
|
||||
add edi,2
|
||||
mov esi,dword err_message
|
||||
align 4
|
||||
lp1:
|
||||
movsb
|
||||
cmp byte[esi],0
|
||||
jne lp1
|
||||
mov byte[edi],0
|
||||
popad
|
||||
or eax,-1 ;<3B><><EFBFBD>
|
||||
}
|
||||
|
||||
; <20><><EFBFBD><EFBFBD>砥<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> ᮮ<>饭<EFBFBD><E9A5AD> <20><>१ @notify:
|
||||
macro notify_window_run message
|
||||
{
|
||||
push eax ebx
|
||||
mov eax,message ;<3B><>ࠬ<EFBFBD><E0A0AC><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ப<EFBFBD>
|
||||
mov [run_notify_struct.Flags], eax
|
||||
mov eax,70 ;run @notify
|
||||
mov ebx,run_notify_struct
|
||||
int 0x40
|
||||
pop ebx eax
|
||||
}
|
||||
|
||||
|
||||
;<3B><EFBFBD><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><EFBFBD>
|
||||
;<3B>室<EFBFBD><EFBFBD><EFBFBD> <20><>ࠬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
||||
;eax - <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⥪<EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
;myimport - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>㥬<EFBFBD><EFBFBD> <20>㭪樨
|
||||
macro import_boxlib myimport, err_message_import__, head_f_i__
|
||||
{
|
||||
local import_loop
|
||||
@@ -619,42 +523,42 @@ local import_not_found
|
||||
mov edx, eax
|
||||
mov esi,myimport
|
||||
import_loop:
|
||||
lodsd ;mov eax,dword[esi] ;add esi,4 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> eax <EFBFBD><EFBFBD><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><EFBFBD>
|
||||
lodsd ;mov eax,dword[esi] ;add esi,4 ;<3B><><EFBFBD><EFBFBD>砥<EFBFBD> <20> eax 㪠<EFBFBD><EFBFBD>⥫<EFBFBD> <20><> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>㥬<EFBFBD><EFBFBD> <20>㭪樨
|
||||
test eax, eax
|
||||
jz import_done ;<3B><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD> <20><EFBFBD><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> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
jz import_done ;<3B> 㪠<EFBFBD><EFBFBD>⥫<EFBFBD> <20><> <20><><EFBFBD> <20>㭪樨 = 0 (<28> <20><><EFBFBD>짮<EFBFBD><EFBFBD>⥫<EFBFBD><EFBFBD> <20>ணࠬ<EFBFBD><EFBFBD>)
|
||||
push edx ;<3B><><EFBFBD>࠭塞 <20><>砫<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 㪠<EFBFBD><EFBFBD>⥫<EFBFBD><EFBFBD> <20><> <20>㭪樨
|
||||
import_find:
|
||||
mov ebx, [ds:edx]
|
||||
test ebx, ebx
|
||||
jz import_not_found ;<3B><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD> <20><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> = 0 (<28> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
push eax ;eax - <EFBFBD><EFBFBD><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><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>)
|
||||
jz import_not_found ;<3B> 㪠<EFBFBD><EFBFBD>⥫<EFBFBD> <20><> <20><><EFBFBD> <20>㭪樨 = 0 (<28> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⥪<EFBFBD>)
|
||||
push eax ;eax - 㪠<EFBFBD><EFBFBD>⥫<EFBFBD> <20><> <20><><EFBFBD> <20><>ᯮ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>㥬<EFBFBD><EFBFBD> <20>㭪樨 (<28> <20><><EFBFBD>짮<EFBFBD><EFBFBD>⥫<EFBFBD><EFBFBD> <20>ணࠬ<EFBFBD><EFBFBD>)
|
||||
lp:
|
||||
mov cl, [ds:eax]
|
||||
cmp cl, [ds:ebx] ;<3B><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><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><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
cmp cl, [ds:ebx] ;<3B>ࠢ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20>㭪権 <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⥪<EFBFBD> <20> <20> <20><><EFBFBD>짮<EFBFBD><EFBFBD>⥫<EFBFBD><EFBFBD> <20>ணࠬ<EFBFBD><EFBFBD>
|
||||
jnz import_find_next ;<3B> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> ᮢ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
test cl, cl
|
||||
jz import_found ;<3B><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20> <EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (cl=0)
|
||||
jz import_found ;<3B> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᮢ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20> 㦥 <20><><EFBFBD><EFBFBD><EFBFBD> <20><>ப<EFBFBD> (cl=0)
|
||||
inc eax
|
||||
inc ebx
|
||||
jmp lp
|
||||
import_find_next:
|
||||
pop eax
|
||||
add edx, 8 ;8 = 4 <20><><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> 4 <20><><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
add edx, 8 ;8 = 4 <20><><EFBFBD><EFBFBD><EFBFBD> 㪠<EFBFBD><EFBFBD>⥫<EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> 4 <20><><EFBFBD><EFBFBD><EFBFBD> 㪠<EFBFBD><EFBFBD>⥫<EFBFBD> <20><> <20>㭪<EFBFBD><EFBFBD><EFBFBD>
|
||||
jmp import_find
|
||||
import_found:
|
||||
pop ebx ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD> <20><EFBFBD><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><EFBFBD> <20><EFBFBD><EFBFBD><EFBFBD>
|
||||
mov eax, [ds:edx+4] ;eax = <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><EFBFBD><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><EFBFBD>) <20> <20><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, -4 <20><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> esi <20><EFBFBD><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><EFBFBD>
|
||||
;--- <20><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><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> 'lib_init'
|
||||
pop ebx ;<3B><><EFBFBD>⠭<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 㪠<EFBFBD><EFBFBD>⥫<EFBFBD> <20><> <20><><EFBFBD> <20>㭪樨 (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> eax) <20> <20><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>⥪
|
||||
mov eax, [ds:edx+4] ;eax = 㪠<EFBFBD><EFBFBD>⥫<EFBFBD> <20><> <20>㭪<EFBFBD><EFBFBD><EFBFBD> (<28> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⥪<EFBFBD>)
|
||||
mov [esi-4], eax ;<3B><><EFBFBD><EFBFBD><EFBFBD>㥬 㪠<EFBFBD><EFBFBD>⥫<EFBFBD> (<28><> <20>㭪<EFBFBD><EFBFBD><EFBFBD>) <20> <20>ணࠬ<EFBFBD><EFBFBD>, -4 <20>⠢<EFBFBD><EFBFBD> <20><>⮬<EFBFBD> <20><><EFBFBD> esi <20>뫮 ᤢ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> lodsd
|
||||
pop edx ;<3B><>⠭<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> edx <20><> <20><>砫<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>㭪権
|
||||
;--- <20><EFBFBD><EFBFBD>塞 ᮢ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD> <20><>ᯮ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>㭪樨 <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><EFBFBD> <20><><EFBFBD> <20><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> 'lib_init' <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EFBFBD><EFBFBD>
|
||||
;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
;--- <20> <20><><EFBFBD> <20>㭪樨 ᮢ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> 'lib_init' <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>
|
||||
;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>祭<EFBFBD><EFBFBD> <20>㭪権 <20><><EFBFBD> ࠡ<EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
;push eax
|
||||
;call dll.Init
|
||||
pushad
|
||||
@@ -672,18 +576,18 @@ import_not_found:
|
||||
show_error_window err_message_import__, head_f_i__ ;show error message /create window
|
||||
jmp e.exit
|
||||
import_done:
|
||||
xor eax,eax ;=0 <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
xor eax,eax ;=0 <20><><EFBFBD> <20><><EFBFBD><EFBFBD>㧨<EFBFBD><EFBFBD><EFBFBD><EFBFBD> 㤠筮
|
||||
e.exit:
|
||||
;---------------------------------------------------------------------
|
||||
}
|
||||
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
|
||||
{
|
||||
.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__ ; <EFBFBD><EFBFBD><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><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
.library_name__ dd library_name__ ; <20><><EFBFBD> <20><><EFBFBD><EFBFBD>㦠<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⥪<EFBFBD>
|
||||
.cur_dir_path__ dd cur_dir_path__ ; 㪠<EFBFBD><EFBFBD>⥫<EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> ᮤ<>ন<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20>㤠 <20>뫠 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>饭<EFBFBD> <20>ணࠬ<EFBFBD><EFBFBD>
|
||||
|
||||
.library_path__ dd library_path__ ; <EFBFBD><EFBFBD><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><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><EFBFBD>, <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
.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>
|
||||
.library_path__ dd library_path__ ; 㪠<EFBFBD><EFBFBD>⥫<EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20>㤥<EFBFBD> <20><><EFBFBD><EFBFBD>ਬ<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⥪<EFBFBD>, <20> <20>㦭<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>᪠ <20>ணࠬ<EFBFBD><EFBFBD>, <20><><EFBFBD>筮 <20>㦭<EFBFBD>, <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20> <20><><EFBFBD><EFBFBD> <20><>ᯮ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> ⮩ <20><> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
.complete_path dd system_path__ ; <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>⪮ ᮤ<>ন<EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
|
||||
.err_message_found_lib__ dd err_message_found_lib__
|
||||
.head_f_l__ dd head_f_l__
|
||||
@@ -693,7 +597,7 @@ struc l_libs library_name__, cur_dir_path__, library_path__, system_path__, err_
|
||||
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>.
|
||||
.point_dir_name__ dd point_dir_name ; <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>४<EFBFBD><EFBFBD>ਨ <20> <20><><EFBFBD>ன <20>࠭<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>㦠<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>㫨.
|
||||
end if
|
||||
.adr_load_lib dd 0x0
|
||||
.status_lib dd 0x0 ;status of load library
|
||||
|
Reference in New Issue
Block a user