Board.KolibriOS.org

Official KolibriOS board
It is currently Thu Jan 28, 2021 1:38 pm

All times are UTC+03:00




Post new topic  Reply to topic  [ 427 posts ]  Go to page Previous 1 2 3 4 5 629 Next
Author Message
 Post subject: Re: Вопрос
PostPosted: Sun Nov 22, 2015 2:23 pm 
Offline

Joined: Sat Nov 14, 2015 11:15 am
Posts: 299
Функция 2 - получить код нажатой клавиши.
Существует ли описание кодов клавиш?... скажем в виде простой таблицы или чего-то подобного .


Top
   
 Post subject: Re: Вопрос
PostPosted: Sun Nov 22, 2015 2:30 pm 
Offline
User avatar

Joined: Wed Apr 15, 2015 11:13 pm
Posts: 263
[quote="ALEXS1983"]Функция 2 - получить код нажатой клавиши.
Существует ли описание кодов клавиш?... скажем в виде простой таблицы или чего-то подобного .[/quote]
Не находил, я использую программу SCANCODE, которая есть в дистрибутиве.


Top
   
 Post subject: Re: Вопрос
PostPosted: Sun Nov 22, 2015 5:01 pm 
Offline

Joined: Sat Nov 14, 2015 11:15 am
Posts: 299
[quote="pavelyakov"]Не находил, я использую программу SCANCODE, которая есть в дистрибутиве.[/quote]
да про SCANCODE я знаю. Не очень-то удобна для реализации того что я хочу. :-)


Top
   
 Post subject:
PostPosted: Sun Nov 22, 2015 8:08 pm 
Online

Joined: Tue Apr 12, 2011 11:19 pm
Posts: 1176
А что именно хотите?


Top
   
 Post subject: Re:
PostPosted: Sun Nov 22, 2015 8:42 pm 
Offline

Joined: Sat Nov 14, 2015 11:15 am
Posts: 299
[quote="punk_joker"]А что именно хотите?[/quote]
Хочу создать модуль DLL который эмулирует сис.функции КОС. В частности хочу реализовать Функция 2 - получить код нажатой клавиши
Об этом если хочешь, можешь почитать здесь:
http://kolibriosandfasm.mybb.ru/viewtopic.php?id=13
Если влом читать всё, то читай со слов: "Так родилась идея создания DLL-модуля, который будет выполнять роль визуализатора результатов. "


Top
   
 Post subject: Re: Вопрос
PostPosted: Sun Nov 22, 2015 10:22 pm 
Offline
Mentor/Kernel Developer
User avatar

Joined: Thu Mar 26, 2015 5:16 pm
Posts: 1275
"Как можно предсказать всевозможные вопросы, которые могут возникнуть у кого-то?"
Иногда можно (в идеале), или почти все, в этом и заключается талант учителя. Знаешь, когда детям говорят, что чего-то нельзя, но не объясняют почему, то их это не особо вразумляет. Хотя, твои уроки больше напоминают блог.

"Дельфи очень хорошая среда для программирования по сравнению Fasm"
Fasm это вообще не среда программирования.

Сканкоды преобразуются в кодировку cp866 с учётом раскладки клавиатуры. Таблицы есть на википедии.


Top
   
 Post subject: Re: Вопрос
PostPosted: Sun Nov 22, 2015 11:16 pm 
Online

Joined: Tue Apr 12, 2011 11:19 pm
Posts: 1176
[quote="Pathoswithin"]
Сканкоды преобразуются в кодировку cp866 с учётом раскладки клавиатуры. .[/quote]
Скан коды не зависят от раскладки, это ASCII коды от нее зависят


Top
   
 Post subject: Re: Вопрос
PostPosted: Mon Nov 23, 2015 12:59 am 
Offline
Mentor/Kernel Developer
User avatar

Joined: Thu Mar 26, 2015 5:16 pm
Posts: 1275
Ну я это и написал.


Top
   
 Post subject: Re: Вопрос
PostPosted: Mon Nov 23, 2015 7:18 am 
Offline
User avatar

Joined: Fri Apr 17, 2015 9:44 am
Posts: 28
[b]ALEXS1983[/b],
Забавная идея, по поводу Virus Total и Delphi 7 приложений, была такая мразота - W32/Induc.A, которая внедряла свой код в системные dcu Delphi <= 7 версии.


Top
   
 Post subject: Re: Вопрос
PostPosted: Mon Nov 23, 2015 2:32 pm 
Offline
User avatar

Joined: Wed Apr 15, 2015 11:13 pm
Posts: 263
ALEXS1983, может ты на youtube видеоуроки позаписываешь?


Top
   
 Post subject: Re: Вопрос
PostPosted: Mon Nov 23, 2015 10:52 pm 
Offline

Joined: Sat Nov 14, 2015 11:15 am
Posts: 299
[quote="pavelyakov"]ALEXS1983, может ты на youtube видеоуроки позаписываешь?[/quote]
Шутишь однако :-)


Top
   
 Post subject: Re: Вопрос
PostPosted: Thu Nov 26, 2015 6:20 pm 
Offline

Joined: Sat Nov 14, 2015 11:15 am
Posts: 299
В асм вставках дельфи есть такая команда как "ret $000c", при переносе процедуры в Fasm, там команда не работает, а обычной "ret" не отделаешься.
Что эта команда "ret $000c" значит? и как быть ? Чем её заменить или как её обойти ?
Похоже что она очень по существу, так как процедура в асм-вставках дельфи работает нормально только при ней, а не при Ret


Top
   
 Post subject: Re: Вопрос
PostPosted: Thu Nov 26, 2015 6:27 pm 
Offline
User avatar

Joined: Mon Oct 27, 2008 10:10 pm
Posts: 891
Скорее всего там при возвращении сдвигается указатель стека (регистр esp)
Так как число c(16) = 12(10) то попробуй написать:
ret 12
может и заработает


Top
   
 Post subject: Re: Вопрос
PostPosted: Thu Nov 26, 2015 6:44 pm 
Offline

Joined: Sat Nov 14, 2015 11:15 am
Posts: 299
[quote="IgorA"]Скорее всего там при возвращении сдвигается указатель стека (регистр esp)
Так как число c(16) = 12(10) то попробуй написать:
ret 12
может и заработает[/quote]
Заработать то не заработало, так как надо, но БОЛЬШОЕ СПАСИБО, видимо так оно и есть (насчёт сдвига) стека. Так как меня очень удивило что в скомпилированной процедуре 7 "пуш" и 6 "поп" и она нормально работает в асм-вставках дельфи

Procedure DrawXLineA1;
Begin
asm

@START: {передача параметров через стек и регистры}
push $00ff34ff
push $05
push $01
mov ecx,$0000000a
mov edx,$0000000a
mov eax,$0000000a
call @DrawXLineA
ret


@DrawXLineA: {сама процедура}
push ebp
mov ebp,esp
add esp,-$08
push ebx
push esi
push edi
.....

..........
pop edi
pop esi
pop ebx

pop ecx
pop ecx
pop ebp
ret $000c
end;

end;


Top
   
 Post subject: Re: Вопрос
PostPosted: Thu Nov 26, 2015 6:56 pm 
Offline
User avatar

Joined: Wed Apr 15, 2015 11:13 pm
Posts: 263
Пример вызова ф-ции си в асме.
Например ф-ция в си:
[code]
void func(int a,int b)
{

}
[/code]
Чтобы вызвать в fasm
[code]
push 1
push 2
call func
add esp,8
[/code]
к примеру,то аргумент в Си a=>2, b=>1
если 2 аргумента int то размер int 4 байта, а их 2 то 4*2 = 8


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 427 posts ]  Go to page Previous 1 2 3 4 5 629 Next

All times are UTC+03:00


Who is online

Users browsing this forum: No registered users and 4 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Limited