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.         call    [edit_box_mouse]
  115.  
  116.         push    dword edit2
  117.         call    [edit_box_mouse]
  118.  
  119.         push    dword check1
  120.         call    [check_box_mouse]
  121.  
  122.         push    dword check2
  123.         call    [check_box_mouse]
  124.  
  125.         push    dword Option_boxs
  126.         call    [option_box_mouse]
  127.  
  128.         push    dword Option_boxs2
  129.         call    [option_box_mouse]
  130.  
  131.         jmp still    ;¥á«¨ ­¨ç¥£® ¨§ ¯¥à¥ç¨á«¥­­®£® â® á­®¢  ¢ 横«
  132. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  133. button:
  134.         mcall   17      ;¯®«ãç¨âì ¨¤¥­â¨ä¨ª â®à ­ ¦ â®© ª« ¢¨è¨
  135.         test ah,ah      ;¥á«¨ ¢ ah 0, â® ¯¥à¥©â¨ ­  ®¡à ¡®â稪 ᮡë⨩ still
  136.         jz  still
  137. exit:   mcall   -1
  138. key:
  139.         mcall   2       ;§ £à㧨¬ §­ ç¥­¨¥ 2 ¢ ॣ¨áâ®à eax ¨ ¯®«ã稬 ª®¤ ­ ¦ â®© ª« ¢¨è¨
  140.  
  141.         push    dword edit1
  142.         call    [edit_box_key]
  143.  
  144.         push    dword edit2
  145.         call    [edit_box_key]
  146.  
  147.         jmp still
  148.  
  149. ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  150. align 4
  151. draw_window:            ;à¨á®¢ ­¨¥ ®ª­  ¯à¨«®¦¥­¨ï
  152.         mcall   12,1
  153.         mcall   0,(50*65536+390),(30*65536+200),0xb3AABBCC,0x805080DD,hed
  154.  
  155.         push    dword edit1
  156.         call    [edit_box_draw]
  157.  
  158.         push    dword edit2
  159.         call    [edit_box_draw]
  160.  
  161.         push    dword check1
  162.         call    [check_box_draw]
  163.  
  164.         push    dword check2
  165.         call    [check_box_draw]
  166.  
  167.         push    dword Option_boxs
  168.         call    [option_box_draw]        
  169.  
  170.         push    dword Option_boxs2
  171.         call    [option_box_draw]
  172.  
  173.         mcall   12,2
  174.     ret
  175. ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  176. ;DATA ¤ ­­ë¥
  177. ini_file db '/sys/lib/box_lib.obj',0
  178. myimport:  
  179.  
  180. edit_box_draw   dd      aEdit_box_draw
  181. edit_box_key    dd      aEdit_box_key
  182. edit_box_mouse  dd      aEdit_box_mouse
  183. version_ed      dd      aVersion_ed
  184.  
  185. check_box_draw  dd      aCheck_box_draw
  186. check_box_mouse dd      aCheck_box_mouse
  187. version_ch      dd      aVersion_ch
  188.  
  189. option_box_draw  dd      aOption_box_draw
  190. option_box_mouse dd      aOption_box_mouse
  191. version_op       dd      aVersion_op
  192.  
  193.                 dd      0
  194.                 dd      0
  195.  
  196. aEdit_box_draw  db 'edit_box',0
  197. aEdit_box_key   db 'edit_box_key',0
  198. aEdit_box_mouse db 'edit_box_mouse',0
  199. aVersion_ed     db 'version_ed',0
  200.  
  201. aCheck_box_draw  db 'check_box_draw',0
  202. aCheck_box_mouse db 'check_box_mouse',0
  203. aVersion_ch      db 'version_ch',0
  204.  
  205. aOption_box_draw  db 'option_box_draw',0
  206. aOption_box_mouse db 'option_box_mouse',0
  207. aVersion_op       db 'version_op',0
  208.  
  209.  
  210.  
  211.  
  212. check1 check_box 10,45,6,12,0x80AABBCC,0,0,check_text,14,ch_flag_en
  213. check2 check_box 10,60,6,12,0x80AABBCC,0,0,check_text2,15
  214.  
  215. edit1 edit_box 350,3,5,0xffffff,0x6f9480,0,0xAABBCC,0,308,hed,ed_focus,hed_end-hed-1,hed_end-hed-1
  216. edit2 edit_box 350,3,25,0xffffff,0x6a9480,0,0,0,99,ed_buffer,ed_figure_only
  217.  
  218. op1 option_box option_group1,10,90,6,12,0xffffff,0,0,op_text.1,op_text.e1-op_text.1
  219. op2 option_box option_group1,10,105,6,12,0xFFFFFF,0,0,op_text.2,op_text.e2-op_text.2
  220. op3 option_box option_group1,10,120,6,12,0xffffff,0,0,op_text.3,op_text.e3-op_text.3
  221. op11 option_box option_group2,120,90,6,12,0xffffff,0,0,op_text.1,op_text.e1-op_text.1
  222. op12 option_box option_group2,120,105,6,12,0xffffff,0,0,op_text.2,op_text.e2-op_text.2
  223. op13 option_box option_group2,120,120,6,12,0xffffff,0,0,op_text.3,op_text.e3-op_text.3
  224.  
  225. option_group1   dd op1  ;㪠§ â¥«¨, ®­¨ ®â®¡à ¦ îâáï ¯® 㬮«ç ­¨î, ª®£¤  ¢ë¢®¤¨âáï
  226. option_group2   dd op12 ;¯à¨«®¦¥­¨¥
  227. Option_boxs     dd  op1,op2,op3,0
  228. Option_boxs2    dd  op11,op12,op13,0
  229. hed db   'BOXs load from lib <Lrz> date 27.09.2007',0
  230. hed_end:
  231. rb  256
  232. check_text db 'First checkbox'
  233. check_text2 db 'Second checkbox'
  234. op_text:                ; ‘®¯à®¢®¦¤ î騩 ⥪áâ ¤«ï 祪 ¡®ªá®¢
  235. .1 db 'Option_Box #1'
  236. .e1:
  237. .2 db 'Option_Box #2'
  238. .e2:
  239. .3 db 'Option_Box #3'
  240. .e3:
  241. ed_buffer       rb 100
  242. way_of_ini      rb 1024
  243. i_end:
  244. rb 1024
  245. mem: