Subversion Repositories Kolibri OS

Rev

Rev 7471 | Rev 7476 | 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 17, 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' ;êîìïîíåíòû checkBox è editBox
  49. include '../../develop/libraries/box_lib/load_lib.mac'      ;ìàêðîñ äëÿ çàãðóçêè áèáëèîòåê
  50. @use_library
  51.  
  52. START:
  53.    mcall 48,3,sc,sizeof.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.    mov  eax,40          ;óñòàíîâèòü ìàñêó äëÿ îæèäàåìûõ ñîáûòèé
  63.    mov  ebx,0x27        ;ñèñòåìà áóäåò ðåàãèðîâàòü òîëüêî íà ñîîáùåíèå î ïåðåðèñîâêå,íàæàòà êíîïêà, îïðåäåë¸ííàÿ ðàíåå, ñîáûòèå îò ìûøè (÷òî-òî ñëó÷èëîñü - íàæàòèå íà êíîïêó ìûøè èëè ïåðåìåùåíèå; ñáðàñûâàåòñÿ ïðè ïðî÷òåíèè)
  64.    mcall
  65.  
  66.    mov ecx,[sc.work_text]
  67.    and ecx, 0x9FFFFFFF
  68.    or  ecx,0x90000000
  69.    ;mov ecx, 0x90000000
  70.    mov dword[editLU.text_color], ecx
  71.    ;mov dword[editLD.text_color], ecx
  72.    mov dword[editRU.text_color], ecx
  73.    mov dword[editRD.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    ;kmenu initialisation
  80.  
  81.         stdcall [ksubmenu_new]
  82.         mov [kmFS], eax
  83.  
  84.         stdcall [kmenuitem_new], KMENUITEM_NORMAL, kmFat16, 111
  85.         stdcall [ksubmenu_add], [kmFS], eax
  86.         stdcall [kmenuitem_new], KMENUITEM_NORMAL, kmFat32, 112
  87.         stdcall [ksubmenu_add], [kmFS], eax
  88.         stdcall [kmenuitem_new], KMENUITEM_NORMAL, kmNTFS, 113
  89.         stdcall [ksubmenu_add], [kmFS], eax
  90.         stdcall [kmenuitem_new], KMENUITEM_NORMAL, kmExt2, 114
  91.         stdcall [ksubmenu_add], [kmFS], eax
  92.         ;stdcall [kmenuitem_new], KMENUITEM_SEPARATOR, 0, 0
  93.         ;stdcall [ksubmenu_add], [kmFS], eax
  94.         stdcall [kmenuitem_new], KMENUITEM_NORMAL, kmNone, 110
  95.         stdcall [ksubmenu_add], [kmFS], eax
  96.  
  97.         stdcall [kmenuitem_new], KMENUITEM_SUBMENU, kmFat16, [kmFS]    ;çàãîëîâîê
  98.  
  99.    call    draw_window             ; draw the window
  100.  
  101. event_wait:
  102.         mov     eax, 10                 ; function 10 : wait until event
  103.         mcall                           ; event type is returned in eax
  104.  
  105.         cmp     eax, 1                  ; Event redraw request ?
  106.         je      red                     ; Expl.: there has been activity on screen and
  107.                                         ; parts of the applications has to be redrawn.
  108.  
  109.         cmp     eax, 2                  ; Event key in buffer ?
  110.         je      key                     ; Expl.: User has pressed a key while the
  111.                                         ; app is at the top of the window stack.
  112.  
  113.         cmp     eax, 3                  ; Event button in buffer ?
  114.         je      button                  ; Expl.: User has pressed one of the
  115.                                         ; applications buttons.
  116.  
  117.  
  118.         invoke check_box_mouse, ch1  ;ïðîâåðêà ÷åê áîêñà
  119.         invoke check_box_mouse, ch2
  120.  
  121.         invoke  edit_box_mouse, editLU   ;ïðîâåðêà ñîáûòèé ìûøè äëÿ editBox'îâ
  122.     ;invoke  edit_box_mouse, editLD
  123.     invoke  edit_box_mouse, editRU
  124.     invoke  edit_box_mouse, editRD
  125.     invoke  edit_box_mouse, editMBR
  126.  
  127.  stdcall [kmainmenu_dispatch_cursorevent], [kmFS]
  128.  
  129.         jmp     event_wait
  130.  
  131.  
  132. red:                                    ; Redraw event handler
  133.         call    draw_window             ; We call the window_draw function and
  134.         jmp     event_wait              ; jump back to event_wait
  135.  
  136. key:
  137.         mcall 2
  138.         invoke  edit_box_key, editLU
  139.         ;invoke  edit_box_key, editLD
  140.         invoke  edit_box_key, editRU
  141.         invoke  edit_box_key, editRD
  142.         invoke  edit_box_key, editMBR
  143.         jmp     event_wait              ; Just read the key, ignore it and jump to event_wait.
  144.  
  145. button:
  146.     mcall 17
  147.  
  148.     cmp     ah,1                    ; button id=1 ?
  149.     jne     noclose
  150. exit:
  151.     mcall -1
  152. noclose:
  153.    cmp ah, 2          ;Format button
  154.    jne no_format
  155.    call butFormat
  156.    jmp event_wait
  157. no_format:
  158.    cmp ah, 3          ;Brouse button
  159.    jne @f
  160.    call butBrouse
  161.    jmp event_wait
  162. @@:
  163.    cmp ah, 4          ;Select FS button
  164.    jne @f
  165.    call butSelectFS
  166.    jmp event_wait
  167. @@:
  168.    cmp ah, 110        ;kmenu list FS
  169.    jb @f
  170.    cmp ah, 114
  171.    ja @f
  172.    sub ah, 110
  173.    mov byte[kmID], ah
  174.    jmp red ;event_wait
  175. @@:
  176.    jmp event_wait
  177.  
  178.  
  179. butBrouse:
  180.    call but_open_dlg
  181.    ret
  182.  
  183. butFormat:
  184.    ret
  185.  
  186. butSelectFS:
  187.    push eax ebx ecx
  188.    mcall 9, pi, -1 ;get window coord
  189.  
  190.    mov eax, dword[pi+34]
  191.    add eax, Otstup
  192.    mov word[coord.x], ax
  193.  
  194.    mov eax, dword[pi+38]
  195.    add eax, 129
  196.    mov word[coord.y], ax
  197.  
  198.    stdcall [ksubmenu_draw], [kmFS], coord
  199.    pop ecx ebx eax
  200.    ret
  201.  
  202.  
  203.  
  204. delta = 50
  205. dy = 15 + 40
  206. warning_title: db 'Warning!',0
  207. draw_warningWindow:
  208.    mcall 12, 1
  209.  
  210.         mov     ebx, 100 * 65536 + (200)  ; [x start] *65536 + [x size]
  211.         mov     ecx, 100 * 65536 + (90)  ; [y start] *65536 + [y size]
  212.         mov     edx, 0x14ffffff         ; color of work area RRGGBB
  213.                                         ; 0x02000000 = window type 4 (fixed size, skinned window)
  214.         mov     esi, 0x808899ff         ; color of grab bar  RRGGBB
  215.                                         ; 0x80000000 = color glide
  216.         mov     edi, warning_title
  217.         mcall 0
  218.  
  219.    mcall 12, 2
  220.    ret
  221.  
  222. draw_window:
  223.    mcall  12, 1
  224.  
  225.    ;óäàëÿåì êíîïêè, åñëè åñòü
  226.    mov edx, 0x80000002
  227.    mcall 8
  228.    mov edx, 0x80000003
  229.    mcall 8
  230.    mov edx, 0x80000004
  231.    mcall 8
  232.  
  233.         mov     eax, 0                  ; function 0 : define and draw window
  234.         mov     ebx, 100 * 65536 + (290+delta)  ; [x start] *65536 + [x size]
  235.         mov     ecx, 100 * 65536 + (310+dy)  ; [y start] *65536 + [y size]
  236.         mov     edx, 0x14ffffff         ; color of work area RRGGBB
  237.                                         ; 0x02000000 = window type 4 (fixed size, skinned window)
  238.         mov     esi, 0x808899ff         ; color of grab bar  RRGGBB
  239.                                         ; 0x80000000 = color glide
  240.         mov     edi, title
  241.         mcall
  242.  
  243.  
  244.         mov ebx, (290+delta-Otstup-130)*65536+130
  245.         mov ecx, (270+dy)*65536+(20+3)
  246.         mov edx, 0x00000002 ;2
  247.         mov esi, 0xAABBCC ;4466AA
  248.         mcall 8
  249.  
  250.         mov ebx, (290+delta-Otstup-50-2)*65536+(50+2)
  251.         mov ecx, (210+dy)*65536+21 ;14
  252.         mov edx, 0x00000003  ;3
  253.         mov esi, 0xAABBCC ;D7D7D7 ;4466AA
  254.         mcall 8
  255.  
  256.         ;button select FS
  257.         mov ebx, Otstup*65536+120
  258.         mov ecx, (110)*65536+(21)
  259.         mov edx, 0x00000004
  260.         mov esi, 0xFFFFFF ;AABBCC
  261.         mcall 8
  262.  
  263.        invoke check_box_draw, ch1  ;ðèñîâàíèå ÷åêáîêñîâ
  264.        invoke check_box_draw, ch2
  265.  
  266.        invoke  edit_box_draw, editMBR     ;ðèñîâàíèå edit box'îâ
  267.        invoke  edit_box_draw, editLU
  268.        ;invoke  edit_box_draw, editLD
  269.        invoke  edit_box_draw, editRU
  270.        invoke  edit_box_draw, editRD
  271.  
  272.         call draw_super_text
  273.  
  274.         mcall 12, 2
  275.         ret
  276.  
  277.  
  278.  
  279. Otstup = 30
  280.  
  281. ;öâåò 0x224466 çàìåí¸í 0x90000000 è â ôèíàëå íà 0
  282. 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
  283. ch2 check_box2 Otstup shl 16 + 12, (190+dy) shl 16 + 12, 6, 0xFFFFFFFF, 0xAABBCC, 0, ch_text.2, 100b
  284.  
  285.  
  286. browse db '...', 0
  287.  
  288. if lang eq ru  ;åñëè ÿçûê ñáîðêè ðóññêèé
  289.  
  290. title   db  "Formatting Disk Utility", 0
  291.  
  292. ch_text:        ;ñîïðîâîæäàþùèé òåêñò äëÿ ÷åê áîêñîâ
  293. .1 db '®«­®¥ ¨ ¤®«£®¥ ä®à¬ â¨à®¢ ­¨¥',0
  294. .2 db '‘®§¤ âì § £à㧮ç­ë© ¤¨áª, § ¯¨áì MBR:',0
  295.  
  296. text:
  297.   .volume db 'Œ¥âª  ⮬ :', 0
  298.   .fs     db '” ©«®¢ ï á¨á⥬ :', 0
  299.   .disk   db '…¬ª®áâì:', 0
  300.   .unit   db ' §¬¥à ª« áâ¥à :', 0
  301.   .option db ' à ¬¥âàë:', 0
  302.   .format db '”®à¬ â¨à®¢ âì', 0
  303. ;  .browse db 'Ž¡§®à', 0
  304.  
  305. head_f_i:
  306.         head_f_l  db '‘¨á⥬­ ï ®è¨¡ª ',0
  307.         err_message_found_lib0 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'proc_lib.obj',39,0
  308.         err_message_import0 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'proc_lib.obj',39,0
  309.         err_message_found_lib1 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'kmenu.obj',39,0
  310.         err_message_import1 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'kmenu',39,0
  311.  
  312. else  ;èíà÷å àíãëèéñêèé òåêñò
  313.  
  314. title   db  "Formatting Disk Utility", 0
  315.  
  316. ch_text:        ;ñîïðîâîæäàþùèé òåêñò äëÿ ÷åê áîêñîâ
  317. .1 db 'Full and long disk formatting',0
  318. .2 db 'Create startup disk, write MBR:',0
  319.  
  320. text:
  321.   .volume db 'Volume Label:', 0
  322.   .fs     db 'File System:', 0
  323.   .disk   db 'Capacity:', 0
  324.   .unit   db 'Allocation unit size:', 0
  325.   .option db 'Options:', 0
  326.   .format db 'Format', 0
  327. ;  .browse db 'Browse', 0
  328.  
  329. head_f_i:
  330.   head_f_l  db 'System error',0
  331.   err_message_found_lib0 db 'Could not find library ',39,'proc_lib.obj',39,0
  332.   err_message_import0 db 'Error importing library ',39,'proc_lib.obj',39,0
  333.   err_message_found_lib1 db 'Could not find library ',39,'kmenu.obj',39,0
  334.   err_message_import1 db 'Error importing library ',39,'kmenu',39,0
  335.  
  336. end if
  337.  
  338.  
  339. draw_super_text:
  340.    push eax ebx ecx edx edi esi
  341.    mov     ebx, Otstup * 65536 + 49-6    ; draw info text with function 4 (x, y)
  342.    mov     ecx, 0x90000000 ;0x90224466 ;0x224466
  343.    mov eax, text.volume
  344.    mov     edx, eax
  345.    mov     esi, 13
  346.    mcall 4
  347.  
  348.    mov     ebx, Otstup * 65536 + 99-6
  349.    mov     edx, text.fs
  350.    mov     esi, 12
  351.    mcall 4
  352.  
  353.    mov     ebx, (Otstup+80+30+delta) * 65536 + 99-6
  354.    mov     edx, text.unit
  355.    mov     esi, 21
  356.    mcall 4
  357.  
  358.    mov     ebx, (Otstup+80+30+delta) * 65536 + 49-6
  359.    mov     edx, text.disk
  360.    mov     esi, 9
  361.    mcall 4
  362.  
  363.    mov     ebx, Otstup * 65536 + (151-6+dy)
  364.    mov     edx, text.option
  365.    mov     esi, 8
  366.    mcall 4
  367.  
  368.    mov     ebx, (Otstup+5) * 65536 + (110+3)
  369.    mov dl, byte[kmID]
  370.    cmp dl, 0
  371.    jne @f
  372.    mov     edx, kmNone
  373.    jmp .printFS
  374. @@:
  375.    cmp dl, 1
  376.    jne @f
  377.    mov     edx, kmFat16
  378.    jmp .printFS
  379. @@:
  380.    cmp dl, 2
  381.    jne @f
  382.    mov     edx, kmFat32
  383.    jmp .printFS
  384. @@:
  385.    cmp dl, 3
  386.    jne @f
  387.    mov     edx, kmNTFS
  388.    jmp .printFS
  389. @@:
  390.    cmp dl, 4
  391.    jne @f
  392.    mov     edx, kmExt2
  393.    jmp .printFS
  394. @@:
  395.    mov byte[kmID], 0
  396.    mov     edx, kmNone
  397. .printFS:
  398.    ;mov     esi, 8
  399.    mcall 4
  400.  
  401.    ;buttons text
  402.    mov     ebx, (290+delta-Otstup-130+10+2) * 65536 + (277-3+dy)
  403.    mov     ecx, 0x90FFFFFF
  404.    mov eax, text.format
  405.    mov     edx, eax
  406.    mov     esi, 6
  407.    mcall 4
  408.  
  409.    mov     ebx, (290+delta-Otstup-52+6+8) * 65536 + (213+dy)
  410.    ;mov     ecx, 0xFFFFFF
  411.    mov eax, browse ;text.browse
  412.    mov     edx, eax
  413.    mov     esi, 6
  414.    mcall 4
  415.  
  416.    pop esi edi edx ecx ebx eax
  417.    ret
  418.  
  419. Buf:
  420.   .1 db 'NONAME18',0,0
  421.   .2 db 'FAT',0,0 ;100 dup(0)
  422.   .3 db 'hd0 [FAT32: 4Gb]',0,0 ;100 dup(0)
  423.   .4 db '4096',0,0 ;100 dup(0)
  424.   .5 db '/rd/1/format/fat32mbr.bin', 0, 0
  425.      rb 256
  426.  
  427.  
  428.  
  429. align 16
  430. @IMPORT:
  431.  
  432. library box_lib, 'box_lib.obj'
  433.  
  434. import  box_lib,\
  435.         edit_box_draw,          'edit_box',\
  436.         edit_box_key,           'edit_box_key',\
  437.         edit_box_mouse,         'edit_box_mouse',\
  438.         init_checkbox,          'init_checkbox2',\
  439.         check_box_draw,         'check_box_draw2',\
  440.         check_box_mouse,        'check_box_mouse2',\
  441.         option_box_draw,        'option_box_draw',\
  442.         option_box_mouse,       'option_box_mouse'
  443.  
  444. copyPath:
  445.    push eax ebx ecx edx ;copy file name path
  446.         mov eax, openfile_path ;dword[OpenDialog_data.openfile_path]
  447.         mov ebx, Buf.5
  448.         mov ecx, 0
  449.       @@:
  450.         mov dl, byte[eax]
  451.         cmp dl, 0
  452.         je @f
  453.         mov byte[ebx], dl
  454.         inc eax
  455.         inc ebx
  456.         inc ecx
  457.         jmp @b
  458.       @@:
  459.         mov byte[ebx], 0
  460.         ;mov dword[Buf.size5], ecx
  461.         mov dword[editMBR.size], ecx
  462.         mov dword[editMBR.pos], ecx
  463.    pop edx ecx ebx eax
  464.    ret
  465.  
  466. align 4
  467. but_open_dlg:
  468.         pushad
  469.         copy_path open_dialog_name,communication_area_default_path,file_name,0
  470.         mov [OpenDialog_data.type],0
  471.         stdcall[OpenDialog_Start], OpenDialog_data
  472.         cmp [OpenDialog_data.status],2
  473.         je @f
  474.         cmp [OpenDialog_data.status],0 ;ïîëüçîâàòåëü íàæàë Cancel?
  475.         je .end_open
  476.                 ;êîä ïðè óäà÷íîì îòêðûòèè äèàëîãà
  477.                 ;...
  478.                 call copyPath
  479.                 jmp .end_open
  480.         @@:
  481.                 ;êîä ïðè íå óäà÷íîì îòêðûòèè äèàëîãà
  482.                 ;...
  483.         .end_open:
  484.         popad
  485.         ret
  486.  
  487. ;äàííûå äëÿ äèàëîãà îòêðûòèÿ ôàéëîâ
  488. align 4
  489. OpenDialog_data:
  490. .type                   dd 0 ;0 - îòêðûòü, 1 - ñîõðàíèòü, 2 - âûáðàòü äèðåêòîðèþ
  491. .procinfo               dd procinfo
  492. .com_area_name          dd communication_area_name ;+8
  493. .com_area               dd 0           ;+12
  494. .opendir_path           dd plugin_path ;+16
  495. .dir_default_path       dd default_dir ;+20
  496. .start_path             dd file_name   ;+24 ïóòü ê äèàëîãó îòêðûòèÿ ôàéëîâ
  497. .draw_window            dd draw_window ;+28
  498. .status                 dd 0           ;+32
  499. .openfile_path          dd openfile_path ;+36 ïóòü ê îòêðûâàåìîìó ôàéëó
  500. .filename_area          dd filename_area ;+40
  501. .filter_area            dd Filter
  502. .x:
  503. .x_size                 dw 420 ;+48 ; Window X size
  504. .x_start                dw 10  ;+50 ; Window X position
  505. .y:
  506. .y_size                 dw 320 ;+52 ; Window y size
  507. .y_start                dw 10  ;+54 ; Window Y position
  508.  
  509. default_dir db '/rd/1',0 ;äèðåêòîðèÿ ïî óìîë÷àíèþ
  510. communication_area_name: db 'FFFFFFFF_open_dialog',0
  511. open_dialog_name:  db 'opendial',0
  512. communication_area_default_path: db '/rd/1/File managers/',0
  513.  
  514. Filter:
  515. dd Filter.end - Filter.1
  516. .1:
  517. ;db 'BIN',0
  518. .end:
  519. db 0
  520.  
  521.  
  522. ;îïèñàíèå ýêñïîðòèðóåìûõ ôóíêöèé
  523. align 4
  524. import_libkmenu:
  525.         kmenu_init      dd akmenu_init
  526.         kmainmenu_draw  dd akmainmenu_draw
  527.         kmainmenu_dispatch_cursorevent dd akmainmenu_dispatch_cursorevent
  528.         ksubmenu_new    dd aksubmenu_new
  529.         ksubmenu_delete dd aksubmenu_delete
  530.         ksubmenu_draw   dd aksubmenu_draw
  531.         ksubmenu_add    dd aksubmenu_add
  532.         kmenuitem_new   dd akmenuitem_new
  533.         kmenuitem_delete dd akmenuitem_delete
  534.         kmenuitem_draw  dd akmenuitem_draw
  535. dd 0,0
  536.         akmenu_init     db 'kmenu_init',0
  537.         akmainmenu_draw db 'kmainmenu_draw',0
  538.         akmainmenu_dispatch_cursorevent db 'kmainmenu_dispatch_cursorevent',0
  539.         aksubmenu_new   db 'ksubmenu_new',0
  540.         aksubmenu_delete db 'ksubmenu_delete',0
  541.         aksubmenu_draw  db 'ksubmenu_draw',0
  542.         aksubmenu_add   db 'ksubmenu_add',0
  543.         akmenuitem_new  db 'kmenuitem_new',0
  544.         akmenuitem_delete db 'kmenuitem_delete',0
  545.         akmenuitem_draw  db 'kmenuitem_draw',0
  546.  
  547. align 4
  548. proclib_import:
  549.         OpenDialog_Init dd aOpenDialog_Init
  550.         OpenDialog_Start dd aOpenDialog_Start
  551. dd 0,0
  552.         aOpenDialog_Init db 'OpenDialog_init',0
  553.         aOpenDialog_Start db 'OpenDialog_start',0
  554.  
  555. system_dir0 db '/sys/lib/'
  556. lib0_name db 'proc_lib.obj',0
  557. lib1_name db 'kmenu.obj',0
  558.  
  559. ;symbolDownArrow db 25,0
  560.  
  561. kmNone: db 'None', 0  ;only MBR or ZeroDestroy
  562. ;kmFat12: db 'FAT12', 0
  563. kmFat16: db 'FAT16', 0
  564. kmFat32: db 'FAT32', 0
  565. ;kmExtFat: db 'EXTFAT', 0
  566. kmNTFS: db 'NTFS', 0
  567. kmExt2: db 'EXT2', 0
  568. ;kmExt3: db 'EXT3', 0
  569. ;kmExt4: db 'EXT4', 0
  570. ;kmXFS: db 'XFS', 0
  571.  
  572. l_libs_start:
  573.     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
  574.     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
  575. load_lib_end:
  576.  
  577. ;ðàçìåðû: 80 è 120
  578. editLU edit_box 120,Otstup,60,0xffffff,0x6a9480,0,0xAABBCC,0,8,Buf.1, mouse_dd, 0,8,8
  579. ;editLD edit_box 120,Otstup,110,0xffffff,0x6a9480,0,0xAABBCC,0,3,Buf.2, mouse_dd, 0,3,3
  580. editRU edit_box 120,Otstup+80+30+delta,60,0xffffff,0x6a9480,0,0xAABBCC,0,16,Buf.3, mouse_dd, 0,16,16
  581. editRD edit_box 120,Otstup+80+30+delta,110,0xffffff,0x6a9480,0,0xAABBCC,0,4,Buf.4, mouse_dd, 0,4,4
  582. editMBR edit_box 290+delta-Otstup-52-Otstup-20,Otstup+20,210+dy,0xffffff,0x6a9480,0,0xAABBCC,0,255,Buf.5, mouse_dd, 0,25,25
  583.  
  584. data_of_code dd 0
  585.  
  586. sc  system_colors
  587. mouse_dd  rd 1
  588.  
  589. coord:
  590.   .x: rw 1
  591.   .y: rw 1
  592.  
  593. kmID: rb 1 ;íîìåð âûáðàííîãî ïóíêòà
  594. kmFS: rd 1
  595. mbr: rb 512
  596.  
  597. sys_path:      rb 4096
  598. file_name:     rb 4096
  599. plugin_path:   rb 4096
  600. openfile_path: rb 4096
  601. filename_area: rb 256
  602. rb 1024
  603. procinfo process_information
  604. pi rb 1024
  605.  
  606. I_END:
  607.         rb 256 ;4096
  608. STACKTOP:
  609. MEM:
  610.