Форум программистов, компьютерный форум, киберфорум
Assembler: DOS/Real Mode/16-bits
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
0 / 0 / 0
Регистрация: 29.11.2009
Сообщений: 3

Обеспечить запрет приёма скан-кодов с клавиатуры на 10 секунд

17.11.2011, 20:57. Показов 2334. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
подскажите кто-нибудь, где я ошибся, я новичёк в ассембдере.
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
begin
    asm
 
 @M1:
        IN AL, 64h {прочитать регистр статуса, бит с номером 1 должен быть равен нулю }
        AND AL, 00000010b {флаг готовности к приёму команды}
 
 
        JNZ @M1  { выполнить переход на очередное чтение регистра статуса }
        
        MOV  AL, 11110101b
 {в регистр AL процессора записывается байт, команда для клавиатуры - запретить   сканирование}
 
        OUT 60h, AL       {запись данных в Input Register контроллера}
 
 
        PUSH DS
 
        MOV DX, 40h
        MOV DS, DX
        MOV DL, [6Ch]  { чтение текущего системного времени }
        ADD DL, 180  { увеличиваем на 10 сек.}
 @wait:
        CMP DL, [6Ch]  { сравниваем ожидаемое с текущим}
        JNZ @wait
 
        mov cx,0  {счетчик для ограничения времени ожидания готовности 8042 }
 
@@:
        IN AL, 64h
        AND AL, 00000010b
        OUT 60h, AL
        jz @contin
        loop @@
    
 @contin:
 
        MOV AL, 11110101b
  {команда для клавиатуры - восстановить сканирование}
        OUT 60h, AL
 
        POP DS
            end;
                 readln;
 
                           end.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.11.2011, 20:57
Ответы с готовыми решениями:

Запрет приема скан-кода с клавиатуры на 10 секунд: программа зацикливается
Всем привет! У меня проблема технического характера... Работаю на ноутике i7 Windows 7 x64, данный код не работает даже из под...

Заменить стандартный обработчик клавиатуры(вывод скан кодов)
Есть программа которая выводит скан код нажатия \ отпускания клавиши, но она использует прерывание 16h, преподу это не понравилось и он...

Передача скан кодов
Всем добрый вечер! Хочу передать с МК скан-коды клавиатуры через USB. Как организовать код, который будет передавать этот сигнал?

13
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33374 / 21499 / 8235
Регистрация: 22.10.2011
Сообщений: 36,894
Записей в блоге: 11
17.11.2011, 22:05
Как минимум:

Assembler
1
2
3
@wait:
CMP DL, [6Ch] { сравниваем ожидаемое с текущим}
JNE @wait { <--- Сравниваем с текущим, а не с 0 }
Ну, и еще: запрет и разрешение сканирования - это разные коды. Запрет - это 0F5H (как раз у тебя правильно: 11110101b), а вот разрешение - это 0F6H, а у тебя для разрешения - тоже вызывалось 0F5H...
0
0 / 0 / 0
Регистрация: 29.11.2009
Сообщений: 3
17.11.2011, 22:42  [ТС]
Спасибо за ответ!
0
0 / 0 / 0
Регистрация: 24.11.2010
Сообщений: 18
15.05.2012, 14:01
Немогли бы вы объяснить что значит эта строчка
mov cx,0 {счетчик для ограничения времени ожидания готовности 8042 }
точнее цифра 8042? Зарание спасибо!
0
Клюг
 Аватар для Charles Kludge
7677 / 3192 / 382
Регистрация: 03.05.2011
Сообщений: 8,380
15.05.2012, 14:18
В гугле забанили?http://frolov-lib.ru/books/bsp/v33/ch2_2.htm
2
0 / 0 / 0
Регистрация: 24.11.2010
Сообщений: 18
15.05.2012, 14:48
Такой вопрос а какое значение распологается по адресу 0F6H, а то я в гугле не могу найти))) Зарание спасибо!
0
Ушел с форума
Автор FAQ
 Аватар для Mikl___
16372 / 7684 / 1080
Регистрация: 11.11.2010
Сообщений: 13,759
15.05.2012, 14:59
jeams, исправь
Assembler
1
2
                MOV DL, [6Ch]  { чтение текущего системного времени }
                CMP DL, [6Ch]  { сравниваем ожидаемое с текущим}
на
Assembler
1
2
                MOV DL, DS:[6Ch]  ; чтение текущего системного времени
                CMP DL, DS:[6Ch]  ; сравниваем ожидаемое с текущим
Цитата Сообщение от Biggins Посмотреть сообщение
какое значение распологается по адресу 0F6H
0F5H и 0F6H - это не адреса, а команды
0
Клюг
 Аватар для Charles Kludge
7677 / 3192 / 382
Регистрация: 03.05.2011
Сообщений: 8,380
15.05.2012, 15:03
Цитата Сообщение от Biggins
по адресу 0F6H
Это не адрес, а команда для контроллера клавиатуры
1
0 / 0 / 0
Регистрация: 24.11.2010
Сообщений: 18
15.05.2012, 18:51
Извените, но ссылка не рабочая, а как 0F6H эта команда выглядет в бинарном коде, я так понимаю, что команда 0F5H выглядет вот так 11110101b, заранее спасибо))
0
116 / 136 / 0
Регистрация: 15.04.2012
Сообщений: 1,031
15.05.2012, 19:34
Цитата Сообщение от Biggins Посмотреть сообщение
точнее цифра 8042?
Два в журнал. Не цифра, а число, эх ты.
1
0 / 0 / 0
Регистрация: 24.11.2010
Сообщений: 18
15.05.2012, 23:51
Ну я студент))))))Ошибаюсь....
0
0 / 0 / 0
Регистрация: 24.11.2010
Сообщений: 18
17.05.2012, 12:28
ADD DL, 180 как понять эту времменую задержку? Почему именно число 180? Зарание спасибо!
0
273 / 268 / 11
Регистрация: 24.12.2010
Сообщений: 328
17.05.2012, 12:40
Таймер генерирует 18,2 прерывания в сек. Значит за 10 сек 182, грубо 180.
0
116 / 136 / 0
Регистрация: 15.04.2012
Сообщений: 1,031
19.05.2012, 09:10
Расскажите, какие ещё числа выводимые в порт 60h имеют какое значение (и порт 61h и 64h тоже).
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.05.2012, 09:10
Помогаю со студенческими работами здесь

Чтение скан-кодов из порта 60h
Для подтверждения, что скан-код считан в 61h необходимо послать подтверждение: in al, 61h mov ah, al ;нафига??? or al, 80h out...

скан-коды клавиатуры
Как определить скан-код нажатой клавиши? private void Form1_KeyPress(object sender, KeyPressEventArgs e) { //определяем...

Подмена скан-кода стандартной клавиатуры
Добрый день уважаемые форумчане. Помогите в вопросе переназначения клавиш клавиатуры, а именно после нажатия на клавишу ее скан-код из...

Обеспечить для учетной записи User1 локальные права: запрет на Удаление
Составить bat файл, создающий каталог C:\temp|User1. Обеспечить для учетной записи User1 локальные права: запрет на Удаление

МПС - определить скан-коды клавиш К11, К12, К14, К18 матричной клавиатуры 8х8
Как определить скан-коды клавиш К11, К12, К14, К18 матричной клавиатуры 8х8.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru