Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Blame | Last modification | View Log | Download | RSS feed

  1. ;§ £®«®¢®ª ¯à¨«®¦¥­¨ï
  2. use32                ; âà ­á«ïâ®à, ¨á¯®«ì§ãî騩 32 à §à來ëå ª®¬ ­¤ë
  3.     org 0x0                ; ¡ §®¢ë©  ¤à¥á ª®¤ , ¢á¥£¤  0x0
  4.     db 'MENUET01'        ; ¨¤¥­â¨ä¨ª â®à ¨á¯®«­ï¥¬®£® ä ©«  (8 ¡ ©â)
  5.     dd 0x1                ; ¢¥àá¨ï ä®à¬ â  § £®«®¢ª  ¨á¯®«­ï¥¬®£® ä ©« 
  6.     dd start                ;  ¤à¥á, ­  ª®â®àë© á¨á⥬  ¯¥à¥¤ ñâ ã¯à ¢«¥­¨¥
  7.                         ; ¯®á«¥ § £à㧪¨ ¯à¨«®¦¥­¨ï ¢ ¯ ¬ïâì
  8.     dd i_end                ; à §¬¥à ¯à¨«®¦¥­¨ï
  9.     dd mem                  ; Ž¡ê¥¬ ¨á¯®«ì§ã¥¬®© ¯ ¬ïâ¨, ¤«ï á⥪  ®â¢¥¤¥¬ 0å100 ¡ ©â ¨ ¢ë஢­¨¬ ­  £à­¨æã 4 ¡ ©â 
  10.     dd mem                  ; à á¯®«®¦¨¬ ¯®§¨æ¨î á⥪  ¢ ®¡« á⨠¯ ¬ïâ¨, áࠧ㠧  ⥫®¬ ¯à®£à ¬¬ë. ‚¥à設  á⥪  ¢ ¤¨ ¯ §®­¥ ¯ ¬ïâ¨, 㪠§ ­­®¬ ¢ëè¥
  11.     dd 0x0              ; 㪠§ â¥«ì ­  áâபã á ¯ à ¬¥âà ¬¨.
  12.     dd way_of_ini
  13. include 'macros.inc'
  14. include 'editbox_ex.mac'
  15. start:
  16. ;Get way for ini file.
  17.         mov     edi,way_of_ini
  18.         mov     ecx,1024
  19.         xor     eax,eax
  20.         cld
  21.         repne   scasb
  22.         test    ecx,ecx
  23.         jz      @f
  24.  
  25.         mov     esi,1024
  26.         sub     esi,ecx
  27.         mov     ecx,esi
  28.         std
  29.         mov     al,'/'
  30.         repne   scasb
  31.         test    ecx,ecx
  32.         jz      next_way
  33.         add     edi,2
  34. @@:
  35.         mov     esi,ini_file
  36.         cld
  37.  
  38. @@:     lodsb
  39.         test    al,al
  40.         jz      @f
  41.         stosb
  42.         jmp     @b
  43.  
  44. @@:     xor     eax,eax
  45.         stosb
  46.  
  47. ; load DLL
  48.         mov     ecx,way_of_ini
  49.         mov     eax, 68
  50.         mov     ebx, 19
  51.         mcall
  52.         test    eax, eax
  53.         jz      next_way
  54.         jmp     import_init_
  55. next_way:
  56.         mov     ecx,ini_file
  57.         mov     eax, 68
  58.         mov     ebx, 19
  59.         mcall
  60.         test    eax, eax
  61.         jz      exit
  62.  
  63.  
  64.  
  65. import_init_:
  66. ; initialize import
  67.         mov     edx, eax
  68.         mov     esi,myimport
  69. import_loop:
  70.         lodsd
  71.         test    eax, eax
  72.         jz      import_done
  73.         push    edx
  74. import_find:
  75.         mov     ebx, [edx]
  76.         test    ebx, ebx
  77.         jz      exit;import_not_found
  78.         push    eax
  79. @@:
  80.         mov     cl, [eax]
  81.         cmp     cl, [ebx]
  82.         jnz     import_find_next
  83.         test    cl, cl
  84.         jz      import_found
  85.         inc     eax
  86.         inc     ebx
  87.         jmp     @b
  88. import_find_next:
  89.         pop     eax
  90.         add     edx, 8
  91.         jmp     import_find
  92. import_found:
  93.         pop     eax
  94.         mov     eax, [edx+4]
  95.         mov     [esi-4], eax
  96.         pop     edx
  97.         jmp     import_loop
  98. import_done:
  99.  
  100.         mcall   40,0x27         ;ãáâ ­®¢¨âì ¬ áªã ¤«ï ®¦¨¤ ¥¬ëå ᮡë⨩
  101. red_win:
  102.     call draw_window            ;¯¥à¢®­ ç «ì­® ­¥®¡å®¤¨¬® ­ à¨á®¢ âì ®ª­®
  103. align 4
  104. still:                          ;®á­®¢­®© ®¡à ¡®â稪
  105.         mcall   10              ;Ž¦¨¤ âì ᮡëâ¨ï
  106.         dec  eax
  107.         jz   red_win
  108.         dec  eax
  109.         jz   key
  110.         dec  eax
  111.         jz   button
  112.  
  113.         push    dword edit1
  114.         push    22
  115.         push    5
  116.         call    [edit_box_mouse]
  117.  
  118.         push    dword edit2
  119.         push    22
  120.         push    5
  121.         call    [edit_box_mouse]
  122.  
  123.         push    dword check1
  124.         call    [check_box_mouse]
  125.  
  126.         push    dword check2
  127.         call    [check_box_mouse]
  128.  
  129.         push    dword Option_boxs
  130.         call    [option_box_mouse]
  131.  
  132.         push    dword Option_boxs2
  133.         call    [option_box_mouse]
  134.  
  135.         jmp still    ;¥á«¨ ­¨ç¥£® ¨§ ¯¥à¥ç¨á«¥­­®£® â® á­®¢  ¢ 横«
  136. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  137. button:
  138.         mcall   17      ;¯®«ãç¨âì ¨¤¥­â¨ä¨ª â®à ­ ¦ â®© ª« ¢¨è¨
  139.         test ah,ah      ;¥á«¨ ¢ ah 0, â® ¯¥à¥©â¨ ­  ®¡à ¡®â稪 ᮡë⨩ still
  140.         jz  still
  141. exit:   mcall   -1
  142. key:
  143.         mcall   2       ;§ £à㧨¬ §­ ç¥­¨¥ 2 ¢ ॣ¨áâ®à eax ¨ ¯®«ã稬 ª®¤ ­ ¦ â®© ª« ¢¨è¨
  144.  
  145.         push    dword edit1
  146.         call    [edit_box_key]
  147.  
  148.         push    dword edit2
  149.         call    [edit_box_key]
  150.  
  151.         jmp still
  152.  
  153. ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  154. align 4
  155. draw_window:            ;à¨á®¢ ­¨¥ ®ª­  ¯à¨«®¦¥­¨ï
  156.         mcall   12,1
  157.         mcall   0,(50*65536+390),(30*65536+200),0xb3AABBCC,0x805080DD,hed
  158.  
  159.         push    dword edit1
  160.         call    [edit_box_draw]
  161.  
  162.         push    dword edit2
  163.         call    [edit_box_draw]
  164.  
  165.         push    dword check1
  166.         call    [check_box_draw]
  167.  
  168.         push    dword check2
  169.         call    [check_box_draw]
  170.  
  171.         push    dword Option_boxs
  172.         call    [option_box_draw]        
  173.  
  174.         push    dword Option_boxs2
  175.         call    [option_box_draw]
  176.  
  177.         mcall   12,2
  178.     ret
  179. ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  180. ;DATA ¤ ­­ë¥
  181. ini_file db '/sys/lib/box_lib.obj',0
  182. myimport:  
  183.  
  184. edit_box_draw   dd      aEdit_box_draw
  185. edit_box_key    dd      aEdit_box_key
  186. edit_box_mouse  dd      aEdit_box_mouse
  187. version_ed      dd      aVersion_ed
  188.  
  189. check_box_draw  dd      aCheck_box_draw
  190. check_box_mouse dd      aCheck_box_mouse
  191. version_ch      dd      aVersion_ch
  192.  
  193. option_box_draw  dd      aOption_box_draw
  194. option_box_mouse dd      aOption_box_mouse
  195. version_op       dd      aVersion_op
  196.  
  197.                 dd      0
  198.                 dd      0
  199.  
  200. aEdit_box_draw  db 'edit_box',0
  201. aEdit_box_key   db 'edit_box_key',0
  202. aEdit_box_mouse db 'edit_box_mouse',0
  203. aVersion_ed     db 'version_ed',0
  204.  
  205. aCheck_box_draw  db 'check_box_draw',0
  206. aCheck_box_mouse db 'check_box_mouse',0
  207. aVersion_ch      db 'version_ch',0
  208.  
  209. aOption_box_draw  db 'option_box_draw',0
  210. aOption_box_mouse db 'option_box_mouse',0
  211. aVersion_op       db 'version_op',0
  212.  
  213.  
  214.  
  215.  
  216. check1 check_box 10,45,6,12,0x80AABBCC,0,0,check_text,14,ch_flag_en
  217. check2 check_box 10,60,6,12,0x80AABBCC,0,0,check_text2,15
  218.  
  219. edit1 edit_box 350,3,5,0xffffff,0x6f9480,0,0xAABBCC,0,308,hed,ed_focus,hed_end-hed-1,hed_end-hed-1
  220. edit2 edit_box 350,3,25,0xffffff,0x6a9480,0,0,0,99,ed_buffer,ed_figure_only
  221.  
  222. op1 option_box option_group1,10,90,6,12,0xffffff,0,0,op_text.1,op_text.e1-op_text.1
  223. op2 option_box option_group1,10,105,6,12,0xFFFFFF,0,0,op_text.2,op_text.e2-op_text.2
  224. op3 option_box option_group1,10,120,6,12,0xffffff,0,0,op_text.3,op_text.e3-op_text.3
  225. op11 option_box option_group2,120,90,6,12,0xffffff,0,0,op_text.1,op_text.e1-op_text.1
  226. op12 option_box option_group2,120,105,6,12,0xffffff,0,0,op_text.2,op_text.e2-op_text.2
  227. op13 option_box option_group2,120,120,6,12,0xffffff,0,0,op_text.3,op_text.e3-op_text.3
  228.  
  229. option_group1   dd op1  ;㪠§ â¥«¨, ®­¨ ®â®¡à ¦ îâáï ¯® 㬮«ç ­¨î, ª®£¤  ¢ë¢®¤¨âáï
  230. option_group2   dd op12 ;¯à¨«®¦¥­¨¥
  231. Option_boxs     dd  op1,op2,op3,0
  232. Option_boxs2    dd  op11,op12,op13,0
  233. hed db   'BOXs load from lib <Lrz> date 27.09.2007',0
  234. hed_end:
  235. rb  256
  236. check_text db 'First checkbox'
  237. check_text2 db 'Second checkbox'
  238. op_text:                ; ‘®¯à®¢®¦¤ î騩 ⥪áâ ¤«ï 祪 ¡®ªá®¢
  239. .1 db 'Option_Box #1'
  240. .e1:
  241. .2 db 'Option_Box #2'
  242. .e2:
  243. .3 db 'Option_Box #3'
  244. .e3:
  245. ed_buffer       rb 100
  246. way_of_ini      rb 1024
  247. i_end:
  248. rb 1024
  249. mem: