Rev 1108 | Rev 1204 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1108 | Rev 1127 | ||
---|---|---|---|
Line 52... | Line 52... | ||
52 | ;--------------------------------------------------------------------- |
52 | ;--------------------------------------------------------------------- |
53 | ; How can I use it? |
53 | ; How can I use it? |
54 | ;--------------------------------------------------------------------- |
54 | ;--------------------------------------------------------------------- |
55 | ;-Example using single load library |
55 | ;-Example using single load library |
56 | ;-universal load library/librarys |
56 | ;-universal load library/librarys |
57 | ;load_library library_name, cur_dir_path, library_path, system_path, \ |
57 | ;load_library library_name__, cur_dir_path__, library_path__, system_path__, \ |
58 | ;err_message_found_lib, head_f_l, myimport, err_message_import, head_f_i |
58 | ;err_message_found_lib__, head_f_l__, myimport, err_message_import__, head_f_i__ |
59 | ;-if return code =-1 then exit, else normally work |
59 | ;-if return code =-1 then exit, else normally work |
60 | ; cmp eax,-1 |
60 | ; cmp eax,-1 |
61 | ; jz exit |
61 | ; jz exit |
62 | ;- Well, if you get |
62 | ;- Well, if you get |
63 | ; |
63 | ; |
64 | ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> |
64 | ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> |
65 | ;DATA äàííûå |
65 | ;DATA äàííûå |
66 | ;Âñåãäà ñîáëþäàòü ïîñëåäîâàòåëüíîñòü â èìåíè. |
66 | ;Âñåãäà ñîáëþäàòü ïîñëåäîâàòåëüíîñòü â èìåíè. |
67 | ;system_path db '/sys/lib/' |
67 | ;system_path__ db '/sys/lib/' |
68 | ;library_name db 'box_lib.obj',0 |
68 | ;library_name__ db 'box_lib.obj',0 |
69 | ; Åñëè åñòü æåëàíèå ðàçúåäèíèòü, òî íóæíî èñïîëüçîâàòü ñëåäóþùèþ êîíñòðóêöèþ |
69 | ; Åñëè åñòü æåëàíèå ðàçúåäèíèòü, òî íóæíî èñïîëüçîâàòü ñëåäóþùèþ êîíñòðóêöèþ |
70 | ;system_path db '/sys/lib/box_lib.obj',0 |
70 | ;system_path__ db '/sys/lib/box_lib.obj',0 |
71 | ;... ëþáàÿ ïîñëåäîâàòåëüíîñòü äðóãèõ êîìàíä è îïðåäåëåíèé. |
71 | ;... ëþáàÿ ïîñëåäîâàòåëüíîñòü äðóãèõ êîìàíä è îïðåäåëåíèé. |
72 | ;library_name db 'box_lib.obj',0 |
72 | ;library_name__ db 'box_lib.obj',0 |
73 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
73 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
Line 74... | Line 74... | ||
74 | 74 | ||
75 | ;err_message_found_lib db 'Sorry I cannot found library box_lib.obj',0 |
75 | ;err_message_found_lib__ db 'Sorry I cannot found library box_lib.obj',0 |
76 | ;head_f_i: |
76 | ;head_f_i__: |
77 | ;head_f_l db 'System error',0 |
77 | ;head_f_l__ db 'System error',0 |
Line 78... | Line 78... | ||
78 | ;err_message_import db 'Error on load import library box_lib.obj',0 |
78 | ;err_message_import__ db 'Error on load import library box_lib.obj',0 |
79 | 79 | ||
80 | ;myimport: |
80 | ;myimport: |
81 | ; |
81 | ; |
Line 109... | Line 109... | ||
109 | ;aVersion_op db 'version_op',0 |
109 | ;aVersion_op db 'version_op',0 |
Line 110... | Line 110... | ||
110 | 110 | ||
111 | ;--------------------------------------------------------------------- |
111 | ;--------------------------------------------------------------------- |
112 | macro @use_library |
112 | macro @use_library |
113 | { |
113 | { |
114 | show_err_: |
- | |
115 | local red_win |
- | |
116 | local still |
- | |
117 | local button |
114 | |
118 | local __sc |
- | |
119 | local start |
- | |
120 | local ex_lp |
115 | local __sc |
- | 116 | local lp |
|
121 | local lp |
117 | local lp1 |
- | 118 | local correction |
|
- | 119 | ;local end_tr |
|
122 | local correction |
120 | local exit_ |
123 | ;/equ |
121 | ;/equ |
124 | err_message1 equ dword [esp+8] |
122 | err_message1 equ dword [esp+8] |
Line 134... | Line 132... | ||
134 | __sc.work_button equ dword [__sc+24] |
132 | __sc.work_button equ dword [__sc+24] |
135 | __sc.work_button_text equ dword [__sc+28] |
133 | __sc.work_button_text equ dword [__sc+28] |
136 | __sc.work_text equ dword [__sc+32] |
134 | __sc.work_text equ dword [__sc+32] |
137 | __sc.work_graph equ dword [__sc+36] |
135 | __sc.work_graph equ dword [__sc+36] |
Line 138... | Line -... | ||
138 | - | ||
139 | ;local on_x |
- | |
140 | ;local on_y |
- | |
141 | 136 | ||
- | 137 | ;;;;;;;;;;;CALC WIDTH & HIGHT WINDOW & CENTER MONITOR POSITION;;;;;;;;;; |
|
- | 138 | show_err_: |
|
- | 139 | ;check memory |
|
- | 140 | push dword [arrea_xx] |
|
- | 141 | pop eax |
|
- | 142 | test eax,eax |
|
- | 143 | jnz @f |
|
- | 144 | ||
- | 145 | mcall 68,11 |
|
- | 146 | mcall 68,12,4096 |
|
- | 147 | push eax |
|
- | 148 | pop dword [arrea_xx] |
|
- | 149 | ||
- | 150 | push head1 |
|
- | 151 | pop dword[eax] |
|
- | 152 | ||
- | 153 | push 0x0 |
|
- | 154 | pop dword[eax+4] |
|
- | 155 | ||
142 | ;;;;;;;;;;;CALC WIDTH & HIGHT WINDOW & CENTER MONITOR POSITION;;;;;;;;;; |
156 | @@: |
143 | mov eax,48 ;get system color |
157 | mov eax,48 ;get system color |
144 | mov ebx,3 |
158 | mov ebx,3 |
145 | mov ecx,__sc |
159 | mov ecx,__sc |
146 | mov edx,sizeof.system_colors |
160 | mov edx,sizeof.system_colors |
147 | mcall |
161 | mcall |
148 | ;--------------------------------------------------------------------- |
- | |
149 | ;get with text imul on 6 pix |
162 | ;----------------------------------- |
150 | xor eax,eax |
163 | xor eax,eax |
151 | mov esi,err_message1 |
164 | mov esi,err_message1 |
152 | mov ecx,30 |
165 | mov ecx,30 |
- | 166 | align 4 |
|
153 | align 4 |
167 | lp: add ecx,7 |
154 | lp: lodsb |
168 | lodsb |
155 | test eax,eax |
- | |
156 | jz ex_lp |
- | |
157 | add ecx,7 |
169 | test eax,eax |
158 | jmp lp |
- | |
159 | ;--------------------------------------------------------------------- |
- | |
160 | ex_lp: |
- | |
161 | mcall 48,5 ;get system window |
- | |
162 | sub eax,ecx |
- | |
Line 163... | Line 170... | ||
163 | sub bx,90 |
170 | jnz lp |
164 | 171 | ||
Line -... | Line 172... | ||
- | 172 | push dword [arrea_xx] |
|
- | 173 | pop ebp |
|
- | 174 | ||
- | 175 | align 4 |
|
165 | shl eax,15 |
176 | @@: add ebp,4 |
- | 177 | mov eax,dword [ebp] |
|
Line -... | Line 178... | ||
- | 178 | ||
166 | shl ebx,15 |
179 | test eax,eax |
Line -... | Line 180... | ||
- | 180 | jnz @b |
|
- | 181 | ||
- | 182 | push err_message1 |
|
- | 183 | pop dword[ebp] |
|
- | 184 | ||
- | 185 | mov dword [ebp+4],eax |
|
- | 186 | ||
- | 187 | mcall 48,5 ;get system window |
|
- | 188 | cmp word[on_x],cx |
|
167 | 189 | jae @f; íå íóæíî îáíîâëÿòü |
|
- | 190 | ||
- | 191 | sub eax,ecx |
|
- | 192 | shl eax,15 |
|
- | 193 | mov ax,cx |
|
- | 194 | mov dword [on_x],eax |
|
- | 195 | ||
168 | mov ax,cx |
196 | @@: |
Line 169... | Line 197... | ||
169 | 197 | add word [on_y],12 |
|
170 | mov bx,90 |
- | |
Line 171... | Line -... | ||
171 | - | ||
172 | mov dword [on_x],eax |
- | |
Line 173... | Line -... | ||
173 | mov dword [on_y],ebx |
- | |
174 | - | ||
175 | ; mov eax,dword [esp+4] |
- | |
176 | ; mov dword [header_xx],eax |
- | |
177 | - | ||
178 | ; mov eax,dword [esp+8] |
- | |
179 | ; mov dword [message_xx],eax |
198 | sub bx,word [on_y] |
- | 199 | shl ebx,15 |
|
180 | 200 | mov bx,word [on_y] |
|
181 | jmp start |
201 | mov dword [on_y],ebx |
182 | __sc system_colors |
202 | |
183 | on_x dd ? |
203 | ret |
184 | on_y dd ? |
204 | |
Line 185... | Line 205... | ||
185 | message_xx dd ? |
205 | |
- | 206 | ;;;;;;;;;;;DRAW WINDOW;;;;;;;;;;;;;; |
|
186 | header_xx dd ? |
207 | align 4 |
187 | ;;;;;;;;;;;DRAW WINDOW;;;;;;;;;;;;;; |
208 | start__: |
188 | start: |
209 | mcall 40,0x5 ;set mask on events rewraw window and get id button. |
189 | mcall 40,0x5 ;set mask on events rewraw window and get id button. |
210 | .red_win: |
190 | red_win: |
211 | ;draw_window: |
191 | ;draw_window: |
212 | mcall 12,1 |
- | 213 | ||
192 | mcall 12,1 |
214 | xor eax,eax |
Line -... | Line 215... | ||
- | 215 | mov ebp,dword [arrea_xx] ; set point |
|
- | 216 | mov ebx,dword [on_x] |
|
- | 217 | mov ecx,dword [on_y] |
|
- | 218 | mov edx,__sc.work |
|
193 | 219 | or edx,0x33000000 |
|
194 | xor eax,eax |
220 | mov esi,__sc.grab_text |
195 | mov ebx,dword [on_x] |
221 | xor edi,edi |
196 | mov ecx,dword [on_y] |
222 | mov edi,dword [ebp] ;head1 |
197 | mov edx,__sc.work |
223 | mcall |
198 | or edx,0x33000000 |
224 | |
- | 225 | mov ebx,(10*65536+25-12) |
|
- | 226 | add ebp,4 ;inc index |
|
- | 227 | ||
- | 228 | @@: |
|
- | 229 | mov eax,4 |
|
- | 230 | add bx,12 |
|
- | 231 | mov ecx,__sc.grab_text |
|
199 | mov esi,__sc.grab_text |
232 | or ecx,0x90000000 |
200 | mov edi,head1 |
233 | mov edx,dword [ebp] ;err_message1 |
- | 234 | mcall |
|
201 | mcall |
235 | |
202 | 236 | add ebp,4 ;inc index |
|
203 | mov eax,4 |
237 | |
204 | mov ebx,(10*65536+25) |
238 | mov eax,dword [ebp] |
205 | mov ecx,__sc.grab_text |
239 | test eax,eax |
206 | or ecx,0x90000000 |
240 | jnz @b |
207 | mov edx,err_message1 |
241 | |
208 | mcall |
242 | mcall 12,2 |
209 | mcall 12,2 |
243 | align 4 |
210 | align 4 |
244 | |
211 | still: ;main loop |
245 | .still: ;main loop |
212 | mcall 10 ;wait event |
246 | mcall 10 ;wait event |
213 | dec eax |
247 | dec eax |
Line -... | Line 248... | ||
- | 248 | jz .red_win |
|
- | 249 | sub eax,2 |
|
- | 250 | jnz .still ;go to main loop |
|
- | 251 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|
- | 252 | .button: |
|
- | 253 | mcall 17 ;get id button |
|
- | 254 | test ah,ah ;if in ah 0, then go to still |
|
- | 255 | jz .still |
|
214 | jz red_win |
256 | mcall -1 |
215 | sub eax,2 |
257 | ret |
216 | jnz still ;go to main loop |
258 | |
217 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
259 | align 4 |
Line 262... | Line 304... | ||
262 | ret |
304 | ret |
263 | } |
305 | } |
Line 264... | Line 306... | ||
264 | 306 | ||
265 | 307 | ||
266 | 308 | ||
267 | 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 |
309 | 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__ |
268 | { |
310 | { |
269 | local end_steep |
311 | local end_steep |
Line 270... | Line 312... | ||
270 | local exit |
312 | local exit |
271 | ;--------------------------------------------------------------------- |
313 | ;--------------------------------------------------------------------- |
272 | ; loading Box_Lib library |
314 | ; loading Box_Lib library |
Line 273... | Line 315... | ||
273 | 315 | ||
Line 274... | Line 316... | ||
274 | mcall 68,19,system_path ; load of sys directory |
316 | mcall 68,19,system_path__ ; load of sys directory |
275 | test eax,eax |
317 | test eax,eax |
276 | jnz end_steep |
318 | jnz end_steep |
277 | 319 | ||
278 | copy_path library_name, cur_dir_path, library_path ;the macros making way /current pach a program/+ name system library |
320 | copy_path library_name__, cur_dir_path__, library_path__ ;the macros making way /current pach a program/+ name system library |
Line 279... | Line 321... | ||
279 | 321 | ||
280 | mcall 68,19,library_path ; load of alternative |
322 | mcall 68,19,library_path__ ; load of alternative |
Line 281... | Line 323... | ||
281 | test eax,eax |
323 | test eax,eax |
282 | jnz end_steep |
324 | jnz end_steep |
- | 325 | show_error_window err_message_found_lib__, head_f_l__ ;show error message /create window |
|
- | 326 | jmp exit |
|
- | 327 | ||
- | 328 | ||
- | 329 | align 4 |
|
- | 330 | end_steep: |
|
- | 331 | ||
283 | show_error_window err_message_found_lib, head_f_l ;show error message /create window |
332 | import_boxlib myimport, err_message_import__, head_f_i__ ;import |
284 | jmp exit |
333 | exit: |
Line 285... | Line 334... | ||
285 | 334 | test eax,eax |
|
286 | 335 | jz @f |
|
287 | align 4 |
336 | |
288 | end_steep: |
337 | mcall 51,1,start__,end_tr ; ñîçäàåì íîâûé ïîòîê ïî øàáëîíó |
289 | 338 | or eax,-1 |
|
290 | import_boxlib myimport, err_message_import, head_f_i ;import |
339 | @@: |
Line 291... | Line 340... | ||
291 | exit: |
340 | |
Line 292... | Line 341... | ||
292 | ;--------------------------------------------------------------------- |
341 | ;--------------------------------------------------------------------- |
293 | } |
342 | } |
294 | 343 | ||
Line 295... | Line 344... | ||
295 | 344 | ||
296 | 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 |
345 | 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__ |
297 | { |
346 | { |
Line 298... | Line 347... | ||
298 | local end_steep |
347 | local end_steep |
299 | local exit |
348 | local exit |
Line 300... | Line 349... | ||
300 | ;--------------------------------------------------------------------- |
349 | ;--------------------------------------------------------------------- |
301 | ; loading Box_Lib library |
350 | ; loading Box_Lib library |
Line 302... | Line 351... | ||
302 | 351 | ||
303 | copy_path library_name, cur_dir_path, library_path ;the macros making way /current pach a program/+ name system library |
352 | copy_path library_name__, cur_dir_path__, library_path__ ;the macros making way /current pach a program/+ name system library |
- | 353 | ||
- | 354 | mcall 68,19,library_path__ ; load of alternative |
|
- | 355 | test eax,eax |
|
- | 356 | jnz end_steep |
|
- | 357 | ||
- | 358 | mcall 68,19,system_path__ ; load of sys directory |
|
- | 359 | test eax,eax |
|
304 | 360 | jnz end_steep |
|
305 | mcall 68,19,library_path ; load of alternative |
361 | |
306 | test eax,eax |
362 | show_error_window err_message_found_lib__, head_f_l__ ;show error message /create window |
307 | jnz end_steep |
363 | jmp exit |
- | 364 | ||
- | 365 | align 4 |
|
308 | 366 | end_steep: |
|
309 | mcall 68,19,system_path ; load of sys directory |
367 | |
310 | test eax,eax |
368 | import_boxlib myimport, err_message_import__, head_f_i__ ;import |
311 | jnz end_steep |
369 | exit: |
312 | 370 | test eax,eax |
|
313 | show_error_window err_message_found_lib, head_f_l ;show error message /create window |
371 | jz @f |
314 | jmp exit |
372 | |
315 | 373 | mcall 51,1,start__,end_tr ; ñîçäàåì íîâûé ïîòîê ïî øàáëîíó |
|
316 | align 4 |
374 | or eax,-1 |
317 | end_steep: |
375 | @@: |
318 | 376 | ||
319 | import_boxlib myimport, err_message_import, head_f_i ;import |
377 | ;--------------------------------------------------------------------- |
320 | exit: |
378 | } |
321 | ;--------------------------------------------------------------------- |
379 | macro sys_load_libraries _start,_end |
322 | } |
380 | { |
Line 323... | Line -... | ||
323 | macro sys_load_libraries _start,_end |
- | |
324 | { |
- | |
325 | local lp |
- | |
326 | local end_steep |
381 | local exit_lp2 |
327 | local next |
382 | local lp2 |
Line 328... | Line 383... | ||
328 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
383 | local lp |
329 | library_name equ [ebp] |
384 | local end_steep |
330 | cur_dir_path equ [ebp+4] |
385 | local next |
331 | library_path equ [ebp+8] |
386 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
332 | system_path equ [ebp+12] |
387 | library_name__ equ [ebp] |
Line 333... | Line 388... | ||
333 | err_message_found_lib equ [ebp+16] |
388 | cur_dir_path__ equ [ebp+4] |
Line 334... | Line 389... | ||
334 | head_f_l equ [ebp+20] |
389 | library_path__ equ [ebp+8] |
335 | my_import equ [ebp+24] |
390 | system_path__ equ [ebp+12] |
336 | err_message_import equ [ebp+28] |
391 | err_message_found_lib__ equ [ebp+16] |
Line 337... | Line 392... | ||
337 | head_f_i equ [ebp+32] |
392 | head_f_l__ equ [ebp+20] |
Line 338... | Line 393... | ||
338 | adr_load_lib equ dword [ebp+36] |
393 | my_import equ [ebp+24] |
339 | status_lib equ dword [ebp+40] |
394 | err_message_import__ equ [ebp+28] |
Line 340... | Line 395... | ||
340 | 395 | head_f_i__ equ [ebp+32] |
|
341 | ; show_error_window err_message_found_lib, head_f_l ;show error message /create window |
396 | adr_load_lib equ dword [ebp+36] |
342 | ; int 0x40 |
397 | status_lib equ dword [ebp+40] |
343 | 398 | ||
Line 344... | Line 399... | ||
344 | mov ebp,_start |
399 | mov ebp,_start |
345 | mov ecx,((_end-_start)/ll_struc_size) |
400 | mov ecx,((_end-_start)/ll_struc_size) |
Line 346... | Line 401... | ||
346 | 401 | ||
Line 374... | Line 429... | ||
374 | next: |
429 | next: |
375 | pop ecx |
430 | pop ecx |
376 | add ebp,ll_struc_size |
431 | add ebp,ll_struc_size |
377 | dec ecx |
432 | dec ecx |
378 | jnz lp |
433 | jnz lp |
- | 434 | ||
- | 435 | ;---------------------------------- |
|
- | 436 | mov ebp,_start |
|
- | 437 | mov ecx,((_end-_start)/ll_struc_size) |
|
- | 438 | ||
- | 439 | align 4 |
|
- | 440 | lp2: |
|
- | 441 | mov eax,status_lib |
|
- | 442 | test eax,eax |
|
- | 443 | jz @f |
|
- | 444 | ||
- | 445 | mcall 51,1,start__,end_tr ; ñîçäàåì íîâûé ïîòîê ïî øàáëîíó |
|
- | 446 | or eax,-1 |
|
- | 447 | jmp exit_lp2 |
|
- | 448 | ||
- | 449 | @@: |
|
- | 450 | add ebp,ll_struc_size |
|
- | 451 | dec ecx |
|
- | 452 | jnz lp2 |
|
- | 453 | exit_lp2: |
|
379 | } |
454 | } |
Line 380... | Line 455... | ||
380 | 455 | ||
381 | macro load_libraries _start,_end |
456 | macro load_libraries _start,_end |
- | 457 | { |
|
- | 458 | local lp2 |
|
382 | { |
459 | local exit_lp2 |
383 | local lp |
460 | local lp |
384 | local end_steep |
461 | local end_steep |
385 | local next |
462 | local next |
386 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
463 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
387 | library_name equ [ebp] |
464 | library_name__ equ [ebp] |
388 | cur_dir_path equ [ebp+4] |
465 | cur_dir_path__ equ [ebp+4] |
389 | library_path equ [ebp+8] |
466 | library_path__ equ [ebp+8] |
390 | system_path equ [ebp+12] |
467 | system_path__ equ [ebp+12] |
391 | err_message_found_lib equ [ebp+16] |
468 | err_message_found_lib__ equ [ebp+16] |
392 | head_f_l equ [ebp+20] |
469 | head_f_l__ equ [ebp+20] |
393 | my_import equ [ebp+24] |
470 | my_import equ [ebp+24] |
394 | err_message_import equ [ebp+28] |
471 | err_message_import__ equ [ebp+28] |
395 | head_f_i equ [ebp+32] |
472 | head_f_i__ equ [ebp+32] |
396 | adr_load_lib equ dword [ebp+36] |
473 | adr_load_lib equ dword [ebp+36] |
Line 397... | Line 474... | ||
397 | status_lib equ dword [ebp+40] |
474 | status_lib equ dword [ebp+40] |
398 | 475 | ||
Line 399... | Line 476... | ||
399 | mov ebp,_start |
476 | mov ebp,_start |
400 | mov ecx,((_end-_start)/ll_struc_size) |
477 | mov ecx,((_end-_start)/ll_struc_size) |
Line 401... | Line 478... | ||
401 | 478 | ||
Line 402... | Line 479... | ||
402 | align 4 |
479 | align 4 |
403 | lp: push ecx |
480 | lp: push ecx |
404 | 481 | ||
Line 405... | Line 482... | ||
405 | copy_path library_name, cur_dir_path, library_path ;the macros making way /current pach a program/+ name system library |
482 | copy_path library_name__, cur_dir_path__, library_path__ ;the macros making way /current pach a program/+ name system library |
406 | 483 | ||
407 | mcall 68,19,library_path ; load of alternative |
484 | mcall 68,19,library_path__ ; load of alternative |
Line 408... | Line 485... | ||
408 | test eax,eax |
485 | test eax,eax |
Line 409... | Line 486... | ||
409 | jnz end_steep |
486 | jnz end_steep |
410 | 487 | ||
Line 411... | Line 488... | ||
411 | mcall 68,19,system_path ; load of sys directory |
488 | mcall 68,19,system_path__ ; load of sys directory |
412 | test eax,eax |
489 | test eax,eax |
413 | jnz end_steep |
490 | jnz end_steep |
Line 414... | Line 491... | ||
414 | 491 | ||
Line 415... | Line 492... | ||
415 | or status_lib,0x1 ; status of code - enable error - not found library |
492 | or status_lib,0x1 ; status of code - enable error - not found library |
416 | 493 | ||
Line 417... | Line 494... | ||
417 | show_error_window err_message_found_lib, head_f_l ;show error message /create window |
494 | show_error_window err_message_found_lib__, head_f_l__ ;show error message /create window |
Line 431... | Line 508... | ||
431 | next: |
508 | next: |
432 | pop ecx |
509 | pop ecx |
433 | add ebp,ll_struc_size |
510 | add ebp,ll_struc_size |
434 | dec ecx |
511 | dec ecx |
435 | jnz lp |
512 | jnz lp |
- | 513 | ||
- | 514 | ;----------------------------------------------- |
|
- | 515 | mov ebp,_start |
|
- | 516 | mov ecx,((_end-_start)/ll_struc_size) |
|
- | 517 | ||
- | 518 | align 4 |
|
- | 519 | lp2: |
|
- | 520 | mov eax,status_lib |
|
- | 521 | test eax,eax |
|
- | 522 | jz @f |
|
- | 523 | ||
- | 524 | mcall 51,1,start__,end_tr ; ñîçäàåì íîâûé ïîòîê ïî øàáëîíó |
|
- | 525 | or eax,-1 |
|
- | 526 | jmp exit_lp2 |
|
- | 527 | ||
- | 528 | @@: |
|
- | 529 | add ebp,ll_struc_size |
|
- | 530 | dec ecx |
|
- | 531 | jnz lp2 |
|
- | 532 | exit_lp2: |
|
- | 533 | ||
436 | } |
534 | } |
Line 437... | Line 535... | ||
437 | 535 | ||
438 | 536 | ||
Line 456... | Line 554... | ||
456 | 554 | ||
Line 457... | Line 555... | ||
457 | call show_err_ |
555 | call show_err_ |
458 | 556 | ||
- | 557 | add esp,8 |
|
459 | add esp,8 |
558 | popad ;restore all registers |
Line 460... | Line 559... | ||
460 | popad ;restore all registers |
559 | or eax,-1 ;óâû |
461 | } |
560 | } |
462 | 561 | ||
463 | 562 | ||
464 | macro import_boxlib myimport, err_message_import, head_f_i |
563 | macro import_boxlib myimport, err_message_import__, head_f_i__ |
465 | { |
564 | { |
Line 505... | Line 604... | ||
505 | mov [esi-4], eax |
604 | mov [esi-4], eax |
506 | pop edx |
605 | pop edx |
507 | jmp import_loop |
606 | jmp import_loop |
508 | import_not_found: |
607 | import_not_found: |
509 | add esp,4 |
608 | add esp,4 |
510 | show_error_window err_message_import, head_f_i ;show error message /create window |
609 | show_error_window err_message_import__, head_f_i__ ;show error message /create window |
511 | jmp e.exit |
610 | jmp e.exit |
512 | import_done: |
611 | import_done: |
513 | xor eax,eax |
612 | xor eax,eax |
514 | e.exit: |
613 | e.exit: |
515 | ;--------------------------------------------------------------------- |
614 | ;--------------------------------------------------------------------- |
516 | } |
615 | } |
517 | ll_struc_size = 44;($-library_name) ; constant size of struct |
616 | ll_struc_size = 44;($-library_name__) ; constant size of struct |
518 | 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; struct for loading libraries |
617 | 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__; struct for loading libraries |
519 | { |
618 | { |
520 | .library_name dd library_name |
619 | .library_name__ dd library_name__ ; èìÿ çàãðóæàåìîé áèáëèîòåêè |
521 | .cur_dir_path dd cur_dir_path |
620 | .cur_dir_path__ dd cur_dir_path__ ; óêàçàòåëü íà áóôåð â êîòîðîì ñîäåðæèòüñÿ ïóòü îò êóäà áûëà çàïóùåíà ïðîãðàììà |
- | 621 | ||
522 | .library_path dd library_path |
622 | .library_path__ dd library_path__ ; óêàçàòåëü íà áóôåð â êîòîðîì áóäåò ñîôîðèìèðîâàí ïóòü ê áèáëèîòåêè, åñëè íóæíî âû÷èñëèòü ïóòü äî ëèáû ñ ìåñòà çàïóñêà ïðîãðàììû, îáû÷íî íóæíî, â ñëó÷àÿõ, åñëè ëèáà ðàñïîëîæåíà â òîé æå ïàïêå |
523 | .system_path dd system_path |
623 | .complete_path dd system_path__ ; ïóòü êîòîðûé ÷åòêî ñîäåðæèò ïóòü |
- | 624 | ||
524 | .err_message_found_lib dd err_message_found_lib |
625 | .err_message_found_lib__ dd err_message_found_lib__ |
525 | .head_f_l dd head_f_l |
626 | .head_f_l__ dd head_f_l__ |
526 | .my_import dd my_import |
627 | .my_import dd my_import |
527 | .err_message_import dd err_message_import |
628 | .err_message_import__ dd err_message_import__ |
528 | .head_f_i dd head_f_i |
629 | .head_f_i__ dd head_f_i__ |
- | 630 | ||
529 | .adr_load_lib dd 0x0 |
631 | .adr_load_lib dd 0x0 |
530 | .status_lib dd 0x0 ;status of load library |
632 | .status_lib dd 0x0 ;status of load library |
531 | ; |
633 | ; |
532 | - | ||
533 | } |
634 | } |