Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | Download | RSS feed

  1. button:
  2.         mcall   17
  3.         cmp     al,0
  4.         jne     still
  5.         shr     eax,8
  6.  
  7.         cmp     [bot_mode],0
  8.         je      @f
  9.         mov     ebx,eax
  10.         mov     al,3
  11.         call    [bot_dlg_handler]
  12.         jmp     still
  13.  
  14.     @@: mov     esi,accel_table2
  15.   .acc: cmp     eax,[esi]
  16.         jne     @f
  17.         call    dword[esi+4]
  18.         jmp     still.skip_write
  19.     @@: add     esi,8
  20.         cmp     byte[esi],0
  21.         jne     .acc
  22.  
  23.         jmp     still.skip_write
  24.  
  25. ;        cmp     eax,BUTTON_SCRLUP
  26. ;        jne     not_up
  27.   btn.scroll_up:
  28.         dec     [top_line]
  29.         jns     @f
  30.         inc     [top_line]
  31.         ret;jmp     still.skip_write
  32.     @@: call    check_inv_all.skip_check
  33.         ret
  34. ;  not_up:
  35.  
  36. ;        cmp     eax,BUTTON_SCRLDN
  37. ;        jne     not_down
  38.   btn.scroll_down:
  39.         inc     [top_line]
  40.         mov     eax,[lines]
  41.         sub     eax,[lines.scr]
  42.         cmp     eax,[top_line]
  43.         jge     @f
  44.         dec     [top_line]
  45.         ;dec     eax
  46.         ;mov     [top_line],eax
  47.         ret;jmp     still.skip_write
  48.     @@: call    check_inv_all.skip_check
  49.         ret
  50. ;  not_down:
  51.  
  52. ;        cmp     eax,BUTTON_SCRLLT
  53. ;        jne     not_left
  54.   btn.scroll_left:
  55.         dec     [left_col]
  56.         jns     @f
  57.         inc     [left_col]
  58.         ret;jmp     still.skip_write
  59.     @@: call    check_inv_all.skip_check
  60.         ret
  61. ;  not_left:
  62.  
  63. ;        cmp     eax,BUTTON_SCRLRT
  64. ;        jne     not_right
  65.   btn.scroll_right:
  66.         inc     [left_col]
  67.         mov     eax,[columns]
  68.         sub     eax,[columns.scr]
  69.         cmp     eax,[left_col]
  70.         jge     @f
  71.         dec     [left_col]
  72.         ;dec     eax
  73.         ;mov     [left_col],eax
  74.         ret;jmp     still.skip_write
  75.     @@: call    check_inv_all.skip_check
  76.         ret
  77. ;  not_right:
  78.  
  79. ; SEARCH {
  80. ;  search:
  81. ;        cmp     al,BUTTON_SEARCH
  82. ;        jne     no_search
  83.   btn.search:
  84.   key.f3:
  85.         call    search
  86.         jc      @f
  87.         call    check_inv_all
  88.     @@: ret
  89.  
  90.  
  91. func search
  92.         cld
  93.         mov     ecx,[pos.y]
  94.         mov     edx,ecx
  95.         call    get_line_offset
  96.         cmp     word[esi],0
  97.         je      .exit
  98.         call    get_real_length
  99.         add     esi,4
  100.         or      eax,eax
  101.         jz      .end_line.2
  102.         mov     ecx,eax
  103.         sub     ecx,[pos.x]
  104.         push    esi
  105.         add     esi,[pos.x]
  106.         ;dec     ecx
  107.         ;inc     esi
  108.         jmp     @f
  109.  
  110.   .next_line:
  111.         push    esi
  112.     @@: sub     ecx,[s_search.size]
  113.         inc     ecx
  114.  
  115.   .next_char:
  116.         dec     ecx
  117.         js      .end_line
  118.         xor     edi,edi
  119.  
  120.   .next_ok:
  121.         movzx   eax,byte[edi+esi]
  122.         movzx   ebx,byte[edi+s_search]
  123.  
  124.         cmp     al,$61
  125.         jb      @f
  126.         add     al,[eax+add_table-$61]
  127.     @@: cmp     bl,$61
  128.         jb      @f
  129.         add     bl,[ebx+add_table-$61]
  130.     @@:
  131.         cmp     al,bl
  132.         je      @f
  133.  
  134.         inc     esi
  135.         jmp     .next_char
  136.     @@:
  137.         inc     edi
  138.         cmp     edi,[s_search.size]
  139.         jne     .next_ok
  140.  
  141.   .found:
  142.         add     esp,4
  143.         mov     [pos.y],edx
  144.         mov     [sel.y],edx
  145.         mov     ecx,edx
  146.         lea     eax,[esi-4]
  147.         call    get_line_offset
  148.         sub     eax,esi
  149.         mov     [sel.x],eax
  150.         add     eax,[s_search.size]
  151.         mov     [pos.x],eax
  152.         mov     [s_status],0
  153.         clc
  154.         ret
  155.  
  156.   .end_line:
  157.         pop     esi
  158.   .end_line.2:
  159.         movzx   eax,word[esi-4]
  160.         add     esi,eax;[esi-4]
  161.         inc     edx
  162.         call    get_real_length
  163.         mov     ecx,eax
  164.         lodsd
  165.         or      eax,eax
  166.         jnz     .next_line
  167.   .exit:
  168.         mov     [s_status],s_text_not_found
  169.         stc
  170.         ret
  171. endf
  172.  
  173. ; SEARCH }
  174.  
  175. ;  no_search:
  176.  
  177. ; TOOLBAR {
  178. ;        cmp     eax,10000
  179. ;        jb      no_toolbar
  180.  
  181. ;        add     eax,-10000
  182. ;        jnz     @f
  183.   btn.compile:
  184.   key.ctrl_f9:
  185.         mov     bl,0;[run_outfile],0
  186.         call    start_fasm
  187.         ret;jmp     still
  188. ;    @@: dec     eax
  189. ;        jnz     @f
  190.   btn.compile_run:
  191.   key.f9:
  192.         mov     bl,1;[run_outfile],1
  193.         call    start_fasm
  194.         ret;jmp     still
  195. ;    @@: dec     eax
  196. ;        jnz     @f
  197.   btn.debug_board:
  198.         call    open_debug_board
  199.         ret;jmp     still
  200. ;    @@: dec     eax
  201. ;        jnz     still
  202.   btn.sysfuncs_txt:
  203.         call    open_sysfuncs_txt
  204.         ret;jmp     still
  205. ; TOOLBAR }
  206.  
  207. ;  no_toolbar:
  208.  
  209. ;        cmp     al,4
  210. ;        jne     noid4
  211.  
  212. ; LOAD_FILE {
  213. ;  do_load_file:
  214.   btn.load_file:
  215.   key.ctrl_l:
  216. ;        cmp     [s_fname],'/'
  217. ;        jne     @f
  218. ;        call    load_hd_file
  219. ;        jmp     .restorecursor
  220. ;    @@: call    load_file
  221.         call    load_file
  222.         jnc     @f
  223.         ret
  224. ;    .restorecursor:
  225.     @@:
  226.         xor     eax,eax
  227.         mov     [top_line],eax
  228.         mov     [left_col],eax
  229.         mov     [pos.x],eax
  230.         mov     [pos.y],eax
  231.         mov     [sel.x],eax
  232.         mov     [sel.y],eax
  233.  
  234.         mov     [modified],al
  235.  
  236. ; enable color syntax for ASM and INC files:
  237.         mov     [asm_mode],al
  238.  
  239.         mov     eax,[f_info.length] ; [s_fname.size]
  240.         add     eax,f_info.path ; s_fname
  241.         mov     byte[eax],0
  242.         mov     ecx, dword [eax-3]
  243.         or      ecx, 0x202020
  244.         cmp     ecx, 'asm'
  245.         jne     @f
  246.         inc     [asm_mode]
  247.         jmp     .nocol
  248.     @@: cmp     ecx, 'inc'
  249.         jne     .nocol
  250.         inc     [asm_mode]
  251.     .nocol:
  252.  
  253.   update_caption:
  254. macro unused {
  255.         movzx   ecx,[f_info.length] ; [s_fname.size]
  256.         add     ecx,10             ; strlen(" - TINYPAD");
  257.         cmp     ecx,[s_title.size]
  258.         jne     @f
  259.         add     ecx,-10
  260.         mov     esi,f_info.path ; s_fname       ; strcmp(s_fname,header);
  261.         mov     edi,s_title
  262.         repe    cmpsb
  263.         jne     @f
  264. ;       call    draw_file
  265.         clc
  266.         ret;jmp     still
  267.     @@:
  268. }
  269. ; set window title:
  270.         mov     esi,f_info.path ; s_fname
  271.         mov     edi,s_title
  272.  
  273.         cld
  274.         mov     ecx,[f_info.length] ; [s_fname.size]
  275.         jecxz   @f
  276.         ;lea     eax,[ecx+10]
  277.         ;mov     [s_title.size],eax
  278.         ;cld
  279.         rep     movsb
  280.  
  281.         mov     dword[edi],' - '
  282.         add     edi,3
  283.     @@: mov     esi,htext
  284.         mov     ecx,htext.size
  285.         rep     movsb
  286.  
  287.         mov     al,0
  288.         stosb
  289.  
  290. ;       call    drawwindow
  291.         clc
  292.         ret;jmp     still
  293. ; LOAD_FILE }
  294.  
  295. ;  noid4:
  296.  
  297. ;        cmp     al, 2
  298. ;        jz      yessave
  299.  
  300. ;        dec     al       ; close if butid == 1
  301. ;        jnz     nosave
  302. ; EXIT:
  303.   btn.close_main_window:
  304.   key.alt_x:
  305.         mov     esi,self_path
  306.         mov     byte[esi+PATHL-1],0
  307.         mov     edi,f_info.path
  308.         cld
  309.     @@: lodsb
  310.         stosb
  311.         or      al,al
  312.         jnz     @b
  313.         mov     ebx,f_info
  314.         mov     dword[ebx+0],1
  315.         mov     dword[ebx+8],self_path
  316.         mov     dword[ebx+12],0
  317.         mcall   58
  318.  
  319. ;       test    eax,eax
  320. ;       je      .close
  321. ;       cmp     eax,6
  322. ;       je      .close
  323. ;       ret
  324.  
  325.   .close:
  326.         mov     [main_closed],1
  327.         mcall   -1
  328.  
  329. ; SAVE_FILE {
  330. ;  yessave:
  331. ;  btn.save_file:
  332. ;  key.ctrl_s:
  333. ;        mov     [bot_mode],1
  334. ;        mov     [bot_save_mode],1
  335. ;        mov     [bot_dlg_height],16*2+4*2-1
  336. ;        mov     [bot_dlg_handler],osdlg_handler
  337. ;        call    drawwindow
  338. ;        call    save_file
  339. ;        ret;jmp     still
  340. ; SAVE_FILE }
  341.  
  342. ;  nosave:
  343. ;  btn.save_enter_name:
  344. ;        inc     al
  345. ;        call    read_string
  346. ;        ret;jmp     still