Subversion Repositories Kolibri OS

Rev

Rev 4290 | Rev 4810 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
341 heavyiron 1
;   RDsave для Kolibri (0.6.5.0 и старше)
4213 heavyiron 2
;   Save RAM-disk to hard or floppy drive
1606 mario79 3
;---------------------------------------------------------------------
205 heavyiron 4
;   Mario79 2005
341 heavyiron 5
;   Heavyiron 12.02.2007
1070 Lrz 6
;        11.05.2009 - для работы нужна системная библиотека box_lib.obj
4213 heavyiron 7
;   Mario79   08.09.2010 - select path with OpenDialog,keys 1,2,3,4 for select options
8
;   Heavyiron 01.12.2013 - new logic
341 heavyiron 9
;---------------------------------------------------------------------
205 heavyiron 10
appname equ 'RDsave '
4319 heavyiron 11
version equ '1.43'
4213 heavyiron 12
debug   equ no
3634 fedesco 13
 
4213 heavyiron 14
use32        ; включить 32-битный режим ассемблера
15
org 0x0      ; адресация с нуля
205 heavyiron 16
 
4213 heavyiron 17
db 'MENUET01'    ; 8-байтный идентификатор MenuetOS
18
dd 0x01          ; версия заголовка (всегда 1)
19
dd START         ; адрес первой команды
20
dd IM_END        ; размер программы
21
dd I_END         ; количество памяти
22
dd stacktop      ; адрес вершины стека
23
dd PARAMS        ; адрес буфера для параметров
24
dd cur_dir_path
205 heavyiron 25
 
4213 heavyiron 26
 
27
include 'lang.inc'
28
include '../../../macros.inc'
29
if debug eq yes
30
include '../../../debug.inc'
31
end if
32
include '../../../proc32.inc'
33
include '../../../dll.inc'
1111 Lrz 34
include '../../../develop/libraries/box_lib/load_lib.mac'
1373 IgorA 35
include '../../../develop/libraries/box_lib/trunk/box_lib.mac'
4213 heavyiron 36
include 'str.inc'
1070 Lrz 37
 
4213 heavyiron 38
        @use_library
341 heavyiron 39
;---------------------------------------------------------------------
40
;---  НАЧАЛО ПРОГРАММЫ  ----------------------------------------------
41
;---------------------------------------------------------------------
1070 Lrz 42
align 4
43
START:
4213 heavyiron 44
;---------------------------------------------------------------------
45
        mcall  48,3,sc,sizeof.system_colors
46
        mcall  68,11
1606 mario79 47
 
48
load_libraries l_libs_start,end_l_libs
4213 heavyiron 49
        inc     eax
50
        test    eax,eax
51
        jz      close
1606 mario79 52
 
4290 heavyiron 53
        stdcall dll.Init,[init_lib]
205 heavyiron 54
 
4290 heavyiron 55
        invoke  ini_get_int,ini_file,asettings,aautoclose,0
56
        mov     [autoclose],eax
57
        invoke  ini_get_str,ini_file,apath,apath,fname_buf,4096,path
58
        stdcall _lstrcpy,ini_path,fname_buf
59
        stdcall _lstrcpy,filename_area,start_temp_file_name
4213 heavyiron 60
 
4270 heavyiron 61
        mov   eax,PARAMS
62
        cmp   byte[eax], 0
4213 heavyiron 63
        je    no_params
4270 heavyiron 64
        cmp   byte[eax], 'h'
4213 heavyiron 65
        je    @f
4270 heavyiron 66
        cmp   byte[eax], 'H'
4213 heavyiron 67
        jne   .no_h
1606 mario79 68
@@:
4213 heavyiron 69
        mov   [hidden],1
70
        jmp   no_params
71
.no_h:
72
        mov   [param],1
4270 heavyiron 73
        stdcall _lstrcpy,fname_buf,eax
4213 heavyiron 74
        mov   ah,2
75
        jmp   noclose
1228 Lrz 76
 
4270 heavyiron 77
;---------------------------------------------------------------------
4213 heavyiron 78
no_params:
4290 heavyiron 79
        stdcall _lstrcpy,check_dir,ini_path
4213 heavyiron 80
        call    check_path
81
        test    eax,eax
82
        jz      path_ok
83
        cmp     eax,6
84
        je      path_ok
85
;---------------------------------------------------------------------
86
if debug eq yes
87
dps 'read_folder_error'
88
newline
89
end if
90
;---------------------------------------------------------------------
4290 heavyiron 91
default_path:
92
        stdcall _lstrcpy,fname_buf,communication_area_default_path
4213 heavyiron 93
        mov     [hidden],0
94
 
95
;OpenDialog     initialisation
96
        push    dword OpenDialog_data
97
        call    [OpenDialog_Init]
98
 
1606 mario79 99
; prepare for PathShow
4213 heavyiron 100
        push    dword PathShow_data_1
101
        call    [PathShow_prepare]
4290 heavyiron 102
 
103
        mcall   40,0x00000027
104
 
4213 heavyiron 105
        call    draw_window
106
        mov     ah,3
107
        jmp     noclose
108
;---------------------------------------------------------------------
109
path_ok:
110
;OpenDialog     initialisation
111
        push    dword OpenDialog_data
112
        call    [OpenDialog_Init]
1606 mario79 113
 
4213 heavyiron 114
; prepare for PathShow
115
        push    dword PathShow_data_1
116
        call    [PathShow_prepare]
205 heavyiron 117
 
4213 heavyiron 118
        mcall   40,0x00000027
119
 
120
        cmp     [hidden],1
121
        jne     red
122
        mov     ah,2
123
        jmp     noclose
124
red:
125
        call    draw_window
341 heavyiron 126
;---------------------------------------------------------------------
127
still:
4213 heavyiron 128
        mcall 10
205 heavyiron 129
 
4213 heavyiron 130
        dec     eax      ; перерисовать окно?
131
        jz      red      ; если да - на метку red
132
        dec     eax
133
        jz      key
134
        dec     eax
135
        jz      button
136
        jmp     still
1606 mario79 137
;---------------------------------------------------------------------
341 heavyiron 138
button:
4213 heavyiron 139
        mcall   17      ; получить идентификатор нажатой кнопки
140
        cmp     ah,1             ; кнопка с id=1("закрыть")?
141
        jne     noclose
1070 Lrz 142
close:
4290 heavyiron 143
        mcall   -1          ; функция -1: завершить программу
144
 
4213 heavyiron 145
;---------------------------------------------------------------------
146
key:
147
        mcall   2
148
        cmp     ah,0x1b
149
        je      close
150
        cmp     ah,0x0D
151
        jne     @f
152
        mov     ah,2
153
        jmp     noclose
154
@@:
155
        cmp     ah,9h
156
        jne     still
157
;---------------------------------------------------------------------
341 heavyiron 158
noclose:
4270 heavyiron 159
        mov     ecx,fname_buf
4213 heavyiron 160
        push  16
161
        mov   ebx,1
162
        cmp   byte[ecx+1],'f'
163
        je    @f
164
        cmp   byte[ecx+1],'F'
165
        jne   not_fdd
166
@@:
167
        cmp   byte[ecx+4],'1'
168
        jne   @f
169
        cmp   ah,2
170
        je    doit
171
@@:
172
        inc   ebx
173
        cmp   ah,2
174
        je    doit
175
not_fdd:
176
        push  18
177
        mov   ebx,6     ; 18.6 = save to specified folder
178
        cmp   ah,2
179
        je    doit
1606 mario79 180
 
181
; invoke OpenDialog
4213 heavyiron 182
        push    dword OpenDialog_data
183
        call    [OpenDialog_Start]
184
        cmp     [OpenDialog_data.status],1
185
        jne     still
1606 mario79 186
 
187
; prepare for PathShow
4213 heavyiron 188
        push    dword PathShow_data_1
189
        call    [PathShow_prepare]
190
        call    draw_window
191
        mov     ah,2
192
        jmp     noclose
1606 mario79 193
 
4213 heavyiron 194
doit:
4270 heavyiron 195
        cmp     [param],0
4290 heavyiron 196
        jne      @f
4213 heavyiron 197
        call    save_ini
4270 heavyiron 198
@@:
4290 heavyiron 199
        cmp     byte[ecx+1],'r'
200
        je      @f
201
        cmp     byte[ecx+1],'R'
202
        jne     not_rd
4270 heavyiron 203
@@:
4290 heavyiron 204
        mov     edx,rdError
205
        call    print_err
4270 heavyiron 206
        jmp     still
4290 heavyiron 207
not_rd:
4319 heavyiron 208
        cmp      [hidden],0
4290 heavyiron 209
        jne      @f
210
        pusha
4319 heavyiron 211
        stdcall  _lstrcpy,msg,label2
212
        mov      eax,[sc.work_text]
213
        or       eax,0xc0000088
214
        mov      [color],eax
215
        call    print_msg
4290 heavyiron 216
        popa
4270 heavyiron 217
@@:
4213 heavyiron 218
        pop     eax
219
        mcall
220
        call    check_for_error
221
        jmp     still
1606 mario79 222
 
223
;---------------------------------------------------------------------
4213 heavyiron 224
check_for_error:                      ;Обработчик ошибок
225
        test    eax,eax
226
        jz      print_ok
227
        cmp     ebx,6
228
        je      @f
229
        mov     edx,error11
230
        jmp     print_err
231
@@:
232
        cmp     eax, 11
233
        ja      .unknown
4270 heavyiron 234
        mov     edx, [errors+eax*4]
4319 heavyiron 235
        stdcall _lstrcpy,msg,error
236
        stdcall _lstrcat,msg,edx
237
        mov     edx,msg
4213 heavyiron 238
        jmp     print_err
239
.unknown:
240
        mov     edx, aUnknownError
4290 heavyiron 241
 
4213 heavyiron 242
print_err:
4270 heavyiron 243
        stdcall _lstrlen,ini_path
4290 heavyiron 244
        pusha
4270 heavyiron 245
        invoke  ini_set_str,ini_file,apath,apath,ini_path,eax
4290 heavyiron 246
        popa
4319 heavyiron 247
        stdcall _lstrcpy,msg,edx
4270 heavyiron 248
        cmp     [hidden],1
249
        je      @f
250
        cmp     [param],1
251
        je      @f
4319 heavyiron 252
        mov      ecx,[sc.work_text]
253
        or       ecx,0xc0880000
254
        mov      [color],ecx
255
        call    print_msg
4213 heavyiron 256
        ret
4270 heavyiron 257
@@:
258
        mov     dword [is_notify + 8], edx
259
        mcall   70, is_notify
4290 heavyiron 260
        mov     [param],0
261
        mov     [hidden],0
262
        stdcall _lstrcpy,fname_buf,ini_path
263
        jmp     no_params
264
 
4213 heavyiron 265
print_ok:
4319 heavyiron 266
        cmp      [hidden],1
4270 heavyiron 267
        je       @f
4319 heavyiron 268
        cmp      [param],1
4270 heavyiron 269
        je       @f
4319 heavyiron 270
        stdcall  _lstrcpy,msg,ok
271
        mov      ecx,[sc.work_text]
272
        or       ecx,0xc0008800
273
        mov      [color],ecx
274
        call     print_msg
275
        mcall    5,100
276
        cmp      [autoclose],1
277
        je       close
278
        ret
279
@@:
280
        stdcall  _lstrcpy,msg,ok
281
        stdcall  _lstrcat,msg,fname_buf
282
        mov      edx,msg
283
        mov      dword [is_notify + 8], edx
284
        mcall    70, is_notify
285
        mcall    5,100
286
        jmp      close
287
;---------------------------------------------------------------------
288
print_msg:
289
        mcall   13,<5,380>,<96,10>,[sc.work]
290
        stdcall _lstrlen,msg
291
        lea     eax,[eax+eax*2]
292
        add     eax,eax
4270 heavyiron 293
        mov     ebx,390
294
        sub     ebx,eax
4290 heavyiron 295
        shl     ebx,15
4270 heavyiron 296
        add     ebx,96
4319 heavyiron 297
        mcall   4, ,[color],msg, ,[sc.work]
4270 heavyiron 298
        ret
1606 mario79 299
;---------------------------------------------------------------------
4213 heavyiron 300
draw_PathShow:
4290 heavyiron 301
        pusha
4213 heavyiron 302
        mcall   13,<15,280>,<32,16>,0xffffff
303
        push    dword PathShow_data_1
304
        call    [PathShow_draw]
4290 heavyiron 305
        popa
4213 heavyiron 306
        ret
1606 mario79 307
;---------------------------------------------------------------------
4213 heavyiron 308
save_ini:
4290 heavyiron 309
        pusha
4213 heavyiron 310
        stdcall _lstrlen,fname_buf
311
        invoke  ini_set_str,ini_file,apath,apath,fname_buf,eax
312
        invoke  ini_set_int,ini_file,asettings,aautoclose,[autoclose]
4290 heavyiron 313
        popa
4213 heavyiron 314
        ret
341 heavyiron 315
;---------------------------------------------------------------------
4213 heavyiron 316
check_path:
317
stdcall _lstrlen,check_dir
4290 heavyiron 318
        add     eax,check_dir
4213 heavyiron 319
@@:
4290 heavyiron 320
        dec     eax
321
        cmp     byte [eax],'/'
4213 heavyiron 322
        jne     @b
4290 heavyiron 323
        mov     byte [eax+1],0
4213 heavyiron 324
 
325
        mcall   70,read_folder
326
        ret
1606 mario79 327
;---------------------------------------------------------------------
4213 heavyiron 328
;---  Draw window  ---------------------------------------------------
341 heavyiron 329
;---------------------------------------------------------------------
205 heavyiron 330
draw_window:
4213 heavyiron 331
        mcall   12,1
205 heavyiron 332
 
4213 heavyiron 333
        mov     edx,[sc.work]
334
        or      edx,0x34000000
4270 heavyiron 335
        mcall   0,<200,400>,<200,130>, , ,title
205 heavyiron 336
 
4213 heavyiron 337
;buttons
4290 heavyiron 338
        mcall   8,<198,70>,<68,20>,1,[sc.work_button]
4213 heavyiron 339
        inc     edx
340
        mcall    ,<125,70>,
341
        inc     edx
342
        mcall    ,<300,75>,<30,20>
1070 Lrz 343
 
4213 heavyiron 344
;labels
345
        mov     ecx,[sc.work_button_text]
346
        or      ecx,0x80000000
347
        mcall   4,<134,75>, ,save
4290 heavyiron 348
        mcall    ,<215,75>, ,cancel
4213 heavyiron 349
        mcall    ,<315,36>, ,select
350
 
351
        mov     ecx,[sc.work]
352
        mov     dword [frame_data.font_backgr_color],ecx
353
        push    dword frame_data
354
        call    [Frame_draw]
205 heavyiron 355
 
4213 heavyiron 356
        call    draw_PathShow
4319 heavyiron 357
        call    print_msg
205 heavyiron 358
 
4213 heavyiron 359
        mcall   12,2
360
        ret
205 heavyiron 361
 
341 heavyiron 362
;---------------------------------------------------------------------
4213 heavyiron 363
;---  Data  ----------------------------------------------------------
1606 mario79 364
;---------------------------------------------------------------------
205 heavyiron 365
if lang eq ru
4213 heavyiron 366
save            db 'Сохранить',0
4290 heavyiron 367
cancel          db 'Отмена',0
4213 heavyiron 368
select          db 'Изменить',0
369
label1          db ' Образ будет сохранен в: ',0
4290 heavyiron 370
label2          db 'Сохранение образа...',0
371
ok              db 'RAM-диск сохранен успешно ',0
372
error1          db 'не определена база и/или раздел жёсткого диска',0
373
error2          db 'функция не поддерживается для данной файловой системы',0
374
error3          db 'неизвестная файловая система',0
375
error4          db 'странно... Ошибка 4',0
376
error5          db 'несуществующий путь',0
377
error6          db 'файл закончился',0
378
error7          db 'указатель вне памяти приложения',0
379
error8          db 'диск заполнен',0
380
error9          db 'файловая структура разрушена',0
381
error10         db 'доступ запрещён',0
4213 heavyiron 382
error11         db 'Ошибка устройства',0
4270 heavyiron 383
aUnknownError   db 'Неизвестная ошибка',0
384
rdError         db 'Нельзя сохранять образ в самого себя',0
4290 heavyiron 385
error           db 'Ошибка: ',0
1606 mario79 386
;---------------------------------------------------------------------
605 kaitz 387
else if lang eq et
4213 heavyiron 388
save            db 'Salvesta',0
4290 heavyiron 389
cancel          db 'Cancel',0
4213 heavyiron 390
select          db ' Valige',0
391
label1          db ' RAM-drive will be saved as: ',0
4290 heavyiron 392
label2          db 'Saving in progress...',0
4213 heavyiron 393
ok              db 'RAM-ketas salvestatud edukalt ',0
4290 heavyiron 394
error1          db 'hard disk base and/or partition not defined',0
395
error2          db 'the file system does not support this function',0
396
error3          db 'tundmatu failis№steem',0
397
error4          db 'strange... Error 4',0
398
error5          db 'vigane teekond',0
399
error6          db 'end of file',0
400
error7          db 'pointer is outside of application memory',0
401
error8          db 'ketas tфis',0
4213 heavyiron 402
error9          db 'FAT tabel vigane',0
4290 heavyiron 403
error10         db 'juurdepффs keelatud',0
4213 heavyiron 404
error11         db 'Seadme viga',0
405
aUnknownError   db 'Tundmatu viga',0
4271 heavyiron 406
rdError         db "You can't save image on itself",0
4290 heavyiron 407
error           db 'Viga: ',0
1606 mario79 408
;---------------------------------------------------------------------
3634 fedesco 409
else if lang eq it
4213 heavyiron 410
save            db '  Salva',0
4290 heavyiron 411
cancel          db 'Cancel',0
4213 heavyiron 412
select          db 'Seleziona',0
413
label1          db ' RAM-drive will be saved as: ',0
4290 heavyiron 414
label2          db 'Saving in progress...',0
4213 heavyiron 415
ok              db 'Il RAM-drivet e stato salvato ',0
4290 heavyiron 416
error1          db 'hard disk base and/or partition not defined',0
417
error2          db 'the file system does not support this function',0
418
error3          db 'filesystem sconosciuto',0
419
error4          db 'strange... Error 4',0
420
error5          db 'percorso non valido',0
421
error6          db 'end of file',0
422
error7          db 'pointer is outside of application memory',0
423
error8          db 'disco pieno',0
424
error9          db 'tabella FAT corrotta',0
425
error10         db 'accesso negato',0
4213 heavyiron 426
error11         db 'Errore di device',0
427
aUnknownError   db 'Errore sconosciuto',0
4271 heavyiron 428
rdError         db "You can't save image on itself",0
4290 heavyiron 429
error           db 'Errore: ',0
3634 fedesco 430
;---------------------------------------------------------------------
205 heavyiron 431
else
4213 heavyiron 432
save            db '  Save',0
4290 heavyiron 433
cancel          db 'Cancel',0
4213 heavyiron 434
select          db ' Select',0
435
label1          db ' RAM-drive will be saved as: ',0
4290 heavyiron 436
label2          db 'Saving in progress...',0
437
ok              db 'RAM-drive was saved successfully ',0
438
error1          db 'hard disk base and/or partition not defined',0
439
error2          db 'the file system does not support this function',0
440
error3          db 'unknown file system',0
441
error4          db 'strange... Error 4',0
442
error5          db 'incorrect path',0
443
error6          db 'end of file',0
444
error7          db 'pointer is outside of application memory',0
445
error8          db 'disk is full',0
446
error9          db 'file structure is destroyed',0
447
error10         db 'access denied',0
4213 heavyiron 448
error11         db 'Device error',0
449
aUnknownError   db 'Unknown error',0
4271 heavyiron 450
rdError         db "You can't save image on itself",0
4290 heavyiron 451
error           db 'Error: ',0
205 heavyiron 452
end if
4213 heavyiron 453
;---------------------------------------------------------------------
454
errors:
455
        dd      ok
456
        dd      error1
457
        dd      error2
458
        dd      error3
459
        dd      error4
460
        dd      error5
461
        dd      error6
462
        dd      error7
463
        dd      error8
464
        dd      error9
465
        dd      error10
466
        dd      error11
467
;---------------------------------------------------------------------
4270 heavyiron 468
 
469
title   db appname,version,0
470
 
4213 heavyiron 471
;Lib_DATA
1070 Lrz 472
;Всегда соблюдать последовательность в имени.
4213 heavyiron 473
system_dir_Boxlib       db '/sys/lib/box_lib.obj',0
474
system_dir_ProcLib      db '/sys/lib/proc_lib.obj',0
475
system_dir_libini       db '/sys/lib/libini.obj',0
476
;---------------------------------------------------------------------
1070 Lrz 477
head_f_i:
4213 heavyiron 478
head_f_l        db 'System error',0
1606 mario79 479
 
4213 heavyiron 480
err_message_found_lib1  db 'box_lib.obj - Not found!',0
481
err_message_found_lib2  db 'proc_lib.obj - Not found!',0
482
err_message_found_lib3  db 'libini.obj - Not found!',0
1606 mario79 483
 
4213 heavyiron 484
err_message_import1     db 'box_lib.obj - Wrong import!',0
485
err_message_import2     db 'proc_lib.obj - Wrong import!',0
486
err_message_import3     db 'libini.obj - Wrong import!',0
1606 mario79 487
;---------------------------------------------------------------------
488
l_libs_start:
489
 
490
library01  l_libs system_dir_Boxlib+9, cur_dir_path, library_path, system_dir_Boxlib, \
491
err_message_found_lib1, head_f_l, Box_lib_import, err_message_import1, head_f_i
492
 
493
library02  l_libs system_dir_ProcLib+9, cur_dir_path, library_path, system_dir_ProcLib, \
494
err_message_found_lib2, head_f_l, ProcLib_import, err_message_import2, head_f_i
495
 
4213 heavyiron 496
library03  l_libs system_dir_libini+9, cur_dir_path, library_path, system_dir_libini, \
497
err_message_found_lib3, head_f_l, libini_import, err_message_import3, head_f_i
498
 
1606 mario79 499
end_l_libs:
500
;---------------------------------------------------------------------
501
OpenDialog_data:
4213 heavyiron 502
.type                   dd 1    ; Save
503
.procinfo               dd procinfo     ;+4
504
.com_area_name          dd communication_area_name      ;+8
505
.com_area               dd 0    ;+12
506
.opendir_path           dd temp_dir_path        ;+16
507
.dir_default_path       dd communication_area_default_path      ;+20
508
.start_path             dd open_dialog_path     ;+24
509
.draw_window            dd draw_window  ;+28
510
.status                 dd 0    ;+32
511
.openfile_pach          dd fname_buf    ;+36
512
.filename_area          dd filename_area        ;+40
513
.filter_area            dd Filter
1606 mario79 514
.x:
4213 heavyiron 515
.x_size                 dw 420 ;+48 ; Window X size
516
.x_start                dw 200 ;+50 ; Window X position
1606 mario79 517
.y:
4213 heavyiron 518
.y_size                 dw 320 ;+52 ; Window y size
519
.y_start                dw 120 ;+54 ; Window Y position
1606 mario79 520
 
521
communication_area_name:
4213 heavyiron 522
        db 'FFFFFFFF_open_dialog',0
1606 mario79 523
open_dialog_path:
1702 Lrz 524
if __nightbuild eq yes
525
    db '/sys/MANAGERS/opendial',0
526
else
527
    db '/sys/File Managers/opendial',0
528
end if
4213 heavyiron 529
communication_area_default_path:
530
        db '/',0
1606 mario79 531
 
532
Filter:
4213 heavyiron 533
dd      Filter.end - Filter
1606 mario79 534
.1:
4213 heavyiron 535
db      'IMG',0
536
db      'IMA',0
1606 mario79 537
.end:
4213 heavyiron 538
db      0
1606 mario79 539
 
4213 heavyiron 540
start_temp_file_name:   db 'kolibri.img',0
1606 mario79 541
 
542
;---------------------------------------------------------------------
1070 Lrz 543
align 4
1606 mario79 544
ProcLib_import:
4213 heavyiron 545
OpenDialog_Init         dd aOpenDialog_Init
546
OpenDialog_Start        dd aOpenDialog_Start
1606 mario79 547
        dd      0
548
        dd      0
4213 heavyiron 549
aOpenDialog_Init        db 'OpenDialog_init',0
550
aOpenDialog_Start       db 'OpenDialog_start',0
1606 mario79 551
;---------------------------------------------------------------------
4213 heavyiron 552
PathShow_data_1:
553
.type                   dd 0    ;+0
554
.start_y                dw 36   ;+4
555
.start_x                dw 20   ;+6
556
.font_size_x            dw 6    ;+8     ; 6 - for font 0, 8 - for font 1
557
.area_size_x            dw 270  ;+10
558
.font_number            dd 0    ;+12    ; 0 - monospace, 1 - variable
559
.background_flag        dd 0    ;+16
560
.font_color             dd 0    ;+20
561
.background_color       dd 0    ;+24
562
.text_pointer           dd fname_buf    ;+28
563
.work_area_pointer      dd text_work_area       ;+32
564
.temp_text_length       dd 0    ;+36
565
;---------------------------------------------------------------------
1606 mario79 566
align 4
3634 fedesco 567
Box_lib_import:
4213 heavyiron 568
;edit_box_draw           dd aEdit_box_draw
569
;edit_box_key            dd aEdit_box_key
570
;edit_box_mouse          dd aEdit_box_mouse
571
;version_ed              dd aVersion_ed
485 heavyiron 572
 
4213 heavyiron 573
PathShow_prepare        dd sz_PathShow_prepare
574
PathShow_draw           dd sz_PathShow_draw
575
Frame_draw              dd sz_Frame_draw
576
                        dd 0
577
                        dd 0
1070 Lrz 578
 
4213 heavyiron 579
;aEdit_box_draw          db 'edit_box',0
580
;aEdit_box_key           db 'edit_box_key',0
581
;aEdit_box_mouse         db 'edit_box_mouse',0
582
;aVersion_ed             db 'version_ed',0
1070 Lrz 583
 
4213 heavyiron 584
sz_PathShow_prepare     db 'PathShow_prepare',0
585
sz_PathShow_draw        db 'PathShow_draw',0
1070 Lrz 586
 
4213 heavyiron 587
sz_Frame_draw           db 'frame_draw',0
588
;szVersion_frame        db 'version_frame',0
589
;---------------------------------------------------------------------
590
frame_data:
591
.type                   dd 0 ;+0
592
.x:
593
.x_size                 dw 374 ;+4
594
.x_start                dw 8 ;+6
595
.y:
596
.y_size                 dw 45 ;+8
597
.y_start                dw 17 ;+10
598
.ext_fr_col             dd 0x888888 ;+12
599
.int_fr_col             dd 0xffffff ;+16
600
.draw_text_flag         dd 1 ;+20
601
.text_pointer           dd label1 ;+24
602
.text_position          dd 0 ;+28
603
.font_number            dd 0 ;+32
604
.font_size_y            dd 9 ;+36
605
.font_color             dd 0x0 ;+40
606
.font_backgr_color      dd 0xdddddd ;+44
607
;---------------------------------------------------------------------
608
align 4
609
libini_import:
610
init_lib     dd a_init
611
ini_get_str  dd aini_get_str
612
ini_get_int  dd aini_get_int
613
ini_set_str  dd aini_set_str
614
ini_set_int  dd aini_set_int
615
             dd 0
616
             dd 0
617
a_init       db 'lib_init',0
618
aini_get_str db 'ini_get_str',0
619
aini_get_int db 'ini_get_int',0
620
aini_set_str db 'ini_set_str',0
621
aini_set_int db 'ini_set_int',0
622
;---------------------------------------------------------------------
1070 Lrz 623
 
4213 heavyiron 624
apath db 'path',0
625
asettings db 'settings',0
626
aautoclose db 'autoclose',0
627
path    db '/hd2/1/kolibri.img',0
628
ini_file db  '/sys/settings/rdsave.ini',0
629
;ini_file db  '/sys/rdsave.ini',0
630
;---------------------------------------------------------------------
631
is_notify:
632
    dd    7, 0, ok, 0, 0
633
    db    "/rd/1/@notify", 0
634
 
635
read_folder:
636
.subfunction    dd 1
637
.start          dd 0
638
.flags          dd 0
639
.size           dd 1
640
.return         dd folder_data
641
                db 0
642
.name:          dd check_dir
1070 Lrz 643
 
4213 heavyiron 644
param dd 0
645
hidden dd 0
646
;---------------------------------------------------------------------
647
IM_END:
648
;---------------------------------------------------------------------
649
align 4
650
PARAMS:
651
       rb 256
652
ini_path:
653
        rb 4096
654
check_dir:
655
        rb 4096
1606 mario79 656
 
4213 heavyiron 657
sc     system_colors
1606 mario79 658
 
4213 heavyiron 659
autoclose rd 1
1606 mario79 660
 
4319 heavyiron 661
color   rd 1
662
 
663
msg:
4290 heavyiron 664
        rb 1024
665
 
4213 heavyiron 666
folder_data:
667
        rb 304*32+32 ; 9 Kb
1606 mario79 668
;---------------------------------------------------------------------
669
cur_dir_path:
4213 heavyiron 670
        rb 4096
1606 mario79 671
;---------------------------------------------------------------------
672
library_path:
4213 heavyiron 673
        rb 4096
1606 mario79 674
;---------------------------------------------------------------------
4213 heavyiron 675
temp_dir_path:
676
        rb 4096
1606 mario79 677
;---------------------------------------------------------------------
678
fname_buf:
4213 heavyiron 679
        rb 4096
1606 mario79 680
;---------------------------------------------------------------------
681
procinfo:
4213 heavyiron 682
        rb 1024
1606 mario79 683
;---------------------------------------------------------------------
684
filename_area:
4213 heavyiron 685
        rb 256
1606 mario79 686
;---------------------------------------------------------------------
687
text_work_area:
4213 heavyiron 688
        rb 1024
1606 mario79 689
;---------------------------------------------------------------------
4213 heavyiron 690
align 32
691
        rb 4096
1606 mario79 692
stacktop:
4319 heavyiron 693
I_END: