Rev 6256 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 6256 | Rev 6274 | ||
---|---|---|---|
Line 1... | Line 1... | ||
1 | ; ¬ ªà®á ¤«ï á¨á⥬®© ¡¨¡«¨®â¥ª¨ box_lib.obj |
1 | ; ¬ ªà®á ¤«ï á¨á⥬®© ¡¨¡«¨®â¥ª¨ box_lib.obj |
2 | ; í«¥¬¥â TextEditor ¤«ï Kolibri OS |
2 | ; í«¥¬¥â TextEditor ¤«ï Kolibri OS |
3 | ; ä ©« ¯®á«¥¤¨© à § ¨§¬¥ï«áï 19.02.2016 IgorA |
3 | ; ä ©« ¯®á«¥¤¨© à § ¨§¬¥ï«áï 20.02.2016 IgorA |
4 | ; ª®¤ ¯à¨¬¥¥ GPL2 «¨æ¥§¨ï |
4 | ; ª®¤ ¯à¨¬¥¥ GPL2 «¨æ¥§¨ï |
Line 5... | Line 5... | ||
5 | 5 | ||
6 | ;input: |
6 | ;input: |
7 | ; edi = pointer to tedit struct |
7 | ; edi = pointer to tedit struct |
Line 54... | Line 54... | ||
54 | tc dd ? ; +10 ¢à¥¬. ᮧ¤ ¨ï |
54 | tc dd ? ; +10 ¢à¥¬. ᮧ¤ ¨ï |
55 | td dd ? ; +14 ¢à¥¬. 㤠«¥¨ï |
55 | td dd ? ; +14 ¢à¥¬. 㤠«¥¨ï |
56 | ends |
56 | ends |
57 | ;------------------------------------------------------------------------------ |
57 | ;------------------------------------------------------------------------------ |
Line -... | Line 58... | ||
- | 58 | ||
58 | 59 | ted_symbol_space db 32 ;ascii ª®¤ ¯à®¡¥« , ¨®£¤ ¡ë¢ ¥â 㦥 ¢ ª®¤¥ |
|
Line 59... | Line 60... | ||
59 | ted_symbol_tab db 26 ;ascii ª®¤ áâ५ª¨ ¢¯à ¢®, ¨á¯®«ì§ã¥âáï ¤«ï à¨á®¢ ¨ï â ¡ã«ï樨 ¢ ०¨¬¥ ¯®ª § ¥¢¨¤¨¬ëå ᨬ¢®«®¢ |
60 | ted_symbol_tab db 26 ;ascii ª®¤ áâ५ª¨ ¢¯à ¢®, ¨á¯®«ì§ã¥âáï ¤«ï à¨á®¢ ¨ï â ¡ã«ï樨 ¢ ०¨¬¥ ¯®ª § ¥¢¨¤¨¬ëå ᨬ¢®«®¢ |
Line 60... | Line 61... | ||
60 | 61 | ||
Line 103... | Line 104... | ||
103 | KEY_F2 equ 0x0000003C |
104 | KEY_F2 equ 0x0000003C |
104 | KEY_F3 equ 0x0000003D |
105 | KEY_F3 equ 0x0000003D |
Line 105... | Line 106... | ||
105 | 106 | ||
106 | 107 | ||
107 | 108 | ||
Line 108... | Line 109... | ||
108 | align 4 |
109 | align 16 |
109 | proc ted_init uses eax ecx edi, edit:dword |
110 | proc ted_init uses eax ecx edi, edit:dword |
110 | mov edi,dword[edit] |
111 | mov edi,[edit] |
111 | 112 | ||
Line 135... | Line 136... | ||
135 | MIN_W_SCRL_ARE equ 3 ;¬¨¨¬ «ì ï ®â®¡à ¦ ¥¬ ï ®¡« áâì ¤«ï ¢¥àâ. áªà®««¨£ |
136 | MIN_W_SCRL_ARE equ 3 ;¬¨¨¬ «ì ï ®â®¡à ¦ ¥¬ ï ®¡« áâì ¤«ï ¢¥àâ. áªà®««¨£ |
136 | MIN_H_SCRL_ARE equ 3 ;¬¨¨¬ «ì ï ®â®¡à ¦ ¥¬ ï ®¡« áâì ¤«ï £®à¨§. áªà®««¨£ |
137 | MIN_H_SCRL_ARE equ 3 ;¬¨¨¬ «ì ï ®â®¡à ¦ ¥¬ ï ®¡« áâì ¤«ï £®à¨§. áªà®««¨£ |
137 | ;input: |
138 | ;input: |
138 | ; opt = 1 - ¬¥ïâì 梥â áªà®««¨£®¢, 2 - ¨§¬¥¨«¨áì à §¬¥àë ®ª , |
139 | ; opt = 1 - ¬¥ïâì 梥â áªà®««¨£®¢, 2 - ¨§¬¥¨«¨áì à §¬¥àë ®ª , |
139 | ; 4 - ¨§¬¥¨«¨áì à §¬¥àë ¤®ªã¬¥â |
140 | ; 4 - ¨§¬¥¨«¨áì à §¬¥àë ¤®ªã¬¥â |
140 | align 4 |
141 | align 16 |
141 | proc ted_init_scroll_bars, edit:dword, opt:dword |
142 | proc ted_init_scroll_bars, edit:dword, opt:dword |
142 | pushad |
143 | pushad |
143 | mov edi,dword[edit] |
144 | mov edi,[edit] |
144 | mov esi,ted_scr_w |
145 | mov esi,ted_scr_w |
145 | mov ebx,ted_scr_h |
146 | mov ebx,ted_scr_h |
146 | bt dword[opt],0 |
147 | bt dword[opt],0 |
147 | jae @f |
148 | jae @f |
148 | mov ecx,ted_color_wnd_work |
149 | mov ecx,ted_color_wnd_work |
Line 205... | Line 206... | ||
205 | .no_size: |
206 | .no_size: |
206 | popad |
207 | popad |
207 | ret |
208 | ret |
208 | endp |
209 | endp |
Line 209... | Line 210... | ||
209 | 210 | ||
210 | align 4 |
211 | align 16 |
211 | proc ted_delete uses edi, edit:dword |
212 | proc ted_delete uses edi, edit:dword |
212 | mov edi,dword[edit] |
213 | mov edi,[edit] |
213 | invoke mem.free,ted_tex |
214 | invoke mem.free,ted_tex |
214 | invoke mem.free,ted_arr_key_pos ;ted_syntax_file |
215 | invoke mem.free,ted_arr_key_pos ;ted_syntax_file |
215 | ret |
216 | ret |
Line 216... | Line 217... | ||
216 | endp |
217 | endp |
217 | 218 | ||
218 | 219 | ||
219 | ;input: |
220 | ;input: |
220 | ; eax = key kodes |
221 | ; eax = key kodes |
221 | align 4 |
222 | align 16 |
222 | proc ted_key, edit:dword, table:dword, control:dword |
223 | proc ted_key, edit:dword, table:dword, control:dword |
223 | pushad |
224 | pushad |
224 | mov edi,dword[edit] |
225 | mov edi,[edit] |
225 | mov esi,ted_el_focus |
226 | mov esi,ted_el_focus |
Line 463... | Line 464... | ||
463 | jne .dr_m_win |
464 | jne .dr_m_win |
464 | ;¥á«¨ ¢áâ ¢¨«¨ ᨬ¢®« ®¢®© áâப¨ |
465 | ;¥á«¨ ¢áâ ¢¨«¨ ᨬ¢®« ®¢®© áâப¨ |
465 | mov ecx,ted_scr_w |
466 | mov ecx,ted_scr_w |
466 | inc dword[ecx+sb_offs_max_area] ;㢥«¨ç¨¢ ¥¬ à §¬¥à ¢¥à⨪ «ì®£® áªà®««¨£ |
467 | inc dword[ecx+sb_offs_max_area] ;㢥«¨ç¨¢ ¥¬ à §¬¥à ¢¥à⨪ «ì®£® áªà®««¨£ |
467 | mov edx,ted_cur_y |
468 | mov edx,ted_cur_y |
468 | cmp edx,dword[ecx+sb_offs_cur_area] |
469 | cmp edx,[ecx+sb_offs_cur_area] |
469 | jl .no_change |
470 | jl .no_change |
470 | dec ted_cur_y ;ªãàá®à ®áâ ¢«ï¥¬ ¬¥á⥠|
471 | dec ted_cur_y ;ªãàá®à ®áâ ¢«ï¥¬ ¬¥á⥠|
471 | inc dword[ecx+sb_offs_position] ;ᤢ¨£ ¥¬ ¯®«§ã®ª |
472 | inc dword[ecx+sb_offs_position] ;ᤢ¨£ ¥¬ ¯®«§ã®ª |
472 | .no_change: |
473 | .no_change: |
473 | stdcall ted_draw,edi |
474 | stdcall ted_draw,edi |
Line 491... | Line 492... | ||
491 | stdcall ted_draw,edi |
492 | stdcall ted_draw,edi |
492 | cmp ted_fun_draw_panel_buttons,0 |
493 | cmp ted_fun_draw_panel_buttons,0 |
493 | je .end_key_fun |
494 | je .end_key_fun |
494 | call ted_fun_draw_panel_buttons |
495 | call ted_fun_draw_panel_buttons |
495 | jmp .end_key_fun |
496 | jmp .end_key_fun |
- | 497 | align 4 |
|
496 | @@: |
498 | @@: |
Line 497... | Line 499... | ||
497 | 499 | ||
498 | cmp ah,182 ;Delete |
500 | cmp ah,182 ;Delete |
499 | jne @f |
501 | jne @f |
Line 522... | Line 524... | ||
522 | ret |
524 | ret |
523 | endp |
525 | endp |
Line 524... | Line 526... | ||
524 | 526 | ||
525 | ;output: |
527 | ;output: |
526 | ; al = 1 - can save |
528 | ; al = 1 - can save |
527 | align 4 |
529 | align 16 |
528 | proc ted_can_save uses ecx edi, edit:dword |
530 | proc ted_can_save uses ecx edi, edit:dword |
Line 529... | Line 531... | ||
529 | mov edi,dword[edit] |
531 | mov edi,[edit] |
530 | 532 | ||
531 | mov ecx,ted_tim_ch |
533 | mov ecx,ted_tim_ch |
532 | sub ecx,ted_tim_undo |
534 | sub ecx,ted_tim_undo |
Line 540... | Line 542... | ||
540 | 542 | ||
541 | ;input: |
543 | ;input: |
542 | ; edi = pointer to tedit struct |
544 | ; edi = pointer to tedit struct |
543 | ;output: |
545 | ;output: |
544 | ; al = 1 - selected |
546 | ; al = 1 - selected |
545 | align 4 |
547 | align 16 |
546 | proc ted_is_select uses ebx |
548 | proc ted_is_select uses ebx |
547 | xor al,al |
549 | xor al,al |
548 | cmp ted_drag_m,1 |
550 | cmp ted_drag_m,1 |
549 | je @f |
551 | je @f |
Line 559... | Line 561... | ||
559 | ret |
561 | ret |
560 | endp |
562 | endp |
Line 561... | Line 563... | ||
561 | 563 | ||
562 | ;input: |
564 | ;input: |
563 | ; edi = pointer to tedit struct |
565 | ; edi = pointer to tedit struct |
564 | align 4 |
566 | align 16 |
565 | proc ted_sel_normalize uses ecx esi |
567 | proc ted_sel_normalize uses ecx esi |
566 | push edi |
568 | push edi |
567 | mov esi,edi |
569 | mov esi,edi |
568 | add esi,ted_offs_sel |
570 | add esi,ted_offs_sel |
Line 582... | Line 584... | ||
582 | jle .end_f |
584 | jle .end_f |
583 | m2m ted_seln_y0,ted_seln_y1 |
585 | m2m ted_seln_y0,ted_seln_y1 |
584 | mov ted_seln_y1,ecx |
586 | mov ted_seln_y1,ecx |
Line 585... | Line 587... | ||
585 | 587 | ||
- | 588 | jmp .end_f |
|
586 | jmp .end_f |
589 | align 4 |
Line 587... | Line 590... | ||
587 | @@: |
590 | @@: |
588 | 591 | ||
589 | mov ecx,ted_seln_y0 |
592 | mov ecx,ted_seln_y0 |
Line 602... | Line 605... | ||
602 | 605 | ||
603 | ;input: |
606 | ;input: |
604 | ; edi = pointer to tedit struct |
607 | ; edi = pointer to tedit struct |
605 | ;description: |
608 | ;description: |
606 | ; ãªæ¨ï ¢ë§ë¢ ¥¬ ï ¯à¨ ç «¥ ¢ë¤¥«¥¨ï |
609 | ; ãªæ¨ï ¢ë§ë¢ ¥¬ ï ¯à¨ ç «¥ ¢ë¤¥«¥¨ï |
607 | align 4 |
610 | align 16 |
608 | proc ted_sel_start uses eax ecx |
611 | proc ted_sel_start uses eax ecx |
609 | mov eax,ted_scr_h |
612 | mov eax,ted_scr_h |
610 | mov ecx,ted_cur_x |
613 | mov ecx,ted_cur_x |
611 | add ecx,dword[eax+sb_offs_position] |
614 | add ecx,dword[eax+sb_offs_position] |
Line 622... | Line 625... | ||
622 | 625 | ||
623 | ;input: |
626 | ;input: |
624 | ; edi = pointer to tedit struct |
627 | ; edi = pointer to tedit struct |
625 | ;description: |
628 | ;description: |
626 | ; ãªæ¨ï ¢ë§ë¢ ¥¬ ï ¯à¨ ¯¥à¥¬¥é¥¨¨ ¢ë¤¥«¥¨ï |
629 | ; ãªæ¨ï ¢ë§ë¢ ¥¬ ï ¯à¨ ¯¥à¥¬¥é¥¨¨ ¢ë¤¥«¥¨ï |
627 | align 4 |
630 | align 16 |
628 | proc ted_sel_move |
631 | proc ted_sel_move |
629 | push eax ecx |
632 | push eax ecx |
630 | mov ecx,ted_cur_x |
633 | mov ecx,ted_cur_x |
631 | mov eax,ted_scr_h |
634 | mov eax,ted_scr_h |
Line 646... | Line 649... | ||
646 | 649 | ||
647 | ;input: |
650 | ;input: |
648 | ; edi = pointer to tedit struct |
651 | ; edi = pointer to tedit struct |
649 | ;description: |
652 | ;description: |
650 | ; ãªæ¨ï ¢ë§ë¢ ¥¬ ï ¯à¨ ¢ë¤¥«¥¨¨ ¢á¥£® ¤®ªã¬¥â |
653 | ; ãªæ¨ï ¢ë§ë¢ ¥¬ ï ¯à¨ ¢ë¤¥«¥¨¨ ¢á¥£® ¤®ªã¬¥â |
651 | align 4 |
654 | align 16 |
652 | proc ted_sel_all |
655 | proc ted_sel_all |
653 | push eax |
656 | push eax |
654 | xor eax,eax |
657 | xor eax,eax |
655 | mov ted_sel_x0,eax |
658 | mov ted_sel_x0,eax |
Line 667... | Line 670... | ||
667 | ret |
670 | ret |
668 | endp |
671 | endp |
Line 669... | Line 672... | ||
669 | 672 | ||
670 | ;input: |
673 | ;input: |
671 | ; cl_al_mem = 1 - clear all memory |
674 | ; cl_al_mem = 1 - clear all memory |
672 | align 4 |
675 | align 16 |
673 | proc ted_clear uses ecx edi, edit:dword, cl_al_mem:dword |
676 | proc ted_clear uses ecx edi, edit:dword, cl_al_mem:dword |
Line 674... | Line 677... | ||
674 | mov edi,dword[edit] |
677 | mov edi,[edit] |
675 | 678 | ||
676 | mov ted_cur_x,0 |
679 | mov ted_cur_x,0 |
677 | mov ted_cur_y,0 |
680 | mov ted_cur_y,0 |
Line 716... | Line 719... | ||
716 | .exit: |
719 | .exit: |
717 | ret |
720 | ret |
718 | endp |
721 | endp |
Line 719... | Line 722... | ||
719 | 722 | ||
720 | 723 | ||
721 | align 4 |
724 | align 16 |
722 | proc ted_init_syntax_file, edit:dword |
725 | proc ted_init_syntax_file, edit:dword |
Line 723... | Line 726... | ||
723 | pushad |
726 | pushad |
724 | mov edi,dword[edit] |
727 | mov edi,[edit] |
725 | 728 | ||
726 | mov ecx,0x100 |
729 | mov ecx,0x100 |
Line 784... | Line 787... | ||
784 | ;input: |
787 | ;input: |
785 | ; ebx = file size |
788 | ; ebx = file size |
786 | ; edi = pointer to tedit struct |
789 | ; edi = pointer to tedit struct |
787 | ;description: |
790 | ;description: |
788 | ; ãªæ¨ï ¢ë§ë¢ ¥âáï ¯à¨ ®âªàë⨨ ä ©« |
791 | ; ãªæ¨ï ¢ë§ë¢ ¥âáï ¯à¨ ®âªàë⨨ ä ©« |
789 | align 4 |
792 | align 16 |
790 | proc ted_on_open_file |
793 | proc ted_on_open_file |
791 | push eax ;destination |
794 | push eax ;destination |
792 | push ecx ;for cycle |
795 | push ecx ;for cycle |
793 | push edx ;source |
796 | push edx ;source |
794 | push esi |
797 | push esi |
Line 891... | Line 894... | ||
891 | ;input: |
894 | ;input: |
892 | ; edx = pointer to symbol struct |
895 | ; edx = pointer to symbol struct |
893 | ; edi = pointer to tedit struct |
896 | ; edi = pointer to tedit struct |
894 | ;output: |
897 | ;output: |
895 | ; edx = pointer to 'perv' visible symbol struct |
898 | ; edx = pointer to 'perv' visible symbol struct |
896 | align 4 |
899 | align 16 |
897 | ted_iterat_perv: |
900 | ted_iterat_perv: |
898 | cmp ted_tim_undo,0 |
901 | cmp ted_tim_undo,0 |
899 | je .else |
902 | je .else |
900 | push ebx |
903 | push ebx |
901 | @@: |
904 | @@: |
Line 934... | Line 937... | ||
934 | ;input: |
937 | ;input: |
935 | ; edx = pointer to symbol struct |
938 | ; edx = pointer to symbol struct |
936 | ; edi = pointer to tedit struct |
939 | ; edi = pointer to tedit struct |
937 | ;output: |
940 | ;output: |
938 | ; edx = pointer to 'next' visible symbol struct |
941 | ; edx = pointer to 'next' visible symbol struct |
939 | align 4 |
942 | align 16 |
940 | ted_iterat_next: |
943 | ted_iterat_next: |
941 | cmp ted_tim_undo,0 |
944 | cmp ted_tim_undo,0 |
942 | je .else |
945 | je .else |
943 | push ebx |
946 | push ebx |
944 | @@: |
947 | @@: |
Line 980... | Line 983... | ||
980 | ; bh = íªà ¨àãî騩 ᨬ¢®« (= 0 ¥á«¨ ¥â ¯à®¢¥àª¨ ¨å) |
983 | ; bh = íªà ¨àãî騩 ᨬ¢®« (= 0 ¥á«¨ ¥â ¯à®¢¥àª¨ ¨å) |
981 | ; edx = pointer to symbol struct |
984 | ; edx = pointer to symbol struct |
982 | ; edi = pointer to tedit struct |
985 | ; edi = pointer to tedit struct |
983 | ;description: |
986 | ;description: |
984 | ; ©â¨ á«¥¤ãîéãî ¯®§¨æ¨î 㪠§ ®£® ᨬ¢®« |
987 | ; ©â¨ á«¥¤ãîéãî ¯®§¨æ¨î 㪠§ ®£® ᨬ¢®« |
985 | align 4 |
988 | align 16 |
986 | ted_iterat_next_pos_char: |
989 | ted_iterat_next_pos_char: |
987 | push ax |
990 | push ax |
988 | mov al,1 ;¯à¥¤ë¤ã騩 ᨬ¢®«, á«ã¦¨â ¤«ï áà ¢¥¨ï á ᨬ¢®«®¬ bh |
991 | mov al,1 ;¯à¥¤ë¤ã騩 ᨬ¢®«, á«ã¦¨â ¤«ï áà ¢¥¨ï á ᨬ¢®«®¬ bh |
989 | @@: |
992 | @@: |
990 | cmp bl,byte[edx] |
993 | cmp bl,byte[edx] |
Line 1004... | Line 1007... | ||
1004 | ret |
1007 | ret |
Line 1005... | Line 1008... | ||
1005 | 1008 | ||
1006 | ;input: |
1009 | ;input: |
1007 | ; edx = pointer to symbol struct |
1010 | ; edx = pointer to symbol struct |
1008 | ; edi = pointer to tedit struct |
1011 | ; edi = pointer to tedit struct |
1009 | align 4 |
1012 | align 16 |
1010 | ted_iterat_perv_color_tag: |
1013 | ted_iterat_perv_color_tag: |
1011 | @@: |
1014 | @@: |
1012 | cmp byte[edx+1],0 |
1015 | cmp byte[edx+1],0 |
1013 | jne @f |
1016 | jne @f |
1014 | call ted_iterat_perv |
1017 | call ted_iterat_perv |
1015 | cmp edx,ted_tex_1 |
1018 | cmp edx,ted_tex_1 |
1016 | jle @f |
1019 | jle @f |
- | 1020 | jmp @b |
|
1017 | jmp @b |
1021 | align 4 |
1018 | @@: |
1022 | @@: |
Line 1019... | Line 1023... | ||
1019 | ret |
1023 | ret |
1020 | 1024 | ||
1021 | ;input: |
1025 | ;input: |
1022 | ; edx = pointer to symbol struct |
1026 | ; edx = pointer to symbol struct |
1023 | ; edi = pointer to tedit struct |
1027 | ; edi = pointer to tedit struct |
1024 | align 4 |
1028 | align 16 |
1025 | ted_iterat_next_color_tag: |
1029 | ted_iterat_next_color_tag: |
1026 | @@: |
1030 | @@: |
1027 | call ted_iterat_next |
1031 | call ted_iterat_next |
1028 | cmp byte[edx+1],0 |
1032 | cmp byte[edx+1],0 |
1029 | jne @f |
1033 | jne @f |
1030 | cmp edx,ted_tex_1 |
1034 | cmp edx,ted_tex_1 |
- | 1035 | jle @f |
|
1031 | jle @f |
1036 | jmp @b |
1032 | jmp @b |
1037 | align 4 |
Line 1033... | Line 1038... | ||
1033 | @@: |
1038 | @@: |
1034 | ret |
1039 | ret |
1035 | 1040 | ||
1036 | ;input: |
1041 | ;input: |
1037 | ; edx = pointer to symbol struct |
1042 | ; edx = pointer to symbol struct |
1038 | ; edi = pointer to tedit struct |
1043 | ; edi = pointer to tedit struct |
1039 | ;output: |
1044 | ;output: |
1040 | ; bl = 1 if sumbol not visible |
1045 | ; bl = 1 if sumbol not visible |
1041 | ; (tex[i].td+ted_tim_undo<=ted_tim_ch && tex[i].td) || (tex[i].tc>ted_tim_ch-ted_tim_undo) |
1046 | ; (tex[i].td+ted_tim_undo<=ted_tim_ch && tex[i].td) || (tex[i].tc>ted_tim_ch-ted_tim_undo) |
Line 1042... | Line 1047... | ||
1042 | align 4 |
1047 | align 16 |
Line 1067... | Line 1072... | ||
1067 | ret |
1072 | ret |
Line 1068... | Line 1073... | ||
1068 | 1073 | ||
1069 | ;input: |
1074 | ;input: |
1070 | ; text:dword - pointer to text string |
1075 | ; text:dword - pointer to text string |
1071 | ; add_opt:dword - options |
1076 | ; add_opt:dword - options |
1072 | align 4 |
1077 | align 16 |
1073 | proc ted_text_add, edit:dword, text:dword, t_len:dword, add_opt:dword |
1078 | proc ted_text_add, edit:dword, text:dword, t_len:dword, add_opt:dword |
1074 | locals |
1079 | locals |
1075 | new_spc dd ? ;count new spaces |
1080 | new_spc dd ? ;count new spaces |
1076 | new_lin dd ? ;count new lines |
1081 | new_lin dd ? ;count new lines |
Line 1082... | Line 1087... | ||
1082 | ;edx - 㪠§ ⥫ì áâàãªâãàã ᨬ¢®« |
1087 | ;edx - 㪠§ ⥫ì áâàãªâãàã ᨬ¢®« |
1083 | pushad |
1088 | pushad |
1084 | cmp dword[t_len],1 ;¯à®¢¥à塞 ¤«¨ã ¤®¡¢«ï¥¬®£® ⥪áâ |
1089 | cmp dword[t_len],1 ;¯à®¢¥à塞 ¤«¨ã ¤®¡¢«ï¥¬®£® ⥪áâ |
1085 | jl .no_add ;ª®£¤ ¤«¨ <1 ¯àë£ ¥¬ ª®¥æ äãªæ¨¨, ¢® ¨§¡¥¦ ¨¥ £«îª®¢ |
1090 | jl .no_add ;ª®£¤ ¤«¨ <1 ¯àë£ ¥¬ ª®¥æ äãªæ¨¨, ¢® ¨§¡¥¦ ¨¥ £«îª®¢ |
Line 1086... | Line 1091... | ||
1086 | 1091 | ||
1087 | mov edi,dword[edit] |
1092 | mov edi,[edit] |
Line 1088... | Line 1093... | ||
1088 | mov esi,dword[text] |
1093 | mov esi,dword[text] |
1089 | 1094 | ||
1090 | call ted_get_pos_by_cursor |
1095 | call ted_get_pos_by_cursor |
Line 1219... | Line 1224... | ||
1219 | ;input: |
1224 | ;input: |
1220 | ; edx = pointer to sumbol, when insert |
1225 | ; edx = pointer to sumbol, when insert |
1221 | ; edi = pointer to tedit struct |
1226 | ; edi = pointer to tedit struct |
1222 | ;output: |
1227 | ;output: |
1223 | ; edx = new pointer to sumbol, when insert |
1228 | ; edx = new pointer to sumbol, when insert |
1224 | align 4 |
1229 | align 16 |
1225 | proc ted_memory_increase |
1230 | proc ted_memory_increase |
1226 | cmp ted_increase_size,0 |
1231 | cmp ted_increase_size,0 |
1227 | je @f |
1232 | je @f |
1228 | push eax ebx ecx |
1233 | push eax ebx ecx |
1229 | mov ecx,ted_increase_size |
1234 | mov ecx,ted_increase_size |
Line 1250... | Line 1255... | ||
1250 | ; edx = pointer to sumbol, when insert |
1255 | ; edx = pointer to sumbol, when insert |
1251 | ; esi = added symbol |
1256 | ; esi = added symbol |
1252 | ; edi = pointer to tedit struct |
1257 | ; edi = pointer to tedit struct |
1253 | ;output: |
1258 | ;output: |
1254 | ; ecx = position to inserted cell |
1259 | ; ecx = position to inserted cell |
1255 | align 4 |
1260 | align 16 |
1256 | ted_char_add: |
1261 | ted_char_add: |
1257 | .loop_b: |
1262 | .loop_b: |
1258 | cmp ecx,ted_tex_end |
1263 | cmp ecx,ted_tex_end |
1259 | jge .end_f |
1264 | jge .end_f |
1260 | cmp dword[ecx+10],0 |
1265 | cmp dword[ecx+10],0 |
Line 1294... | Line 1299... | ||
1294 | 1299 | ||
1295 | ;description: |
1300 | ;description: |
1296 | ; äãªæ¨ï ¤«ï á¬¥ë ª®¤¨à®¢®ª |
1301 | ; äãªæ¨ï ¤«ï á¬¥ë ª®¤¨à®¢®ª |
1297 | ;input: |
1302 | ;input: |
1298 | ; table - â ¡«¨æ ¤«ï ¯¥à¥ª®¤¨à®¢ª¨ |
1303 | ; table - â ¡«¨æ ¤«ï ¯¥à¥ª®¤¨à®¢ª¨ |
1299 | align 4 |
1304 | align 16 |
1300 | proc ted_but_convert_by_table uses eax edx edi esi, edit:dword, table:dword |
1305 | proc ted_but_convert_by_table uses eax edx edi esi, edit:dword, table:dword |
1301 | mov edi,dword[edit] |
1306 | mov edi,[edit] |
1302 | mov esi,dword[table] |
1307 | mov esi,dword[table] |
1303 | mov edx,ted_tex |
1308 | mov edx,ted_tex |
1304 | .cycle: |
1309 | .cycle: |
1305 | ;¯¥à¥å®¤¨¬ á«¥¤ãî騩 ᨬ¢®« |
1310 | ;¯¥à¥å®¤¨¬ á«¥¤ãî騩 ᨬ¢®« |
Line 1329... | Line 1334... | ||
1329 | ; edi = pointer to tedit struct |
1334 | ; edi = pointer to tedit struct |
1330 | ;output: |
1335 | ;output: |
1331 | ; esi = count converted symbols |
1336 | ; esi = count converted symbols |
1332 | ;description: |
1337 | ;description: |
1333 | ; ãªæ¨ï ¨á¯®«ì§ã¥âáï ¤«ï ᬥë ॣ¨áâà ¢ë¡à ëå ᨬ¢®«®¢ |
1338 | ; ãªæ¨ï ¨á¯®«ì§ã¥âáï ¤«ï ᬥë ॣ¨áâà ¢ë¡à ëå ᨬ¢®«®¢ |
1334 | align 4 |
1339 | align 16 |
1335 | proc ted_convert_sel_text, conv_fun:dword |
1340 | proc ted_convert_sel_text, conv_fun:dword |
1336 | locals |
1341 | locals |
1337 | conv_cou dd ? |
1342 | conv_cou dd ? |
1338 | endl |
1343 | endl |
1339 | mov dword[conv_cou],0 |
1344 | mov dword[conv_cou],0 |
Line 1394... | Line 1399... | ||
1394 | endp |
1399 | endp |
Line 1395... | Line 1400... | ||
1395 | 1400 | ||
1396 | ;output: |
1401 | ;output: |
1397 | ; bl = 0 - no delete |
1402 | ; bl = 0 - no delete |
1398 | ; bl = 1 - delete |
1403 | ; bl = 1 - delete |
1399 | align 4 |
1404 | align 16 |
1400 | proc ted_text_del uses ecx edx edi, edit:dword, del_opt:dword |
1405 | proc ted_text_del uses ecx edx edi, edit:dword, del_opt:dword |
1401 | mov edi,dword[edit] |
1406 | mov edi,[edit] |
Line 1402... | Line 1407... | ||
1402 | mov ebx,dword[del_opt] |
1407 | mov ebx,dword[del_opt] |
1403 | 1408 | ||
1404 | xor cl,cl |
1409 | xor cl,cl |
Line 1426... | Line 1431... | ||
1426 | ; edi = pointer to tedit struct |
1431 | ; edi = pointer to tedit struct |
1427 | ;output: |
1432 | ;output: |
1428 | ; al = 1 if delete |
1433 | ; al = 1 if delete |
1429 | ;description: |
1434 | ;description: |
1430 | ; ãªæ¨ï 㤠«ï¥â ¢ë¤¥«¥ë© ⥪áâ |
1435 | ; ãªæ¨ï 㤠«ï¥â ¢ë¤¥«¥ë© ⥪áâ |
1431 | align 4 |
1436 | align 16 |
1432 | proc ted_sel_text_del uses ebx ecx edx esi, del_opt:dword |
1437 | proc ted_sel_text_del uses ebx ecx edx esi, del_opt:dword |
1433 | call ted_is_select |
1438 | call ted_is_select |
1434 | cmp al,0 |
1439 | cmp al,0 |
1435 | je .end_f |
1440 | je .end_f |
1436 | call ted_sel_normalize |
1441 | call ted_sel_normalize |
Line 1482... | Line 1487... | ||
1482 | 1487 | ||
1483 | ;input: |
1488 | ;input: |
1484 | ; eax = pointer to begin select |
1489 | ; eax = pointer to begin select |
1485 | ; ebx = pointer to end select |
1490 | ; ebx = pointer to end select |
1486 | ; edi = pointer to tedit struct |
1491 | ; edi = pointer to tedit struct |
1487 | align 4 |
1492 | align 16 |
1488 | ted_revers: |
1493 | ted_revers: |
1489 | cmp eax,ebx |
1494 | cmp eax,ebx |
1490 | jne @f |
1495 | jne @f |
1491 | ret |
1496 | ret |
Line 1542... | Line 1547... | ||
1542 | ; edi = pointer to tedit struct |
1547 | ; edi = pointer to tedit struct |
1543 | ;output: |
1548 | ;output: |
1544 | ; dl = 0 not move |
1549 | ; dl = 0 not move |
1545 | ; dl = 2 if move up |
1550 | ; dl = 2 if move up |
1546 | ; dl = 8 if scroll move up |
1551 | ; dl = 8 if scroll move up |
1547 | align 4 |
1552 | align 16 |
1548 | ted_cur_move_up: |
1553 | ted_cur_move_up: |
1549 | cmp ted_cur_y,0 |
1554 | cmp ted_cur_y,0 |
1550 | je @f |
1555 | je @f |
1551 | dec ted_cur_y |
1556 | dec ted_cur_y |
1552 | mov dl,2 |
1557 | mov dl,2 |
Line 1569... | Line 1574... | ||
1569 | ; edi = pointer to tedit struct |
1574 | ; edi = pointer to tedit struct |
1570 | ;output: |
1575 | ;output: |
1571 | ; dl = 0 not move |
1576 | ; dl = 0 not move |
1572 | ; dl = 2 if move down |
1577 | ; dl = 2 if move down |
1573 | ; dl = 8 if scroll move down |
1578 | ; dl = 8 if scroll move down |
1574 | align 4 |
1579 | align 16 |
1575 | ted_cur_move_down: |
1580 | ted_cur_move_down: |
1576 | push eax ebx |
1581 | push eax ebx |
1577 | mov ebx,ted_scr_w |
1582 | mov ebx,ted_scr_w |
1578 | mov dl,0 |
1583 | mov dl,0 |
1579 | mov eax,dword[ebx+sb_offs_cur_area] |
1584 | mov eax,dword[ebx+sb_offs_cur_area] |
Line 1600... | Line 1605... | ||
1600 | ;input: |
1605 | ;input: |
1601 | ; edi = pointer to tedit struct |
1606 | ; edi = pointer to tedit struct |
1602 | ;output: |
1607 | ;output: |
1603 | ; dl = 0 not move |
1608 | ; dl = 0 not move |
1604 | ; dl = 1 if move up |
1609 | ; dl = 1 if move up |
1605 | align 4 |
1610 | align 16 |
1606 | ted_cur_move_page_up: |
1611 | ted_cur_move_page_up: |
1607 | push eax ebx |
1612 | push eax ebx |
1608 | mov ebx,ted_scr_w |
1613 | mov ebx,ted_scr_w |
1609 | mov eax,dword[ebx+sb_offs_cur_area] |
1614 | mov eax,dword[ebx+sb_offs_cur_area] |
1610 | xor dl,dl |
1615 | xor dl,dl |
Line 1623... | Line 1628... | ||
1623 | pop ebx eax |
1628 | pop ebx eax |
1624 | ret |
1629 | ret |
Line 1625... | Line 1630... | ||
1625 | 1630 | ||
1626 | ;input: |
1631 | ;input: |
1627 | ; edi = pointer to tedit struct |
1632 | ; edi = pointer to tedit struct |
1628 | align 4 |
1633 | align 16 |
1629 | ted_cur_move_page_down: |
1634 | ted_cur_move_page_down: |
1630 | push eax ebx ecx |
1635 | push eax ebx ecx |
Line 1631... | Line 1636... | ||
1631 | mov ecx,ted_scr_w |
1636 | mov ecx,ted_scr_w |
Line 1651... | Line 1656... | ||
1651 | ;output: |
1656 | ;output: |
1652 | ; dl = 0 not move |
1657 | ; dl = 0 not move |
1653 | ; dl = 1 if move left |
1658 | ; dl = 1 if move left |
1654 | ; dl = 3 if move left and up |
1659 | ; dl = 3 if move left and up |
1655 | ; dl = 8 if scroll move up |
1660 | ; dl = 8 if scroll move up |
1656 | align 4 |
1661 | align 16 |
1657 | ted_cur_move_left: |
1662 | ted_cur_move_left: |
1658 | cmp ted_cur_x,0 |
1663 | cmp ted_cur_x,0 |
1659 | je @f |
1664 | je @f |
1660 | dec ted_cur_x |
1665 | dec ted_cur_x |
1661 | mov dl,1 |
1666 | mov dl,1 |
Line 1695... | Line 1700... | ||
1695 | pop eax |
1700 | pop eax |
1696 | ret |
1701 | ret |
Line 1697... | Line 1702... | ||
1697 | 1702 | ||
1698 | ;input: |
1703 | ;input: |
1699 | ; edi = pointer to tedit struct |
1704 | ; edi = pointer to tedit struct |
1700 | align 4 |
1705 | align 16 |
1701 | ted_cur_move_right: |
1706 | ted_cur_move_right: |
1702 | push eax ebx |
1707 | push eax ebx |
1703 | mov eax,ted_scr_h |
1708 | mov eax,ted_scr_h |
1704 | xor dl,dl |
1709 | xor dl,dl |
Line 1715... | Line 1720... | ||
1715 | pop ebx eax |
1720 | pop ebx eax |
1716 | ret |
1721 | ret |
Line 1717... | Line 1722... | ||
1717 | 1722 | ||
1718 | ;input: |
1723 | ;input: |
1719 | ; edi = pointer to tedit struct |
1724 | ; edi = pointer to tedit struct |
1720 | align 4 |
1725 | align 16 |
1721 | ted_cur_move_x_last_char: |
1726 | ted_cur_move_x_last_char: |
1722 | ;[hScr.position] |
1727 | ;[hScr.position] |
1723 | ;[hScr.cur_area] |
1728 | ;[hScr.cur_area] |
1724 | ;dl-??? |
1729 | ;dl-??? |
Line 1752... | Line 1757... | ||
1752 | ; edi = pointer to tedit struct |
1757 | ; edi = pointer to tedit struct |
1753 | ;output: |
1758 | ;output: |
1754 | ; dl = 0 not move |
1759 | ; dl = 0 not move |
1755 | ; dl = 1 move cursor |
1760 | ; dl = 1 move cursor |
1756 | ; dl = 8 move cursor and scroll |
1761 | ; dl = 8 move cursor and scroll |
1757 | align 4 |
1762 | align 16 |
1758 | ted_cur_move_x_first_char: |
1763 | ted_cur_move_x_first_char: |
1759 | xor dl,dl |
1764 | xor dl,dl |
1760 | cmp ted_cur_x,0 |
1765 | cmp ted_cur_x,0 |
1761 | je @f |
1766 | je @f |
1762 | mov ted_cur_x,0 |
1767 | mov ted_cur_x,0 |
Line 1775... | Line 1780... | ||
1775 | ;input: |
1780 | ;input: |
1776 | ; edx = pointer to symbol struct |
1781 | ; edx = pointer to symbol struct |
1777 | ; edi = pointer to tedit struct |
1782 | ; edi = pointer to tedit struct |
1778 | ;output: |
1783 | ;output: |
1779 | ; eax = array index |
1784 | ; eax = array index |
1780 | align 4 |
1785 | align 16 |
1781 | ted_get_text_arr_index: |
1786 | ted_get_text_arr_index: |
1782 | push ecx edx |
1787 | push ecx edx |
1783 | mov eax,edx |
1788 | mov eax,edx |
1784 | sub eax,ted_tex |
1789 | sub eax,ted_tex |
1785 | xor edx,edx |
1790 | xor edx,edx |
Line 1791... | Line 1796... | ||
1791 | ;input: |
1796 | ;input: |
1792 | ; edx = pointer to symbol struct |
1797 | ; edx = pointer to symbol struct |
1793 | ; edi = pointer to tedit struct |
1798 | ; edi = pointer to tedit struct |
1794 | ;output: |
1799 | ;output: |
1795 | ; edx = pointer to 'perv' struct |
1800 | ; edx = pointer to 'perv' struct |
1796 | align 4 |
1801 | align 16 |
1797 | ted_get_text_perv_pos: |
1802 | ted_get_text_perv_pos: |
1798 | mov edx,dword[edx+2] |
1803 | mov edx,dword[edx+2] |
1799 | imul edx,sizeof.symbol |
1804 | imul edx,sizeof.symbol |
1800 | add edx,ted_tex |
1805 | add edx,ted_tex |
1801 | ret |
1806 | ret |
Line 1802... | Line 1807... | ||
1802 | 1807 | ||
1803 | ;input: |
1808 | ;input: |
1804 | ; edx = pointer to symbol struct |
1809 | ; edx = pointer to symbol struct |
1805 | ;output: |
1810 | ;output: |
1806 | ; edx = pointer to 'next' symbol struct |
1811 | ; edx = pointer to 'next' symbol struct |
1807 | align 4 |
1812 | align 16 |
1808 | ted_get_text_next_pos: |
1813 | ted_get_text_next_pos: |
1809 | mov edx,dword[edx+6] |
1814 | mov edx,dword[edx+6] |
1810 | imul edx,sizeof.symbol |
1815 | imul edx,sizeof.symbol |
1811 | add edx,ted_tex |
1816 | add edx,ted_tex |
Line 1816... | Line 1821... | ||
1816 | ;output: |
1821 | ;output: |
1817 | ; edx = symbol under cursor |
1822 | ; edx = symbol under cursor |
1818 | ; ted_gp_opt = 1,2 |
1823 | ; ted_gp_opt = 1,2 |
1819 | ; edx = tex[1].perv if error |
1824 | ; edx = tex[1].perv if error |
1820 | ; ted_gp_opt = 0 |
1825 | ; ted_gp_opt = 0 |
1821 | align 4 |
1826 | align 16 |
1822 | ted_get_pos_by_cursor: |
1827 | ted_get_pos_by_cursor: |
1823 | push eax ecx esi |
1828 | push eax ecx esi |
1824 | mov esi,ted_cur_x |
1829 | mov esi,ted_cur_x |
1825 | mov eax,ted_scr_h |
1830 | mov eax,ted_scr_h |
1826 | add esi,dword[eax+sb_offs_position] |
1831 | add esi,dword[eax+sb_offs_position] |
Line 1839... | Line 1844... | ||
1839 | ; edx = symbol under cursor |
1844 | ; edx = symbol under cursor |
1840 | ; ted_gp_opt = 1 if found text line |
1845 | ; ted_gp_opt = 1 if found text line |
1841 | ; ted_gp_opt = 2 if found text line and column |
1846 | ; ted_gp_opt = 2 if found text line and column |
1842 | ; edx = tex[1] if error |
1847 | ; edx = tex[1] if error |
1843 | ; ted_gp_opt = 0 if text no found |
1848 | ; ted_gp_opt = 0 if text no found |
1844 | align 4 |
1849 | align 16 |
1845 | ted_get_pos_by_coords: |
1850 | ted_get_pos_by_coords: |
1846 | push eax ;Row |
1851 | push eax ;Row |
1847 | push ebx ;Col |
1852 | push ebx ;Col |
Line 1848... | Line 1853... | ||
1848 | 1853 | ||
Line 1886... | Line 1891... | ||
1886 | ;input: |
1891 | ;input: |
1887 | ; eax = Row |
1892 | ; eax = Row |
1888 | ; edi = pointer to tedit struct |
1893 | ; edi = pointer to tedit struct |
1889 | ;output: |
1894 | ;output: |
1890 | ; ebx = str len |
1895 | ; ebx = str len |
1891 | align 4 |
1896 | align 16 |
1892 | ted_strlen: |
1897 | ted_strlen: |
1893 | push edx ecx |
1898 | push edx ecx |
1894 | ;ecx = Row, from cycle |
1899 | ;ecx = Row, from cycle |
Line 1895... | Line 1900... | ||
1895 | 1900 | ||
Line 1924... | Line 1929... | ||
1924 | ; edx = symbol position |
1929 | ; edx = symbol position |
1925 | ; edi = pointer to tedit struct |
1930 | ; edi = pointer to tedit struct |
1926 | ;output: |
1931 | ;output: |
1927 | ; eax = number of line |
1932 | ; eax = number of line |
1928 | ; ebx = symbol position in line |
1933 | ; ebx = symbol position in line |
1929 | align 4 |
1934 | align 16 |
1930 | ted_get_text_coords: |
1935 | ted_get_text_coords: |
1931 | push edx |
1936 | push edx |
1932 | xor eax,eax |
1937 | xor eax,eax |
1933 | xor ebx,ebx |
1938 | xor ebx,ebx |
1934 | @@: |
1939 | @@: |
Line 1952... | Line 1957... | ||
1952 | 1957 | ||
1953 | ;input: |
1958 | ;input: |
1954 | ; edi = pointer to tedit struct |
1959 | ; edi = pointer to tedit struct |
1955 | ;output: |
1960 | ;output: |
1956 | ; eax = num lines |
1961 | ; eax = num lines |
1957 | align 4 |
1962 | align 16 |
1958 | ted_get_num_lines: |
1963 | ted_get_num_lines: |
1959 | push edx |
1964 | push edx |
1960 | mov eax,1 |
1965 | mov eax,1 |
1961 | mov edx,ted_tex |
1966 | mov edx,ted_tex |
Line 1976... | Line 1981... | ||
1976 | 1981 | ||
1977 | ;input: |
1982 | ;input: |
1978 | ; edi = pointer to tedit struct |
1983 | ; edi = pointer to tedit struct |
1979 | ;description: |
1984 | ;description: |
1980 | ; ®â¬¥ï¥â ®â¬¥¥ë¥ ¤¥©á⢨ï, ¯¥à¥¤ ¨§¬¥¥¨¥¬ ¤®ªã¬¥â |
1985 | ; ®â¬¥ï¥â ®â¬¥¥ë¥ ¤¥©á⢨ï, ¯¥à¥¤ ¨§¬¥¥¨¥¬ ¤®ªã¬¥â |
1981 | align 4 |
1986 | align 16 |
1982 | proc ted_set_undo |
1987 | proc ted_set_undo |
1983 | mov ted_drag_k,0 ;§ ª 稢 ¥¬ ¢ë¤¥«¥¨¥ ®â ª« ¢¨ âãàë |
1988 | mov ted_drag_k,0 ;§ ª 稢 ¥¬ ¢ë¤¥«¥¨¥ ®â ª« ¢¨ âãàë |
1984 | cmp ted_tim_undo,1 |
1989 | cmp ted_tim_undo,1 |
Line 2043... | Line 2048... | ||
2043 | 2048 | ||
2044 | ;input: |
2049 | ;input: |
2045 | ; ecx = Col |
2050 | ; ecx = Col |
2046 | ; edx = Row |
2051 | ; edx = Row |
2047 | ; edi = pointer to tedit struct |
2052 | ; edi = pointer to tedit struct |
2048 | align 4 |
2053 | align 16 |
2049 | ted_go_to_pos: |
2054 | ted_go_to_pos: |
2050 | push eax |
2055 | push eax |
2051 | mov eax,ted_scr_w |
2056 | mov eax,ted_scr_w |
2052 | mov ted_cur_x,ecx |
2057 | mov ted_cur_x,ecx |
Line 2067... | Line 2072... | ||
2067 | pop eax |
2072 | pop eax |
2068 | ret |
2073 | ret |
Line 2069... | Line 2074... | ||
2069 | 2074 | ||
2070 | ;input: |
2075 | ;input: |
2071 | ; edi = pointer to tedit struct |
2076 | ; edi = pointer to tedit struct |
2072 | align 4 |
2077 | align 16 |
2073 | ted_text_colored: |
2078 | ted_text_colored: |
2074 | push eax edx |
2079 | push eax edx |
2075 | mov eax,ted_tim_ch |
2080 | mov eax,ted_tim_ch |
2076 | sub eax,ted_tim_undo |
2081 | sub eax,ted_tim_undo |
Line 2102... | Line 2107... | ||
2102 | ; edi = pointer to tedit struct |
2107 | ; edi = pointer to tedit struct |
2103 | ;output: |
2108 | ;output: |
2104 | ; edx = pointer to next symbol |
2109 | ; edx = pointer to next symbol |
2105 | ;description: |
2110 | ;description: |
2106 | ; ãªæ¨ï ¤«ï ¯®¨áª ¨ ¢ë¤¥«¥¨ï ¯®¤á¢¥ç¥ëå á«®¢ |
2111 | ; ãªæ¨ï ¤«ï ¯®¨áª ¨ ¢ë¤¥«¥¨ï ¯®¤á¢¥ç¥ëå á«®¢ |
2107 | align 4 |
2112 | align 16 |
2108 | proc ted_text_find_sel_color uses eax ebx ecx esi |
2113 | proc ted_text_find_sel_color uses eax ebx ecx esi |
2109 | locals |
2114 | locals |
2110 | begPos dd ? ; ç «ì ï ¯®§¨æ¨ï |
2115 | begPos dd ? ; ç «ì ï ¯®§¨æ¨ï |
2111 | endPos dd ? ;ª®¥ç ï ¯®§¨æ¨ï |
2116 | endPos dd ? ;ª®¥ç ï ¯®§¨æ¨ï |
2112 | find db ? ; ©¤¥® / ¥ ©¤¥® |
2117 | find db ? ; ©¤¥® / ¥ ©¤¥® |
Line 2293... | Line 2298... | ||
2293 | 2298 | ||
2294 | ;input: |
2299 | ;input: |
2295 | ; edx = pointer to char (byte) |
2300 | ; edx = pointer to char (byte) |
2296 | ;output: |
2301 | ;output: |
2297 | ; cf=1 if symbol is... |
2302 | ; cf=1 if symbol is... |
2298 | align 4 |
2303 | align 16 |
2299 | tab_all_num db 0,0,0,0,0,0,0xff,11b,11111110b,0xff,0xff,10000111b,11111110b,0xff,0xff,111b,0,0,0,0,0,0,0,0;,0,0,0,0,0,0,0,0 - tab_alpha_0,0,0,0,0,0,0,0 |
2304 | tab_all_num db 0,0,0,0,0,0,0xff,11b,11111110b,0xff,0xff,10000111b,11111110b,0xff,0xff,111b,0,0,0,0,0,0,0,0;,0,0,0,0,0,0,0,0 - tab_alpha_0,0,0,0,0,0,0,0 |
Line 2300... | Line 2305... | ||
2300 | tab_alpha db 0,0,0,0,0,0,0,0,11111110b,0xff,0xff,10000111b,11111110b,0xff,0xff,111b,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
2305 | tab_alpha db 0,0,0,0,0,0,0,0,11111110b,0xff,0xff,10000111b,11111110b,0xff,0xff,111b,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
2301 | 2306 | ||
2302 | ;output: |
2307 | ;output: |
2303 | ; cf=1 ¥á«¨ ¢ [edx] ¡ãª¢ , æ¨äà ¨«¨ '_' |
2308 | ; cf=1 ¥á«¨ ¢ [edx] ¡ãª¢ , æ¨äà ¨«¨ '_' |
2304 | align 4 |
2309 | align 16 |
2305 | isalnum: |
2310 | isalnum: |
2306 | push eax ebx |
2311 | push eax ebx |
2307 | movzx eax,byte[edx] ;al=offset |
2312 | movzx eax,byte[edx] ;al=offset |
Line 2314... | Line 2319... | ||
2314 | pop ebx eax |
2319 | pop ebx eax |
2315 | ret |
2320 | ret |
Line 2316... | Line 2321... | ||
2316 | 2321 | ||
2317 | ;output: |
2322 | ;output: |
2318 | ; cf=1 ¥á«¨ ¢ [edx] ¡ãª¢ ¨«¨ '_' |
2323 | ; cf=1 ¥á«¨ ¢ [edx] ¡ãª¢ ¨«¨ '_' |
2319 | align 4 |
2324 | align 16 |
2320 | isalpha: |
2325 | isalpha: |
2321 | push eax ebx |
2326 | push eax ebx |
2322 | movzx eax,byte[edx] ;al=offset |
2327 | movzx eax,byte[edx] ;al=offset |
2323 | shr eax,3 |
2328 | shr eax,3 |
Line 2327... | Line 2332... | ||
2327 | and ax,111b |
2332 | and ax,111b |
2328 | bt word[ebx],ax |
2333 | bt word[ebx],ax |
2329 | pop ebx eax |
2334 | pop ebx eax |
2330 | ret |
2335 | ret |
Line 2331... | Line 2336... | ||
2331 | 2336 | ||
2332 | align 4 |
2337 | align 16 |
2333 | proc ted_show_help_f1 uses eax edx edi, edit:dword |
2338 | proc ted_show_help_f1 uses eax edx edi, edit:dword |
Line 2334... | Line 2339... | ||
2334 | mov edi,dword[edit] |
2339 | mov edi,[edit] |
2335 | 2340 | ||
2336 | call ted_get_pos_by_cursor |
2341 | call ted_get_pos_by_cursor |
2337 | push edx |
2342 | push edx |
Line 2353... | Line 2358... | ||
2353 | 2358 | ||
2354 | ;input: |
2359 | ;input: |
2355 | ; edx = position begin 'symbol' struct |
2360 | ; edx = position begin 'symbol' struct |
2356 | ; edi = pointer to tedit struct |
2361 | ; edi = pointer to tedit struct |
2357 | ; end_pos = position end 'symbol' struct |
2362 | ; end_pos = position end 'symbol' struct |
2358 | align 4 |
2363 | align 16 |
2359 | proc ted_find_help_id, end_pos:dword |
2364 | proc ted_find_help_id, end_pos:dword |
2360 | ; ecx = word_n |
2365 | ; ecx = word_n |
2361 | ; ebx = l_pos |
2366 | ; ebx = l_pos |
Line 2433... | Line 2438... | ||
2433 | endp |
2438 | endp |
Line 2434... | Line 2439... | ||
2434 | 2439 | ||
2435 | ;output: |
2440 | ;output: |
2436 | ; eax = ª®¤ ®è¨¡ª¨ |
2441 | ; eax = ª®¤ ®è¨¡ª¨ |
2437 | ; ebx = ª®««¨ç¥á⢮ ¯à®ç¨â ëå ¡ ©â |
2442 | ; ebx = ª®««¨ç¥á⢮ ¯à®ç¨â ëå ¡ ©â |
2438 | align 4 |
2443 | align 16 |
2439 | proc ted_open_file uses ecx edx edi, edit:dword, file:dword, f_name:dword ;äãªæ¨ï ®âªàëâ¨ï ä ©« |
2444 | proc ted_open_file uses ecx edx edi, edit:dword, file:dword, f_name:dword ;äãªæ¨ï ®âªàëâ¨ï ä ©« |
Line 2440... | Line 2445... | ||
2440 | mov edi,dword[edit] |
2445 | mov edi,[edit] |
2441 | 2446 | ||
2442 | ; *** ¯à®¢¥à塞 à §¬¥à ¯ ¬ï⨠¨ ¥á«¨ ¥ å¢ â ¥â ⮠㢥«¨ç¨¢ ¥¬ *** |
- | |
2443 | ;¯à®¡ã¥¬ ¯®«ãç¨âì ¨ä®à¬ æ¨î ® ä ©«¥ |
2447 | ; *** ¯à®¢¥à塞 à §¬¥à ¯ ¬ï⨠¨ ¥á«¨ ¥ å¢ â ¥â ⮠㢥«¨ç¨¢ ¥¬ *** |
2444 | mov eax,70 |
2448 | ;¯à®¡ã¥¬ ¯®«ãç¨âì ¨ä®à¬ æ¨î ® ä ©«¥ |
2445 | mov ebx,dword[file] |
2449 | mov ebx,[file] |
2446 | mov dword[ebx], 5 |
2450 | mov dword[ebx], SSF_GET_INFO |
2447 | mov dword[ebx+4], 0 |
2451 | mov dword[ebx+4], 0 |
2448 | mov dword[ebx+8], 0 |
2452 | mov dword[ebx+8], 0 |
2449 | mov dword[ebx+12], 0 |
2453 | mov dword[ebx+12], 0 |
2450 | m2m dword[ebx+16], ted_tex |
2454 | m2m dword[ebx+16], ted_tex |
2451 | mov byte[ebx+20], 0 |
2455 | mov byte[ebx+20], 0 |
2452 | push dword[f_name] |
2456 | push dword[f_name] |
2453 | pop dword[ebx+21] |
2457 | pop dword[ebx+21] |
2454 | int 0x40 |
2458 | mcall SF_FILE |
2455 | cmp eax,0 |
2459 | or eax,eax |
2456 | je .end_0 |
2460 | jz .end_0 |
2457 | mov edx,ted_max_chars |
2461 | mov edx,ted_max_chars |
2458 | cmp eax,2 ;äãªæ¨ï ¥ ¯®¤¤¥à¦¨¢ ¥âáï ¤«ï ¤ ®© ä ©«®¢®© á¨á⥬ë |
2462 | cmp eax,2 ;äãªæ¨ï ¥ ¯®¤¤¥à¦¨¢ ¥âáï ¤«ï ¤ ®© ä ©«®¢®© á¨á⥬ë |
- | 2463 | je @f |
|
2459 | je @f |
2464 | jmp .ret_f |
2460 | jmp .ret_f |
2465 | align 4 |
2461 | .end_0: |
2466 | .end_0: |
2462 | ;¯à®¢¥à塞 å¢ â¨â «¨ ¯ ¬ï⨠¤«ï § £à㧪¨ ä ©« |
2467 | ;¯à®¢¥à塞 å¢ â¨â «¨ ¯ ¬ï⨠¤«ï § £à㧪¨ ä ©« |
2463 | mov ecx,ted_max_chars |
2468 | mov ecx,ted_max_chars |
2464 | sub ecx,2 ;ecx = ¬ ªá¨¬ «ì®¥ ç¨á«® ¡ ©â, ¤«ï ª®â®àëå ¡ë« ¢ë¤¥«¥ ¯ ¬ïâì |
2469 | sub ecx,2 ;ecx = ¬ ªá¨¬ «ì®¥ ç¨á«® ¡ ©â, ¤«ï ª®â®àëå ¡ë« ¢ë¤¥«¥ ¯ ¬ïâì |
2465 | mov edx,ted_tex |
2470 | mov edx,ted_tex |
2466 | mov edx,dword[edx+32] ;+32 = +0x20: qword: à §¬¥à ä ©« ¢ ¡ ©â å |
2471 | mov edx,[edx+32] ;+32 = +0x20: qword: à §¬¥à ä ©« ¢ ¡ ©â å |
2467 | cmp edx,ecx |
2472 | cmp edx,ecx |
2468 | jl @f |
2473 | jl @f |
2469 | ;㢥«¨ç¨¢ ¥¬ ¯ ¬ïâì ¥á«¨ ¥ å¢ â¨«® |
2474 | ;㢥«¨ç¨¢ ¥¬ ¯ ¬ïâì ¥á«¨ ¥ å¢ â¨«® |
Line 2482... | Line 2487... | ||
2482 | add ecx,sizeof.symbol |
2487 | add ecx,sizeof.symbol |
2483 | mov ted_ptr_free_symb,ecx |
2488 | mov ted_ptr_free_symb,ecx |
2484 | @@: |
2489 | @@: |
Line 2485... | Line 2490... | ||
2485 | 2490 | ||
2486 | ; *** ¯à®¡ã¥¬ ®âªàëâì ä ©« *** |
- | |
2487 | mov eax,70 |
2491 | ; *** ¯à®¡ã¥¬ ®âªàëâì ä ©« *** |
2488 | mov ebx,dword[file] |
2492 | mov ebx,[file] |
2489 | mov dword[ebx], 0 |
2493 | mov dword[ebx], SSF_READ_FILE |
2490 | mov dword[ebx+4], 0 |
2494 | mov dword[ebx+4], 0 |
2491 | mov dword[ebx+8], 0 |
2495 | mov dword[ebx+8], 0 |
2492 | m2m dword[ebx+12], edx ;ç¨á«® ¡ ©â, ª®â®àë¥ ¬®£ãâ ¡ëâì áç¨â ë á ä ©« (¥ ¡®«ìè¥ ç¥¬ ted_max_chars) |
2496 | m2m dword[ebx+12], edx ;ç¨á«® ¡ ©â, ª®â®àë¥ ¬®£ãâ ¡ëâì áç¨â ë á ä ©« (¥ ¡®«ìè¥ ç¥¬ ted_max_chars) |
2493 | m2m dword[ebx+16], ted_tex |
2497 | m2m dword[ebx+16], ted_tex |
2494 | mov byte[ebx+20], 0 |
2498 | mov byte[ebx+20], 0 |
2495 | push dword[f_name] |
2499 | push dword[f_name] |
2496 | pop dword[ebx+21] |
2500 | pop dword[ebx+21] |
Line 2497... | Line 2501... | ||
2497 | int 0x40 |
2501 | mcall SF_FILE |
2498 | 2502 | ||
2499 | cmp eax,0 |
2503 | or eax,eax |
2500 | je @f |
2504 | jz @f |
2501 | cmp eax,6 |
2505 | cmp eax,6 |
2502 | je @f |
2506 | je @f |
2503 | jmp .ret_f |
2507 | jmp .ret_f |
Line 2508... | Line 2512... | ||
2508 | call ted_on_open_file |
2512 | call ted_on_open_file |
2509 | .ret_f: |
2513 | .ret_f: |
2510 | ret |
2514 | ret |
2511 | endp |
2515 | endp |
Line 2512... | Line 2516... | ||
2512 | 2516 | ||
2513 | align 4 |
2517 | align 16 |
2514 | proc ted_but_select_word, edit:dword |
2518 | proc ted_but_select_word, edit:dword |
2515 | pushad |
2519 | pushad |
Line 2516... | Line 2520... | ||
2516 | mov edi,dword[edit] |
2520 | mov edi,[edit] |
2517 | 2521 | ||
2518 | call ted_get_pos_by_cursor |
2522 | call ted_get_pos_by_cursor |
2519 | push edx |
2523 | push edx |
Line 2540... | Line 2544... | ||
2540 | stdcall ted_draw,edi |
2544 | stdcall ted_draw,edi |
2541 | popad |
2545 | popad |
2542 | ret |
2546 | ret |
2543 | endp |
2547 | endp |
Line 2544... | Line 2548... | ||
2544 | 2548 | ||
2545 | align 4 |
2549 | align 16 |
2546 | proc ted_but_cut uses edi, edit:dword |
2550 | proc ted_but_cut uses edi, edit:dword |
Line 2547... | Line 2551... | ||
2547 | mov edi,dword[edit] |
2551 | mov edi,[edit] |
2548 | 2552 | ||
2549 | stdcall ted_but_copy,edi |
2553 | stdcall ted_but_copy,edi |
Line 2560... | Line 2564... | ||
2560 | ret |
2564 | ret |
2561 | endp |
2565 | endp |
Line 2562... | Line 2566... | ||
2562 | 2566 | ||
2563 | ;output: |
2567 | ;output: |
2564 | ; al = 1 if copy text |
2568 | ; al = 1 if copy text |
2565 | align 4 |
2569 | align 16 |
2566 | proc ted_but_copy, edit:dword |
2570 | proc ted_but_copy, edit:dword |
2567 | pushad |
2571 | pushad |
Line 2568... | Line 2572... | ||
2568 | mov edi,dword[edit] |
2572 | mov edi,[edit] |
2569 | 2573 | ||
2570 | call ted_is_select |
2574 | call ted_is_select |
2571 | cmp al,0 |
2575 | or al,al |
Line 2572... | Line 2576... | ||
2572 | je .end_f ;if not selected text |
2576 | jz .end_f ;if not selected text |
2573 | call ted_sel_normalize |
2577 | call ted_sel_normalize |
2574 | 2578 | ||
Line 2612... | Line 2616... | ||
2612 | 2616 | ||
2613 | cmp ecx,12 |
2617 | cmp ecx,12 |
2614 | je .end_f |
2618 | je .end_f |
2615 | inc ecx ;à §¬¥à ¤ ëå ¢ ¡ãä¥à¥ + ᨬ¢®« § ¢¥à襨ï áâப¨ |
2619 | inc ecx ;à §¬¥à ¤ ëå ¢ ¡ãä¥à¥ + ᨬ¢®« § ¢¥à襨ï áâப¨ |
2616 | mov ebx,ted_buffer |
2620 | mov ebx,ted_buffer |
2617 | mov dword[ebx],ecx |
2621 | mov [ebx],ecx |
2618 | mcall 54,2,ecx,ted_buffer |
2622 | mcall SF_CLIPBOARD,SSF_WRITE_CB,ecx,ted_buffer |
2619 | call ted_draw_buffer |
2623 | call ted_draw_buffer |
2620 | cmp ted_fun_draw_panel_buttons,0 |
2624 | cmp ted_fun_draw_panel_buttons,0 |
2621 | je .end_f |
2625 | je .end_f |
2622 | call ted_fun_draw_panel_buttons |
2626 | call ted_fun_draw_panel_buttons |
2623 | .end_f: |
2627 | .end_f: |
2624 | popad |
2628 | popad |
2625 | ret |
2629 | ret |
Line 2626... | Line 2630... | ||
2626 | endp |
2630 | endp |
2627 | 2631 | ||
2628 | 2632 | ||
2629 | align 4 |
2633 | align 16 |
Line 2630... | Line 2634... | ||
2630 | proc ted_but_paste, edit:dword |
2634 | proc ted_but_paste, edit:dword |
2631 | pushad |
2635 | pushad |
2632 | mov edi,dword[edit] |
2636 | mov edi,[edit] |
Line 2633... | Line 2637... | ||
2633 | 2637 | ||
2634 | mcall 54,0 |
2638 | mcall SF_CLIPBOARD,SSF_GET_SLOT_COUNT |
2635 | cmp eax,1 |
2639 | cmp eax,1 |
2636 | jl .no_buf_r |
2640 | jl .no_buf_r |
2637 | 2641 | ||
2638 | mov esi,eax |
2642 | mov esi,eax |
2639 | .cycle: ;®¡à âë© æ¨ª« ¯® ᫮⠬ |
2643 | .cycle: ;®¡à âë© æ¨ª« ¯® ᫮⠬ |
2640 | dec esi ;®¬¥à ⥪ã饣®, ¯à®¢¥à塞®£® á«®â |
2644 | dec esi ;®¬¥à ⥪ã饣®, ¯à®¢¥à塞®£® á«®â |
2641 | mcall 54,1,esi ;read system buffer |
2645 | mcall SF_CLIPBOARD,SSF_READ_CB,esi |
Line 2668... | Line 2672... | ||
2668 | add esi,4 ;12 |
2672 | add esi,4 ;12 |
2669 | mov dword[edi],ecx |
2673 | mov dword[edi],ecx |
2670 | add edi,4 ;12 |
2674 | add edi,4 ;12 |
2671 | sub ecx,4 ;12 |
2675 | sub ecx,4 ;12 |
2672 | rep movsb |
2676 | rep movsb |
2673 | mov edi,dword[edit] |
2677 | mov edi,[edit] |
Line 2674... | Line 2678... | ||
2674 | 2678 | ||
2675 | mov esi,eax |
2679 | mov esi,eax |
2676 | add esi,12 |
2680 | add esi,12 |
2677 | jmp .buf_r |
2681 | jmp .buf_r |
Line 2704... | Line 2708... | ||
2704 | .no_paste: |
2708 | .no_paste: |
2705 | popad |
2709 | popad |
2706 | ret |
2710 | ret |
2707 | endp |
2711 | endp |
Line 2708... | Line 2712... | ||
2708 | 2712 | ||
2709 | align 4 |
2713 | align 16 |
2710 | proc ted_but_sumb_upper uses edi esi, edit:dword |
2714 | proc ted_but_sumb_upper uses edi esi, edit:dword |
Line 2711... | Line 2715... | ||
2711 | mov edi,dword[edit] |
2715 | mov edi,[edit] |
2712 | 2716 | ||
2713 | stdcall ted_convert_sel_text,fb_char_toupper |
2717 | stdcall ted_convert_sel_text,fb_char_toupper |
2714 | cmp esi,0 |
2718 | or esi,esi |
2715 | je @f |
2719 | jz @f |
2716 | stdcall ted_draw,edi |
2720 | stdcall ted_draw,edi |
2717 | @@: |
2721 | @@: |
Line 2718... | Line 2722... | ||
2718 | ret |
2722 | ret |
2719 | endp |
2723 | endp |
2720 | 2724 | ||
Line 2721... | Line 2725... | ||
2721 | align 4 |
2725 | align 16 |
2722 | proc ted_but_sumb_lover uses edi esi, edit:dword |
2726 | proc ted_but_sumb_lover uses edi esi, edit:dword |
2723 | mov edi,dword[edit] |
2727 | mov edi,[edit] |
2724 | 2728 | ||
2725 | stdcall ted_convert_sel_text,fb_char_todown |
2729 | stdcall ted_convert_sel_text,fb_char_todown |
2726 | cmp esi,0 |
2730 | or esi,esi |
2727 | je @f |
2731 | jz @f |
Line 2728... | Line 2732... | ||
2728 | stdcall ted_draw,edi |
2732 | stdcall ted_draw,edi |
2729 | @@: |
2733 | @@: |
2730 | ret |
2734 | ret |
Line 2731... | Line 2735... | ||
2731 | endp |
2735 | endp |
2732 | 2736 | ||
2733 | align 4 |
2737 | align 16 |
2734 | proc ted_but_reverse uses eax ebx edi, edit:dword |
2738 | proc ted_but_reverse uses eax ebx edi, edit:dword |
2735 | mov edi,dword[edit] |
2739 | mov edi,[edit] |
2736 | 2740 | ||
2737 | call ted_is_select |
2741 | call ted_is_select |
2738 | cmp al,0 |
2742 | or al,al |
Line 2759... | Line 2763... | ||
2759 | @@: |
2763 | @@: |
2760 | stdcall ted_draw,edi |
2764 | stdcall ted_draw,edi |
2761 | ret |
2765 | ret |
2762 | endp |
2766 | endp |
Line 2763... | Line 2767... | ||
2763 | 2767 | ||
2764 | align 4 |
2768 | align 16 |
2765 | proc ted_but_undo uses eax edi, edit:dword |
2769 | proc ted_but_undo uses eax edi, edit:dword |
Line 2766... | Line 2770... | ||
2766 | mov edi,dword[edit] |
2770 | mov edi,[edit] |
2767 | 2771 | ||
2768 | mov eax,ted_tim_undo |
2772 | mov eax,ted_tim_undo |
2769 | cmp ted_tim_ch,eax |
2773 | cmp ted_tim_ch,eax |
Line 2776... | Line 2780... | ||
2776 | call ted_fun_draw_panel_buttons |
2780 | call ted_fun_draw_panel_buttons |
2777 | @@: |
2781 | @@: |
2778 | ret |
2782 | ret |
2779 | endp |
2783 | endp |
Line 2780... | Line 2784... | ||
2780 | 2784 | ||
2781 | align 4 |
2785 | align 16 |
2782 | proc ted_but_redo uses edi, edit:dword |
2786 | proc ted_but_redo uses edi, edit:dword |
Line 2783... | Line 2787... | ||
2783 | mov edi,dword[edit] |
2787 | mov edi,[edit] |
2784 | 2788 | ||
2785 | cmp ted_tim_undo,1 |
2789 | cmp ted_tim_undo,1 |
2786 | jb @f |
2790 | jb @f |
Line 2792... | Line 2796... | ||
2792 | call ted_fun_draw_panel_buttons |
2796 | call ted_fun_draw_panel_buttons |
2793 | @@: |
2797 | @@: |
2794 | ret |
2798 | ret |
2795 | endp |
2799 | endp |
Line 2796... | Line 2800... | ||
2796 | 2800 | ||
2797 | align 4 |
2801 | align 16 |
2798 | proc ted_but_find_next, edit:dword |
2802 | proc ted_but_find_next, edit:dword |
2799 | pushad |
2803 | pushad |
Line 2800... | Line 2804... | ||
2800 | mov edi,dword[edit] |
2804 | mov edi,[edit] |
2801 | 2805 | ||
2802 | call ted_get_pos_by_cursor |
2806 | call ted_get_pos_by_cursor |
2803 | mov eax,ted_buffer_find |
2807 | mov eax,ted_buffer_find |
Line 2836... | Line 2840... | ||
2836 | ret |
2840 | ret |
2837 | endp |
2841 | endp |
Line 2838... | Line 2842... | ||
2838 | 2842 | ||
2839 | ;input: |
2843 | ;input: |
2840 | ; edi = pointer to tedit struct |
2844 | ; edi = pointer to tedit struct |
2841 | align 4 |
2845 | align 16 |
2842 | ted_key_ctrl_home: |
2846 | ted_key_ctrl_home: |
2843 | mov ted_cur_x,0 |
2847 | mov ted_cur_x,0 |
2844 | mov ted_cur_y,0 |
2848 | mov ted_cur_y,0 |
2845 | push eax |
2849 | push eax |
Line 2855... | Line 2859... | ||
2855 | @@: |
2859 | @@: |
2856 | ret |
2860 | ret |
Line 2857... | Line 2861... | ||
2857 | 2861 | ||
2858 | ;input: |
2862 | ;input: |
2859 | ; edi = pointer to tedit struct |
2863 | ; edi = pointer to tedit struct |
2860 | align 4 |
2864 | align 16 |
2861 | ted_key_ctrl_end: |
2865 | ted_key_ctrl_end: |
2862 | push eax ebx |
2866 | push eax ebx |
2863 | call ted_get_num_lines |
2867 | call ted_get_num_lines |
2864 | mov ebx,ted_scr_w |
2868 | mov ebx,ted_scr_w |
Line 2879... | Line 2883... | ||
2879 | @@: |
2883 | @@: |
2880 | ret |
2884 | ret |
Line 2881... | Line 2885... | ||
2881 | 2885 | ||
2882 | ;input: |
2886 | ;input: |
2883 | ; edi = pointer to tedit struct |
2887 | ; edi = pointer to tedit struct |
2884 | align 4 |
2888 | align 16 |
2885 | proc ted_sel_key_up |
2889 | proc ted_sel_key_up |
2886 | cmp ted_drag_k,1 |
2890 | cmp ted_drag_k,1 |
2887 | je @f |
2891 | je @f |
2888 | call ted_sel_start |
2892 | call ted_sel_start |
Line 2900... | Line 2904... | ||
2900 | ret |
2904 | ret |
2901 | endp |
2905 | endp |
Line 2902... | Line 2906... | ||
2902 | 2906 | ||
2903 | ;input: |
2907 | ;input: |
2904 | ; edi = pointer to tedit struct |
2908 | ; edi = pointer to tedit struct |
2905 | align 4 |
2909 | align 16 |
2906 | proc ted_sel_key_down |
2910 | proc ted_sel_key_down |
2907 | cmp ted_drag_k,1 |
2911 | cmp ted_drag_k,1 |
2908 | je @f |
2912 | je @f |
2909 | call ted_sel_start |
2913 | call ted_sel_start |
Line 2921... | Line 2925... | ||
2921 | ret |
2925 | ret |
2922 | endp |
2926 | endp |
Line 2923... | Line 2927... | ||
2923 | 2927 | ||
2924 | ;input: |
2928 | ;input: |
2925 | ; edi = pointer to tedit struct |
2929 | ; edi = pointer to tedit struct |
2926 | align 4 |
2930 | align 16 |
2927 | proc ted_sel_key_left |
2931 | proc ted_sel_key_left |
2928 | cmp ted_drag_k,1 |
2932 | cmp ted_drag_k,1 |
2929 | je @f |
2933 | je @f |
2930 | call ted_sel_start |
2934 | call ted_sel_start |
Line 2949... | Line 2953... | ||
2949 | ret |
2953 | ret |
2950 | endp |
2954 | endp |
Line 2951... | Line 2955... | ||
2951 | 2955 | ||
2952 | ;input: |
2956 | ;input: |
2953 | ; edi = pointer to tedit struct |
2957 | ; edi = pointer to tedit struct |
2954 | align 4 |
2958 | align 16 |
2955 | proc ted_sel_key_right |
2959 | proc ted_sel_key_right |
2956 | cmp ted_drag_k,1 |
2960 | cmp ted_drag_k,1 |
2957 | je @f |
2961 | je @f |
2958 | call ted_sel_start |
2962 | call ted_sel_start |
Line 2979... | Line 2983... | ||
2979 | 2983 | ||
2980 | ;input: |
2984 | ;input: |
2981 | ; edi = pointer to tedit struct |
2985 | ; edi = pointer to tedit struct |
2982 | ;description: |
2986 | ;description: |
2983 | ; this function need to optimize output |
2987 | ; this function need to optimize output |
2984 | align 4 |
2988 | align 16 |
2985 | proc ted_draw_cursor_sumb |
2989 | proc ted_draw_cursor_sumb |
2986 | pushad |
- | |
2987 | mov eax,SF_DRAW_RECT |
2990 | pushad |
2988 | mov ebx,ted_wnd_l |
2991 | mov ebx,ted_wnd_l |
2989 | add ebx,ted_rec_l |
2992 | add ebx,ted_rec_l |
2990 | mov edx,ted_cur_x |
2993 | mov edx,ted_cur_x |
2991 | imul edx,ted_rec_w |
2994 | imul edx,ted_rec_w |
Line 3000... | Line 3003... | ||
3000 | add ecx,edx |
3003 | add ecx,edx |
3001 | shl ecx,16 |
3004 | shl ecx,16 |
3002 | add ecx,ted_rec_h |
3005 | add ecx,ted_rec_h |
Line 3003... | Line 3006... | ||
3003 | 3006 | ||
3004 | mov edx,ted_color_wnd_work |
- | |
3005 | push ecx |
3007 | mov edx,ted_color_wnd_work |
Line 3006... | Line 3008... | ||
3006 | call ted_sel_normalize |
3008 | call ted_sel_normalize |
3007 | 3009 | ||
3008 | mov esi,ted_scr_w |
3010 | mov esi,ted_scr_w |
3009 | mov ecx,dword[esi+sb_offs_position] |
3011 | mov eax,[esi+sb_offs_position] |
Line 3010... | Line 3012... | ||
3010 | sub ted_seln_y0,ecx |
3012 | sub ted_seln_y0,eax |
3011 | sub ted_seln_y1,ecx |
3013 | sub ted_seln_y1,eax |
3012 | 3014 | ||
3013 | mov ecx,ted_cur_y |
3015 | mov eax,ted_cur_y |
3014 | cmp ecx,ted_seln_y0 |
3016 | cmp eax,ted_seln_y0 |
3015 | jl .no_cur_sel |
3017 | jl .no_cur_sel |
3016 | cmp ecx,ted_seln_y1 |
- | |
3017 | jg .no_cur_sel |
3018 | cmp eax,ted_seln_y1 |
3018 | mov edx,ted_color_select ;¬¥ï¥¬ 梥â ä® æ¢¥â ¢ë¤¥«¥¨ï |
3019 | jg .no_cur_sel |
3019 | 3020 | mov edx,ted_color_select ;¬¥ï¥¬ 梥â ä® æ¢¥â ¢ë¤¥«¥¨ï |
|
3020 | mov esi,ted_scr_h |
3021 | mov esi,ted_scr_h |
3021 | cmp ecx,ted_seln_y0 |
3022 | cmp eax,ted_seln_y0 |
3022 | jne @f |
3023 | jne @f |
3023 | mov ecx,ted_cur_x |
3024 | mov eax,ted_cur_x |
3024 | add ecx,dword[esi+sb_offs_position] |
3025 | add eax,[esi+sb_offs_position] |
3025 | cmp ecx,ted_seln_x0 |
3026 | cmp eax,ted_seln_x0 |
3026 | jge @f |
3027 | jge @f |
3027 | mov edx,ted_color_wnd_work |
3028 | mov edx,ted_color_wnd_work |
3028 | @@: |
3029 | @@: |
3029 | mov ecx,ted_cur_y |
3030 | mov eax,ted_cur_y |
3030 | cmp ecx,ted_seln_y1 |
3031 | cmp eax,ted_seln_y1 |
3031 | jne .no_cur_sel |
3032 | jne .no_cur_sel |
3032 | mov ecx,ted_cur_x |
3033 | mov eax,ted_cur_x |
3033 | add ecx,dword[esi+sb_offs_position] |
3034 | add eax,[esi+sb_offs_position] |
3034 | cmp ecx,ted_seln_x1 |
3035 | cmp eax,ted_seln_x1 |
3035 | jl .no_cur_sel |
3036 | jl .no_cur_sel |
3036 | mov edx,ted_color_wnd_work |
- | |
Line 3037... | Line 3037... | ||
3037 | .no_cur_sel: |
3037 | mov edx,ted_color_wnd_work |
3038 | pop ecx |
3038 | .no_cur_sel: |
3039 | int 0x40 ;à¨á®¢ ¨¥ ¯àאַ㣮«ì¨ª |
3039 | mcall SF_DRAW_RECT |
3040 | 3040 | ||
Line 3057... | Line 3057... | ||
3057 | ; edx -> pointer to text |
3057 | ; edx -> pointer to text |
3058 | ; edi -> 㪠§ ⥫ì áâàãªâãàã tedit |
3058 | ; edi -> 㪠§ ⥫ì áâàãªâãàã tedit |
3059 | ;output: |
3059 | ;output: |
3060 | ; ecx = color |
3060 | ; ecx = color |
3061 | ; if ted_mode_color=0 then ecx=ted_color_wnd_text |
3061 | ; if ted_mode_color=0 then ecx=ted_color_wnd_text |
3062 | align 4 |
3062 | align 16 |
3063 | ted_get_symb_color: |
3063 | ted_get_symb_color: |
3064 | mov ecx,ted_color_wnd_text ;§ ¤ ¥¬ 梥â ⥪áâ ¯® 㬮«ç ¨î |
3064 | mov ecx,ted_color_wnd_text ;§ ¤ ¥¬ 梥â ⥪áâ ¯® 㬮«ç ¨î |
Line 3065... | Line 3065... | ||
3065 | 3065 | ||
3066 | push eax edx |
3066 | push eax edx |
Line 3092... | Line 3092... | ||
3092 | ;input: |
3092 | ;input: |
3093 | ; edx = pointer to text |
3093 | ; edx = pointer to text |
3094 | ; edi = pointer to tedit struct |
3094 | ; edi = pointer to tedit struct |
3095 | ;description: |
3095 | ;description: |
3096 | ; ãªæ¨ï ¯à¥®¡à §ã¥â ¥¢¨¤¨¬ë¥ ᨬ¢®«ë ¢ ¯¥ç â ¥¬ë¥ íªà ¥ |
3096 | ; ãªæ¨ï ¯à¥®¡à §ã¥â ¥¢¨¤¨¬ë¥ ᨬ¢®«ë ¢ ¯¥ç â ¥¬ë¥ íªà ¥ |
3097 | align 4 |
3097 | align 16 |
3098 | ted_convert_invis_symb: |
3098 | ted_convert_invis_symb: |
3099 | cmp ted_mode_invis,1 |
3099 | cmp ted_mode_invis,1 |
3100 | jne .end_f |
3100 | jne .else |
3101 | cmp byte[edx],9 |
3101 | cmp byte[edx],9 |
3102 | jne @f |
3102 | jne @f |
3103 | lea edx,[ted_symbol_tab] |
3103 | lea edx,[ted_symbol_tab] |
- | 3104 | jmp .end_f |
|
- | 3105 | align 4 |
|
3104 | @@: |
3106 | @@: |
3105 | cmp byte[edx],13 |
3107 | cmp byte[edx],13 |
3106 | jne @f |
3108 | jne @f |
3107 | mov edx,edi |
3109 | mov edx,edi |
3108 | add edx,ted_offs_symbol_new_line |
3110 | add edx,ted_offs_symbol_new_line |
3109 | @@: |
3111 | @@: |
- | 3112 | jmp .end_f |
|
- | 3113 | align 4 |
|
- | 3114 | .else: |
|
- | 3115 | cmp byte[edx],9 |
|
- | 3116 | je @f |
|
- | 3117 | cmp byte[edx],13 |
|
- | 3118 | je @f |
|
- | 3119 | jmp .end_f |
|
- | 3120 | @@: |
|
- | 3121 | lea edx,[ted_symbol_space] |
|
3110 | .end_f: |
3122 | .end_f: |
3111 | ret |
3123 | ret |
Line 3112... | Line 3124... | ||
3112 | 3124 | ||
3113 | ;input: |
3125 | ;input: |
3114 | ; edi = pointer to tedit struct |
3126 | ; edi = pointer to tedit struct |
3115 | align 4 |
3127 | align 16 |
3116 | ted_scroll_set_redraw: |
3128 | ted_scroll_set_redraw: |
3117 | push eax |
3129 | push eax |
3118 | mov eax,ted_scr_w |
3130 | mov eax,ted_scr_w |
3119 | mov dword[eax+sb_offs_redraw],1 |
3131 | mov dword[eax+sb_offs_redraw],1 |
3120 | mov eax,ted_scr_h |
3132 | mov eax,ted_scr_h |
3121 | mov dword[eax+sb_offs_redraw],1 |
3133 | mov dword[eax+sb_offs_redraw],1 |
3122 | pop eax |
3134 | pop eax |
Line 3123... | Line 3135... | ||
3123 | ret |
3135 | ret |
3124 | 3136 | ||
3125 | align 4 |
3137 | align 16 |
3126 | proc ted_draw, edit:dword |
3138 | proc ted_draw, edit:dword |
3127 | locals |
3139 | locals |
3128 | line_num dd ? |
3140 | line_num dd ? |
3129 | endl |
3141 | endl |
Line 3130... | Line 3142... | ||
3130 | pushad |
3142 | pushad |
3131 | mov edi,dword[edit] |
3143 | mov edi,[edit] |
3132 | 3144 | ||
Line 3141... | Line 3153... | ||
3141 | add ebx,ted_rec_t |
3153 | add ebx,ted_rec_t |
3142 | add ebx,0x10001 ;¤®¡ ¢«ï¥¬ ®âáâã¯ë ¤«ï ¢ëà ¢¨¢ ¨ï ¡ãª¢ë ¯® æ¥âàã |
3154 | add ebx,0x10001 ;¤®¡ ¢«ï¥¬ ®âáâã¯ë ¤«ï ¢ëà ¢¨¢ ¨ï ¡ãª¢ë ¯® æ¥âàã |
Line 3143... | Line 3155... | ||
3143 | 3155 | ||
3144 | call ted_sel_normalize ;need before draw select |
3156 | call ted_sel_normalize ;need before draw select |
3145 | mov esi,ted_scr_w |
3157 | mov esi,ted_scr_w |
3146 | mov esi,dword[esi+sb_offs_position] |
3158 | mov esi,[esi+sb_offs_position] |
Line 3147... | Line 3159... | ||
3147 | mov dword[line_num],esi |
3159 | mov [line_num],esi |
3148 | 3160 | ||
3149 | stdcall ted_clear_line_before_draw, edi,ebx,1,esi |
3161 | stdcall ted_clear_line_before_draw, edi,ebx,1,esi |
3150 | call ted_get_first_visible_pos |
3162 | call ted_get_first_visible_pos |
Line 3263... | Line 3275... | ||
3263 | ret |
3275 | ret |
3264 | endp |
3276 | endp |
Line 3265... | Line 3277... | ||
3265 | 3277 | ||
3266 | ;input: |
3278 | ;input: |
3267 | ; edi = pointer to tedit struct |
3279 | ; edi = pointer to tedit struct |
3268 | align 4 |
3280 | align 16 |
3269 | proc ted_draw_main_cursor |
3281 | proc ted_draw_main_cursor |
Line 3270... | Line 3282... | ||
3270 | pushad |
3282 | pushad |
3271 | 3283 | ||
Line 3355... | Line 3367... | ||
3355 | sub edx,35 |
3367 | sub edx,35 |
3356 | ror edx,16 |
3368 | ror edx,16 |
3357 | ;add edx,3 |
3369 | ;add edx,3 |
3358 | mov ebx,0x40000 ;Row=... |
3370 | mov ebx,0x40000 ;Row=... |
3359 | mov ecx,ted_scr_w |
3371 | mov ecx,ted_scr_w |
3360 | mov ecx,dword[ecx+sb_offs_position] |
3372 | mov ecx,[ecx+sb_offs_position] |
3361 | add ecx,ted_cur_y |
3373 | add ecx,ted_cur_y |
3362 | inc ecx |
3374 | inc ecx |
Line 3363... | Line 3375... | ||
3363 | 3375 | ||
3364 | push edi |
3376 | push edi |
3365 | mov edi,ted_color_wnd_work |
3377 | mov edi,ted_color_wnd_work |
3366 | int 0x40 ;¢ë¢®¤ ç¨á« ⥪ã饩 áâப¨ |
3378 | int 0x40 ;¢ë¢®¤ ç¨á« ⥪ã饩 áâப¨ |
Line 3367... | Line 3379... | ||
3367 | pop edi |
3379 | pop edi |
3368 | 3380 | ||
3369 | ;mov ebx,0x40000 ;Col=... |
3381 | ;mov ebx,0x40000 ;Col=... |
3370 | mov ecx,ted_scr_h |
3382 | mov ecx,ted_scr_h |
3371 | mov ecx,dword[ecx+sb_offs_position] |
3383 | mov ecx,[ecx+sb_offs_position] |
3372 | add ecx,ted_cur_x |
3384 | add ecx,ted_cur_x |
3373 | inc ecx |
3385 | inc ecx |
3374 | add edx,0x500000 |
3386 | add edx,0x500000 |
Line 3389... | Line 3401... | ||
3389 | ret |
3401 | ret |
3390 | endp |
3402 | endp |
Line 3391... | Line 3403... | ||
3391 | 3403 | ||
3392 | ;input: |
3404 | ;input: |
- | 3405 | ; edi = pointer to tedit struct |
|
3393 | ; edi = pointer to tedit struct |
3406 | align 16 |
3394 | proc ted_draw_buffer |
3407 | proc ted_draw_buffer |
Line 3395... | Line 3408... | ||
3395 | pushad |
3408 | pushad |
3396 | 3409 | ||
Line 3435... | Line 3448... | ||
3435 | ret |
3448 | ret |
3436 | endp |
3449 | endp |
Line 3437... | Line 3450... | ||
3437 | 3450 | ||
3438 | ;input: |
3451 | ;input: |
3439 | ; edi = pointer to tedit struct |
3452 | ; edi = pointer to tedit struct |
3440 | align 4 |
3453 | align 16 |
3441 | proc ted_draw_help_f1 |
3454 | proc ted_draw_help_f1 |
3442 | pushad |
3455 | pushad |
3443 | cmp ted_rec_t,13 ;¬¨¨¬ «ì ï ¢ëá®â ¤«ï à¨á®¢ ¨ï á¯à ¢ª¨ |
3456 | cmp ted_rec_t,13 ;¬¨¨¬ «ì ï ¢ëá®â ¤«ï à¨á®¢ ¨ï á¯à ¢ª¨ |
3444 | jle @f |
3457 | jle @f |
Line 3470... | Line 3483... | ||
3470 | xor eax,eax |
3483 | xor eax,eax |
3471 | mov al,byte[edx+MAX_COLOR_WORD_LEN+7] |
3484 | mov al,byte[edx+MAX_COLOR_WORD_LEN+7] |
3472 | shl ax,2 |
3485 | shl ax,2 |
3473 | mov ecx,ted_text_colors |
3486 | mov ecx,ted_text_colors |
3474 | add ecx,eax |
3487 | add ecx,eax |
3475 | mov ecx,dword[ecx] |
3488 | mov ecx,[ecx] |
3476 | or ecx,0xc0000000 ;SetTextStyles |
3489 | or ecx,0xc0000000 ;SetTextStyles |
3477 | mov esi,edi |
3490 | mov esi,edi |
3478 | mcall SF_DRAW_TEXT,,,,,ted_color_wnd_work |
3491 | mcall SF_DRAW_TEXT,,,,,ted_color_wnd_work |
3479 | mov edi,esi |
3492 | mov edi,esi |
Line 3482... | Line 3495... | ||
3482 | call tl_strlen |
3495 | call tl_strlen |
Line 3483... | Line 3496... | ||
3483 | 3496 | ||
3484 | ;*** draw help string *** |
3497 | ;*** draw help string *** |
3485 | mov ecx,ted_color_wnd_bord |
3498 | mov ecx,ted_color_wnd_bord |
3486 | or ecx,0x80000000 |
3499 | or ecx,0x80000000 |
3487 | mov edx,dword[edx+MAX_COLOR_WORD_LEN] |
3500 | mov edx,[edx+MAX_COLOR_WORD_LEN] |
3488 | cmp edx,0 |
3501 | or edx,edx |
3489 | je @f |
3502 | jz @f |
3490 | add edx,ted_help_text_f1 |
3503 | add edx,ted_help_text_f1 |
3491 | inc eax |
3504 | inc eax |
3492 | imul eax,6 ;è¨à¨ ᨬ¢®« ¢ á¨áâ. èà¨ä⥠|
3505 | imul eax,6 ;è¨à¨ ᨬ¢®« ¢ á¨áâ. èà¨ä⥠|
3493 | shl eax,16 |
3506 | shl eax,16 |
Line 3498... | Line 3511... | ||
3498 | ret |
3511 | ret |
3499 | endp |
3512 | endp |
Line 3500... | Line 3513... | ||
3500 | 3513 | ||
3501 | ;input: |
3514 | ;input: |
3502 | ; edi = pointer to tedit struct |
3515 | ; edi = pointer to tedit struct |
3503 | align 4 |
3516 | align 16 |
3504 | proc ted_draw_line_numbers |
3517 | proc ted_draw_line_numbers |
3505 | pushad |
3518 | pushad |
3506 | ;top panel with caption |
3519 | ;top panel with caption |
3507 | mov ebx,ted_wnd_l |
3520 | mov ebx,ted_wnd_l |
Line 3517... | Line 3530... | ||
3517 | mcall SF_DRAW_RECT |
3530 | mcall SF_DRAW_RECT |
Line 3518... | Line 3531... | ||
3518 | 3531 | ||
3519 | ;line numbers |
3532 | ;line numbers |
3520 | mov ebx,0x40000 ;format |
3533 | mov ebx,0x40000 ;format |
3521 | mov ecx,ted_scr_w |
3534 | mov ecx,ted_scr_w |
3522 | mov ecx,dword[ecx+sb_offs_position] |
3535 | mov ecx,[ecx+sb_offs_position] |
3523 | inc ecx |
3536 | inc ecx |
3524 | mov edx,3 |
3537 | mov edx,3 |
3525 | add edx,ted_wnd_l |
3538 | add edx,ted_wnd_l |
3526 | rol edx,16 |
3539 | rol edx,16 |
Line 3539... | Line 3552... | ||
3539 | rol ecx,16 |
3552 | rol ecx,16 |
3540 | mov edx,ted_color_wnd_capt |
3553 | mov edx,ted_color_wnd_capt |
3541 | mcall SF_DRAW_RECT ;à¨á㥬 ¯àאַ㣮«ì¨ª ¯®¤ ®¬¥à®¬ áâப¨ |
3554 | mcall SF_DRAW_RECT ;à¨á㥬 ¯àאַ㣮«ì¨ª ¯®¤ ®¬¥à®¬ áâப¨ |
3542 | pop edx ecx ebx |
3555 | pop edx ecx ebx |
Line 3543... | Line -... | ||
3543 | - | ||
3544 | mov eax,47 |
3556 | |
3545 | mov esi,ted_color_wnd_bord |
3557 | mov esi,ted_color_wnd_bord |
3546 | int 0x40 ;à¨á㥬 ®¬¥à áâப¨ |
3558 | mcall SF_DRAW_NUMBER ;à¨á㥬 ®¬¥à áâப¨ |
3547 | inc ecx |
3559 | inc ecx |
3548 | add edx,ted_rec_h |
3560 | add edx,ted_rec_h |
3549 | sub edx,ted_wnd_t |
3561 | sub edx,ted_wnd_t |
3550 | mov esi,edx |
3562 | mov esi,edx |
Line 3559... | Line 3571... | ||
3559 | ret |
3571 | ret |
3560 | endp |
3572 | endp |
Line 3561... | Line 3573... | ||
3561 | 3573 | ||
3562 | ;output: |
3574 | ;output: |
3563 | ; ah = symbol |
3575 | ; ah = symbol |
3564 | align 4 |
3576 | align 16 |
3565 | proc KeyConvertToASCII, table:dword |
- | |
3566 | push ebx |
3577 | proc KeyConvertToASCII uses ebx, table:dword |
3567 | mov ebx,dword[table] ;convert scan to ascii |
3578 | mov ebx,[table] ;convert scan to ascii |
3568 | ror ax,8 |
3579 | ror ax,8 |
3569 | xor ah,ah |
3580 | xor ah,ah |
3570 | add bx,ax ;? ebx,eax |
3581 | add bx,ax ;? ebx,eax |
3571 | mov ah,byte[ebx] |
- | |
3572 | pop ebx |
3582 | mov ah,byte[ebx] |
3573 | ret |
3583 | ret |
Line 3574... | Line 3584... | ||
3574 | endp |
3584 | endp |
3575 | 3585 | ||
3576 | align 4 |
3586 | align 16 |
3577 | proc ted_draw_cur_line, edit:dword |
3587 | proc ted_draw_cur_line, edit:dword |
Line 3578... | Line 3588... | ||
3578 | pushad |
3588 | pushad |
3579 | mov edi,dword[edit] |
3589 | mov edi,[edit] |
3580 | 3590 | ||
3581 | mov ebx,ted_wnd_l |
3591 | mov ebx,ted_wnd_l |
Line 3589... | Line 3599... | ||
3589 | add ebx,0x10001 ;¤®¡ ¢«ï¥¬ ®âáâã¯ë ¤«ï ¢ëà ¢¨¢ ¨ï ¡ãª¢ë ¯® æ¥âàã |
3599 | add ebx,0x10001 ;¤®¡ ¢«ï¥¬ ®âáâã¯ë ¤«ï ¢ëà ¢¨¢ ¨ï ¡ãª¢ë ¯® æ¥âàã |
Line 3590... | Line 3600... | ||
3590 | 3600 | ||
3591 | call ted_sel_normalize ;need before draw select |
3601 | call ted_sel_normalize ;need before draw select |
3592 | mov ecx,ted_cur_y |
3602 | mov ecx,ted_cur_y |
3593 | mov eax,ted_scr_w |
3603 | mov eax,ted_scr_w |
3594 | add ecx,dword[eax+sb_offs_position] |
3604 | add ecx,[eax+sb_offs_position] |
Line 3595... | Line 3605... | ||
3595 | stdcall ted_clear_line_before_draw,edi,ebx,1,ecx |
3605 | stdcall ted_clear_line_before_draw,edi,ebx,1,ecx |
3596 | 3606 | ||
3597 | mov eax,ted_scr_h |
3607 | mov eax,ted_scr_h |
Line 3598... | Line 3608... | ||
3598 | mov esi,dword[eax+sb_offs_position] |
3608 | mov esi,[eax+sb_offs_position] |
3599 | call ted_get_pos_by_coords |
3609 | call ted_get_pos_by_coords |
3600 | - | ||
3601 | cmp ted_gp_opt,2 |
3610 | |
3602 | jne .no_draw_text |
3611 | cmp ted_gp_opt,2 |
3603 | ; mov eax,SF_DRAW_TEXT |
3612 | jne .no_draw_text |
3604 | call ted_get_symb_color |
3613 | call ted_get_symb_color |
3605 | mov esi,1 ;draw 1 symbol |
3614 | mov esi,1 ;draw 1 symbol |
Line 3625... | Line 3634... | ||
3625 | mov edx,edi |
3634 | mov edx,edi |
3626 | add edx,ted_offs_symbol_new_line |
3635 | add edx,ted_offs_symbol_new_line |
3627 | int 0x40 |
3636 | int 0x40 |
3628 | pop edx |
3637 | pop edx |
3629 | jmp .no_draw_text |
3638 | jmp .no_draw_text |
- | 3639 | align 4 |
|
3630 | .no_13: |
3640 | .no_13: |
Line 3631... | Line 3641... | ||
3631 | 3641 | ||
3632 | int 0x40 |
3642 | int 0x40 |
3633 | ror ebx,16 |
3643 | ror ebx,16 |
Line 3637... | Line 3647... | ||
3637 | cmp bx,ax |
3647 | cmp bx,ax |
3638 | jge .no_draw_text ;Opt |
3648 | jge .no_draw_text ;Opt |
3639 | ror ebx,16 |
3649 | ror ebx,16 |
3640 | call ted_iterat_next |
3650 | call ted_iterat_next |
3641 | jmp @b |
3651 | jmp @b |
- | 3652 | align 4 |
|
3642 | .no_draw_text: |
3653 | .no_draw_text: |
Line 3643... | Line 3654... | ||
3643 | 3654 | ||
3644 | call ted_draw_main_cursor |
3655 | call ted_draw_main_cursor |
3645 | popad |
3656 | popad |
Line 3658... | Line 3669... | ||
3658 | ;description: |
3669 | ;description: |
3659 | ; ãªæ¨ï ¯à®¢¥àï¥â ᮢ¯ ¤ ¥â «¨ ⥪áâ ¢ ¡ãä¥à¥ eax |
3670 | ; ãªæ¨ï ¯à®¢¥àï¥â ᮢ¯ ¤ ¥â «¨ ⥪áâ ¢ ¡ãä¥à¥ eax |
3660 | ; á ⥪á⮬ । ªâ®à ¯® 㪠§ ⥫î edx. |
3671 | ; á ⥪á⮬ । ªâ®à ¯® 㪠§ ⥫î edx. |
3661 | ; â ¤ àâë¥ äãªæ¨¨ ( ¯à. strcmp) âãâ ¥ ¯®¤®©¤ãâ, ¯®â®¬ã çâ® |
3672 | ; â ¤ àâë¥ äãªæ¨¨ ( ¯à. strcmp) âãâ ¥ ¯®¤®©¤ãâ, ¯®â®¬ã çâ® |
3662 | ; ¢ ¯ ¬ï⨠। ªâ®à ⥪áâ ᮤ¥à¦¨âáï ¥ ¢ ¢¨¤¥ ascii áâப. |
3673 | ; ¢ ¯ ¬ï⨠। ªâ®à ⥪áâ ᮤ¥à¦¨âáï ¥ ¢ ¢¨¤¥ ascii áâப. |
3663 | align 4 |
3674 | align 16 |
3664 | ted_get_find_rezult: |
3675 | ted_get_find_rezult: |
3665 | push eax |
3676 | push eax |
3666 | mov bh,1 |
3677 | mov bh,1 |
3667 | mov esi,edx ;copy edx |
3678 | mov esi,edx ;copy edx |
3668 | @@: |
3679 | @@: |
3669 | cmp byte[edx],bl |
3680 | cmp byte[edx],bl |
3670 | jne .no_text |
3681 | jne .no_text |
Line 3671... | Line 3682... | ||
3671 | 3682 | ||
3672 | inc eax ;*** get next symbol (in find text) *** |
3683 | inc eax ;*** get next symbol (in find text) *** |
3673 | mov bl,byte[eax] |
3684 | mov bl,byte[eax] |
3674 | cmp bl,0 |
3685 | or bl,bl |
Line 3675... | Line 3686... | ||
3675 | je @f ;end of find text |
3686 | jz @f ;end of find text |
3676 | 3687 | ||
3677 | call ted_iterat_next ;*** get next symbol (in editor text) *** |
3688 | call ted_iterat_next ;*** get next symbol (in editor text) *** |
Line 3678... | Line 3689... | ||
3678 | cmp edx,ted_tex_1 |
3689 | cmp edx,ted_tex_1 |
- | 3690 | jle @f ;end of editor text |
|
3679 | jle @f ;end of editor text |
3691 | |
3680 | 3692 | jmp @b |
|
3681 | jmp @b |
3693 | align 4 |
3682 | .no_text: |
3694 | .no_text: |
3683 | xor bh,bh |
3695 | xor bh,bh |
3684 | mov edx,esi ;restore edx |
3696 | mov edx,esi ;restore edx |
3685 | @@: |
3697 | @@: |
Line 3686... | Line 3698... | ||
3686 | pop eax |
3698 | pop eax |
3687 | mov bl,byte[eax] ;restore bl |
3699 | mov bl,byte[eax] ;restore bl |
3688 | ret |
3700 | ret |
3689 | 3701 | ||
3690 | ;input: |
3702 | ;input: |
3691 | ; clear_o - ¥á«¨ =1 ®ç¨áâ¨âì ®¤ã áâபã, =0 ®ç¨áâ¨âì ¢á¥ áâப¨ ®ª ¤® ¨§ã |
3703 | ; clear_o - ¥á«¨ =1 ®ç¨áâ¨âì ®¤ã áâபã, =0 ®ç¨áâ¨âì ¢á¥ áâப¨ ®ª ¤® ¨§ã |
3692 | align 4 |
3704 | align 16 |
3693 | proc ted_clear_line_before_draw, edit:dword, coords:dword, clear_o:dword, numb_lin:dword |
3705 | proc ted_clear_line_before_draw, edit:dword, coords:dword, clear_o:dword, numb_lin:dword |
Line 3694... | Line 3706... | ||
3694 | pushad |
3706 | pushad |
3695 | mov edi,dword[edit] |
3707 | mov edi,[edit] |
3696 | mov ebx,dword[coords] ;ebx = x*2^16+y coords to left up point clear line |
3708 | mov ebx,[coords] ;ebx = x*2^16+y coords to left up point clear line |
3697 | mov esi,dword[numb_lin] ;esi - number text line |
3709 | mov esi,[numb_lin] ;esi - number text line |
Line 3754... | Line 3766... | ||
3754 | cmp ted_seln_y0,esi |
3766 | cmp ted_seln_y0,esi |
3755 | jne @f |
3767 | jne @f |
3756 | push bx esi |
3768 | push bx esi |
3757 | mov edx,ted_seln_x0 ; ¢¥àåïï ¯®«®á (§ â¨à ¥â á«¥¢ ) |
3769 | mov edx,ted_seln_x0 ; ¢¥àåïï ¯®«®á (§ â¨à ¥â á«¥¢ ) |
3758 | mov esi,ted_scr_h |
3770 | mov esi,ted_scr_h |
3759 | cmp edx,dword[esi+sb_offs_position] |
3771 | cmp edx,[esi+sb_offs_position] |
3760 | jle .in_wnd |
3772 | jle .in_wnd |
3761 | sub edx,dword[esi+sb_offs_position] |
3773 | sub edx,[esi+sb_offs_position] |
3762 | imul edx,ted_rec_w |
3774 | imul edx,ted_rec_w |
3763 | mov bx,dx |
3775 | mov bx,dx |
3764 | jmp .no_wnd |
3776 | jmp .no_wnd |
3765 | .in_wnd: |
3777 | .in_wnd: |
3766 | mov bx,0 |
3778 | mov bx,0 |
Line 3773... | Line 3785... | ||
3773 | jne @f |
3785 | jne @f |
3774 | ;push esi |
3786 | ;push esi |
3775 | ;¥á«¨ ¢ë¤¥«¥ ¢¥áì ä ©« âãâ ¬®¦® ᤥ« âì ¢ë室, ® ⮣¤ 㦮 ¢ëè¥ ã¡à âì jmp .no_select |
3787 | ;¥á«¨ ¢ë¤¥«¥ ¢¥áì ä ©« âãâ ¬®¦® ᤥ« âì ¢ë室, ® ⮣¤ 㦮 ¢ëè¥ ã¡à âì jmp .no_select |
3776 | mov edx,ted_seln_x1 ; ¨¦ïï ¯®«®á (§ â¨à ¥â á¯à ¢ ) |
3788 | mov edx,ted_seln_x1 ; ¨¦ïï ¯®«®á (§ â¨à ¥â á¯à ¢ ) |
3777 | mov esi,ted_scr_h |
3789 | mov esi,ted_scr_h |
3778 | cmp edx,dword[esi+sb_offs_position] |
3790 | cmp edx,[esi+sb_offs_position] |
3779 | jle .in_wnd2 |
3791 | jle .in_wnd2 |
3780 | sub edx,dword[esi+sb_offs_position] |
3792 | sub edx,[esi+sb_offs_position] |
3781 | imul edx,ted_rec_w |
3793 | imul edx,ted_rec_w |
3782 | sub bx,dx |
3794 | sub bx,dx |
3783 | shl edx,16 |
3795 | shl edx,16 |
3784 | add ebx,edx |
3796 | add ebx,edx |
3785 | .in_wnd2: |
3797 | .in_wnd2: |
Line 3797... | Line 3809... | ||
3797 | ; edi = pointer to tedit struct |
3809 | ; edi = pointer to tedit struct |
3798 | ;output: |
3810 | ;output: |
3799 | ; ecx = ®¢ë© 梥â ᨬ¢®« |
3811 | ; ecx = ®¢ë© 梥â ᨬ¢®« |
3800 | ; edx = pointer to symbol |
3812 | ; edx = pointer to symbol |
3801 | ; edx = 0 if text not in screen |
3813 | ; edx = 0 if text not in screen |
3802 | align 4 |
3814 | align 16 |
3803 | ted_get_first_visible_pos: |
3815 | ted_get_first_visible_pos: |
3804 | push eax ecx |
3816 | push eax ecx |
3805 | mov eax,ted_scr_w |
3817 | mov eax,ted_scr_w |
3806 | mov edx,ted_tex |
3818 | mov edx,ted_tex |
3807 | xor ecx,ecx |
3819 | xor ecx,ecx |
3808 | @@: |
3820 | @@: |
3809 | cmp ecx,dword[eax+sb_offs_position] |
3821 | cmp ecx,[eax+sb_offs_position] |
3810 | je @f |
3822 | je @f |
3811 | call ted_iterat_next |
3823 | call ted_iterat_next |
3812 | cmp edx,ted_tex_1 |
3824 | cmp edx,ted_tex_1 |
3813 | jle @f |
3825 | jle @f |
3814 | cmp byte[edx],13 |
3826 | cmp byte[edx],13 |
Line 3816... | Line 3828... | ||
3816 | inc ecx |
3828 | inc ecx |
3817 | jmp @b |
3829 | jmp @b |
3818 | align 4 |
3830 | align 4 |
3819 | @@: |
3831 | @@: |
Line 3820... | Line 3832... | ||
3820 | 3832 | ||
3821 | cmp ecx,dword[eax+sb_offs_position] |
3833 | cmp ecx,[eax+sb_offs_position] |
3822 | je @f |
3834 | je @f |
3823 | xor edx,edx |
3835 | xor edx,edx |
3824 | @@: |
3836 | @@: |
3825 | cmp ecx,dword[eax+sb_offs_max_area] |
3837 | cmp ecx,[eax+sb_offs_max_area] |
3826 | jle @f |
3838 | jle @f |
3827 | mov dword[eax+sb_offs_max_area],ecx |
3839 | mov [eax+sb_offs_max_area],ecx |
3828 | @@: |
3840 | @@: |
3829 | pop ecx eax |
3841 | pop ecx eax |
3830 | call ted_opt_draw_line_left |
3842 | call ted_opt_draw_line_left |
Line 3836... | Line 3848... | ||
3836 | ;output: |
3848 | ;output: |
3837 | ; ecx = 梥â ᨬ¢®« |
3849 | ; ecx = 梥â ᨬ¢®« |
3838 | ; edx = 㪠§ â¥«ì ¯¥à¢ë© «¥¢ë© ᨬ¢®« |
3850 | ; edx = 㪠§ â¥«ì ¯¥à¢ë© «¥¢ë© ᨬ¢®« |
3839 | ;description: |
3851 | ;description: |
3840 | ; äãªæ¨ï 㦠¤«ï ®¯â¨¬¨§ 樨 ¢ë¢®¤ ⥪áâ |
3852 | ; äãªæ¨ï 㦠¤«ï ®¯â¨¬¨§ 樨 ¢ë¢®¤ ⥪áâ |
3841 | align 4 |
3853 | align 16 |
3842 | proc ted_opt_draw_line_left uses ebx |
3854 | proc ted_opt_draw_line_left uses ebx |
3843 | mov ebx,ted_scr_h |
3855 | mov ebx,ted_scr_h |
3844 | mov ebx,dword[ebx+sb_offs_position] |
3856 | mov ebx,[ebx+sb_offs_position] |
3845 | or ebx,ebx |
3857 | or ebx,ebx |
3846 | jz .ret_f |
3858 | jz .ret_f |
3847 | push eax |
3859 | push eax |
3848 | mov eax,edx |
3860 | mov eax,edx |
Line 3876... | Line 3888... | ||
3876 | jge .no_color |
3888 | jge .no_color |
3877 | xor ecx,ecx |
3889 | xor ecx,ecx |
3878 | mov cl,byte[edx+1] |
3890 | mov cl,byte[edx+1] |
3879 | shl cx,2 |
3891 | shl cx,2 |
3880 | add ecx,ted_text_colors |
3892 | add ecx,ted_text_colors |
3881 | mov ecx,dword[ecx] |
3893 | mov ecx,[ecx] |
3882 | .no_color: |
3894 | .no_color: |
3883 | ;-------------------------------------- |
3895 | ;-------------------------------------- |
3884 | mov eax,edx |
3896 | mov eax,edx |
3885 | call ted_iterat_next |
3897 | call ted_iterat_next |
3886 | dec ebx |
3898 | dec ebx |
Line 3900... | Line 3912... | ||
3900 | ;output: |
3912 | ;output: |
3901 | ; ecx = symbol color |
3913 | ; ecx = symbol color |
3902 | ; edx = pointer to 13 symbol |
3914 | ; edx = pointer to 13 symbol |
3903 | ;description: |
3915 | ;description: |
3904 | ; äãªæ¨ï 㦠¤«ï ®¯â¨¬¨§ 樨 ¢ë¢®¤ ⥪áâ |
3916 | ; äãªæ¨ï 㦠¤«ï ®¯â¨¬¨§ 樨 ¢ë¢®¤ ⥪áâ |
3905 | align 4 |
3917 | align 16 |
3906 | proc ted_opt_draw_line_right |
3918 | proc ted_opt_draw_line_right |
3907 | push eax |
3919 | push eax |
3908 | mov eax,edx |
3920 | mov eax,edx |
3909 | @@: |
3921 | @@: |
3910 | cmp edx,ted_tex_1 |
3922 | cmp edx,ted_tex_1 |
Line 3920... | Line 3932... | ||
3920 | 3932 | ||
3921 | pop eax |
3933 | pop eax |
3922 | ret |
3934 | ret |
Line 3923... | Line 3935... | ||
3923 | endp |
3935 | endp |
3924 | 3936 | ||
3925 | align 4 |
3937 | align 16 |
3926 | proc ted_mouse, edit:dword |
3938 | proc ted_mouse, edit:dword |
Line 3927... | Line 3939... | ||
3927 | pushad |
3939 | pushad |
3928 | mov edi,dword[edit] |
3940 | mov edi,[edit] |
3929 | 3941 | ||
Line 3930... | Line 3942... | ||
3930 | ;®¡à ¡ âë¢ ¥¬ áªà®««¨£¨ |
3942 | ;®¡à ¡ âë¢ ¥¬ áªà®««¨£¨ |
3931 | mov edx,ted_scr_h |
3943 | mov edx,ted_scr_h |
Line 3932... | Line 3944... | ||
3932 | mov ecx,ted_scr_w |
3944 | mov ecx,ted_scr_w |
3933 | 3945 | ||
3934 | cmp word[edx+sb_offs_delta2],0 |
3946 | cmp word[edx+sb_offs_delta2],0 |
3935 | jne .horizontal |
3947 | jne .horizontal |
3936 | 3948 | ||
3937 | mov eax,dword[ecx+sb_offs_max_area] |
3949 | mov eax,[ecx+sb_offs_max_area] |
3938 | cmp eax,dword[ecx+sb_offs_cur_area] |
3950 | cmp eax,[ecx+sb_offs_cur_area] |
Line 3946... | Line 3958... | ||
3946 | jmp .no_in_wnd |
3958 | jmp .no_in_wnd |
3947 | @@: |
3959 | @@: |
3948 | cmp word[ecx+sb_offs_delta2],0 |
3960 | cmp word[ecx+sb_offs_delta2],0 |
3949 | jne .no_in_wnd |
3961 | jne .no_in_wnd |
3950 | .horizontal: |
3962 | .horizontal: |
3951 | mov eax,dword[edx+sb_offs_max_area] |
3963 | mov eax,[edx+sb_offs_max_area] |
3952 | cmp eax,dword[edx+sb_offs_cur_area] |
3964 | cmp eax,[edx+sb_offs_cur_area] |
3953 | jbe .other |
3965 | jbe .other |
3954 | ; mouse event for Horizontal ScrollBar |
3966 | ; mouse event for Horizontal ScrollBar |
3955 | stdcall scroll_bar_horizontal.mouse,edx ;[scrollbar_hor_mouse] |
3967 | stdcall scroll_bar_horizontal.mouse,edx ;[scrollbar_hor_mouse] |
3956 | cmp dword[edx+sb_offs_redraw],0 |
3968 | cmp dword[edx+sb_offs_redraw],0 |
3957 | je .other |
3969 | je .other |
Line 3963... | Line 3975... | ||
3963 | jne .no_in_wnd |
3975 | jne .no_in_wnd |
3964 | cmp word[edx+sb_offs_delta2],0 |
3976 | cmp word[edx+sb_offs_delta2],0 |
3965 | jne .no_in_wnd |
3977 | jne .no_in_wnd |
Line 3966... | Line 3978... | ||
3966 | 3978 | ||
3967 | ;®¡à ¡ âë¢ ¥¬ ®ª® । ªâ®à |
3979 | ;®¡à ¡ âë¢ ¥¬ ®ª® । ªâ®à |
3968 | mcall 37,2 ;get mouse buttons |
3980 | mcall SF_MOUSE_GET,SSF_BUTTON |
3969 | cmp al,1 |
3981 | cmp al,1 |
3970 | jne @f |
3982 | jne @f |
3971 | mcall 37,1 ;get mouse coords |
3983 | mcall SF_MOUSE_GET,SSF_WINDOW_POSITION |
3972 | mov ebx,ted_wnd_t |
3984 | mov ebx,ted_wnd_t |
3973 | add ebx,ted_rec_t |
3985 | add ebx,ted_rec_t |
3974 | cmp ax,bx |
3986 | cmp ax,bx |
Line 3994... | Line 4006... | ||
3994 | call ted_draw_cursor_sumb |
4006 | call ted_draw_cursor_sumb |
3995 | call ted_wnd_main_click |
4007 | call ted_wnd_main_click |
3996 | jmp .no_in_wnd |
4008 | jmp .no_in_wnd |
3997 | @@: |
4009 | @@: |
3998 | mov edx,ted_el_focus |
4010 | mov edx,ted_el_focus |
3999 | cmp dword[edx],edi |
4011 | cmp [edx],edi |
4000 | jne @f |
4012 | jne @f |
4001 | call ted_wnd_main_mouse_scroll ;ᬮâਬ ¯à®ªàãâªã ª®«¥á ¬ëè¨ |
4013 | call ted_wnd_main_mouse_scroll ;ᬮâਬ ¯à®ªàãâªã ª®«¥á ¬ëè¨ |
4002 | @@: |
4014 | @@: |
4003 | cmp ted_drag_m,0 |
4015 | cmp ted_drag_m,0 |
4004 | je .no_in_wnd |
4016 | je .no_in_wnd |
Line 4015... | Line 4027... | ||
4015 | ;input: |
4027 | ;input: |
4016 | ; eax -> (x,y) |
4028 | ; eax -> (x,y) |
4017 | ; edi -> 㪠§ ⥫ì áâàãªâãàã tedit |
4029 | ; edi -> 㪠§ ⥫ì áâàãªâãàã tedit |
4018 | ;description: |
4030 | ;description: |
4019 | ; äãªæ¨ï ¢ë§ë¢¥âáï ¯à¨ ¦ ⨨ ª®¯ª®© ¬ëè¨ ¨ ¯®¯ ¤¥¨¨ ªãàá®à®¬ ¢ ®ª® । ªâ®à |
4031 | ; äãªæ¨ï ¢ë§ë¢¥âáï ¯à¨ ¦ ⨨ ª®¯ª®© ¬ëè¨ ¨ ¯®¯ ¤¥¨¨ ªãàá®à®¬ ¢ ®ª® । ªâ®à |
4020 | align 4 |
4032 | align 16 |
4021 | ted_wnd_main_click: |
4033 | ted_wnd_main_click: |
4022 | push ebx ecx edx |
4034 | push ebx ecx edx |
4023 | mov ebx,ted_el_focus |
4035 | mov ebx,ted_el_focus |
4024 | mov dword[ebx],edi ;áâ ¢¨¬ 䮪ãá |
4036 | mov [ebx],edi ;áâ ¢¨¬ 䮪ãá |
Line 4025... | Line 4037... | ||
4025 | 4037 | ||
4026 | push eax |
4038 | push eax |
4027 | shr eax,16 |
4039 | shr eax,16 |
4028 | sub eax,ted_wnd_l |
4040 | sub eax,ted_wnd_l |
Line 4031... | Line 4043... | ||
4031 | xor edx,edx |
4043 | xor edx,edx |
4032 | mov ecx,ted_rec_w |
4044 | mov ecx,ted_rec_w |
4033 | div cx |
4045 | div cx |
4034 | ;inc eax |
4046 | ;inc eax |
4035 | mov ebx,ted_scr_h |
4047 | mov ebx,ted_scr_h |
4036 | cmp eax,dword[ebx+sb_offs_cur_area] |
4048 | cmp eax,[ebx+sb_offs_cur_area] |
4037 | jle @f |
4049 | jle @f |
4038 | mov eax,dword[ebx+sb_offs_cur_area] |
4050 | mov eax,[ebx+sb_offs_cur_area] |
4039 | @@: |
4051 | @@: |
4040 | ;dec eax |
4052 | ;dec eax |
4041 | mov ted_cur_x,eax |
4053 | mov ted_cur_x,eax |
4042 | pop eax |
4054 | pop eax |
Line 4049... | Line 4061... | ||
4049 | xor edx,edx |
4061 | xor edx,edx |
4050 | mov ecx,ted_rec_h |
4062 | mov ecx,ted_rec_h |
4051 | div cx |
4063 | div cx |
4052 | inc eax |
4064 | inc eax |
4053 | mov ebx,ted_scr_w |
4065 | mov ebx,ted_scr_w |
4054 | cmp eax,dword[ebx+sb_offs_cur_area] |
4066 | cmp eax,[ebx+sb_offs_cur_area] |
4055 | jle @f |
4067 | jle @f |
4056 | mov eax,dword[ebx+sb_offs_cur_area] |
4068 | mov eax,[ebx+sb_offs_cur_area] |
4057 | @@: |
4069 | @@: |
4058 | dec eax |
4070 | dec eax |
4059 | mov ted_cur_y,eax |
4071 | mov ted_cur_y,eax |
4060 | pop eax |
4072 | pop eax |
Line 4070... | Line 4082... | ||
4070 | pop edx ecx ebx |
4082 | pop edx ecx ebx |
4071 | ret |
4083 | ret |
Line 4072... | Line 4084... | ||
4072 | 4084 | ||
4073 | ;input: |
4085 | ;input: |
4074 | ; edi = pointer to tedit struct |
4086 | ; edi = pointer to tedit struct |
4075 | align 4 |
4087 | align 16 |
4076 | ted_wnd_main_mouse_scroll: |
4088 | ted_wnd_main_mouse_scroll: |
4077 | push eax ebx ecx |
4089 | push eax ebx ecx |
4078 | mcall 37,7 ;¯à®ªàã⪠ª®«¥á ¬ëè¨ |
4090 | mcall SF_MOUSE_GET,SSF_SCROLL_DATA |
4079 | cmp ax,0 |
4091 | or ax,ax |
4080 | je .no_scroll |
4092 | jz .no_scroll |
4081 | mov ecx,ted_scr_w |
4093 | mov ecx,ted_scr_w |
4082 | mov ebx,dword[ecx+sb_offs_position] ;copy old scroll position |
4094 | mov ebx,[ecx+sb_offs_position] ;copy old scroll position |
4083 | and eax,0xffff |
4095 | and eax,0xffff |
4084 | btr ax,15 |
4096 | btr ax,15 |
4085 | jae @f |
4097 | jae @f |
4086 | or eax,0xffff8000 |
4098 | or eax,0xffff8000 |
4087 | @@: |
4099 | @@: |
Line 4088... | Line 4100... | ||
4088 | add dword[ecx+sb_offs_position],eax |
4100 | add [ecx+sb_offs_position],eax |
4089 | 4101 | ||
4090 | mov eax,[ecx+sb_offs_position] |
4102 | mov eax,[ecx+sb_offs_position] |
4091 | cmp eax,[ecx+sb_offs_max_area] |
4103 | cmp eax,[ecx+sb_offs_max_area] |
4092 | jb @f |
4104 | jb @f |
4093 | mov dword[ecx+sb_offs_position],ebx ;if scroll position out of range |
4105 | mov [ecx+sb_offs_position],ebx ;if scroll position out of range |
4094 | jmp .no_scroll |
4106 | jmp .no_scroll |
4095 | @@: |
4107 | @@: |
4096 | stdcall ted_draw,edi |
4108 | stdcall ted_draw,edi |
4097 | .no_scroll: |
4109 | .no_scroll: |
Line 4098... | Line 4110... | ||
4098 | pop ecx ebx eax |
4110 | pop ecx ebx eax |
4099 | ret |
4111 | ret |
4100 | 4112 | ||
4101 | align 4 |
4113 | align 16 |
Line 4102... | Line 4114... | ||
4102 | proc ted_save_file, edit:dword, file:dword, f_name:dword |
4114 | proc ted_save_file, edit:dword, file:dword, f_name:dword |
4103 | pushad |
4115 | pushad |
4104 | mov edi,dword[edit] |
4116 | mov edi,[edit] |
Line 4105... | Line 4117... | ||
4105 | 4117 | ||
4106 | stdcall ted_can_save,edi |
4118 | stdcall ted_can_save,edi |
4107 | cmp al,0 |
4119 | ;or al,al |
Line 4120... | Line 4132... | ||
4120 | mov bl,[edx] |
4132 | mov bl,[edx] |
4121 | mov byte[eax],bl |
4133 | mov byte[eax],bl |
4122 | inc eax |
4134 | inc eax |
4123 | inc ecx |
4135 | inc ecx |
4124 | jmp @b |
4136 | jmp @b |
- | 4137 | align 4 |
|
4125 | @@: |
4138 | @@: |
Line 4126... | Line 4139... | ||
4126 | 4139 | ||
4127 | cmp ecx,0 |
4140 | or ecx,ecx |
4128 | je @f |
4141 | jz @f |
4129 | mov ebx,dword[file] |
4142 | mov ebx,[file] |
4130 | pop eax ;§ ¯¨áë¢ ¥¬ 㪠§ â¥«ì ¢ë¤¥«¥ãî ¯ ¬ïâì |
4143 | pop eax ;§ ¯¨áë¢ ¥¬ 㪠§ â¥«ì ¢ë¤¥«¥ãî ¯ ¬ïâì |
4131 | mov dword[ebx+16],eax |
4144 | mov [ebx+16],eax |
4132 | push eax ;®¡à â® § ¯®¬¨ ¥¬ 㪠§ â¥«ì ¢ë¤¥«¥ãî ¯ ¬ïâì |
- | |
4133 | mov eax,70 |
4145 | push eax ;®¡à â® § ¯®¬¨ ¥¬ 㪠§ â¥«ì ¢ë¤¥«¥ãî ¯ ¬ïâì |
4134 | mov dword[ebx], 2 |
4146 | mov dword[ebx], SSF_CREATE_FILE |
4135 | mov dword[ebx+4], 0 |
4147 | mov dword[ebx+4], 0 |
4136 | mov dword[ebx+8], 0 |
4148 | mov dword[ebx+8], 0 |
4137 | mov dword[ebx+12], ecx |
4149 | mov [ebx+12], ecx |
4138 | mov byte[ebx+20], 0 |
4150 | mov byte[ebx+20], 0 |
4139 | push dword[f_name] |
4151 | push dword[f_name] |
4140 | pop dword[ebx+21] |
4152 | pop dword[ebx+21] |
Line 4141... | Line 4153... | ||
4141 | int 0x40 |
4153 | mcall SF_FILE |
Line 4142... | Line 4154... | ||
4142 | 4154 | ||
4143 | mov ted_err_save,al |
4155 | mov ted_err_save,al |
4144 | 4156 | ||
4145 | cmp eax,0 |
4157 | or eax,eax |
4146 | je .no_msg |
4158 | jz .no_msg |
4147 | ; cmp eax,6 |
4159 | ;cmp eax,6 |
4148 | ; je @f |
4160 | ;je @f |