Subversion Repositories Kolibri OS

Compare Revisions

No changes between revisions

Regard whitespace Rev 1475 → Rev 1476

/programs/other/t_edit_synt/build.bat
0,0 → 1,12
if not exist bin mkdir bin
if not exist bin\tl_sys_16.bmp @copy ..\..\develop\libraries\box_lib\trunk\tl_sys_16.bmp bin\tl_sys_16.bmp
if not exist bin\tl_nod_16.bmp @copy ..\..\develop\libraries\box_lib\trunk\tl_nod_16.bmp bin\tl_nod_16.bmp
if not exist bin\info mkdir bin\info
copy ..\t_edit\info\* bin\info\*
 
if not exist bin\box_lib.obj @fasm.exe -m 16384 ..\..\develop\libraries\box_lib\trunk\box_lib.asm bin\box_lib.obj
@kpack bin\box_lib.obj
 
@fasm.exe -m 16384 te_syntax.asm bin\te_syntax.kex
@kpack bin\te_syntax.kex
pause
/programs/other/t_edit_synt/readme.htm
0,0 → 1,153
<html>
<head>
<title>Îãëàâëåíèå</title>
<meta http-equiv="content-type" content="text/html; charset=WINDOWS-1251">
<style>
body
{
font-size: 15px;
font-family: "Bookman Old Style";
color: black;
text-align: justify;
}
h1 { color: green; font-size: 23px; }
h2 { color: green; font-size: 21px; }
h3 { color: green; font-size: 19px; }
h4 { color: #803f00; font-size: 17px; }
i { color: #0099cc; }
b { color: #0099cc; }
p {
text-indent: 1em;
margin-top: 3px;
margin-bottom: 2px;
margin-left: 0px;
margin-right: 0px;
}
ol, ul, dl{
margin-top: 3px;
margin-bottom: 2px;
}
pre
{
padding: 2px;
padding-left: 20px;
margin-top: 5px;
margin-bottom: 5px;
margin-left: 0px;
margin-right: 0px;
font-family: "Courier New";
font-size: 15px;
color: #004000;
background-color: #ffd0ff;
}
table
{
font-size: 15px;
}
</style>
</head>
 
<body>
<h1>TextEditor syntax file converter âåðñèÿ îò 31.05.2010</h1>
<h2>Î ïðîãðàììå</h2>
<p>Ïðîãðàììà äëÿ ðàáîòû ñ ôàéëàìè òåêñòîâîãî ðåäàêòîðà ôîðìàòà <b>*.syn</b>.</p>
<p><img src="te_syntax.png"></p>
<p>Ëèöåíçèÿ ñâîáîäíàÿ.</p>
 
<h2>Àëãîðèòì ðàáîòû ïðîãðàììû</h2>
<p>Ïåðåä èñïîëüçîâàíèåì çàïèñàòü ôàéë <b>te_synt.kex</b> â ïàïêó ñ ðåäàêòîðîì <b>t_edit.kex</b>.</p>
<p>1) çàãðóçèòü ôàéë ñèíòàêñèñà <b>.syn</b></p>
<p>2) ââåñòè ïóòü è íîâîå èìÿ äëÿ ñîõðàíåíèÿ â ôîðìàòå <b>.asm</b></p>
<p>3) èçìåíèòü â ôàéëå <b>.asm</b> èíòåðåñóþùèå ïîëüçîâàòåëÿ ïàðàìåòðû, ýòî ìîãóò áûòü:</p>
<ul>
<li>öâåòà èíòåðôåéñà</li>
<li>ïîäñâå÷èâàåìûå ñëîâà (äîëæíû èòè â ïîðÿäêå ñëåäîâàíèÿ ascii êîäîâ)</li>
<li>ñïðàâêà ïî ñëîâàì</li>
</ul>
<p>4) êîìïèëèðîâàòü â <b>fasm</b></p>
<p>5) èñïðàâèòü ðàñøèðåíèå <b>.bin</b> íà <b>.syn</b></p>
<p>Åñëè ïðîïóñòèòü 3-é ïóíêò, òî â ðåçóëüòàòå ïîëüçîâàòåëü äîëæåí ïîëó÷èòü òàêîé æå ôàéë ñèíòàêñèñà, êîòîðûé áûë èçíà÷àëüíî.</p>
 
<h3>Ôîðìàò ïðåîáðàçîâàíîãî ôàéëà ïîäñâåòêè *.asm</h3>
<p><b>count_colors_text</b> - êîëëè÷åñòâî öâåòîâ äëÿ òåêñòà</p>
<p><b>count_key_words</b> - êîëëè÷åñòâî ïîäñâå÷èâàåìûõ ñëîâ</p>
<p>Öâåòîâûå ïàðàìåòðû:</p>
<p><b>color_cursor</b> - öâåò êóðñîðà</p>
<p><b>color_wnd_capt</b> - öâåò ïîëåé âîêðóã îêíà</p>
<p><b>color_wnd_work</b> - öâåò ôîíà â îêíå</p>
<p><b>color_wnd_bord</b> - öâåò òåêñòà íà ïîëÿõ</p>
<p><b>color_select</b> - öâåò âûäåëåíèÿ</p>
<p><b>color_cur_text</b> - öâåò ñèìâîëà ïîä êóðñîðîì</p>
<p><b>color_wnd_text</b> - ìåòêà ïîñëå êîòîðîé èäóò öâåòà òåêñòà â îêíå</p>
 
<p><b>text</b> - ìåòêà ïîñëå êîòîðîé èäóò îïèñàíèÿ êëþ÷åâûõ ñëîâ. Äëÿ áîëåå êîìïàêòíîãî îïèñàíèÿ êëþ÷åâîãî ñëîâà èñïîëüçóåòñÿ ìàêðîñ <b>wo</b>:</p>
<pre>macro wo txt,lf1,p1,p2,p3{
@@: db txt
rb @b+40-$
dd lf1
db p1,p2+0,p3
}</pre>
<p>ïàðàìåòðû ìàêðîñà:</p>
<p><b>txt</b> - <i>ïîäñâå÷èâàåìîå ñëîâî</i></p>
<p><b>lf1</b> - <i>ñìåùåíèå íà÷àëà ñïðàâêè</i> ïî äàííîìó ñëîâó îòíîñèòåëüíî ìåòêè <b>f1</b></p>
<p><b>p1</b> - <i>îïöèè</i> âëèÿþùèå íà âûäåëåíèå ñëîâà. Âîçìîæíî âñåãî 5 îïöèé, êàæäàÿ èç êîòîðûõ âêëþ÷àåòñÿ îïðåäåëåííûì áèòîì:</p>
<ul>
<li>2<sup>0</sup>=1 - ñëåâà íå òåêñò,</li>
<li>2<sup>1</sup>=2 - ñïðàâà íå òåêñò,</li>
<li>2<sup>3</sup>=4 - èñïîëüçîâàòü êîíå÷íûé ñèìâîë,</li>
<li>2<sup>4</sup>=8 - ñëåâà ëþáàÿ öèôðà,</li>
<li>2<sup>5</sup>=16 - ñïðàâà ëþáàÿ öèôðà.</li>
</ul>
<p><b>p2</b> - <i>ascii êîä êîíå÷íîãî ñèìâîëà</i> äëÿ âûäåëåíèÿ. Èñïîëüçóåòñÿ â ñëó÷àÿõ, êîãäà íóæíî çàäàòü âûäåëåíèå çàðàíåå íå èçâåñòíîé äëèííû, íàïðèìåð: êîììåíòàðèè, ñòðîêè â êàâû÷êàõ. Äëÿ åãî èñïîëüçîâàíèÿ ïðåäûäóùèé ïàðàìåòð äîëæåí ñîäåðæàòü 2-é áèò èë öèôðà 4 = 2<sup>2</sup>.</p>
<p><b>p3</b> - <i>íîìåð öâåòà</i> èç ìàññèâà <b>color_wnd_text</b>, êîòîðûì áóäåò âûäåëÿòñÿ ñëîâî</p>
 
<p><b>Ïðèìåð 1.</b> Íóæíî çàäàòü ñëîâî <i>or</i>, ÷òî-áû ïî îøèáêå êîìáèíàöèè èç ñèìâîëîâ âõîäÿùèõ â ñëîâî íå âûäåëÿëèñü â äðóãèõ ñëîâàõ, íàïðèìåð: <i>f<b>or</b>m</i>, <i>col<b>or</b></i> èñïîëüçóåì â <b>p2</b> áèòû 0 è 1 ïîëó÷àåì ÷èñëî 3 = 2<sup>0</sup>+2<sup>1</sup> = 1+2.</p>
<p><b>Ïðèìåð 2.</b> Ôðàãìåíò ôàéëà, ïîëó÷åíîãî â ðåçóëüòàòå ðàáîòû ïðîãðàììû:</p>
<pre>wo&lt;'word'&gt;,f1.600-f1,<b>3</b>,,8
wo&lt;'xadd'&gt;,0,<b>3</b>,,1
wo&lt;'xchg'&gt;,f1.602-f1,<b>3</b>,,1
wo&lt;'xlat'&gt;,0,<b>3</b>,,1
wo&lt;'xlatb'&gt;,0,<b>3</b>,,1
wo&lt;'xmm0'&gt;,0,<b>3</b>,,2
wo&lt;'xmm1'&gt;,0,<b>3</b>,,2
wo&lt;'xmm2'&gt;,0,<b>3</b>,,2
wo&lt;'xmm3'&gt;,0,<b>3</b>,,2
wo&lt;'xmm4'&gt;,0,<b>3</b>,,2
wo&lt;'xmm5'&gt;,0,<b>3</b>,,2
wo&lt;'xmm6'&gt;,0,<b>3</b>,,2
wo&lt;'xmm7'&gt;,0,<b>3</b>,,2
wo&lt;'xor'&gt;,f1.613-f1,<b>3</b>,,1
wo&lt;'zf'&gt;,f1.614-f1,<b>3</b>,,2
wo&lt;'||'&gt;,0,<b>0</b>,,1</pre>
<p>Ïàðàìåòðû <b>p2</b> ïî÷òè âî âñåõ ñëîâàõ ðàâíû 3-ì, à â ïîñëåäíåì ñëîâå 0, ïîòîìó ÷òî äëÿ ïîñëåäíåãî ñëîâà íå âàæíî êàêèå ñèìâîëû áóäóò ñëåâà è ñïðàâà îò íåãî.</p>
 
<h3>Ôîðìàò ôàéëà ïîäñâåòêè *.syn</h3>
<table>
<tr><th>Ýëåìåíò</th><th>Ðàçìåð (áàéò)</th></tr>
<tr><td>Êîëè÷åñòâî öâåòîâ òåêñòà</td>
<td><pre>4</pre></td></tr>
<tr><td>Êîëè÷åñòâî ïîäñâå÷èâàåìûõ ñëîâ</td>
<td><pre>4</pre></td></tr>
<tr><td>Öâåòà èíòåðôåéñà</td>
<td><pre>4*6</pre></td></tr>
<tr><td>Öâåòà äëÿ òåêñòà</td>
<td><pre>4*(êîë. öâ. òåêñòà)</pre></td></tr>
<tr><td>Ñòðóêòóðû ñî ñâîéñòâàìè è îïèñàíèÿìè ñëîâ</td>
<td><pre>sizeof(TexColViv)*(êîë. ñëîâ)</pre></td></tr>
<tr><td>Ðàçäåëèòåëüíûé ñèìâîë, îçíà÷àþùèé íà÷àëî îïèñàíèé ñëîâ (âñåãäà ðàâåí 0)</td>
<td><pre>1 áàéò</pre></td></tr>
<tr><td>Îïèñàíèÿ ñëîâ (ñòðîêè òåêñòà ñ 0-ìè â êîíöå)</td>
<td><pre>(äëèííà ñïðàâî÷íîãî òåêñòà + 1)</pre></td></tr>
</table>
<h4>Çàìå÷àíèÿ.</h4>
<ul>
<li>Âñå ñëîâà äîëæíû áûòü ðàñïîëîæåíû â ïîðÿäêå ñëåäîâàíèÿ èõ ASCII êîäîâ.
Âîçìîæíî â áóäóùèõ âåðñèÿõ ôîðìàò ôàéëîâ ïîäñâåòêè áóäåò èçìåíåí.</li>
</ul>
 
<hr>
<h2>Àâòîð</h2>
<p>Èãîðü À. (IgorA) - ðàçðàáîòêà ïðîãðàììû.</p>
 
</body>
</html>
/programs/other/t_edit_synt/te_data.inc
0,0 → 1,393
fn_col_option dd def_col_file
fn_syntax_dir db 'info/',0
def_col_file db 'default.syn',0
 
system_dir0 db '/sys/lib/'
boxlib_name db 'box_lib.obj',0
 
fn_icon_tl_sys db 'tl_sys_16.bmp',0
fn_icon_tl_nod db 'tl_nod_16.bmp',0
;---------------------------------------------------------------------
 
align 4
myimport:
edit_box_draw dd aEdit_box_draw
edit_box_key dd aEdit_box_key
edit_box_mouse dd aEdit_box_mouse
version_ed dd aVersion_ed
 
;check_box_draw dd aCheck_box_draw
;check_box_mouse dd aCheck_box_mouse
;version_ch dd aVersion_ch
 
;option_box_draw dd aOption_box_draw
;option_box_mouse dd aOption_box_mouse
;version_op dd aVersion_op
 
scrollbar_ver_draw dd aScrollbar_ver_draw
scrollbar_ver_mouse dd aScrollbar_ver_mouse
scrollbar_hor_draw dd aScrollbar_hor_draw
scrollbar_hor_mouse dd aScrollbar_hor_mouse
version_scrollbar dd aVersion_scrollbar
 
;dinamic_button_draw dd aDbutton_draw
;dinamic_button_mouse dd aDbutton_mouse
;version_dbutton dd aVersion_dbutton
 
tl_data_init dd sz_tl_data_init
tl_data_clear dd sz_tl_data_clear
tl_info_clear dd sz_tl_info_clear
tl_key dd sz_tl_key
tl_mouse dd sz_tl_mouse
tl_draw dd sz_tl_draw
tl_info_undo dd sz_tl_info_undo
tl_info_redo dd sz_tl_info_redo
tl_node_add dd sz_tl_node_add
tl_node_set_data dd sz_tl_node_set_data
tl_node_get_data dd sz_tl_node_get_data
tl_node_delete dd sz_tl_node_delete
tl_cur_beg dd sz_tl_cur_beg
tl_cur_next dd sz_tl_cur_next
tl_cur_perv dd sz_tl_cur_perv
tl_node_close_open dd sz_tl_node_close_open
tl_node_lev_inc dd sz_tl_node_lev_inc
tl_node_lev_dec dd sz_tl_node_lev_dec
tl_node_move_down dd sz_tl_node_move_down
tl_save_mem dd sz_tl_save_mem
tl_load_mem dd sz_tl_load_mem
 
ted_but_save_file dd sz_ted_but_save_file
ted_but_sumb_upper dd sz_ted_but_sumb_upper
ted_but_sumb_lover dd sz_ted_but_sumb_lover
ted_can_save dd sz_ted_can_save
ted_clear dd sz_ted_clear
ted_delete dd sz_ted_delete
ted_draw dd sz_ted_draw
ted_init dd sz_ted_init
ted_init_scroll_bars dd sz_ted_init_scroll_bars
ted_init_syntax_file dd sz_ted_init_syntax_file
ted_is_select dd sz_ted_is_select
ted_key dd sz_ted_key
ted_mouse dd sz_ted_mouse
ted_open_file dd sz_ted_open_file
ted_text_add dd sz_ted_text_add
ted_but_select_word dd sz_ted_but_select_word
ted_but_cut dd sz_ted_but_cut
ted_but_copy dd sz_ted_but_copy
ted_but_paste dd sz_ted_but_paste
ted_but_undo dd sz_ted_but_undo
ted_but_redo dd sz_ted_but_redo
ted_but_reverse dd sz_ted_but_reverse
ted_but_find_next dd sz_ted_but_find_next
ted_text_colored dd sz_ted_text_colored
;version_text_edit dd sz_ted_version
 
dd 0,0
 
aEdit_box_draw db 'edit_box',0
aEdit_box_key db 'edit_box_key',0
aEdit_box_mouse db 'edit_box_mouse',0
aVersion_ed db 'version_ed',0
 
;aCheck_box_draw db 'check_box_draw',0
;aCheck_box_mouse db 'check_box_mouse',0
;aVersion_ch db 'version_ch',0
 
;aOption_box_draw db 'option_box_draw',0
;aOption_box_mouse db 'option_box_mouse',0
;aVersion_op db 'version_op',0
 
aScrollbar_ver_draw db 'scrollbar_v_draw',0
aScrollbar_ver_mouse db 'scrollbar_v_mouse',0
aScrollbar_hor_draw db 'scrollbar_h_draw',0
aScrollbar_hor_mouse db 'scrollbar_h_mouse',0
aVersion_scrollbar db 'version_scrollbar',0
 
;aDbutton_draw db 'dbutton_draw',0
;aDbutton_mouse db 'dbutton_mouse',0
;aVersion_dbutton db 'version_dbutton',0
 
sz_tl_data_init db 'tl_data_init',0
sz_tl_data_clear db 'tl_data_clear',0
sz_tl_info_clear db 'tl_info_clear',0
sz_tl_key db 'tl_key',0
sz_tl_mouse db 'tl_mouse',0
sz_tl_draw db 'tl_draw',0
sz_tl_info_undo db 'tl_info_undo',0
sz_tl_info_redo db 'tl_info_redo',0
sz_tl_node_add db 'tl_node_add',0
sz_tl_node_set_data db 'tl_node_set_data',0
sz_tl_node_get_data db 'tl_node_get_data',0
sz_tl_node_delete db 'tl_node_delete',0
sz_tl_cur_beg db 'tl_cur_beg',0
sz_tl_cur_next db 'tl_cur_next',0
sz_tl_cur_perv db 'tl_cur_perv',0
sz_tl_node_close_open db 'tl_node_close_open',0
sz_tl_node_lev_inc db 'tl_node_lev_inc',0
sz_tl_node_lev_dec db 'tl_node_lev_dec',0
sz_tl_node_move_down db 'tl_node_move_down',0
sz_tl_save_mem db 'tl_save_mem',0
sz_tl_load_mem db 'tl_load_mem',0
 
sz_ted_but_save_file db 'ted_but_save_file',0
sz_ted_but_sumb_upper db 'ted_but_sumb_upper',0
sz_ted_but_sumb_lover db 'ted_but_sumb_lover',0
sz_ted_can_save db 'ted_can_save',0
sz_ted_clear db 'ted_clear',0
sz_ted_delete db 'ted_delete',0
sz_ted_draw db 'ted_draw',0
sz_ted_init db 'ted_init',0
sz_ted_init_scroll_bars db 'ted_init_scroll_bars',0
sz_ted_init_syntax_file db 'ted_init_syntax_file',0
sz_ted_is_select db 'ted_is_select',0
sz_ted_key db 'ted_key',0
sz_ted_mouse db 'ted_mouse',0
sz_ted_open_file db 'ted_open_file',0
sz_ted_text_add db 'ted_text_add',0
sz_ted_but_select_word db 'ted_but_select_word',0
sz_ted_but_cut db 'ted_but_cut',0
sz_ted_but_copy db 'ted_but_copy',0
sz_ted_but_paste db 'ted_but_paste',0
sz_ted_but_undo db 'ted_but_undo',0
sz_ted_but_redo db 'ted_but_redo',0
sz_ted_but_reverse db 'ted_but_reverse',0
sz_ted_but_find_next db 'ted_but_find_next',0
sz_ted_text_colored db 'ted_text_colored',0
;sz_ted_version db 'version_text_edit',0
;---------------------------------------------------------------------
align 4
ws_dir_lbox: ;äî÷åðíèé ñêðîëëèíã äëÿ ýëåìåíòà ListBox
.x:
.size_x dw 16 ;+0
.start_x dw 0 ;+2
.y:
.size_y dw 30 ;+4
.start_y dw 70 ;+6
.btn_high dd 15 ;+8
.type dd 1 ;+12
.max_area dd 100 ;+16
.cur_area dd 30 ;+20
.position dd 0 ;+24
.bckg_col dd 0xeeeeee ;+28
.frnt_col dd 0xbbddff ;+32
.line_col dd 0 ;+36
.redraw dd 0 ;+40
.delta dw 0 ;+44
.delta2 dw 0 ;+46
.run_x:
.r_size_x dw 0 ;+48
.r_start_x dw 0 ;+50
.run_y:
.r_size_y dw 0 ;+52
.r_start_y dw 0 ;+54
.m_pos dd 0 ;+56
.m_pos_2 dd 0 ;+60
.m_keys dd 0 ;+64
.run_size dd 0 ;+68
.position2 dd 0 ;+72
.work_size dd 0 ;+76
.all_redraw dd 0 ;+80
.ar_offset dd 1 ;+84
;---------------------------------------------------------------------
 
count_of_dir_list_files equ 15
 
el_focus dd 0
mouse_dd dd 0
 
tree1 tree_list 264,count_of_dir_list_files+2, tl_key_no_edit+tl_draw_par_line+tl_list_box_mode,\
16,16, 0x8080ff,0x0000ff,0xffffff, 5,5,180-17,185, 12,0,0, el_focus,\
ws_dir_lbox,0
 
;dir_list memory
tree_file_struct:
dd 1
dd 0,0,count_of_dir_list_files
dd dir_mem
db 0
dd file_name ;sys_path
 
dir_mem rb 32+304*count_of_dir_list_files
 
;------------------------------------------------------------------------------
struct TexSelect
x0 dd ?
y0 dd ?
x1 dd ?
y1 dd ?
ends
;------------------------------------------------------------------------------
align 4
tedit0: ;áâàãªâãà  â¥ªá⮢®£® । ªâ®à 
.wnd BOX 195,5+20,325,260 ;+ 0
.rec BOX 30,13,7,10 ;+16
.drag_m db 0 ;+32 ¢ë¤¥«¥­¨¥ ®â ¬ëè¨
.drag_k db 0 ;+33 ¢ë¤¥«¥­¨¥ ®â ª« ¢¨ âãàë
.sel TexSelect 0,0,0,0 ;+34 áâàãªâãà  ¢ë¤¥«¥­¨ï
.seln TexSelect ;+50 ¤®¯®«­¨â¥«ì­ ï áâàãªâãà  ¢ë¤¥«¥­¨ï
.tex dd 0 ;+66 text memory pointer
.tex_1 dd 0 ;+70 text first symbol pointer
.tex_end dd 0 ;+74 text end memory pointer
.cur_x dd 0 ;+78 ª®®à¤¨­ â  x ªãàá®à 
.cur_y dd 0 ;+82 ª®®à¤¨­ â  y ªãàá®à 
.max_chars dd 25002 ;+86 ¬ ªá¨¬ «ì­®¥ ç¨á«® ᨬ¢®«®¢ ¢ ®¤­®¬ ¤®ªã¬¥­â¥
.count_colors_text dd 1 ;+90 ª®««¨ç¥á⢮ 梥⮢ ⥪áâ 
.count_key_words dd 0 ;+94 ª®««¨ç¥á⢮ ª«î祢ëå á«®¢
.color_cursor dd 0xff0000 ;+98 梥⠪ãàá®à 
.color_wnd_capt dd 0x0080c0 ;+102 梥⠯®«¥© ¢®ªà㣠®ª­ 
.color_wnd_work dd 0x0 ;+106 梥â ä®­  ®ª­ 
.color_wnd_bord dd 0xffffff ;+110 梥â ⥪áâ  ­  ¯®«ïå
.color_select dd 0x0000ff ;+114 梥⠢뤥«¥­¨ï
.color_cur_text dd 0xffff00 ;+118 梥â ᨬ¢®«  ¯®¤ ªãàá®à®¬
.color_wnd_text dd 0x80ffff ;+122 梥â ⥪áâ  ¢ ®ª­¥
.syntax_file dd 0 ;+126 㪠§ â¥«ì ­  ­ ç «® ä ©«  ᨭ⠪á¨á 
.syntax_file_size dd 500 ;+130 ¬ ªá¨¬ «ì­ë© à §¬¥à ä ©«  ᨭ⠪á¨á 
.text_colors dd 0 ;+134 㪠§ â¥«ì ­  ¬ áᨢ 梥⮢ ⥪áâ 
.help_text_f1 dd 0 ;+138 㪠§ â¥«ì ­  ⥪áâ á¯à ¢ª¨ (¯® ­ ¦ â¨¨ F1)
.help_id dd -1 ;+142 ¨¤¥­â¨ä¨ª â®à ¤«ï á¯à ¢ª¨
.key_words_data dd 0 ;+146 㪠§ â¥«ì ­  áâàãªâãàë ª«î祢ëå á«®¢ TexColViv
.tim_ch dd ? ;+150 ª®«¨ç¥á⢮ ¨§¬¥­¥­¨© ¢ ä ©«¥
.tim_undo dd ? ;+154 ª®«¨ç¥á⢮ ®â¬¥­¥­­ëå ¤¥©á⢨©
.tim_ls dd ? ;+158 ¢à¥¬ï ¯®á«¥¤­¥£® á®åà ­¥­¨ï
.tim_co dd ? ;+162 ¢à¥¬ï ¯®á«¥¤­¥© 梥⮢®© à §¬¥âª¨
.el_focus dd el_focus ;+166 㪠§ â¥«ì ­  ¯¥à¥¬¥­­ãî í«¥¬¥­â  ¢ 䮪ãá¥
.err_save db 0 ;+170 ®è¨¡ª  á®åà ­¥­¨ï ä ©« 
.panel_id db 0 ;+171 ­®¬¥à ®âªàë⮩ ¯ ­¥«¨
.key_new db 0 ;+172 ᨬ¢®«, ª®â®àë© ¡ã¤¥â ¤®¡ ¢«ïâáï á ª« ¢¨ âãàë
.symbol_new_line db 20 ;+173 ᨬ¢®« § ¢¥à襭¨ï áâப¨
.scr_w dd scrol_w1 ;+174 ¢¥à⨪ «ì­ë© áªà®««¨­£
.scr_h dd scrol_h1 ;+178 £®à¨§®­â «ì­ë© áªà®««¨­£
.arr_key_pos dd 0 ;+182 㪠§ â¥«ì ­  ¬ áᨢ ¯®§¨æ¨© ª«î祢ëå á«®¢
.buffer dd buf ;+186 㪠§ â¥«ì ­  ¡ãä¥à ª®¯¨à®¢ ­¨ï/¢áâ ¢ª¨
.buffer_find dd 0 ;+190 㪠§ â¥«ì ­  ¡ãä¥à ¤«ï ¯®¨áª 
.cur_ins db 1 ;+194 ०¨¬ à ¡®âë ªãàá®à  (®¡ëç­ë© ¨«¨ § ¬¥­ )
.mode_color db 1 ;+195 ०¨¬ ¢ë¤¥«¥­¨ï á«®¢ 梥⮬ (0-¢ëª«. 1-¢ª«.)
.mode_invis db 0 ;+196 ०¨¬ ¯®ª §  ­¥¯¥ç â ¥¬ëå ᨬ¢®«®¢
.gp_opt db 0 ;+197 ®¯æ¨¨ ¢®§¢à é ¥¬ë¥ ä㭪樥© ted_get_pos_by_cursor
.fun_on_key_ctrl_o dd but_ctrl_o ;+198 㪠§ â¥«ì ­  äã­ªæ¨î ¢ë§ë¢ ¥¬ãî ¯à¨ ­ ¦ â¨¨ Ctrl+O (®âªàë⨥ ä ©« )
.fun_on_key_ctrl_f dd 0 ;+202 ... Ctrl+F (¢ë§®¢ /áªàëâ¨ï ¯ ­¥«¨ ¯®¨áª )
.fun_on_key_ctrl_n dd but_ctrl_n ;+206 ... Ctrl+N (ᮧ¤ ­¨¥ ­®¢®£® ¤®ªã¬¥­â )
.fun_on_key_ctrl_s dd 0 ;+210 ... Ctrl+S
.buffer_size dd BUF_SIZE ;+214 à §¬¥à ¡ãä¥à  ª®¯¨à®¢ ­¨ï/¢áâ ¢ª¨
.fun_find_err dd 0 ;+218 㪠§ â¥«ì ­  äã­ªæ¨î ¢ë§ë¢ ¥¬ãî ¥á«¨ ¯®¨áª § ª®­ç¨«áï ­¥ã¤ ç­®
.fun_init_synt_err dd 0 ;+222 㪠§ â¥«ì ­  äã­ªæ¨î ¢ë§ë¢ ¥¬ãî ¯à¨ ®è¨¡®ç­®¬ ®âªàë⨨ ä ©«  ᨭ⠪á¨á 
.fun_draw_panel_buttons dd 0 ;+226 㪠§ â¥«ì ­  äã­ªæ¨î à¨á®¢ ­¨ï ¯ ­¥«¨ á ª­®¯ª ¬¨
.fun_draw_panel_find dd 0 ;+230 㪠§ â¥«ì ­  äã­ªæ¨î à¨á®¢ ­¨ï ¯ ­¥«¨ ¯®¨áª 
.fun_draw_panel_syntax dd 0 ;+234 㪠§ â¥«ì ­  äã­ªæ¨î à¨á®¢ ­¨ï ¯ ­¥«¨ ᨭ⠪á¨á 
.fun_save_err dd 0 ;+238 㪠§ â¥«ì ­  äã­ªæ¨î ¢ë§ë¢ ¥¬ãî ¥á«¨ á®åà ­¥­¨¥ ä ©«  § ª®­ç¨«®áì ­¥ã¤ ç­®
.increase_size dd 1000 ;+242 ç¨á«® ᨬ¢®«®¢ ­  ª®â®àë¥ ¡ã¤¥â 㢥稢 âìáï ¯ ¬ïâì ¯à¨ ­¥å¢ âª¥
.ptr_free_symb dd ? ;+246 㪠§ â¥«ì ­  ᢮¡®¤­ãî ¯ ¬ïâì, ¢ ª®â®àãî ¬®¦­® ¤®¡ ¢«ïâì ᨬ¢®« (¨á¯®«ì§ã¥âáï ¢­ãâà¨ í«¥¬¥­â  ¤«ï ã᪮७¨ï ¢áâ ¢ª¨ ⥪áâ )
;------------------------------------------------------------------------------
align 4
scrol_w1:
.x:
.size_x dw 16 ;+0
.start_x dw 85 ;+2
.y:
.size_y dw 100 ; +4
.start_y dw 15 ; +6
.btn_high dd 15 ; +8
.type dd 1 ;+12
.max_area dd 100 ;+16
.cur_area dd 30 ;+20
.position dd 0 ;+24
.bckg_col dd 0xeeeeee ;+28
.frnt_col dd 0xbbddff ;+32
.line_col dd 0x808080 ;+36
.redraw dd 0 ;+40
.delta dw 0 ;+44
.delta2 dw 0 ;+46
.run_x:
.r_size_x dw 0 ;+48
.r_start_x dw 0 ;+50
.run_y:
.r_size_y dw 0 ;+52
.r_start_y dw 0 ;+54
.m_pos dd 0 ;+56
.m_pos_2 dd 0 ;+60
.m_keys dd 0 ;+64
.run_size dd 0 ;+68
.position2 dd 0 ;+72
.work_size dd 0 ;+76
.all_redraw dd 0 ;+80
.ar_offset dd 1 ;+84
;---------------------------------------------------------------------
align 4
scrol_h1:
.x:
.size_x dw 85 ;+0
.start_x dw 30 ;+2
.y:
.size_y dw 16 ;+4
.start_y dw 100 ;+6
.btn_high dd 15 ;+8
.type dd 1 ;+12
.max_area dd 100 ;+16
.cur_area dd 30 ;+20
.position dd 0 ;+24
.bckg_col dd 0xeeeeee ;+28
.frnt_col dd 0xbbddff ;+32
.line_col dd 0x808080 ;+36
.redraw dd 0 ;+40
.delta dw 0 ;+44
.delta2 dw 0 ;+46
.run_x:
.r_size_x dw 0 ;+48
.r_start_x dw 0 ;+50
.run_y:
.r_size_y dw 0 ;+52
.r_start_y dw 0 ;+54
.m_pos dd 0 ;+56
.m_pos_2 dd 0 ;+60
.m_keys dd 0 ;+64
.run_size dd 0 ;+68
.position2 dd 0 ;+72
.work_size dd 0 ;+76
.all_redraw dd 0 ;+80
.ar_offset dd 1 ;+84
;---------------------------------------------------------------------
 
align 4
str_file_70:
rb (5*4+1+4) ;¬¥áâ® ¯®¤ áâàãªâãàã ¤«ï à ¡®âë á ä ©«®¬ (ä. 70)
 
text_buffer db 500 dup(0)
 
align 4
;conv_tabl rb 128 ;â ¡«¨æ  ¤«ï ª®­¢¥àâ¨à®¢ ­¨ï scan-ª®¤  ¢ ascii-ª®¤
buf db BUF_SIZE dup(0) ;¡ãä¥à ¤«ï ª®¯¨à®¢ ­¨ï | ¢áâ ¢ª¨
 
capt_header db 'macro wo txt,lf1,p1,p2,p3{',13
db '@@: db txt',13,'rb @b+40-$',13,'dd lf1',13,'db p1,p2+0,p3',13,'}',13
db 'count_colors_text dd (text-color_wnd_text)/4',13
db 'count_key_words dd (f1-text)/47',13,0
col_1 db 'color_cursor dd ',0 ;+ 98 梥⠪ãàá®à 
col_2 db 'color_wnd_capt dd ',0 ;+102 梥⠯®«¥© ¢®ªà㣠®ª­ 
col_3 db 'color_wnd_work dd ',0 ;+106 梥â ä®­  ®ª­ 
col_4 db 'color_wnd_bord dd ',0 ;+110 梥â ⥪áâ  ­  ¯®«ïå
col_5 db 'color_select dd ',0 ;+114 梥⠢뤥«¥­¨ï
col_6 db 'color_cur_text dd ',0 ;+118 梥â ᨬ¢®«  ¯®¤ ªãàá®à®¬
col_7 db 'color_wnd_text:',13,0 ;+122 梥â ⥪áâ  ¢ ®ª­¥
 
capt_lbl_wo db 'text:',13,0
capt_beg_word db 'wo<',39,0
capt_beg_db db ':db ',39,0
capt_end_word db 39,'>,',0
capt_type_dd db 9,'dd ',0
capt_lbl_f1 db 'f1: db 0',13,0
capt_end_word_f1 db 39,',0',13,0
capt_calc_f1 db 'f1'
capt_point db '.',0
capt_lbl_f1_use db '-f1',0
capt_null db '0',0
 
KM_SHIFT equ 0x00010000
KM_CTRL equ 0x00020000
KM_ALT equ 0x00040000
KM_NUMLOCK equ 0x00080000
 
; KEY CODES
KEY_F1 equ 0x0000003B
KEY_F2 equ 0x0000003C
KEY_F3 equ 0x0000003D
 
/programs/other/t_edit_synt/te_syntax.asm
0,0 → 1,376
use32
org 0x0
db 'MENUET01' ;¨¤¥­â¨ä. ¨á¯®«­ï¥¬®£® ä ©«  ¢á¥£¤  8 ¡ ©â
dd 0x01
dd start
dd i_end ; à §¬¥à ¯à¨«®¦¥­¨ï
dd mem
dd stacktop
dd file_name;buf_cmd_lin
dd sys_path
 
MAX_COLOR_WORD_LEN equ 40
BUF_SIZE equ 1000 ;buffer for copy|paste
maxSyntaxFileSize equ 310000
 
include '../../macros.inc'
include '../../proc32.inc'
include '../../develop/libraries/box_lib/load_lib.mac'
include '../../develop/libraries/box_lib/trunk/box_lib.mac'
 
include 'te_data.inc'
include 'te_work.inc' ;text work functions
 
@use_library
 
align 4
start:
mov eax,48
mov ebx,3
mov ecx,sc
mov edx,sizeof.system_colors
mcall
 
mcall 68,11
or eax,eax
jz button.exit
 
mcall 40,0x27
 
;-------------------------------------------------
mov ecx,maxSyntaxFileSize
call mem_Alloc
mov [options_file],eax
mov [options_file_end],eax
add [options_file_end],ecx
 
 
load_libraries l_libs_start,load_lib_end
 
;¯à®¢¥àª  ­  ᪮«ìª® 㤠筮 § £ã§¨« áì ­ è  «¨¡ 
mov ebp,lib0
cmp dword [ebp+ll_struc_size-4],0
jz @f
mcall -1 ;exit not correct
@@:
 
;---------------------------------------------------------------------
stdcall dword[tl_data_init],dword tree1
copy_path fn_icon_tl_sys,sys_path,file_name,0
 
mov ecx,3*256*13
call mem_Alloc
mov dword[tree1.data_img_sys],eax
 
mov [run_file_70.Function], 0
mov [run_file_70.Position], 54
mov [run_file_70.Flags], 0
mov [run_file_70.Count], 3*256*13
mov [run_file_70.Buffer], eax
mov byte[run_file_70+20], 0
mov [run_file_70.FileName], file_name
 
mov eax,70 ;load icon file
mov ebx,run_file_70
int 0x40
cmp ebx,0
jg @f
mov dword[tree1.data_img_sys],0
@@:
;---------------------------------------------------------------------
; ç¨â ¥¬ bmp ä ©« á ¨ª®­ª ¬¨ 㧫®¢
copy_path fn_icon_tl_nod,sys_path,file_name,0
 
mov ecx,3*256*2
call mem_Alloc
mov dword[tree1.data_img],eax
 
; mov [run_file_70.Function], 0
; mov [run_file_70.Position], 54
; mov [run_file_70.Flags], 0
mov [run_file_70.Count], 3*256*2
mov [run_file_70.Buffer], eax
; mov byte[run_file_70+20], 0
; mov [run_file_70.FileName], file_name
 
mov eax,70 ;load icon file
mov ebx,run_file_70
int 0x40
cmp ebx,0
jg @f
mov dword[tree1.data_img],0
@@:
;------------------------------------------------------------------------------
copy_path fn_syntax_dir,sys_path,file_name,0 ;¡¥à¥¬ ¯ãâì ª ¯ ¯ª¥ á ä ©« ¬¨ ᨭ⠪á¨á 
mov eax,70
mov ebx,tree_file_struct
int 0x40
 
cmp ebx,-1
je .end_dir_init
 
mov eax,dir_mem
add eax,32+4+1+3+4*6+8
mov ecx,ebx
@@:
cmp byte[eax],'.' ;䨫ìâà㥬 ä ©«ë á ¨¬¥­ ¬¨ '.' ¨ '..'
je .filter
push dword tree1
push dword 0x10000 ;1*2^16 - £¤¥ 1 ­®¬¥à ¨ª®­ª¨ á ª­¨£®©
push dword eax
call dword[tl_node_add]
 
stdcall dword[tl_cur_next],tree1
.filter:
add eax,304
loop @b
.end_dir_init:
 
;--- load color option file ---
stdcall [ted_init], tedit0
 
align 4
red_win:
pushad
mcall 12,1
 
xor eax,eax
mov ebx,10*65536+555
mov ecx,10*65536+333
mov edx,[sc.work]
or edx,0x33000000
mov edi,hed
mcall
 
mcall 9,procinfo,-1
 
mov eax,8 ;ª­®¯ª 
mov ebx,5*65536+90
mov ecx,195*65536+20
mov edx,200
mov esi,[sc.work_button];0xd0
mcall
 
; mov eax,8
mov ebx,100*65536+85
mov ecx,195*65536+20
mov edx,201
mov esi,0xd00000
mcall
 
mov eax,4 ;à¨á®¢ ­¨¥ ⥪áâ 
mov ebx,10*65536+200
mov ecx,[sc.work_button_text]
or ecx,0x80000000
mov edx,txt122
mcall
 
mov ebx,105*65536+200
mov ecx,0xffff00
or ecx,0x80000000
mov edx,txt148
mcall
 
mov ebx,195*65536+10
mov ecx,[sc.work_text]
or ecx,0x80000000
mov edx,txt_out_file
mcall
 
stdcall [edit_box_draw],dword edit1
stdcall [tl_draw],dword tree1
 
;scroll 1
mov [ws_dir_lbox.all_redraw],1
stdcall [scrollbar_ver_draw],dword ws_dir_lbox
stdcall [ted_draw], tedit0
 
mcall 12,2
popad
 
align 4
still:
mcall 10
 
cmp al,1 ;¨§¬. ¯®«®¦¥­¨¥ ®ª­ 
jz red_win
cmp al,2
jz key
cmp al,3
jz button
cmp al,6
jz mouse
 
jmp still
 
 
align 4
mouse:
stdcall [tl_mouse],tree1
stdcall [edit_box_mouse],edit1
stdcall [ted_mouse], tedit0
jmp still
 
 
align 4
key:
mcall 2
stdcall [tl_key],tree1
stdcall [edit_box_key],edit1
;;;stdcall [ted_key], tedit0, conv_tabl,esi
jmp still
 
align 4
button:
; cmp [menu_active],1 ;¥á«¨ ­ ¦ «¨ ¬¥­î, â® á­ ç «  ॠªæ¨ï ­  ¬¥­î
; jne @f ;mouse.menu_bar_1
; mov [menu_active],0
; jmp still
; @@:
 
mcall 17 ;¯®«ãç¨âì ª®¤ ­ ¦ â®© ª­®¯ª¨
 
cmp ah,200
jne @f
call but_OpenSyntax
@@:
cmp ah,201
jne @f
call but_SaveSyntax
@@:
 
cmp ah,1
jne still
.exit:
;push eax
 
mov ecx,[options_file]
call mem_Free
 
stdcall [tl_data_clear], tree1
stdcall [ted_delete], tedit0
mcall -1 ;¢ë室 ¨§ ¯à®£à ¬¬ë
 
align 4
but_OpenSyntax:
stdcall [tl_node_get_data],tree1
pop dword [fn_col_option]
call InitColText
ret
 
align 4
but_SaveSyntax:
stdcall [ted_but_save_file], tedit0,run_file_70,[edit1.text]
ret
 
align 4
but_ctrl_o:
push eax
call get_wnd_in_focus
cmp eax,0
je @f
stdcall [ted_open_file], eax,str_file_70,[edit1.text]
@@:
pop eax
ret
 
;ᮧ¤ ­¨¥ ­®¢®£® ä ©« 
align 4
but_ctrl_n:
push eax
call get_wnd_in_focus
cmp eax,0
je @f
stdcall [ted_clear], eax,1
stdcall [ted_draw], eax
@@:
pop eax
ret
 
;®¯à¥¤¥«ï¥¬ ª ª®¥ ¨§ ®ª®­ । ªâ®à  ¢ 䮪ãá¥
align 4
get_wnd_in_focus:
xor eax,eax
cmp dword[el_focus],tedit0
jne @f
mov eax,tedit0
@@:
;cmp dword[el_focus],tedit1
;jne @f
; mov eax,tedit1
;@@:
ret
 
hed db 'TextEditor syntax file converter 31.05.10',0 ;¯®¤¯¨áì ®ª­ 
 
txtErrOpen db '¥ ­ ©¤¥­ ä ©«, ¯à®¢¥àì⥠¯à ¢¨«ì­®áâì ¨¬¥­¨',0
txtErrIni0 db '¥ ®âªàë«áï ä ©« á ¨ª®­ª ¬¨',0
err_ini0 db 0
 
txt122 db '‡ £à. ä ©«',0
txt148 db '‘®åà. ä ©«',0
txt_out_file db '‚ëå. ä ©«:',0
 
CAPT_PATH_WIDTH equ 50
edit1 edit_box 305+16-CAPT_PATH_WIDTH, 215+CAPT_PATH_WIDTH, 5, 0xffffff, 0xff, 0xff0000, 0, 0x80, MAX_COLOR_WORD_LEN, ed_buffer.127, mouse_dd, 0
 
ed_buffer: ;⥪áâ ¤«ï edit
.127: rb MAX_COLOR_WORD_LEN+2
 
err_message_found_lib0 db 'Sorry I cannot found library box_lib.obj',0
head_f_i0:
head_f_l0 db 'System error',0
err_message_import0 db 'Error on load import library box_lib.obj',0
err_message_found_lib1 db 'Sorry I cannot found library msgbox.obj',0
 
;library structures
l_libs_start:
lib0 l_libs boxlib_name, sys_path, file_name, system_dir0, err_message_found_lib0, head_f_l0, myimport,err_message_import0, head_f_i0
load_lib_end:
 
;-----------------------------------------------------------------------------
;äã­ªæ¨ï ¤«ï ¢ë¤¥«¥­¨ï ¯ ¬ïâ¨
;input:
; ecx = size data
;otput:
; eax = pointer to memory
align 4
mem_Alloc:
push ebx
mov eax,68
mov ebx,12
int 0x40
pop ebx
ret
;-----------------------------------------------------------------------------
;äã­ªæ¨ï ¤«ï ®á¢®¡®¦¤¥­¨ï ¯ ¬ïâ¨
;input:
; ecx = pointer to memory
align 4
mem_Free:
push eax ebx
cmp ecx,0
jz @f
mov eax,68
mov ebx,13
int 0x40
@@:
pop ebx eax
ret
 
i_end:
rb 1024
align 16
procinfo process_information
thread:
rb 1024
stacktop:
sys_path:
rb 4096
file_name:
rb 4096
file_name_rez:
rb 4096
file_info:
rb 40
mem:
/programs/other/t_edit_synt/te_syntax.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/programs/other/t_edit_synt/te_work.inc
0,0 → 1,428
struct FileInfoBlock
Function dd ?
Position dd ?
Flags dd ?
Count dd ?
Buffer dd ?
db ?
FileName dd ?
ends
 
struct TexColViv
Text rb MAX_COLOR_WORD_LEN ; ñëîâî
f1 dd 0
wwo db ? ; whole words only
endc db ? ; ñèìâîë êîíöà âûäåëåíèÿ (wwo&4)
color db ? ; íîìåð öâåòà
ends
 
count_colors_text dd 1
ColWords dd 0
color_cursor dd ?
color_wnd_capt dd ?
color_wnd_work dd ?
color_wnd_bord dd ?
color_select dd ?
color_cur_text dd ?
color_wnd_text dd ?
 
options_file dd 0
options_file_end dd 0
tex_colors dd 0
tex_help_f1 dd 0
 
Col dd 0 ;óêàçàòåëü íà ñòðóêòóðû êëþ÷åâûõ ñëîâ TexColViv
 
keyUpr dd 0
err_opn db 0 ;îøèáêà îòêðûòèÿ ôàéëà
err_sav db 0 ;îøèáêà ñîõðàíåíèÿ ôàéëà
 
sc system_colors
 
run_file_70 FileInfoBlock
 
align 4
InitColText:
pushad
 
mov ebx,dword[fn_col_option]
copy_path ebx,fn_syntax_dir,file_name_rez,0
copy_path file_name_rez,sys_path,file_name,0
 
mov eax,70
mov [run_file_70.Function], 0
mov [run_file_70.Position], 0
mov [run_file_70.Flags], 0
mov ebx,[options_file_end]
sub ebx,[options_file]
mov [run_file_70.Count], ebx
m2m [run_file_70.Buffer], [options_file]
mov byte[run_file_70+20], 0
mov [run_file_70.FileName], file_name
mov ebx,run_file_70
int 0x40
 
 
;init: count_colors_text, ColWords, ...
mov dword[count_colors_text],1
mov dword[ColWords],0
mov dword[tex_help_f1],0
 
cmp eax,6
je @f
cmp eax,0
je @f
cmp ax,10
jl .zifra_0_9
mov al,'?'
sub ax,48
.zifra_0_9:
add ax,48
 
jmp .no_colors
@@:
 
mov esi,[options_file]
mov edi,count_colors_text
mov ecx,9*4
rep movsb
 
mov eax,[options_file]
add eax,32
mov dword[tex_colors],eax
 
mov eax,dword[count_colors_text] ;init: Col (offset to key words)
add eax,8
shl eax,2
add eax,[options_file]
mov dword[Col],eax
 
;init: tex_help_f1
mov ecx,dword[ColWords]
imul ecx,sizeof.TexColViv
add ecx,dword[Col]
mov dword[tex_help_f1],ecx
 
;ôîðìèðîâàíèå òåêñòà â îêíå òåêñòîâîãî ðåäàêòîðà
stdcall [ted_clear], tedit0,1
 
stdcall print_capt,capt_header
 
stdcall print_capt,col_1
stdcall print_color,[color_cursor]
stdcall print_capt,col_2
stdcall print_color,[color_wnd_capt]
stdcall print_capt,col_3
stdcall print_color,[color_wnd_work]
stdcall print_capt,col_4
stdcall print_color,[color_wnd_bord]
stdcall print_capt,col_5
stdcall print_color,[color_select]
stdcall print_capt,col_6
stdcall print_color,[color_cur_text]
 
stdcall print_capt,col_7
mov ecx,[count_colors_text] ;êîëè÷åñòâî öâåòîâ òåêñòà
mov eax,[tex_colors]
@@:
stdcall print_capt,capt_type_dd
stdcall print_color,[eax]
add eax,4
loop @b
 
stdcall print_capt,capt_lbl_wo
mov ecx,dword[ColWords]
mov eax,[Col]
xor ebx,ebx
@@:
inc ebx
stdcall print_word,eax,ebx
add eax,sizeof.TexColViv
loop @b
 
stdcall print_capt,capt_lbl_f1
mov ecx,dword[ColWords]
mov eax,[Col]
xor ebx,ebx
@@:
inc ebx
stdcall print_word_f1,eax,ebx
add eax,sizeof.TexColViv
loop @b
stdcall [ted_init_scroll_bars], tedit0,4
stdcall [ted_draw], tedit0
 
.no_colors:
popad
ret
 
align 4
proc print_color, color:dword
pushad
mov eax,dword[color]
 
mov ebx,eax ;ìåíÿåì ìåñòàìè red è blue
shr ebx,16
xchg al,bl
and eax,0xffff
and ebx,0xff
shl ebx,16
or eax,ebx
 
ror al,4
ror eax,8
ror al,4
ror eax,8
ror al,4
rol eax,16
mov edi,text_buffer
mov word[edi],'0x'
add edi,2
mov ecx,6
@@:
mov ebx,eax
and ebx,0xf
cmp bx,9
jle .cifra
add bx,39
.cifra:
add bx,48
mov byte[edi],bl
inc edi
shr eax,4
loop @b
mov byte[edi],13
mov ebx,ted_opt_ed_change_time+ted_opt_ed_move_cursor
stdcall [ted_text_add], tedit0,text_buffer,9,ebx
popad
ret
endp
 
align 4
proc print_capt, capt:dword
pushad
mov esi,dword[capt]
stdcall str_len,esi
stdcall [ted_text_add], tedit0,esi,eax,ted_opt_ed_change_time+ted_opt_ed_move_cursor
popad
ret
endp
 
align 4
proc print_word, text:dword, index:dword
pushad
mov esi,text_buffer
mov byte[esi],0
stdcall str_cat,esi,capt_beg_word
stdcall str_len,esi
add esi,eax
 
mov edi,dword[text]
stdcall code_string,edi,esi ;êîäèðóåì ñòðîêó ñ êëþ÷åâûì ñëîâîì
stdcall str_cat,esi,capt_end_word
 
cmp dword[edi+MAX_COLOR_WORD_LEN],0 ;f1
je @f
stdcall str_cat,esi,capt_calc_f1
stdcall str_cat_value,esi,[index]
stdcall str_cat,esi,capt_lbl_f1_use
jmp .end_f1_calc
@@:
stdcall str_cat,esi,capt_null
.end_f1_calc:
 
mov esi,text_buffer
stdcall str_len,esi ;óçíàåì äëèííó âñåé ñòðîêè
stdcall [ted_text_add], tedit0,esi,eax,ted_opt_ed_change_time+ted_opt_ed_move_cursor
 
mov ecx,edi
mov edi,text_buffer
mov byte[edi],','
inc edi
mov byte[edi],0
xor eax,eax
mov al,byte[ecx+MAX_COLOR_WORD_LEN+4] ;wwo
stdcall str_cat_value,edi,eax
stdcall str_len,edi
add edi,eax
mov byte[edi],','
inc edi
 
xor eax,eax
mov al,byte[ecx+MAX_COLOR_WORD_LEN+4+1] ;endc
cmp al,0
je @f
stdcall str_cat_value,edi,eax
stdcall str_len,edi
add edi,eax
@@:
mov byte[edi],','
inc edi
 
xor eax,eax
mov al,byte[ecx+MAX_COLOR_WORD_LEN+4+2] ;color
stdcall str_cat_value,edi,eax
stdcall str_len,edi
add edi,eax
mov byte[edi],13
inc edi
mov byte[edi],0
 
mov esi,text_buffer
stdcall str_len,esi
stdcall [ted_text_add], tedit0,esi,eax,ted_opt_ed_move_cursor
 
popad
ret
endp
 
align 4
proc print_word_f1, text:dword, index:dword
pushad
mov edi,dword[text]
mov esi,dword[edi+MAX_COLOR_WORD_LEN] ;f1
cmp esi,0
je @f
mov ebx,text_buffer
mov byte[ebx],0
stdcall str_cat,ebx,capt_point
stdcall str_cat_value,ebx,[index]
stdcall str_cat,ebx,capt_beg_db
stdcall str_len,ebx
add ebx,eax
add esi,dword[tex_help_f1]
stdcall code_string,esi,ebx ;êîäèðóåì ñòðîêó
stdcall str_cat,ebx,capt_end_word_f1
 
mov ebx,text_buffer
stdcall str_len,ebx
stdcall [ted_text_add], tedit0,ebx,eax,ted_opt_ed_move_cursor
@@:
popad
ret
endp
 
align 4
proc code_string, text:dword, out_text:dword
pushad
mov esi,dword[text]
stdcall str_len,esi
mov ecx,eax
mov edi,dword[out_text]
 
.copy:
mov al,byte[esi]
inc esi
cmp al,9
je @f
cmp al,13
je @f
cmp al,39
je @f
mov byte[edi],al
inc edi
loop .copy
jmp .end_copy
@@:
mov byte[edi],39
mov byte[edi+1],','
add edi,2
and eax,0xff
mov dword[edi],0
call tl_convert_to_str
stdcall str_len,edi
add edi,eax
mov byte[edi],','
mov byte[edi+1],39
add edi,2
loop .copy
.end_copy:
mov byte[edi],0
popad
ret
endp
 
align 4
proc mem_clear, mem:dword, len:dword
push eax ecx edi
cld
xor al,al
mov edi, dword[mem]
mov ecx, dword[len]
repne stosb
pop edi ecx eax
ret
endp
 
align 4
proc str_cat, str1:dword, str2:dword
push eax ecx edi esi
mov esi,dword[str2]
stdcall str_len,esi
mov ecx,eax
inc ecx
mov edi,dword[str1]
stdcall str_len,edi
add edi,eax
cld
repne movsb
pop esi edi ecx eax
ret
endp
 
align 4
proc str_cat_value, str1:dword, value:dword
pushad
mov edi,[str1]
stdcall str_len,edi
add edi,eax
mov eax,[value]
call tl_convert_to_str
popad
ret
endp
 
;output:
; eax = strlen
align 4
proc str_len, str1:dword
mov eax,[str1]
@@:
cmp byte[eax],0
je @f
inc eax
jmp @b
@@:
sub eax,[str1]
ret
endp
 
;input:
; eax = value
; edi = string buffer
align 4
tl_convert_to_str:
pushad
stdcall mem_clear,edi,12
call .str
popad
ret
 
align 4
.str:
mov ecx,0x0a ;çàäàåòñÿ ñèñòåìà ñ÷èñëåíèÿ èçìåíÿþòñÿ ðåãèñòðû ebx,eax,ecx,edx âõîäíûå ïàðàìåòðû eax - ÷èñëî
;ïðåðåâîä ÷èñëà â ASCII ñòðîêó âõîäíûå äàííûå ecx=ñèñòåìà ñ÷èñëåíÿ edi àäðåñ êóäà çàïèñûâàòü, áóäåì ñòðîêó, ïðè÷åì êîíåö ïåðåìåííîé
cmp eax,ecx ;ñðàâíèòü åñëè â eax ìåíüøå ÷åì â ecx òî ïåðåéòè íà @@-1 ò.å. íà pop eax
jb @f
xor edx,edx ;î÷èñòèòü edx
div ecx ;ðàçäåëèòü - îñòàòîê â edx
push edx ;ïîëîæèòü â ñòåê
;dec edi ;ñìåùåíèå íåîáõîäèìîå äëÿ çàïèñè ñ êîíöà ñòðîêè
call .str ;ïåðåéòè íà ñàìó ñåáÿ ò.å. âûçâàòü ñàìó ñåáÿ è òàê äî òîãî ìîìåíòà ïîêà â eax íå ñòàíåò ìåíüøå ÷åì â ecx
pop eax
@@: ;cmp al,10 ;ïðîâåðèòü íå ìåíüøå ëè çíà÷åíèå â al ÷åì 10 (äëÿ ñèñòåìû ñ÷èñëåíÿ 10 äàííàÿ êîìàíäà - ëèøíàÿ))
or al,0x30 ;äàííàÿ êîìàíäà êîðî÷å ÷åì äâå âûøå
stosb ;çàïèñàòü ýëåìåíò èç ðåãèñòðà al â ÿ÷åêó ïàìÿòè es:edi
ret