Subversion Repositories Kolibri OS

Rev

Rev 7473 | Rev 7483 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  2. ; Formatting Disk Utility ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  3. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  4. ; Compile with FASM
  5. ; FORMAT ver. Oct 18, 2018
  6.  
  7. ; Copyright (c) 2018, Efremenkov Sergey aka TheOnlyMirage
  8. ; All rights reserved.
  9. ; Redistribution and use in source and binary forms, with or without modification,
  10. ; are permitted provided that the following conditions are met:
  11. ;    * Redistributions of source code must retain the above copyright notice, this
  12. ;    list of conditions and the following disclaimer.
  13. ;    * Redistributions in binary form must reproduce the above copyright  notice,
  14. ;    this list of conditions and the following disclaimer in the documentation and/or
  15. ;    other materials provided with the distribution.
  16. ;    * Neither the name of the <organization> nor the names of its contributors may
  17. ;    be used to endorse or promote products derived from this software without
  18. ;    specific prior written permission.
  19.  
  20. ; THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
  21. ; INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
  22. ; PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
  23. ; HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
  24. ; OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
  25. ; SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  26. ; --------------------------------------------------------------------------------------
  27. format binary as ""
  28.  
  29. use32
  30. org 0
  31.  
  32. db 'MENUET01'
  33. dd 1
  34. dd START
  35. dd I_END
  36. dd MEM
  37. dd STACKTOP
  38. dd 0, 0
  39.  
  40. KMENUITEM_NORMAL equ 0
  41. KMENUITEM_SUBMENU equ 1
  42. KMENUITEM_SEPARATOR equ 2
  43.  
  44. include 'lang.inc'
  45. include '../../macros.inc'
  46. include '../../proc32.inc'
  47. include '../../dll.inc'
  48. include '../../develop/libraries/box_lib/trunk/box_lib.mac' ;for uses checkBox and editBox
  49. include '../../develop/libraries/box_lib/load_lib.mac'
  50. @use_library
  51.  
  52. START:
  53.    mcall 48,3,sc,sizeof.system_colors ;get system colors
  54.  
  55.    stdcall dll.Load, @IMPORT
  56.    or      eax, eax
  57.    jnz     exit
  58.  
  59.    load_libraries l_libs_start,load_lib_end
  60.    stdcall [OpenDialog_Init],OpenDialog_data
  61.  
  62.    ;set mask for events:
  63.    ;ñîîáùåíèå î ïåðåðèñîâêå,íàæàòà êíîïêà, îïðåäåë¸ííàÿ ðàíåå, ñîáûòèå îò ìûøè (÷òî-òî ñëó÷èëîñü - íàæàòèå íà êíîïêó ìûøè èëè ïåðåìåùåíèå; ñáðàñûâàåòñÿ ïðè ïðî÷òåíèè)
  64.    mcall 40, 0x27
  65.  
  66.    mov ecx,[sc.work_text]
  67.    and ecx, 0x9FFFFFFF
  68.    or  ecx,0x90000000
  69.  
  70.    call initBuf
  71.  
  72.    mov dword[editLU.text_color], ecx
  73.    mov dword[editRU.text_color], ecx
  74.    mov dword[editMBR.text_color], ecx
  75.  
  76.    invoke init_checkbox, ch1
  77.    invoke init_checkbox, ch2
  78.  
  79.    stdcall [kmenu_init], sc
  80.    stdcall [ksubmenu_new]
  81.    mov [kmFS], eax
  82.  
  83.    stdcall [kmenuitem_new], KMENUITEM_NORMAL, kmNone, 110
  84.    stdcall [ksubmenu_add], [kmFS], eax
  85.    stdcall [kmenuitem_new], KMENUITEM_NORMAL, kmFat16, 111
  86.    stdcall [ksubmenu_add], [kmFS], eax
  87.    stdcall [kmenuitem_new], KMENUITEM_NORMAL, kmFat32, 112
  88.    stdcall [ksubmenu_add], [kmFS], eax
  89.    stdcall [kmenuitem_new], KMENUITEM_NORMAL, kmNTFS, 113
  90.    stdcall [ksubmenu_add], [kmFS], eax
  91.    stdcall [kmenuitem_new], KMENUITEM_NORMAL, kmExt2, 114
  92.    stdcall [ksubmenu_add], [kmFS], eax
  93.    mov byte[kmID], 0
  94.  
  95.    stdcall [kmenuitem_new], KMENUITEM_SUBMENU, kmFat16, [kmFS]
  96.  
  97.  
  98.    stdcall [ksubmenu_new]
  99.    mov [kmUnit], eax
  100.    stdcall [kmenuitem_new], KMENUITEM_NORMAL, unittext.0, 120
  101.    stdcall [ksubmenu_add], [kmUnit], eax
  102.    stdcall [kmenuitem_new], KMENUITEM_NORMAL, unittext.1, 121
  103.    stdcall [ksubmenu_add], [kmUnit], eax
  104.    stdcall [kmenuitem_new], KMENUITEM_NORMAL, unittext.2, 122
  105.    stdcall [ksubmenu_add], [kmUnit], eax
  106.    stdcall [kmenuitem_new], KMENUITEM_NORMAL, unittext.3, 123
  107.    stdcall [ksubmenu_add], [kmUnit], eax
  108.    stdcall [kmenuitem_new], KMENUITEM_NORMAL, unittext.4, 124
  109.    stdcall [ksubmenu_add], [kmUnit], eax
  110.    stdcall [kmenuitem_new], KMENUITEM_NORMAL, unittext.5, 125
  111.    stdcall [ksubmenu_add], [kmUnit], eax
  112.    stdcall [kmenuitem_new], KMENUITEM_NORMAL, unittext.6, 126
  113.    stdcall [ksubmenu_add], [kmUnit], eax
  114.    stdcall [kmenuitem_new], KMENUITEM_NORMAL, unittext.7, 127
  115.    stdcall [ksubmenu_add], [kmUnit], eax
  116.    mov byte[kmUnitID], 0
  117.    stdcall [kmenuitem_new], KMENUITEM_SUBMENU, unittext.0, [kmUnit]
  118.  
  119.    call  draw_window
  120.  
  121. event_wait:
  122.    mcall 10
  123.  
  124.    cmp     eax, 1       ; Event redraw
  125.    je      redraw
  126.  
  127.    cmp     eax, 2       ; Event key in buffer ?
  128.    je      key
  129.  
  130.    cmp     eax, 3       ; Event button in buffer ?
  131.    je      button
  132.  
  133.    cmp     eax, 6       ; Event mouse in buffer ?
  134.    je      mouse
  135.  
  136.    jmp  event_wait
  137.  
  138.  
  139. redraw:
  140.    call    draw_window
  141.    jmp     event_wait
  142.  
  143. key:
  144.    mcall 2
  145.    invoke  edit_box_key, editLU
  146.    invoke  edit_box_key, editRU
  147.    invoke  edit_box_key, editMBR
  148.    jmp     event_wait
  149.  
  150. button:
  151.     mcall 17
  152.  
  153.     cmp ah, 1         ;Close button
  154.     jne @f
  155. exit:
  156.     mcall -1
  157. @@:
  158.    cmp ah, 2          ;Format button
  159.    jne @f
  160.    call butFormat
  161.    jmp event_wait
  162. @@:
  163.    cmp ah, 3          ;Brouse button
  164.    jne @f
  165.    call butBrouse
  166.    jmp event_wait
  167. @@:
  168.    cmp ah, 4          ;Select FS button
  169.    jne @f
  170.    call butSelectFS
  171.    jmp event_wait
  172. @@:
  173.    cmp ah, 5          ;Select unit size button
  174.    jne @f
  175.    call butUnit
  176.    jmp event_wait
  177. @@:
  178.    cmp ah, 110        ;kmenu list FS
  179.    jb @f
  180.    cmp ah, 114
  181.    ja @f
  182.    sub ah, 110
  183.    mov byte[kmID], ah
  184.    jmp redraw
  185. @@:
  186.    cmp ah, 120        ;kmenu Unit Size
  187.    jb @f
  188.    cmp ah, 127
  189.    ja @f
  190.    sub ah, 120
  191.    mov byte[kmUnitID], ah
  192.    jmp redraw
  193. @@:
  194.    jmp event_wait
  195.  
  196. mouse:
  197.    invoke check_box_mouse, ch1  ;ïðîâåðêà ÷åê áîêñà
  198.    invoke check_box_mouse, ch2
  199.  
  200.    invoke  edit_box_mouse, editLU   ;ïðîâåðêà ñîáûòèé ìûøè äëÿ editBox'îâ
  201.    invoke  edit_box_mouse, editRU
  202.    invoke  edit_box_mouse, editMBR
  203.  
  204.    stdcall [kmainmenu_dispatch_cursorevent], [kmFS]
  205.    jmp event_wait
  206.  
  207. butBrouse:
  208.    call but_open_dlg
  209.    ret
  210.  
  211. butFormat:
  212.    ret
  213.  
  214. butSelectFS:
  215.    push eax ebx ecx
  216.    mcall 9, pi, -1 ;get window coord
  217.  
  218.    mov eax, dword[pi+34]
  219.    add eax, Otstup
  220.    mov word[coord.x], ax
  221.  
  222.    mov eax, dword[pi+38]
  223.    add eax, 129
  224.    mov word[coord.y], ax
  225.  
  226.    stdcall [ksubmenu_draw], [kmFS], coord
  227.    pop ecx ebx eax
  228.    ret
  229.  
  230. butUnit:
  231.    push eax ebx ecx
  232.    mcall 9, pi, -1
  233.  
  234.    mov eax, dword[pi+34]
  235.    add eax, Otstup+80+30+delta
  236.    mov word[coordUnit.x], ax
  237.  
  238.    mov eax, dword[pi+38]
  239.    add eax, 129
  240.    mov word[coordUnit.y], ax
  241.  
  242.    stdcall [ksubmenu_draw], [kmUnit], coordUnit
  243.    pop ecx ebx eax
  244.    ret
  245.  
  246. delta = 50
  247. dy = 15 + 40
  248. warning_title: db 'Warning!',0
  249. draw_warningWindow:
  250.    ret
  251.  
  252. draw_window:
  253.    mcall  12, 1
  254.  
  255.         mov     eax, 0                  ; function 0 : define and draw window
  256.         mov     ebx, 100 * 65536 + (290+delta)  ; [x start] *65536 + [x size]
  257.         mov     ecx, 100 * 65536 + (310+dy)  ; [y start] *65536 + [y size]
  258.         mov     edx,[sc.work]    ;0x14FFFFFF
  259.         add     edx, 0x14000000         ; color of work area RRGGBB
  260.                                         ; 0x02000000 = window type 4 (fixed size, skinned window)
  261.         mov     esi, 0x808899ff         ; color of grab bar  RRGGBB
  262.                                         ; 0x80000000 = color glide
  263.         mov     edi, title
  264.         mcall
  265.  
  266.  
  267.         mov ebx, (290+delta-Otstup-130)*65536+130
  268.         mov ecx, (270+dy)*65536+(20+3)
  269.         mov edx, 0x00000002
  270.         mov esi, 0xAABBCC
  271.         mcall 8
  272.  
  273.         mov ebx, (290+delta-Otstup-50-2)*65536+(50+2)
  274.         mov ecx, (210+dy)*65536+21 ;14
  275.         mov edx, 0x00000003
  276.         mov esi, 0xAABBCC
  277.         mcall 8
  278.  
  279.         ;button select FS
  280.         mov ebx, Otstup*65536+120
  281.         mov ecx, (110)*65536+(21)
  282.         mov edx, 0x00000004
  283.         mov esi, 0xFFFFFF
  284.         mcall 8
  285.  
  286.         ;button select unit size
  287.         mov ebx, (Otstup+80+30+delta)*65536+120
  288.         mov ecx, (110)*65536+(21)
  289.         mov edx, 0x00000005
  290.         mov esi, 0xFFFFFF
  291.         mcall 8
  292.  
  293.        invoke check_box_draw, ch1  ;ðèñîâàíèå ÷åêáîêñîâ
  294.        invoke check_box_draw, ch2
  295.  
  296.        invoke  edit_box_draw, editMBR     ;ðèñîâàíèå edit box'îâ
  297.        invoke  edit_box_draw, editLU
  298.        invoke  edit_box_draw, editRU
  299.  
  300.         call draw_super_text
  301.  
  302.  
  303.         mov     ecx,[sc.work]
  304.         mov     dword [frame_data.font_backgr_color],ecx
  305.         push    dword frame_data
  306.         invoke  frame_draw
  307.  
  308.         mov     ecx,[sc.work]
  309.         mov     dword [frame_data2.font_backgr_color],ecx
  310.         push    dword frame_data2
  311.         invoke  frame_draw
  312.  
  313.         mcall 12, 2
  314.         ret
  315.  
  316.  
  317.  
  318. Otstup = 30
  319.  
  320. ;öâåò 0x224466 çàìåí¸í 0x90000000 è â ôèíàëå íà 0
  321. ch1 check_box2 Otstup shl 16 + 12, (170+dy) shl 16 + 12, 6, 0xFFFFFFFF, 0xAABBCC, 0, ch_text.1, 100b ; 110b = ch_flag_en and ch_flag_middl
  322. ch2 check_box2 Otstup shl 16 + 12, (190+dy) shl 16 + 12, 6, 0xFFFFFFFF, 0xAABBCC, 0, ch_text.2, 100b
  323.  
  324.  
  325. browse db '...', 0
  326.  
  327. if lang eq ru  ;RU language
  328.  
  329. title   db  "Formatting Disk Utility", 0
  330.  
  331. ch_text:       ;text for CheckBoxs
  332. .1 db '®«­®¥ ¨ ¤®«£®¥ ä®à¬ â¨à®¢ ­¨¥',0
  333. .2 db '‘®§¤ âì § £à㧮ç­ë© ¤¨áª, § ¯¨áì MBR:',0
  334.  
  335. text:
  336.   .volume db 'Œ¥âª  ⮬ :', 0
  337.   .fs     db '” ©«®¢ ï á¨á⥬ :', 0
  338.   .disk   db ' ª®¯¨â¥«ì:', 0 ;'…¬ª®áâì:', 0
  339.   .unit   db ' §¬¥à ª« áâ¥à :', 0
  340.   .option db ' à ¬¥âàë:', 0
  341.   .format db '”®à¬ â¨à®¢ âì', 0
  342.  
  343. head_f_i:
  344.   head_f_l  db '‘¨á⥬­ ï ®è¨¡ª ',0
  345.   err_message_found_lib0 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'proc_lib.obj',39,0
  346.   err_message_import0 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'proc_lib.obj',39,0
  347.   err_message_found_lib1 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'kmenu.obj',39,0
  348.   err_message_import1 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'kmenu',39,0
  349.  
  350. else           ;EN language
  351.  
  352. title   db  "Formatting Disk Utility", 0
  353.  
  354. ch_text:
  355. .1 db 'Full and long disk formatting',0
  356. .2 db 'Create startup disk, write MBR:',0
  357.  
  358. text:
  359.   .volume db 'Volume Label:', 0
  360.   .fs     db 'File System:', 0
  361.   .disk   db 'Storage device:', 0 ;'Capacity:', 0
  362.   .unit   db 'Allocation unit size:', 0
  363.   .option db 'Options:', 0
  364.   .format db 'Format', 0
  365.  
  366. head_f_i:
  367.   head_f_l  db 'System error',0
  368.   err_message_found_lib0 db 'Could not find library ',39,'proc_lib.obj',39,0
  369.   err_message_import0 db 'Error importing library ',39,'proc_lib.obj',39,0
  370.   err_message_found_lib1 db 'Could not find library ',39,'kmenu.obj',39,0
  371.   err_message_import1 db 'Error importing library ',39,'kmenu',39,0
  372.  
  373. end if
  374.  
  375.  
  376. draw_super_text:
  377.    push eax ebx ecx edx edi esi
  378.    mov     ebx, Otstup * 65536 + 49-6    ; draw info text with function 4 (x, y)
  379.    mov     ecx, 0x90000000 ;0x90224466 ;0x224466
  380.    mov eax, text.volume
  381.    mov     edx, eax
  382.    mov     esi, 13
  383.    mcall 4
  384.  
  385.    mov     ebx, Otstup * 65536 + 99-6
  386.    mov     edx, text.fs
  387.    mov     esi, 12
  388.    mcall 4
  389.  
  390.    mov     ebx, (Otstup+80+30+delta) * 65536 + 99-6
  391.    mov     edx, text.unit
  392.    mov     esi, 21
  393.    mcall 4
  394.  
  395.    mov     ebx, (Otstup+80+30+delta) * 65536 + 49-6
  396.    mov     edx, text.disk
  397.    mov     esi, 9
  398.    mcall 4
  399.  
  400. ;   mov     ebx, Otstup * 65536 + (151-6+dy)
  401. ;   mov     edx, text.option
  402. ;   mov     esi, 8
  403. ;   mcall 4
  404.  
  405.    mov     ebx, (Otstup+80+30+delta +5) * 65536 + (110+3)
  406.    mov dl, byte[kmUnitID]
  407.    cmp dl, 0
  408.    jne @f
  409.    mov     edx, unittext.0
  410.    jmp .printUnit
  411. @@:
  412.    cmp dl, 1
  413.    jne @f
  414.    mov     edx, unittext.1
  415.    jmp .printUnit
  416. @@:
  417.    cmp dl, 2
  418.    jne @f
  419.    mov     edx, unittext.2
  420.    jmp .printUnit
  421. @@:
  422.    cmp dl, 3
  423.    jne @f
  424.    mov     edx, unittext.3
  425.    jmp .printUnit
  426. @@:
  427.    cmp dl, 4
  428.    jne @f
  429.    mov     edx, unittext.4
  430.    jmp .printUnit
  431. @@:
  432.    cmp dl, 5
  433.    jne @f
  434.    mov     edx, unittext.5
  435.    jmp .printUnit
  436. @@:
  437.    cmp dl, 6
  438.    jne @f
  439.    mov     edx, unittext.6
  440.    jmp .printUnit
  441. @@:
  442.    cmp dl, 7
  443.    jne @f
  444.    mov     edx, unittext.7
  445.    jmp .printUnit
  446. @@:
  447.    mov byte[kmUnitID], 0
  448.    mov     edx, unittext.0
  449. .printUnit:
  450.    mcall 4
  451.  
  452.    mov     ebx, (Otstup+5) * 65536 + (110+3)
  453.    mov dl, byte[kmID]
  454.    cmp dl, 0
  455.    jne @f
  456.    mov     edx, kmNone
  457.    jmp .printFS
  458. @@:
  459.    cmp dl, 1
  460.    jne @f
  461.    mov     edx, kmFat16
  462.    jmp .printFS
  463. @@:
  464.    cmp dl, 2
  465.    jne @f
  466.    mov     edx, kmFat32
  467.    jmp .printFS
  468. @@:
  469.    cmp dl, 3
  470.    jne @f
  471.    mov     edx, kmNTFS
  472.    jmp .printFS
  473. @@:
  474.    cmp dl, 4
  475.    jne @f
  476.    mov     edx, kmExt2
  477.    jmp .printFS
  478. @@:
  479.    mov byte[kmID], 0
  480.    mov     edx, kmNone
  481. .printFS:
  482.    ;mov     esi, 8
  483.    mcall 4
  484.  
  485.    ;buttons text
  486.    mov     ebx, (290+delta-Otstup-130+10+2) * 65536 + (277-3+dy)
  487.    mov     ecx, 0x90FFFFFF
  488.    mov eax, text.format
  489.    mov     edx, eax
  490.    mov     esi, 6
  491.    mcall 4
  492.  
  493.    mov     ebx, (290+delta-Otstup-52+6+8) * 65536 + (213+dy)
  494.    ;mov     ecx, 0xFFFFFF
  495.    mov eax, browse ;text.browse
  496.    mov     edx, eax
  497.    mov     esi, 6
  498.    mcall 4
  499.  
  500.    pop esi edi edx ecx ebx eax
  501.    ret
  502.  
  503. unittext:
  504.   .0 db '512 bytes', 0
  505.   .1 db '1024 bytes', 0
  506.   .2 db '2048 bytes', 0
  507.   .3 db '4096 bytes', 0
  508.   .4 db '8192 bytes', 0
  509.   .5 db '16 Kb', 0
  510.   .6 db '32 Kb', 0
  511.   .7 db '64 Kb', 0
  512.  
  513. Buf:
  514.   .1 db 'NONAME18',0,0
  515.   ;.2 db 'FAT',0,0 ;100 dup(0)
  516.   .3 db 'hd0 [FAT32: 4Gb]',0,0 ;100 dup(0)
  517.   ;.4 db '4096',0,0 ;100 dup(0)
  518.   .5 rb 512 ;db '/rd/1/format/fat32mbr.bin', 0, 0
  519.  
  520. initBuf:
  521.    push eax ecx
  522.    ;buf.1 - label
  523.    mov dword[Buf.1], 'NONA'
  524.    mov dword[Buf.1+4], 'ME18'
  525.    mov word[Buf.1+8], 0
  526.  
  527.    ;buf.5 - full name for file mbr
  528.    mov eax, Buf.5
  529.    mov ecx, 512/4
  530. @@:
  531.    mov dword[eax], 4
  532.    add eax, 4
  533.    dec ecx
  534.    cmp ecx, 0
  535.    je @f
  536.    jmp @b
  537. @@:
  538.  
  539.    pop ecx eax
  540.    ret
  541.  
  542.  
  543.  
  544. copyPath:
  545.    push eax ebx ecx edx ;copy file name path
  546.         mov eax, openfile_path
  547.         mov ebx, Buf.5
  548.         mov ecx, 0
  549.       @@:
  550.         mov dl, byte[eax]
  551.         cmp dl, 0
  552.         je @f
  553.         mov byte[ebx], dl
  554.         inc eax
  555.         inc ebx
  556.         inc ecx
  557.         jmp @b
  558.       @@:
  559.         mov byte[ebx], 0
  560.         mov dword[editMBR.size], ecx
  561.         mov dword[editMBR.pos], ecx
  562.    pop edx ecx ebx eax
  563.    ret
  564.  
  565. align 4
  566. but_open_dlg:
  567.         pushad
  568.         copy_path open_dialog_name,communication_area_default_path,file_name,0
  569.         mov [OpenDialog_data.type],0
  570.         stdcall[OpenDialog_Start], OpenDialog_data
  571.         cmp [OpenDialog_data.status],2
  572.         je @f
  573.         cmp [OpenDialog_data.status],0 ;ïîëüçîâàòåëü íàæàë Cancel?
  574.         je .end_open
  575.                 ;êîä ïðè óäà÷íîì îòêðûòèè äèàëîãà
  576.                 ;...
  577.                 call copyPath
  578.                 jmp .end_open
  579.         @@:
  580.                 ;êîä ïðè íå óäà÷íîì îòêðûòèè äèàëîãà
  581.                 ;...
  582.         .end_open:
  583.         popad
  584.         ret
  585.  
  586. ;äàííûå äëÿ äèàëîãà îòêðûòèÿ ôàéëîâ
  587. align 4
  588. OpenDialog_data:
  589. .type                   dd 0 ;0 - îòêðûòü, 1 - ñîõðàíèòü, 2 - âûáðàòü äèðåêòîðèþ
  590. .procinfo               dd procinfo
  591. .com_area_name          dd communication_area_name ;+8
  592. .com_area               dd 0           ;+12
  593. .opendir_path           dd plugin_path ;+16
  594. .dir_default_path       dd default_dir ;+20
  595. .start_path             dd file_name   ;+24 ïóòü ê äèàëîãó îòêðûòèÿ ôàéëîâ
  596. .draw_window            dd draw_window ;+28
  597. .status                 dd 0           ;+32
  598. .openfile_path          dd openfile_path ;+36 ïóòü ê îòêðûâàåìîìó ôàéëó
  599. .filename_area          dd filename_area ;+40
  600. .filter_area            dd Filter
  601. .x:
  602. .x_size                 dw 420 ;+48 ; Window X size
  603. .x_start                dw 10  ;+50 ; Window X position
  604. .y:
  605. .y_size                 dw 320 ;+52 ; Window y size
  606. .y_start                dw 10  ;+54 ; Window Y position
  607.  
  608. default_dir db '/rd/1',0 ;äèðåêòîðèÿ ïî óìîë÷àíèþ
  609. communication_area_name: db 'FFFFFFFF_open_dialog',0
  610. open_dialog_name:  db 'opendial',0
  611. communication_area_default_path: db '/rd/1/File managers/',0
  612.  
  613. Filter:
  614. dd Filter.end - Filter.1
  615. .1:
  616. ;db 'BIN',0
  617. .end:
  618. db 0
  619.  
  620.  
  621. align 16
  622. @IMPORT:
  623. library box_lib, 'box_lib.obj'
  624.  
  625. import  box_lib,\
  626.         edit_box_draw,          'edit_box',\
  627.         edit_box_key,           'edit_box_key',\
  628.         edit_box_mouse,         'edit_box_mouse',\
  629.         init_checkbox,          'init_checkbox2',\
  630.         check_box_draw,         'check_box_draw2',\
  631.         check_box_mouse,        'check_box_mouse2',\
  632.         option_box_draw,        'option_box_draw',\
  633.         option_box_mouse,       'option_box_mouse',\
  634.         frame_draw,             'frame_draw'
  635.  
  636. align 4
  637. import_libkmenu:
  638.         kmenu_init      dd akmenu_init
  639.         kmainmenu_draw  dd akmainmenu_draw
  640.         kmainmenu_dispatch_cursorevent dd akmainmenu_dispatch_cursorevent
  641.         ksubmenu_new    dd aksubmenu_new
  642.         ksubmenu_delete dd aksubmenu_delete
  643.         ksubmenu_draw   dd aksubmenu_draw
  644.         ksubmenu_add    dd aksubmenu_add
  645.         kmenuitem_new   dd akmenuitem_new
  646.         kmenuitem_delete dd akmenuitem_delete
  647.         kmenuitem_draw  dd akmenuitem_draw
  648. dd 0,0
  649.         akmenu_init     db 'kmenu_init',0
  650.         akmainmenu_draw db 'kmainmenu_draw',0
  651.         akmainmenu_dispatch_cursorevent db 'kmainmenu_dispatch_cursorevent',0
  652.         aksubmenu_new   db 'ksubmenu_new',0
  653.         aksubmenu_delete db 'ksubmenu_delete',0
  654.         aksubmenu_draw  db 'ksubmenu_draw',0
  655.         aksubmenu_add   db 'ksubmenu_add',0
  656.         akmenuitem_new  db 'kmenuitem_new',0
  657.         akmenuitem_delete db 'kmenuitem_delete',0
  658.         akmenuitem_draw  db 'kmenuitem_draw',0
  659.  
  660. align 4
  661. proclib_import:
  662.         OpenDialog_Init dd aOpenDialog_Init
  663.         OpenDialog_Start dd aOpenDialog_Start
  664. dd 0,0
  665.         aOpenDialog_Init db 'OpenDialog_init',0
  666.         aOpenDialog_Start db 'OpenDialog_start',0
  667.  
  668. system_dir0 db '/sys/lib/'
  669. lib0_name db 'proc_lib.obj',0
  670. lib1_name db 'kmenu.obj',0
  671.  
  672.  
  673. frame_data:
  674. .type                   dd 0 ;+0
  675. .x:
  676. .x_size                 dw 290+delta-2*(Otstup-10) ;+4
  677. .x_start                dw Otstup-10 ;+6
  678. .y:
  679. .y_size                 dw 80+20 ;+8
  680. .y_start                dw 151-6+dy ;+10
  681. .ext_fr_col             dd 0x888888 ;+12
  682. .int_fr_col             dd 0xffffff ;+16
  683. .draw_text_flag         dd 1 ;+20
  684. .text_pointer           dd text.option ;+24
  685. .text_position          dd 0 ;+28
  686. .font_number            dd 1;0 ;+32
  687. .font_size_y            dd 9 ;+36
  688. .font_color             dd 0x000000 ;+40
  689. .font_backgr_color      dd 0xFFFFFF ;dddddd ;+44
  690.  
  691. frame_data2:
  692. .type                   dd 0
  693. .x:
  694. .x_size                 dw 290+delta-2*(Otstup-10)
  695. .x_start                dw Otstup-10
  696. .y:
  697. .y_size                 dw 110
  698. .y_start                dw Otstup+5
  699. .ext_fr_col             dd 0x888888
  700. .int_fr_col             dd 0xffffff
  701. .draw_text_flag         dd 0;1
  702. .text_pointer           dd 0 ;text.option
  703. .text_position          dd 0
  704. .font_number            dd 0
  705. .font_size_y            dd 9
  706. .font_color             dd 0x0
  707. .font_backgr_color      dd 0xdddddd
  708.  
  709. ;symbolDownArrow db 25,0
  710.  
  711. kmNone: db 'None', 0  ;only MBR or ZeroDestroy
  712. ;kmFat12: db 'FAT12', 0
  713. kmFat16: db 'FAT16', 0
  714. kmFat32: db 'FAT32', 0
  715. ;kmExtFat: db 'EXTFAT', 0
  716. kmNTFS: db 'NTFS', 0
  717. kmExt2: db 'EXT2', 0
  718. ;kmExt3: db 'EXT3', 0
  719. ;kmExt4: db 'EXT4', 0
  720. ;kmXFS: db 'XFS', 0
  721.  
  722. l_libs_start:
  723.     lib0 l_libs lib0_name, sys_path, file_name, system_dir0, err_message_found_lib0, head_f_l, proclib_import,err_message_import0, head_f_i
  724.     lib1 l_libs lib1_name, sys_path, file_name, system_dir0, err_message_found_lib1, head_f_l, import_libkmenu,err_message_import1,head_f_i
  725. load_lib_end:
  726.  
  727. ;ðàçìåðû: 80 è 120
  728. editLU edit_box 120,Otstup,60,0xffffff,0x6a9480,0,0xAABBCC,0,8,Buf.1, mouse_dd, 0,8,8
  729. editRU edit_box 120,Otstup+80+30+delta,60,0xffffff,0x6a9480,0,0xAABBCC,0,16,Buf.3, mouse_dd, 0,16,16
  730. editMBR edit_box 290+delta-Otstup-52-Otstup-20,Otstup+20,210+dy,0xffffff,0x6a9480,0,0xAABBCC,0,255,Buf.5, mouse_dd, 0,0,0 ;25,25
  731.  
  732. data_of_code dd 0
  733.  
  734. sc  system_colors
  735. mouse_dd  rd 1
  736.  
  737. coord:
  738.   .x: rw 1
  739.   .y: rw 1
  740.  
  741. coordUnit:
  742.   .x: rw 1
  743.   .y: rw 1
  744.  
  745. kmUnitID: rd 1
  746. kmUnit: rd 1
  747.  
  748. kmID: rb 1 ;íîìåð âûáðàííîãî ïóíêòà
  749. kmFS: rd 1
  750. mbr: rb 512
  751.  
  752. sys_path:      rb 4096
  753. file_name:     rb 4096
  754. plugin_path:   rb 4096
  755. openfile_path: rb 4096
  756. filename_area: rb 256
  757. rb 1024
  758. procinfo process_information
  759. pi rb 1024
  760.  
  761. I_END:
  762.         rb 256
  763. align 4
  764. STACKTOP:
  765. MEM:
  766.