Board.KolibriOS.org

Официальный форум KolibriOS
Текущее время: Вс окт 21, 2018 11:29 am

Часовой пояс: UTC+03:00




Начать новую тему  Ответить на тему  [ 365 сообщений ]  На страницу Пред. 1 2 3 4 5 625 След.
Автор Сообщение
 Заголовок сообщения: Re: Вопрос
СообщениеДобавлено: Вс ноя 22, 2015 2:23 pm 
Не в сети

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


Вернуться к началу
 Заголовок сообщения: Re: Вопрос
СообщениеДобавлено: Вс ноя 22, 2015 2:30 pm 
Не в сети
Аватара пользователя

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


Вернуться к началу
 Заголовок сообщения: Re: Вопрос
СообщениеДобавлено: Вс ноя 22, 2015 5:01 pm 
Не в сети

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


Вернуться к началу
 Заголовок сообщения:
СообщениеДобавлено: Вс ноя 22, 2015 8:08 pm 
Не в сети

Зарегистрирован: Вт апр 12, 2011 11:19 pm
Сообщения: 1132
А что именно хотите?


Вернуться к началу
 Заголовок сообщения: Re:
СообщениеДобавлено: Вс ноя 22, 2015 8:42 pm 
Не в сети

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


Вернуться к началу
 Заголовок сообщения: Re: Вопрос
СообщениеДобавлено: Вс ноя 22, 2015 10:22 pm 
Не в сети
Mentor/Kernel Developer
Аватара пользователя

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

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

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


Вернуться к началу
 Заголовок сообщения: Re: Вопрос
СообщениеДобавлено: Вс ноя 22, 2015 11:16 pm 
Не в сети

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


Вернуться к началу
 Заголовок сообщения: Re: Вопрос
СообщениеДобавлено: Пн ноя 23, 2015 12:59 am 
Не в сети
Mentor/Kernel Developer
Аватара пользователя

Зарегистрирован: Чт мар 26, 2015 5:16 pm
Сообщения: 1239
Ну я это и написал.


Вернуться к началу
 Заголовок сообщения: Re: Вопрос
СообщениеДобавлено: Пн ноя 23, 2015 7:18 am 
Не в сети
Аватара пользователя

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


Вернуться к началу
 Заголовок сообщения: Re: Вопрос
СообщениеДобавлено: Пн ноя 23, 2015 2:32 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Ср апр 15, 2015 11:13 pm
Сообщения: 241
ALEXS1983, может ты на youtube видеоуроки позаписываешь?


Вернуться к началу
 Заголовок сообщения: Re: Вопрос
СообщениеДобавлено: Пн ноя 23, 2015 10:52 pm 
Не в сети

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


Вернуться к началу
 Заголовок сообщения: Re: Вопрос
СообщениеДобавлено: Чт ноя 26, 2015 6:20 pm 
Не в сети

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


Вернуться к началу
 Заголовок сообщения: Re: Вопрос
СообщениеДобавлено: Чт ноя 26, 2015 6:27 pm 
Не в сети
Аватара пользователя

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


Вернуться к началу
 Заголовок сообщения: Re: Вопрос
СообщениеДобавлено: Чт ноя 26, 2015 6:44 pm 
Не в сети

Зарегистрирован: Сб ноя 14, 2015 11:15 am
Сообщения: 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;


Вернуться к началу
 Заголовок сообщения: Re: Вопрос
СообщениеДобавлено: Чт ноя 26, 2015 6:56 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Ср апр 15, 2015 11:13 pm
Сообщения: 241
Пример вызова ф-ции си в асме.
Например ф-ция в си:
[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


Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 365 сообщений ]  На страницу Пред. 1 2 3 4 5 625 След.

Часовой пояс: UTC+03:00


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Limited
Русская поддержка phpBB