/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<'word'>,f1.600-f1,<b>3</b>,,8 |
wo<'xadd'>,0,<b>3</b>,,1 |
wo<'xchg'>,f1.602-f1,<b>3</b>,,1 |
wo<'xlat'>,0,<b>3</b>,,1 |
wo<'xlatb'>,0,<b>3</b>,,1 |
wo<'xmm0'>,0,<b>3</b>,,2 |
wo<'xmm1'>,0,<b>3</b>,,2 |
wo<'xmm2'>,0,<b>3</b>,,2 |
wo<'xmm3'>,0,<b>3</b>,,2 |
wo<'xmm4'>,0,<b>3</b>,,2 |
wo<'xmm5'>,0,<b>3</b>,,2 |
wo<'xmm6'>,0,<b>3</b>,,2 |
wo<'xmm7'>,0,<b>3</b>,,2 |
wo<'xor'>,f1.613-f1,<b>3</b>,,1 |
wo<'zf'>,f1.614-f1,<b>3</b>,,2 |
wo<'||'>,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 |