Вопрос № 70370: Приветствую вас уважаемые эксперты! Извиняюсь за то что раньше называл вас "кодерами", впредь этого не повторится!
Опять у меня вопрос по железу, с клавой я разобрался, а вот с мышью никак, подскажите где можно найти информацию о работе...Вопрос № 70386: Здравствуйте ! Не могли бы вы подсказать как пользоваться функцией CreateToolhelp32Snapshot. Я имею ввиду как вывести список процессов на экран. Или завершить один из этих процессов ? ...Вопрос № 70397: Ув. эксперты! Подскажите, пожалуйста, как организовать сортировку ASCII-символов
в строке по убыванию либо возрастанию спомощью TASM 5.0? Очень интересует данный вопрос....Вопрос № 70416: Доброго времени суток!В программе задается переменнная Handle dw 0
В отладчике передача ей значения выглядит так:
mov [0130],ax а из нее
nov bx,[0130]
помогите мне выяснить 3 вопроса:
1.Где (как) найти в памяти потом то,что я загн...
Вопрос № 70.370
Приветствую вас уважаемые эксперты! Извиняюсь за то что раньше называл вас "кодерами", впредь этого не повторится!
Опять у меня вопрос по железу, с клавой я разобрался, а вот с мышью никак, подскажите где можно найти информацию о работе с мышью на уровне потров в/в (in/out), НЕ хочется использовать int 33h, оч. люблю работать на самом низком уровне :D
Огросное спасибо!
Отвечает: Евгений Иванов
Здравствуйте, Code_master!
Мышь на уровне портов - это обычный COM-обработчик.
Узнай адрес com-порта, и подпишись на прерывания аппаратные от него (тоже узнай его номер). При приходе прерывания читай данные. Обычно там идут данные с величинами относительного смещения мыши.
Но я всё же посоветовал не тратить время, а пользоваться готовым обработчиком сидящим внутри int 51, по сути он там ничего и не делает, кроме взятия и поддержки (преобразования) координат из порта. Да ещё и курсор рисует, не придётся тебе изучать видео. :o)
Удачи.
Прикреплённый файл: Загрузить >> Срок хранения файла на сервере RusFAQ.ru составляет 30 суток с момента отправки ответа. --------- Что имеем - не храним, потерявши - плачем
Ответ отправил: Евгений Иванов (статус: Профессор) Россия, Нижний Новгород Тел.: +78313145721 Организация: M2Media.ru Адрес: Нижний Новгород, ул.Малая Ямская WWW:Eugene Ivanov ICQ: 214889076 ---- Ответ отправлен: 10.01.2007, 21:59 Оценка за ответ: 3
Отвечает: Лысков Игорь Витальевич
Здравствуйте, Code_master!
Согласен с Ивановым, в данном случае это абсолютно не оправдано.
Могут возникнуть куча лишних проблем, например,
кроме рисования курсора, можно назвать возможность
наличия какой-то специфичной мыши (а родной драйвер все ньюансы учитывает!)
Плюс необходимо не нарушить работу родного драйвера мыши
Да мало ли что!
Откопал в архиве свою давнишнюю тестовую программку, которая показывает на экране
принимаемые данные по порту COM2. (Для COM1 поменять вектор на 0ch, порты 2fx на 3fx)
Приложение:
--------- Удачи!
Ответ отправил: Лысков Игорь Витальевич (статус: Практикант)
Ответ отправлен: 11.01.2007, 12:08 Оценка за ответ: 4 Комментарий оценки: Спасибо, но не помешало бы побольше комментариев :D
Вопрос № 70.386
Здравствуйте ! Не могли бы вы подсказать как пользоваться функцией CreateToolhelp32Snapshot. Я имею ввиду как вывести список процессов на экран. Или завершить один из этих процессов ?
Отправлен: 10.01.2007, 23:23
Вопрос задал: Whiteman (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 3)
Отвечает: Boriss
Здравствуйте, Whiteman!
Высылаю по Вашей просьбе статьи в архиве. Если что не понятно будет, спрашивайте на минифоруме. Но, по-моему, нет особых трудностей :))
Прикреплённый файл: Загрузить >> Срок хранения файла на сервере RusFAQ.ru составляет 30 суток с момента отправки ответа. --------- Вывод - то место в тексте, где вы устали думать
Ответ отправил: Boriss (статус: Профессор) Россия, Саранск Организация: mte WWW:Программирование на Паскале ---- Ответ отправлен: 12.01.2007, 09:35
Вопрос № 70.397
Ув. эксперты! Подскажите, пожалуйста, как организовать сортировку ASCII-символов в строке по убыванию либо возрастанию спомощью TASM 5.0? Очень интересует данный вопрос.
Отправлен: 11.01.2007, 00:23
Вопрос задал: Gagarin (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Евгений Иванов
Здравствуйте, Gagarin!
Проходишь по строке и берёшь самый первый символ (а), переносишь его в новую строку, удаляешь из исходной. И так далее для остальных символов.
--------- Что имеем - не храним, потерявши - плачем
Ответ отправил: Евгений Иванов (статус: Профессор) Россия, Нижний Новгород Тел.: +78313145721 Организация: M2Media.ru Адрес: Нижний Новгород, ул.Малая Ямская WWW:Eugene Ivanov ICQ: 214889076 ---- Ответ отправлен: 11.01.2007, 00:32
Отвечает: Лысков Игорь Витальевич
Здравствуйте, Gagarin!
Вот простейший алгоритм метода пузырька:
1) В цикле от первого до предпоследнего берем очередной символ A
2) В цикле от следующего за взятым A и до последнего ищем минимальный( или
максимальный) B и меняем местами символы A и B.
Очередной символ как бы "всплывает", как пузырек воздуха, отсюда и название
метода. Дерзай.
PS Или проблема в реализации? Пиши в мини-форум результаты, подправим...
--------- Удачи!
Ответ отправил: Лысков Игорь Витальевич (статус: Практикант)
Ответ отправлен: 11.01.2007, 10:45
Вопрос № 70.416
Доброго времени суток!В программе задается переменнная Handle dw 0
В отладчике передача ей значения выглядит так:
mov [0130],ax а из нее
nov bx,[0130]
помогите мне выяснить 3 вопроса:
1.Где (как) найти в памяти потом то,что я загнал в переменную?
2.что значит 0 в этой переменной?
3.Buffer equ $.Я правильно понимаю, что это типа метки, означ. конец программы в памяти и что за ней память свободна?
Приложение:
Отправлен: 11.01.2007, 04:16
Вопрос задал: ATZATZ (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 2)
Отвечает: Лысков Игорь Витальевич
Здравствуйте, ATZATZ!
1) Вот по адресу 130h и ищи
2) Команда dw означает резервирование двух байт в памяти.
Причем в данном случае происходит инициализация (на этапе ассемблирования)
этого слова указанным значением, т.е. нулем
Другими словами, если посмотреть на файл программы в hex-редакторе, то
на соответствующем месте будут два нулевых байта
3) $ означает текущий адрес
equ означает указание считать выражение слева равным выражению справа
В данном случае, строка "Buffer" будет соответствовать числу, численно равному
текущему адресу.
Все последующие коментарии относятся к формату COM-файла.
Для EXE все несколько сложнее.
Если данное выражение будет стоять в конце программы, то да, адрес, соответствующий
выражению "Buffer" будет соответствовать концу программы в памяти.
Понятно, что подобное выражение внутри текста программы, никак нельзя
считать адресом именно конца программы.
В принципе, да, вся память, расположенная за последним байтом программы,
является свободной. За исключением того, что в конце сегмента размещается стек.
--------- Удачи!
Ответ отправил: Лысков Игорь Витальевич (статус: Практикант)
Ответ отправлен: 11.01.2007, 11:22 Оценка за ответ: 4