Subversion Repositories Kolibri OS

Rev

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
}