From b062f4354f39ec4bc6e0ff3fef5d36b3362e14e9 Mon Sep 17 00:00:00 2001 From: IgorA Date: Mon, 17 May 2010 16:49:58 +0000 Subject: [PATCH] 1) 'box_lib.obj' update 'text_edititor' 2) modify code 't_edit' and 'planet_v' git-svn-id: svn://kolibrios.org@1464 a494cfbc-eb01-0410-851d-a64ba20cac60 --- .../libraries/box_lib/trunk/box_lib.asm | 45 ++- .../libraries/box_lib/trunk/box_lib.mac | 2 + .../box_lib/trunk/doc/scrollbar/scrollbar.htm | 2 +- .../box_lib/trunk/doc/t_edit/t_edit.htm | 65 +++- .../libraries/box_lib/trunk/t_edit.mac | 330 ++++++++++-------- .../libraries/box_lib/trunk/tree_list.mac | 70 +--- programs/other/planet_v/planet_v.asm | 36 +- programs/other/planet_v/tile_fun.inc | 68 ++-- programs/other/t_edit/t_button.inc | 20 +- programs/other/t_edit/t_data.inc | 4 +- programs/other/t_edit/t_edit.asm | 42 +-- 11 files changed, 396 insertions(+), 288 deletions(-) diff --git a/programs/develop/libraries/box_lib/trunk/box_lib.asm b/programs/develop/libraries/box_lib/trunk/box_lib.asm index aba274aeb..be1a86898 100644 --- a/programs/develop/libraries/box_lib/trunk/box_lib.asm +++ b/programs/develop/libraries/box_lib/trunk/box_lib.asm @@ -20,6 +20,49 @@ include '../../../../proc32.inc' include 'bl_sys.mac' include 'box_lib.mac' ;macro which should make life easier :) +;----------------------------------------------------------------------------- +;функция для выделения памяти +;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 +proc mem_Free, mptr:dword + push eax ebx ecx + mov ecx,[mptr] + cmp ecx,0 + jz @f + mov eax,68 + mov ebx,13 + int 0x40 + @@: + pop ecx ebx eax + ret +endp +;функция для перераспределения памяти +;otput: +; eax = pointer to memory +align 4 +proc mem_ReAlloc, mptr:dword, size:dword + push ebx ecx edx + mov edx, [mptr] + mov ecx, [size] + mcall 68, 20 + pop edx ecx ebx + ret +endp + ;---------------------------------------------------- ;EditBox ;---------------------------------------------------- @@ -196,7 +239,7 @@ dd sz_ted_but_redo, ted_but_redo dd sz_ted_but_reverse, ted_but_reverse dd sz_ted_but_find_next, ted_but_find_next dd sz_ted_text_colored, ted_text_colored -dd sz_ted_version, 0x00000001 +dd sz_ted_version, 0x00000002 dd 0,0 diff --git a/programs/develop/libraries/box_lib/trunk/box_lib.mac b/programs/develop/libraries/box_lib/trunk/box_lib.mac index 344321b7b..4f35751da 100644 --- a/programs/develop/libraries/box_lib/trunk/box_lib.mac +++ b/programs/develop/libraries/box_lib/trunk/box_lib.mac @@ -320,6 +320,8 @@ ted_fun_draw_panel_buttons equ dword[edi+226] ;гЄ  ted_fun_draw_panel_find equ dword[edi+230] ;гЄ § вҐ«м ­  дг­ЄжЁо аЁб®ў ­Ёп Ї ­Ґ«Ё Ї®ЁбЄ  ted_fun_draw_panel_syntax equ dword[edi+234] ;гЄ § вҐ«м ­  дг­ЄжЁо аЁб®ў ­Ёп Ї ­Ґ«Ё бЁ­в ЄбЁб  ted_fun_save_err equ dword[edi+238] ;гЄ § вҐ«м ­  дг­ЄжЁо ўл§лў Ґ¬го Ґб«Ё б®еа ­Ґ­ЁҐ д ©«  § Є®­зЁ«®бм ­Ґг¤ з­® +ted_increase_size equ dword[edi+242] ;зЁб«® бЁ¬ў®«®ў ­  Є®в®алҐ Ўг¤Ґв 㢥稢 вмбп Ї ¬пвм ЇаЁ ­Ґеў вЄҐ +ted_ptr_free_symb equ dword[edi+246] ;гЄ § вҐ«м ­  бў®Ў®¤­го Ї ¬пвм, ў Є®в®аго ¬®¦­® ¤®Ў ў«пвм бЁ¬ў®« (ЁбЇ®«м§гҐвбп ў­гваЁ н«Ґ¬Ґ­в  ¤«п г᪮७Ёп ўбв ўЄЁ ⥪бв ) ;------------------------------------------------------------------------------ ted_opt_ed_move_cursor equ 1 ;¤ўЁЈ вм Єгаб®а Ї®б«Ґ ¤®Ў ў«Ґ­Ёп ⥪бв  ted_opt_ed_change_time equ 2 ;¤®Ў ў«пвм Ё§¬Ґ­Ґ­Ёп ЇаЁ । ЄвЁа®ў ­ЁЁ ⥪бв  diff --git a/programs/develop/libraries/box_lib/trunk/doc/scrollbar/scrollbar.htm b/programs/develop/libraries/box_lib/trunk/doc/scrollbar/scrollbar.htm index d9a6a072b..065e41b2f 100644 --- a/programs/develop/libraries/box_lib/trunk/doc/scrollbar/scrollbar.htm +++ b/programs/develop/libraries/box_lib/trunk/doc/scrollbar/scrollbar.htm @@ -39,7 +39,7 @@

Версия элемента

Структура scrollbar

-

Макроса для создания структуры для скроллбара нет. Потому данные для нее задаются вручную. +

Макроса для создания структуры скроллбара нет. Потому данные для нее задаются вручную. Есть макрос use_scroll_bar он дает возможность понять какие данные нужны для скроллинга.

macro use_scroll_bar
 {
diff --git a/programs/develop/libraries/box_lib/trunk/doc/t_edit/t_edit.htm b/programs/develop/libraries/box_lib/trunk/doc/t_edit/t_edit.htm
index 927de5907..88668441b 100644
--- a/programs/develop/libraries/box_lib/trunk/doc/t_edit/t_edit.htm
+++ b/programs/develop/libraries/box_lib/trunk/doc/t_edit/t_edit.htm
@@ -38,6 +38,7 @@
 
  • ted_text_colored
  • Формат файла подсветки *.syn

    +

    Структура tedit

    Введение

    Элемент text_editor позволяет работать с текстовыми файлами, содержит много функция для редактирования текста.

    @@ -319,8 +320,70 @@ pop edi
    Возможно в будущих версиях формат файлов подсветки будет изменен. +

    Структура tedit

    +

    Макроса для создания структуры текстового редактора нет. Потому данные для него задаются вручную. Пример структуры для текстового редактора:

    +
    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 5002 ;+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 225 ;+242 число символов на которые будет увечиваться память при нехватке
    +	.ptr_free_symb dd   ? ;+246 указатель на свободную память, в которую можно добавлять символ (используется внутри элемента для ускорения вставки текста)

    -

    Документация обновлялась последний раз 05.05.10.

    +

    Документация обновлялась последний раз 17.05.10.

    \ No newline at end of file diff --git a/programs/develop/libraries/box_lib/trunk/t_edit.mac b/programs/develop/libraries/box_lib/trunk/t_edit.mac index 406a2a121..601273692 100644 --- a/programs/develop/libraries/box_lib/trunk/t_edit.mac +++ b/programs/develop/libraries/box_lib/trunk/t_edit.mac @@ -1,6 +1,6 @@ ; ¬ Єа®б ¤«п бЁб⥬­®© ЎЁЎ«Ё®вҐЄЁ box_lib.obj ; н«Ґ¬Ґ­в TextEditor ¤«п Kolibri OS -; д ©« Ї®б«Ґ¤­Ё© а § Ё§¬Ґ­п«бп 05.05.2010 IgorA +; д ©« Ї®б«Ґ¤­Ё© а § Ё§¬Ґ­п«бп 17.05.2010 IgorA ; ­  Є®¤ ЇаЁ¬Ґ­Ґ­  GPL2 «ЁжҐ­§Ёп ;input: @@ -54,7 +54,7 @@ struct symbol ends ;------------------------------------------------------------------------------ -ted_symbol_tab db 26 +ted_symbol_tab db 26 ;ascii Є®¤ бв५ЄЁ ўЇа ў®, ЁбЇ®«м§гҐвбп ¤«п аЁб®ў ­Ёп в Ўг«пжЁЁ ў ०Ё¬Ґ Ї®Є §  ­ҐўЁ¤Ё¬ле бЁ¬ў®«®ў if lang eq ru @@ -80,7 +80,7 @@ txtBuf db 'Buffer:',0 end if -;------ +;EvChar - в Ў«Ёж  ¤«п дЁ«мва®ў ­Ёп ¤®Ў ў«пҐ¬ле бЁ¬ў®«®ў, зв®-Ўл ­Ґ Ї®Ї «Ё «Ёи­ЁҐ §­ ЄЁ align 4 EvChar db 0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0 db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 @@ -98,7 +98,7 @@ EvChar db 0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0 db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 db 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 - +;EvUpper - в Ў«Ёж  ¤«п ЇаҐ®Ўа §®ў ­Ёп бЁ¬ў®«®ў Є ўҐае­Ґ¬г ॣЁбваг EvUpper db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 @@ -113,8 +113,9 @@ EvUpper db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 - db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 - db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + db 144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159 + db 0,240,0,242,0,244,0,246,0,0,0,0,0,0,0,0 +;EvLover - в Ў«Ёж  ¤«п ЇаҐ®Ўа §®ў ­Ёп бЁ¬ў®«®ў Є ­Ё¦­Ґ¬г ॣЁбваг EvLover db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 @@ -124,13 +125,13 @@ EvLover db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 db 160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175 + db 224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239 db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 - db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 - db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + db 241,0,243,0,245,0,247,0,0,0,0,0,0,0,0,0 conv_table dd 0 @@ -252,16 +253,12 @@ endp align 4 proc ted_delete, edit:dword - push ecx edi - mov edi,dword[edit] - - mov ecx,ted_tex - call mem_Free - mov ecx,ted_arr_key_pos ;ted_syntax_file - call mem_Free - - pop edi ecx - ret + push edi + mov edi,dword[edit] + stdcall mem_Free,ted_tex + stdcall mem_Free,ted_arr_key_pos ;ted_syntax_file + pop edi + ret endp @@ -369,19 +366,19 @@ proc ted_key, edit:dword, table:dword, control:dword call ted_draw_main_cursor mov ted_drag_k,0 ;§ Є ­зЁў Ґ¬ ўл¤Ґ«Ґ­ЁҐ ®в Є« ўЁ вгал @@: - cmp ah,80 ;177 ;Down - jne @f - call ted_draw_cursor_sumb - call ted_cur_move_down - cmp dl,8 - jne .no_red_1 - call ted_scroll_set_redraw - stdcall ted_draw,edi - jmp @f - .no_red_1: - call ted_draw_main_cursor - mov ted_drag_k,0 ;§ Є ­зЁў Ґ¬ ўл¤Ґ«Ґ­ЁҐ ®в Є« ўЁ вгал - @@: + cmp ah,80 ;177 ;Down + jne @f + call ted_draw_cursor_sumb + call ted_cur_move_down + cmp dl,8 + jne .no_red_1 + call ted_scroll_set_redraw + stdcall ted_draw,edi + jmp @f + .no_red_1: + call ted_draw_main_cursor + mov ted_drag_k,0 ;§ Є ­зЁў Ґ¬ ўл¤Ґ«Ґ­ЁҐ ®в Є« ўЁ вгал + @@: cmp ah,75 ;176 ;Left jne @f call ted_draw_cursor_sumb @@ -681,48 +678,52 @@ endp ; cl_al_mem = 1 - clear all memory align 4 proc ted_clear, edit:dword, cl_al_mem:dword - push ecx edi - mov edi,dword[edit] + push ecx edi + mov edi,dword[edit] - mov ted_cur_x,0 - mov ted_cur_y,0 - mov ted_tim_ch,0 - mov ted_tim_ls,0 - mov ted_tim_co,0 - mov ted_tim_undo,0 - mov ted_help_id,-1 + mov ted_cur_x,0 + mov ted_cur_y,0 + mov ted_tim_ch,0 + mov ted_tim_ls,0 + mov ted_tim_co,0 + mov ted_tim_undo,0 + mov ted_help_id,-1 + mov ecx,sizeof.symbol + shl ecx,1 + add ecx,ted_tex + mov ted_ptr_free_symb,ecx - mov ecx,ted_scr_w - mov dword[ecx+sb_offs_position],0 - mov dword[ecx+sb_offs_max_area],100 ;зЁб«® бва®Є ўЁ¤Ё¬ле ў ­®ў®¬ ¤®Єг¬Ґ­вҐ - mov dword[ecx+sb_offs_redraw],1 - mov ecx,ted_scr_h - mov dword[ecx+sb_offs_position],0 - mov dword[ecx+sb_offs_max_area],100 ;зЁб«® бЁ¬ў®«®ў ўЁ¤Ё¬ле ў ­®ў®¬ ¤®Єг¬Ґ­вҐ + mov ecx,ted_scr_w + mov dword[ecx+sb_offs_position],0 + mov dword[ecx+sb_offs_max_area],100 ;зЁб«® бва®Є ўЁ¤Ё¬ле ў ­®ў®¬ ¤®Єг¬Ґ­вҐ + mov dword[ecx+sb_offs_redraw],1 + mov ecx,ted_scr_h + mov dword[ecx+sb_offs_position],0 + mov dword[ecx+sb_offs_max_area],100 ;зЁб«® бЁ¬ў®«®ў ўЁ¤Ё¬ле ў ­®ў®¬ ¤®Єг¬Ґ­вҐ - mov ted_sel_x0,0 - mov ted_sel_y0,0 - mov ted_sel_x1,0 - mov ted_sel_y1,0 + mov ted_sel_x0,0 + mov ted_sel_y0,0 + mov ted_sel_x1,0 + mov ted_sel_y1,0 - cmp dword[cl_al_mem],0 - je .exit + cmp dword[cl_al_mem],0 + je .exit - push edx - mov ecx,sizeof.symbol - imul ecx,ted_max_chars - mov edx,ted_tex - @@: - mov byte [edx],0 - inc edx - loop @b - mov edx,ted_tex - mov dword [edx+6],1 - pop edx + push edx + mov ecx,sizeof.symbol + imul ecx,ted_max_chars + mov edx,ted_tex + @@: + mov byte [edx],0 + inc edx + loop @b + mov edx,ted_tex + mov dword [edx+6],1 + pop edx - .exit: - pop edi ecx - ret + .exit: + pop edi ecx + ret endp @@ -1108,81 +1109,114 @@ proc ted_text_add, edit:dword, text:dword, t_len:dword, add_opt:dword pop eax @@: - mov edx,sizeof.symbol - shl edx,1 - add edx,ted_tex - @@: ;for(i=2;ited_tim_ch) tex[i].td=0; // Ґб«Ё г¤ «Ґ­ЁҐ бЁ¬ў®«  Ўл«® ®в¬Ґ­Ґ­® @@ -3362,14 +3398,14 @@ endp ; ah = symbol align 4 proc KeyConvertToASCII, table:dword - push ebx - mov ebx,dword[table] ;convert scan to ascii - ror ax,8 - xor ah,ah - add bx,ax - mov ah,byte[ebx] - pop ebx - ret + push ebx + mov ebx,dword[table] ;convert scan to ascii + ror ax,8 + xor ah,ah + add bx,ax ;? ebx,eax + mov ah,byte[ebx] + pop ebx + ret endp align 4 @@ -3963,7 +3999,7 @@ call ted_fun_save_err @@: pop ecx ;§ ЇЁблў Ґ¬ гЄ § вҐ«м ­  ўл¤Ґ«Ґ­­го Ї ¬пвм - call mem_Free + stdcall mem_Free,ecx .no_save: popad ret diff --git a/programs/develop/libraries/box_lib/trunk/tree_list.mac b/programs/develop/libraries/box_lib/trunk/tree_list.mac index 15358b694..8c826ac89 100644 --- a/programs/develop/libraries/box_lib/trunk/tree_list.mac +++ b/programs/develop/libraries/box_lib/trunk/tree_list.mac @@ -1,6 +1,6 @@ ; макрос для системной библиотеки box_lib.obj ; элемент TreeList для Kolibri OS -; файл последний раз изменялся 29.04.2010 IgorA +; файл последний раз изменялся 15.05.2010 IgorA ; на код применена GPL2 лицензия @@ -17,36 +17,6 @@ sizeof.TreeList equ 20 macro use_tree_list { -;----------------------------------------------------------------------------- -;функция для выделения памяти -;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 - align 4 tl_data_init: ;выделние памяти для структур списка и основной информации (конструктор) push ebp @@ -95,29 +65,23 @@ tl_data_init: ; ret 4 align 4 -tl_data_clear: ;очистка памяти элемента (деструктор) - push ebp - mov ebp,esp - push ecx edi - mov edi,dword[ebp+8] - cmp tl_data_img,0 - je @f - mov ecx,tl_data_img - call mem_Free ;чистка системных иконок - @@: - cmp tl_data_img_sys,0 - je @f - mov ecx,tl_data_img_sys - call mem_Free ;чистка системных иконок - @@: - mov ecx,dword[edi] - call mem_Free +proc tl_data_clear, tlist:dword ;очистка памяти элемента (деструктор) + push edi + mov edi,dword[tlist] + cmp tl_data_img,0 + je @f + stdcall mem_Free,tl_data_img ;чистка системных иконок + @@: + cmp tl_data_img_sys,0 + je @f + stdcall mem_Free,tl_data_img_sys ;чистка системных иконок + @@: + stdcall mem_Free,dword[edi] - mov ecx,tl_data_nodes - call mem_Free - pop edi ecx - pop ebp - ret 4 + stdcall mem_Free,tl_data_nodes + pop edi + ret +endp align 4 tl_info_clear: ;очистка списка (информации) diff --git a/programs/other/planet_v/planet_v.asm b/programs/other/planet_v/planet_v.asm index 46649d884..a6613aba8 100644 --- a/programs/other/planet_v/planet_v.asm +++ b/programs/other/planet_v/planet_v.asm @@ -29,14 +29,14 @@ include 'pl_import.inc' @use_library -struct f70 - func_n dd ? - param1 dd ? - param2 dd ? - param3 dd ? - param4 dd ? - rezerv db ? - name dd ? +struct FileInfoBlock + Function dd ? + Position dd ? + Flags dd ? + Count dd ? + Buffer dd ? + db ? + FileName dd ? ends fn_metki db 'pl_metki.lst',0 @@ -126,13 +126,13 @@ start: copy_path fn_icon1,sys_path,file_name,0x0 mov eax,70 ;load icon file - mov [run_file_70.func_n], 0 - mov [run_file_70.param1], 0 - mov [run_file_70.param2], 0 - mov [run_file_70.param3], TREE_ICON_SYS16_BMP_SIZE - m2m [run_file_70.param4], [tree_sys_icon] - mov [run_file_70.rezerv], 0 - mov [run_file_70.name], file_name + mov [run_file_70.Function], 0 + mov [run_file_70.Position], 0 + mov [run_file_70.Flags], 0 + mov [run_file_70.Count], TREE_ICON_SYS16_BMP_SIZE + m2m [run_file_70.Buffer], [tree_sys_icon] + mov byte[run_file_70+20], 0 + mov [run_file_70.FileName], file_name mov ebx,run_file_70 int 0x40 cmp ebx,0xffffffff @@ -149,8 +149,8 @@ start: copy_path fn_icon2,sys_path,file_name,0x0 mov eax,70 ;load icon file - mov [run_file_70.param3], TREE_ICON_NOD16_BMP_SIZE - m2m [run_file_70.param4], [tree_nod_icon] + mov [run_file_70.Count], TREE_ICON_NOD16_BMP_SIZE + m2m [run_file_70.Buffer], [tree_nod_icon] mov ebx,run_file_70 int 0x40 cmp ebx,0xffffffff @@ -912,7 +912,7 @@ tree_nod_icon dd 0 bmp_icon dd 0 ;Ї ¬пвм ¤«п § Јаг§ЄЁ Ё§®Ўа ¦Ґ­Ёп data_icon dd 0 ;Ї ¬пвм ¤«п ЇаҐ®Ўа §®ў ­Ёп Є авЁ­ЄЁ дг­ЄжЁп¬Ё libimg -run_file_70 f70 +run_file_70 FileInfoBlock txt_tile_path db 'tile path',0 diff --git a/programs/other/planet_v/tile_fun.inc b/programs/other/planet_v/tile_fun.inc index ceca3c17f..419f33098 100644 --- a/programs/other/planet_v/tile_fun.inc +++ b/programs/other/planet_v/tile_fun.inc @@ -48,19 +48,19 @@ tile_delta_y equ byte[edi+31] ;б¤ў ; *** Ї®а冷Є ўл§®ў  дг­ЄжЁ© ЇаЁ § Јаг§ЄҐ в ©«®ў *** ;load_tile -; get_tile_path -; load_new_tile (⥪гй п Є авЁ­Є ) -; get_tile_path -; load_new_tile (­Ё¦­пп Є авЁ­Є ) -; get_tile_path -; load_new_tile (­Ё¦­пп Є авЁ­Є ) -; get_tile_path -; load_new_tile (­Ё¦­пп Є авЁ­Є ) -; get_tile_path -; load_new_tile (­Ё¦­пп Є авЁ­Є ) -; get_parent_tiles (жЁЄ«ЁзҐбЄЁ© Їа®б¬®ва தЁвҐ«мбЄЁе в ©«®ў) -; get_tile_path -; load_new_tile (ўҐае­пп Є авЁ­Є ) +; get_tile_path +; load_new_tile (⥪гй п Є авЁ­Є ) +; get_tile_path +; load_new_tile (­Ё¦­пп Є авЁ­Є ) +; get_tile_path +; load_new_tile (­Ё¦­пп Є авЁ­Є ) +; get_tile_path +; load_new_tile (­Ё¦­пп Є авЁ­Є ) +; get_tile_path +; load_new_tile (­Ё¦­пп Є авЁ­Є ) +; get_parent_tiles (жЁЄ«ЁзҐбЄЁ© Їа®б¬®ва தЁвҐ«мбЄЁе в ©«®ў) +; get_tile_path +; load_new_tile (ўҐае­пп Є авЁ­Є ) ;??? @@ -479,13 +479,13 @@ but_MetSave: ; inc ecx ;¤«п § ЇЁбЁ ў д ©« § ўҐаи о饣® ­г«п mov eax,70 - m2m [run_file_70.param4], [bmp_icon] - mov [run_file_70.func_n], 2 - mov [run_file_70.param1], 0 - mov [run_file_70.param2], 0 - mov [run_file_70.param3], ecx - mov [run_file_70.rezerv], 0 - mov [run_file_70.name], file_name + m2m [run_file_70.Buffer], [bmp_icon] + mov [run_file_70.Function], 2 + mov [run_file_70.Position], 0 + mov [run_file_70.Flags], 0 + mov [run_file_70.Count], ecx + mov byte[run_file_70+20], 0 + mov [run_file_70.FileName], file_name mov ebx,run_file_70 int 0x40 pop edi ecx ebx eax @@ -500,13 +500,13 @@ but_MetLoad: ; mov byte[met_fr_opn],1 copy_path fn_metki,sys_path,file_name,0x0 mov eax,70 ;load icon file - mov [run_file_70.func_n], 0 - mov [run_file_70.param1], 0 - mov [run_file_70.param2], 0 - mov [run_file_70.param3], TREE_ICON_SYS16_BMP_SIZE - mov [run_file_70.rezerv], 0 - mov [run_file_70.name], file_name - m2m [run_file_70.param4], [bmp_icon] + mov [run_file_70.Function], 0 + mov [run_file_70.Position], 0 + mov [run_file_70.Flags], 0 + mov [run_file_70.Count], TREE_ICON_SYS16_BMP_SIZE + mov byte[run_file_70+20], 0 + mov [run_file_70.FileName], file_name + m2m [run_file_70.Buffer], [bmp_icon] mov eax,70 mov ebx,run_file_70 int 0x40 @@ -801,13 +801,13 @@ proc load_new_tile, tile:dword pushad mov eax,70 ;load icon file - mov [run_file_70.func_n], 0 - mov [run_file_70.param1], 0 - mov [run_file_70.param2], 0 - mov [run_file_70.param3], RGB_TILE_SIZE+300 ;+54 - m2m [run_file_70.param4], [bmp_icon] - mov [run_file_70.rezerv], 0 - mov [run_file_70.name], file_name + mov [run_file_70.Function], 0 + mov [run_file_70.Position], 0 + mov [run_file_70.Flags], 0 + mov [run_file_70.Count], RGB_TILE_SIZE+300 ;+54 + m2m [run_file_70.Buffer], [bmp_icon] + mov byte[run_file_70+20], 0 + mov [run_file_70.FileName], file_name mov ebx,run_file_70 int 0x40 mov edi,[tile] diff --git a/programs/other/t_edit/t_button.inc b/programs/other/t_edit/t_button.inc index 217a5770a..6555ccc5e 100644 --- a/programs/other/t_edit/t_button.inc +++ b/programs/other/t_edit/t_button.inc @@ -1,11 +1,11 @@ -struct f70 - func_n dd ? - param1 dd ? - param2 dd ? - param3 dd ? - param4 dd ? - rezerv db ? - name dd ? +struct FileInfoBlock + Function dd ? + Position dd ? + Flags dd ? + Count dd ? + Buffer dd ? + db ? + FileName dd ? ends struct TexColViv @@ -26,12 +26,12 @@ struct symbol ends -hed db 'TextEditor 03.05.10',0 ;Ї®¤ЇЁбм ®Є­  +hed db 'TextEditor 17.05.10',0 ;Ї®¤ЇЁбм ®Є­  sc system_colors fn_icon db 'te_icon.bmp',0 bmp_icon dd 0 -run_file_70 f70 +run_file_70 FileInfoBlock ;input: diff --git a/programs/other/t_edit/t_data.inc b/programs/other/t_edit/t_data.inc index a5706508d..cdb8221d1 100644 --- a/programs/other/t_edit/t_data.inc +++ b/programs/other/t_edit/t_data.inc @@ -357,7 +357,6 @@ tedit0: ; .cur_x dd 0 ;+78 Є®®а¤Ё­ в  x Єгаб®а  .cur_y dd 0 ;+82 Є®®а¤Ё­ в  y Єгаб®а  .max_chars dd maxChars ;+86 ¬ ЄбЁ¬ «м­®Ґ зЁб«® бЁ¬ў®«®ў ў ®¤­®¬ ¤®Єг¬Ґ­вҐ -; \/ ­Ґ а §алў вм б«Ґ¤гойЁҐ ЇҐаҐ¬Ґ­­лҐ: .count_colors_text dd 1 ;+90 Є®««ЁзҐбвў® 梥⮢ ⥪бв  .count_key_words dd 0 ;+94 Є®««ЁзҐбвў® Є«о祢ле б«®ў .color_cursor dd 0x808080 ;+98 梥⠪габ®а  @@ -367,7 +366,6 @@ tedit0: ; .color_select dd 0x208080 ;+114 梥⠢뤥«Ґ­Ёп .color_cur_text dd 0xff0000 ;+118 梥в бЁ¬ў®«  Ї®¤ Єгаб®а®¬ .color_wnd_text dd 0xffff00 ;+122 梥в ⥪бв  ў ®Є­Ґ -; /\ ¤агЈЁҐ, Ё¤гйЁҐ ­Ё¦Ґ ¬®¦­® а §алў вм. .syntax_file dd 0 ;+126 гЄ § вҐ«м ­  ­ з «® д ©«  бЁ­в ЄбЁб  .syntax_file_size dd maxSyntaxFileSize ;+130 ¬ ЄбЁ¬ «м­л© а §¬Ґа д ©«  бЁ­в ЄбЁб  .text_colors dd 0 ;+134 гЄ § вҐ«м ­  ¬ ббЁў 梥⮢ ⥪бв  @@ -403,6 +401,8 @@ tedit0: ; .fun_draw_panel_find dd draw_panel_find ;+230 гЄ § вҐ«м ­  дг­ЄжЁо аЁб®ў ­Ёп Ї ­Ґ«Ё Ї®ЁбЄ  .fun_draw_panel_syntax dd draw_panel_syntax ;+234 гЄ § вҐ«м ­  дг­ЄжЁо аЁб®ў ­Ёп Ї ­Ґ«Ё бЁ­в ЄбЁб  .fun_save_err dd ted_save_err_msg ;+238 гЄ § вҐ«м ­  дг­ЄжЁо ўл§лў Ґ¬го Ґб«Ё б®еа ­Ґ­ЁҐ д ©«  § Є®­зЁ«®бм ­Ґг¤ з­® + .increase_size dd 200 ;+242 зЁб«® бЁ¬ў®«®ў ­  Є®в®алҐ Ўг¤Ґв 㢥稢 вмбп Ї ¬пвм ЇаЁ ­Ґеў вЄҐ + .ptr_free_symb dd ? ;+246 ЁбЇ®«м§гҐвбп ў­гваЁ н«Ґ¬Ґ­в  ¤«п г᪮७Ёп ўбв ўЄЁ ⥪бв  ;------------------------------------------------------------------------------ conv_tabl rb 128 ; в Ў«Ёж  ¤«п Є®­ўҐавЁа®ў ­Ёп scan-Є®¤  ў ascii-Є®¤ diff --git a/programs/other/t_edit/t_edit.asm b/programs/other/t_edit/t_edit.asm index e42f10c4e..35c2c1162 100644 --- a/programs/other/t_edit/t_edit.asm +++ b/programs/other/t_edit/t_edit.asm @@ -77,13 +77,13 @@ load_libraries l_libs_start,load_lib_end copy_path fn_icon,sys_path,file_name,0x0 mov eax,70 ;load icon file - mov [run_file_70.func_n], 0 - mov [run_file_70.param1], 54 - mov [run_file_70.param2], 0 - mov [run_file_70.param3], 1200*18 - m2m [run_file_70.param4], [bmp_icon] - mov [run_file_70.rezerv], 0 - mov [run_file_70.name], file_name + mov [run_file_70.Function], 0 + mov [run_file_70.Position], 54 + mov [run_file_70.Flags], 0 + mov [run_file_70.Count], 1200*18 + m2m [run_file_70.Buffer], [bmp_icon] + mov byte[run_file_70+20], 0 + mov [run_file_70.FileName], file_name mov ebx,run_file_70 int 0x40 @@ -101,13 +101,13 @@ load_libraries l_libs_start,load_lib_end call mem_Alloc mov dword[tree1.data_img_sys],eax - ;mov [run_file_70.func_n], 0 - ;mov [run_file_70.param1], 54 - ;mov [run_file_70.param2], 0 - mov [run_file_70.param3], 3*256*13 - mov [run_file_70.param4], eax - ;mov [run_file_70.rezerv], 0 - ;mov [run_file_70.name], file_name + ;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 @@ -124,13 +124,13 @@ load_libraries l_libs_start,load_lib_end call mem_Alloc mov dword[tree1.data_img],eax -; mov [run_file_70.func_n], 0 -; mov [run_file_70.param1], 54 -; mov [run_file_70.param2], 0 - mov [run_file_70.param3], 3*256*2 - mov [run_file_70.param4], eax -; mov [run_file_70.rezerv], 0 -; mov [run_file_70.name], file_name +; 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