From 59af2cd6af1d2a7bfa87f639fbe30458e2a7e104 Mon Sep 17 00:00:00 2001 From: "Alexey Teplov (" Date: Mon, 14 May 2007 07:26:15 +0000 Subject: [PATCH] modify example git-svn-id: svn://kolibrios.org@491 a494cfbc-eb01-0410-851d-a64ba20cac60 --- .../examples/editbox/trunk/EDITBOX.INC | 11 +++----- .../develop/examples/editbox/trunk/History | 1 + .../examples/editbox/trunk/editbox.asm | 25 ++++++------------- 3 files changed, 13 insertions(+), 24 deletions(-) diff --git a/programs/develop/examples/editbox/trunk/EDITBOX.INC b/programs/develop/examples/editbox/trunk/EDITBOX.INC index cef3752827..e7fb64fc2b 100644 --- a/programs/develop/examples/editbox/trunk/EDITBOX.INC +++ b/programs/develop/examples/editbox/trunk/EDITBOX.INC @@ -291,13 +291,12 @@ edit_ex ;---------------------------------------------------------- ;--- А не удерживаем ли мы клавишу мышки, перемещая курсор, во все разные стороны? ;---------------------------------------------------------- - mov ecx,procinfo test word ed_flags,ed_mouse_on jne .mouse_wigwag ;---------------------------------------------------------- ;--- проверяем, попадает ли курсор в edit box ------------- ;---------------------------------------------------------- - mov ebx,dword [ecx+38] + mov ebx,[procinfo.box.top] add ebx,ed_top if scr_h eq else @@ -312,7 +311,7 @@ end if shr eax,16 - mov ebx,dword [ecx+34] + mov ebx,[procinfo.box.left] add ebx,ed_left if scr_w eq else @@ -330,8 +329,7 @@ end if call .clear_cursor pop eax ._mvpos: - mov ecx,procinfo - mov ebx,dword [ecx+34] + mov ebx,dword [procinfo.box.left] xor edx,edx sub eax,ed_left sub eax,ebx @@ -424,8 +422,7 @@ use_key_func ;;;;;;;;;;;;;;;;;; ;;процедура обработки положения выделенного текста, когда происходит выход за пределы editbox ;;;;;;;;;;;;;;;;;; - mov ecx,procinfo - mov ebx,dword [ecx+34] + mov ebx,[procinfo.box.left] add ebx,ed_left if scr_w eq else diff --git a/programs/develop/examples/editbox/trunk/History b/programs/develop/examples/editbox/trunk/History index 5877664d15..dee829bdc7 100644 --- a/programs/develop/examples/editbox/trunk/History +++ b/programs/develop/examples/editbox/trunk/History @@ -6,6 +6,7 @@ You bunny wrote ..... ▌Єю эх ьэюую Їюы№ъыхЁр, ёт чрээюх, ё Єхь, ўЄю эряшёрэшх яЁюуЁрьь фышээ√х ш ьєЄюЁэ√щ яЁюЎхёё, ш юэ эх юсїюфшЄ№ё  схч т√Ёрцхэшщ яюфюсэюую ёюфхЁцрэш , эю эх яюярфр■∙хую т ъюьхэЄрЁшш ш юёэютэющ ъюф..... ╥хяыют └ыхъёхщ ▐Ё№хтшў aka +; 14.05.2007 ╚ёяюы№чютрэшх ьръЁюёют,єфюсюўшЄрхьюё№ яЁюуЁрьь√ ; 09.05.2007 ╬с∙р  фюЁрсюЄър ьръЁюёют,чрьхэр эхёъюы№ъю ьхЄюъ, ьшуЁрЎш  ъюфр т edit_box.mac ; 19.04.2007 ╬с∙р  фюЁрсюЄър ьръЁюёют ; 14.04.2007 ╚ёяЁртыхэю єяЁртыхэшх ь√°ъющ, яЁш єфрыхэшш яюёыхфэхую ёшьтюыр т сєЇхЁх яш°хЄ№ё  0 (ёярёшсю Mario79) diff --git a/programs/develop/examples/editbox/trunk/editbox.asm b/programs/develop/examples/editbox/trunk/editbox.asm index 3e89e564a4..4570441af2 100644 --- a/programs/develop/examples/editbox/trunk/editbox.asm +++ b/programs/develop/examples/editbox/trunk/editbox.asm @@ -3,22 +3,15 @@ ;Оптимизация команд. ; - Теплов Алексей www.lrz.land.ru ;заголовок приложения -use32 ; транслятор, использующий 32 разрядных команды - org 0x0 ; базовый адрес кода, всегда 0x0 - db 'MENUET01' ; идентификатор исполняемого файла (8 байт) - dd 0x1 ; версия формата заголовка исполняемого файла - dd start ; адрес, на который система передаёт управление - ; после загрузки приложения в память - dd i_end ; размер приложения - dd i_end ; Объем используемой памяти, для стека отведем 0х100 байт и выровним на грницу 4 байта - dd i_end ; расположим позицию стека в области памяти, сразу за телом программы. Вершина стека в диапазоне памяти, указанном выше - dd 0x0,0x0 ; указатель на строку с параметрами. include '..\..\..\..\macros.inc' +; include 'macros.inc' include 'editbox.inc' +meos_app_start align 4 use_edit_box procinfo,22,5 ;Область кода -start: ;Точка входа в программу +code +;start: ;Точка входа в программу mcall 40,0x27 ;установить маску для ожидаемых событий ;система будет реагировать только на сообщение о перерисовке,нажата кнопка, определённая ранее, событие от мыши (что-то случилось - нажатие на кнопку мыши или перемещение; сбрасывается при прочтении) и нажатие клавиши red_win: @@ -35,7 +28,6 @@ still: ; mouse_edit_boxes editboxes,editboxes_end jmp still ;если ничего из перечисленного то снова в цикл ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; button: mcall 17 ;получить идентификатор нажатой клавиши test ah,ah ;если в ah 0, то перейти на обработчик событий still @@ -64,7 +56,7 @@ edit4 edit_box 16,5,70,0xffffff,0x6a9480,0,0,0,1,ed_buffer.4,ed_figure_only editboxes_end: data_of_code dd 0 mouse_flag dd 0x0 -hed db 'EDITBOX optimization and retype date 09.05.2007',0 +hed db 'EDITBOX optimization and retype date 14.05.2007',0 rb 256 ed_buffer: ;.1: rb 514;256 @@ -74,7 +66,6 @@ ed_buffer: ;два запасных байта необходимы для того что бы не пепереписать следующией байты, в конце буфера 0 buffer_end: align 16 -procinfo: -rb 1024 ;1 кб для получения общей структуры -rb 1024 ;Stack -i_end: +procinfo process_information +meos_app_end +udata \ No newline at end of file