Ошибка контроллера клавиатуры что делать: է֧ݧѧ ֧ݧ ڧҧܧ ܧߧݧݧ֧ ܧݧѧӧڧѧ
Содержание
Коды ошибок при старте системы | DOKI.org.ua
<<Назад | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Когда система загружается, то в случае возникновения на этапе загрузки
А теперь приведем аварийные звуковые сигналы и текстовые сообщения, выдаваемые AMI BIOS при загрузке. Звуковые сигналы об ошибках
Текстовые сообщения об ошибках
А вот аварийные звуковые сигналы и текстовые сообщения, выдаваемые Award BIOS при загрузке. Звуковые сигналы об ошибках
Текстовые сообщения об ошибках
Аварийные звуковые сигналы, выдаваемые Phoenix BIOS при загрузке. Звуковые сигналы
|
О чем пищит компьютер (расшифровка звуковых сигналов BIOS)
Зачем нужен BIOS:
1. При загрузке компьютера он проверяет наличие основного оборудования и его работоспособность. Если «сгорели», к примеру, оперативная память, процессор или иное необходимое для работы ПК устройство, BIOS подаст сигнал особым звуком (для каждого компонента набор сигналов будет разным).
2. BIOS загружает загрузчик, который в свою очередь загружает ОС.
3. BIOS позволяет ОС взаимодействовать с периферийным оборудованием.
4. BIOS позволяет настраивать многие компоненты оборудования, следить за их состоянием, параметрами работы. Там сохраняются сделанные пользователем настройки, например актуальная дата и время, позволяет включать-выключать встроенное в материнскую плату оборудование. Для определения вида BIOS я рекомендую посмотреть на момент загрузки, обычно в верхней левой части экрана есть информация о производителе и версии BIOS, либо зайти в настройки BIOS, как правило нажимая несколько раз на клавишу Delete после включения ПК.
IBM BIOS.
Последовательность звуковых сигналов | Описание ошибки Bios |
1 короткий | Успешный POST |
1 сигнал и пустой экран | Неисправна видеосистема |
2 коротких | Не подключен монитор |
3 длинных | Неисправна материнская плата (ошибка контроллера клавиатуры) |
1 длинный 1 короткий | Неисправна материнская плата |
1 длинный 2 коротких | Неисправна видеосистема (Mono/CGA) |
1 длинный 3 коротких | Неисправна видеосистема (EGA/VGA) |
Повторяющийся короткий | Неисправности связаны с блоком питания или материнской платой |
Непрерывный | Проблемы с блоком питания или материнской платой |
Отсутствует | Неисправны блок питания, материнская плата, или динамик |
Что издает звуковой сигнал БИОС?
В современных компьютерах есть такая вещь, как динамик (Speaker) — в задачи которого входит оповестить пользователя, о состоянии оборудования при включении. Speaker бывает внешний
А бывает и встроенный в материнскую плату
При желании его можно отключать на компьютере.
Award BIOS
Последовательность звуковых сигналов | Описание ошибки |
1 короткий | Успешный POST |
2 коротких | Обнаружены незначительные ошибки. На экране монитора появляется предложение войти в программу CMOS Setup Utility и исправить ситуацию. Проверьте надежность крепления шлейфов в разъемах жесткого диска и материнской платы. |
3 длинных | Ошибка контроллера клавиатуры |
1 короткий 1 длинный | Ошибка оперативной памяти (RAM) |
1 длинный 2 коротких | Ошибка видеокарты |
1 длинный 3 коротких | Ошибка видеопамяти |
1 длинный 9 коротких | Ошибка при чтении из ПЗУ |
Повторяющийся короткий | Проблемы с блоком питания; Проблемы с ОЗУ |
Повторяющийся длинный | Проблемы с ОЗУ |
Повторяющаяся высокая-низкая частота | Проблемы с CPU |
Непрерывный | Проблемы с блоком питания |
Не пищит БИОС при включении ПК
Довольно часто бывает и такое, что при включении ПК БИОС не пищит вообще никак. Почему? Зависит от конкретной ситуации. Чтобы быть в теме, для начала вам потребуется узнать, что такое спикер и зачем он нужен.
Что такое спикер материнской платы?
Спикер материнской платы – это миниатюрный высокочастотный динамик, предупреждающий пользователя о неисправностях в работе вашего компьютера еще до его включения. Другими словами, спикер – это средство вывода информации о состоянии компьютера. Еще, спикер — это устройство, которое выдает звуковые сигналы БИОС!
Вот как выглядит спикер на материнской плате. Именно он помогает издавать сигналы БИОС!
Некоторые причины, из-за которых ПК может не пищать при запуске
Часто бывает, что производители бюджетных компьютеров (да и не только бюджетных) либо забывают установить спикер на материнскую плату, либо умышленно экономят на этой запчасти. Соответственно, БИОС не пищит, потому что просто пищать нечему. Если вам срочно нужно продиагностировать неисправность вашего компьютера, вы можете просто позаимствовать спикер у своего друга на денек. Благо вытащить и вставить его не составит вам никакого труда.
Еще одна причина, почему вы можете не слышать звуковых сигналов БИОС при включении компьютера это то, что вы его случайно задели или дернули, и он просто немного отсоединился. В таком случае вставьте его плотнее и все у вас запищит. Бывают, кстати говоря, и такие материнские платы, в которых спикер и вовсе не отсоединяется.
На ноутбуках БИОС не пищит, потому что спикер на них не ставят по эстетическим соображениям. Представьте, если бы при каждом включении ноутбука он выдавал вам характерный, высокочастотный сигнал. Это раздражительно.
Особенно, если жена уже заснула, а ты решил поиграть в танки тайком, включаешь ноутбук, а тут на тебе БИИИИИИП!!! Жена тут же проснулась и ввалила тебе звездюлей. В общем, на ноутбуке спикер не так актуален.
Хотя некоторые ноутбуки могут выдавать аналогичные звуковые сигналы через внешние динамики и даже через наушники. Все, кто с этим сталкивается, пытаются скорее избавиться от этого писка (пиписка) любыми способами.
Куда и как подключить спикер на материнской плате?
Это вам пригодится знать, если вы все-таки решили позаимствовать недостающий спикер у друга или купить его. Когда вы вынимали спикер из материнской платы друга, то должны были обратить внимание, что место его подключения обозначено характерными надписями, чаще всего там фигурирует Speaker или spk или spkr. Полярность для спикера значения не имеет, так что подключить спикер вы сможете безошибочно.
Несколько примеров материнских плат с обозначенными местами для подключения спикера.
AMI BIOS
Последовательность звуковых сигналов | Описание ошибки |
1 короткий | Ошибок не обнаружено, ПК исправен |
2 коротких | Ошибка чётности RAM или вы забыли выключить сканер или принтер |
3 коротких | Ошибка в первых 64 КБ RAM |
4 коротких | Неисправность системного таймера |
5 коротких | Проблемы с процессором |
6 коротких | Ошибка инициализации контроллера клавиатуры |
7 коротких | Проблемы с материнской платой |
8 коротких | Ошибка памяти видеокарты |
9 коротких | Контрольная сумма BIOS неверна |
10 коротких | Ошибка записи в CMOS |
11 коротких | Ошибка кэша, расположенного на системной плате |
1 длинный 1 короткий | Проблемы с блоком питания |
1 длинный 2 коротких | Ошибка видеокарты (Mono-CGA) |
1 длинный 3 коротких | Ошибка видеокарты (EGA-VGA) |
1 длинный 4 коротких | Отсутствие видеокарты |
1 длинный 8 коротких | Проблемы с видеокартой или не подключён монитор |
3 длинных | Оперативная память — тест чтения/записи завершен с ошибкой. Переустановите память или замените исправным модулем. |
Отсутствует и пустой экран | Неисправен процессор. Возможно изогнута(сломана) контактная ножка процессора. Проверьте процессор. |
Непрерывный звуковой сигнал | Неисправность блока питания либо перегрев компьютера |
Дополнительные методы устранения проблем при звуковых сигналах BIOS
Выполните следующие шаги, чтобы устранить проблемы со звуковым сигналом.
- Выключите компьютер, а затем отсоедините шнур питания. После выполнения задачи закройте все крышки, снова подсоедините шнур питания, включите компьютер и прислушайтесь к звуковому сигналу.
- Удалите все носители из дисководов для гибких дисков, дисководов CD/DVD, портов USB и слотов для чтения карт памяти, а также отключите все второстепенные устройства (принтеры, сканеры, внешние жесткие диски и т.д.)
- Отсоедините мышь и клавиатуру, а затем перезагрузите компьютер. Если звуковой сигнал прекратился, отремонтируйте или замените эти устройства.
- Горячий воздух может повредить внутренние компоненты! Удалите все препятствия, закрывающие вентиляционные отверстия. Очистите вентиляционные отверстия на корпусе от пыли. Если охлаждающие вентиляторы перестают вращаться или издают странные звуки, отремонтируйте компьютер.
- Снимите крышку корпуса и переустановите все модули памяти. Если компьютер перестает пищать, возможно, модуль памяти не полностью вставлен или не подключен.
- Если в компьютере несколько модулей памяти, включите компьютер только с одним установленным модулем памяти. Если компьютер перестает пищать, возможно, неисправен модуль памяти или тип памяти не подходит для материнской платы. Снова вставьте память в сокет, чтобы убедиться, что проблема связана с подключением; в противном случае замените модуль. Повторите этот процесс для всех модулей памяти, установленных в компьютере.
AST BIOS
Последовательность звуковых сигналов | Описание ошибки |
1 короткий | Ошибка при проверке регистров процессора. Неисправность процессора |
2 коротких | Ошибка буфера клавиатурного контроллера. Неисправность клавиатурного контроллера. |
3 коротких | Ошибка сброса клавиатурного контроллера. Неисправность клавиатурного контроллера или системной платы. |
4 коротких | Ошибка связи с клавиатурой. |
5 коротких | Ошибка клавиатурного ввода. |
6 коротких | Ошибка системной платы. |
9 коротких | Несовпадение контрольной суммы ПЗУ BIOS. Неисправна микросхема ПЗУ BIOS. |
10 коротких | Ошибка системного таймера. Системная микросхема таймера неисправна. |
11 коротких | Ошибка чипсета. |
12 коротких | Ошибка регистра управления питанием в энергонезависимой памяти. |
1 длинный | Ошибка контроллера DMA 0. Неисправна микросхема контроллера DMA канала 0. |
1 длинный 1 короткий | Ошибка контроллера DMA 1. Неисправна микросхема контроллера DMA канала 1. |
1 длинный 2 коротких | Ошибка гашения обратного хода кадровой развёртки. Возможно, неисправен видеоадаптер. |
1 длинный 3 коротких | Ошибка в видеопамяти. Неисправна память видеоадаптера. |
1 длинный 4 коротких | Ошибка видеоадаптера. Неисправен видеоадаптер. |
1 длинный 5 коротких | Ошибка памяти 64K. |
1 длинный 6 коротких | Не удалось загрузить векторы прерываний. BIOS не смог загрузить векторы прерываний в память |
1 длинный 7 коротких | Не удалось инициализировать видеооборудование. |
1 длинный 8 коротких | Ошибка видеопамяти. |
Таблица сигналов Phoenix BIOS
Данный производитель использует beep-коды формата: сигнал-пауза-сигнал.
На заметку! Например, 1-1-2: сигнал-пауза-сигнал-пауза-два сигнала.
Звуковые сигналы версии Phoenix-AwardBIOS
Комбинация сигналов | Тип ошибки |
1-1-2 | Неисправность ЦП |
1-1-3 | Ошибка записи/чтения данных в/из CMOS-памяти |
1-1-4 | Ошибка BIOS |
1-2-1 | Ошибка инициализации материнской платы |
1-2-2 или 1-2-3 | Ошибка контроллера DMA |
1-3-1 | Ошибка инициализации схемы регенерации оперативной памяти |
1-3-3 или 1-3-4 | Ошибка инициализации первых 64 Кбайт оперативной памяти |
1-4-1 | Ошибка инициализации материнской платы |
1-4-2 | Ошибка инициализации оперативной памяти |
1-4-3 | Ошибка инициализации системного таймера |
1-4-4 | Ошибка записи/чтения в/из одного из портов ввода-вывода |
2-1-1 | Обнаружена ошибка при чтении/записи 0-го бита (в шестнадцатеричном представлении) первых 64 кбайт ОЗУ |
2-1-2 | Обнаружена ошибка при чтении/записи 1-го бита (в шестнадцатеричном представлении) первых 64 кбайт ОЗУ |
2-1-3 | Обнаружена ошибка при чтении/записи 2-го бита (в шестнадцатеричном представлении) первых 64 кбайт ОЗУ |
2-1-4 | Обнаружена ошибка при чтении/записи 3-го бита (в шестнадцатеричном представлении). .первых 64 кбайт ОЗУ |
2-2-1 | Обнаружена ошибка при чтении/записи 4-го бита (в шестнадцатеричном представлении) первых 64 кбайт ОЗУ |
2-2-2 | Обнаружена ошибка при чтении/записи 5-го бита (в шестнадцатеричном представлении) первых 64 кбайт ОЗУ |
2-2-3 | Обнаружена ошибка при чтении/записи 6-го бита (в шестнадцатеричном представлении) первых 64 кбайт ОЗУ |
2-2-4 | Обнаружена ошибка при чтении/записи 7-го бита (в шестнадцатеричном представлении) первых 64 кбайт ОЗУ |
2-3-1 | Обнаружена ошибка при чтении/записи 8-го бита (в шестнадцатеричном представлении) первых 64 кбайт ОЗУ |
2-3-2 | Обнаружена ошибка при чтении/записи 9-го бита (в шестнадцатеричном представлении) первых 64 кбайт ОЗУ |
2-3-3 | Обнаружена ошибка при чтении/записи 10-го бита (в шестнадцатеричном представлении) первых 64 кбайт ОЗУ |
2-3-4 | Обнаружена ошибка при чтении/записи 11-го бита (в шестнадцатеричном представлении) первых 64 кбайт ОЗУ |
2-4-1 | Обнаружена ошибка при чтении/записи 12-го бита (в шестнадцатеричном представлении) первых 64 кбайт ОЗУ |
2-4-2 | Обнаружена ошибка при чтении/записи 13-го бита (в шестнадцатеричном представлении) первых 64 кбайт ОЗУ |
2-4-3 | Обнаружена ошибка при чтении/записи 14-го бита (в шестнадцатеричном представлении) первых 64 кбайт ОЗУ |
2-4-4 | Обнаружена ошибка при чтении/записи 15-го бита (в шестнадцатеричном представлении) первых 64 кбайт ОЗУ |
3-1-1 | Ошибка второго канала DMA |
3-1-2 или 3-1-4 | Ошибка первого канала DMA |
3-2-4 | Ошибка клавиатуры |
3-3-4 | Ошибка видеопамяти |
3-4-1 | Проблемы с монитором. Нужно проверить разъем подключения монитора и состояние кабеля передачи данных |
3-4-2 | Не удается определить BIOS видеокарты |
4-2-1 | Ошибка системного таймера |
4-2-2 | Тестирование завершено |
4-2-3 | Ошибка клавиатуры |
4-2-4 | Критическая ошибка при переходе центрального процессора в защищенный режим |
4-3-1 | Ошибка инициализации оперативной памяти |
4-3-2 | Ошибка инициализации первого таймера |
4-3-3 | Ошибка инициализации второго таймера |
4-4-1 | Ошибка инициализации одного из последовательных портов |
4-4-2 | Ошибка инициализации параллельного порта |
4-4-3 | Ошибка элемента ЦП |
Длинные, непрекращающиеся сигналы | Неисправна материнская плата |
Звук сирены с высокой на низкую частоту | Неисправна видеокарта |
Непрерывный сигнал | Не подключен или неисправен вентилятор ЦП |
Дополнение! DMA – механизм прямого доступа к ОЗУ со стороны периферийных устройств системы. Требуется для ускорения работы ЦП и системы в целом. Ошибки каналов DMA могут появляться, если есть соответствующие трудности с периферийными устройствами.
Compaq BIOS
Звуки | Описание |
1 короткий | Ошибок нет. Нормальная загрузка системы. |
1 длинный 1 короткий | Ошибка контрольной суммы памяти CMOS BIOS. Возможно сел аккумулятор ROM. |
2 коротких | Глобальная ошибка. |
1 длинный 2 коротких | Ошибка инициализации видеокарты. Проверьте правильность установки видеокарты. |
7 сигналов | Неисправность видеокарты AGP. Проверьте правильность установки. |
1 длинный постоянный | Ошибка оперативной памяти, попробуйте перезагрузиться. |
1 короткий 2 длинных | Неисправность оперативной памяти. Перезагрузитесь через Reset. |
Почему так происходит
Когда ПК издает короткие и длинные пищащие звуки и не включается, значит вышла из строя или барахлит одна из комплектующих. Также, но реже, писк может означать проблему в работе программного обеспечения. Чаще всего из строя выходят:
- видеоадаптер;
- материнская плата;
- процессор;
- блок питания;
- жесткий диск.
Сами звуки издает небольшой динамик, который прикреплен к материнской карте, если у вас его нет, то его несложно подсоединить самостоятельно. Динамик продается в любом компьютерном магазине и стоит копейки.
Quadtel BIOS
Последовательность звуковых сигналов | Описание ошибки |
1 короткий | Ошибок не обнаружено, ПК исправен |
2 коротких | CMOS RAM повреждена. Заменить IC если это возможно |
1 длинный 2 коротких | Ошибка видеоадаптера. Неисправен видеоадаптер. Переустановите или замените адаптер |
1 длинный 3 коротких | Один или несколько из периферийных контроллеров неисправен. Замените контроллеры и проведите повторное тестирование |
Далее: Beep-коды представлены последовательностью звуковых сигналов. Например, 1-1-2 означает 1 звуковой сигнал, пауза, 1 звуковой сигнал, пауза, и 2 звуковых сигнала.
Что делать, если слышен писк из ПК
При возникновении неполадок, сопровождающихся звуковыми сигналами, для их дальнейшей диагностики нужно сделать следующее.
- Включите компьютер или перезагрузите кнопкой Reset, если он уже включён.
- Внимательно послушайте издаваемые сигналы. При необходимости перезагрузите ПК, чтобы воспроизвести ошибку ещё раз.
- Запишите комбинацию звуков на бумаге. Длительность, количество сигналов, паузы между ними — всё это важно.
- Узнайте производителя BIOS своего компьютера. Для этого сначала уточните модель материнской платы в документации или по маркировке на самом устройстве. А затем поищите в интернете, BIOS какого вендора используется в материнке. В большинстве случаев разработчики оборудования и BIOS отличаются.
- Зная производителя системного ПО, найдите код ошибки по представленным ниже комбинациям сигналов.
Например, компьютер при включении быстро пикает три раза подряд — получается три коротких сигнала. Открываем боковую крышку системника и внимательно смотрим маркировку на материнской плате. Видим Gigabyte GA–970A‑DS3P. Далее ищем информацию по этой модели и выясняем, что в ней используется BIOS от American Megatrends, то есть AMI. Находим в соответствующем разделе наш код и узнаём, что неполадки вызваны ошибкой оперативной памяти.
Dell BIOS
Последовательность звуковых сигналов | Описание ошибки |
1-2 | Не подключена видеокарта |
1-2-2-3 | Ошибка контрольной суммы ПЗУ BIOS |
1-3-1-1 | Ошибка обновления DRAM |
1-3-1-3 | Ошибка клавиатуры 8742 |
1-3-3-1 | Неисправна память |
1-3-4-1 | Ошибка ОЗУ на линии xxx |
1-3-4-3 | Ошибка ОЗУ на младшем бите xxx |
1-4-1-1 | Ошибка ОЗУ на старшем бите xxx |
Как узнать производителя BIOS
Перед тем как искать расшифровку звуков компьютера, необходимо выяснить производителя BIOS, поскольку звуковые сигналы у них существенно отличаются.
2.1. Способ 1
Произвести «идентификацию» можно различными способами, самый простой – посмотреть на экран в момент загрузки
. Вверху обычно указан производитель и версия БИОСа. Чтобы успеть зафиксировать этот момент,
нажмите на клавиатуре клавишу Pause
. Если вместо необходимой информации вы видите лишь заставку производителя материнской платы,
нажмите Tab
.
Два самых популярных производителя БИОС — AWARD и AMI
2.2. Способ 2
Зайдите в BIOS
. О том, как это сделать, я подробно писал здесь. Просмотрите разделы и найдите пункт – System Information. Там должна быть указана текущая версия БИОС. А в нижней (или верхней) части экрана будет указан производитель – American Megatrends Inc. (AMI), AWARD, DELL и т.д.
2.3. Способ 3
Один из самых быстрых способов выяснить производителя БИОС – использовать горячие клавиши Windows+R и в открывшейся строке «Выполнить» ввести команду MSINFO32. Таким образом будет запущена утилита «Сведения о системе»
, с помощью которой можно получить всю информацию об аппаратной конфигурации компьютера.
Запуск утилиты «Сведения о системе»
Также ее можно запустить из меню: Пуск -> Все программы -> Стандартные -> Служебные -> Сведения о системе
Узнать производителя БИОС можно через «Сведения о системе»
2.4. Способ 4
Использовать сторонние программы, о них подробно было рассказано в этой статье. Чаще всего используют CPU-Z, она абсолютно бесплатна и очень проста (скачать можно на официальном сайте). После запуска программы, перейдите во вкладку «Плата» и в разделе BIOS вы увидите всю информацию о производителе:
Как узнать производителя БИОС с помощью CPU-Z
скан-кодов клавиатуры: контроллер клавиатуры AT
скан-кодов клавиатуры: контроллер клавиатуры AT
Следующий
Предыдущий
Содержание
Пользовательская программа может взаимодействовать с контроллером клавиатуры на материнской плате.
Контроллер клавиатуры снова может общаться с клавиатурой.
При нажатии клавиши клавиатура отправляет соответствующий
код сканирования клавиатуры на контроллер клавиатуры и контроллер клавиатуры
переводит это и прерывает ЦП, позволяя ЦП прочитать результат.
Подробнее: при нажатии клавиши клавиатура отправляет
стартовый бит (младший), за которым следуют 8 битов данных для скан-кода клавиатуры
ключа (сначала наименее значащий), за которым следует нечетный бит четности,
за которым следует стоповый бит (высокий).
Контроллер клавиатуры считывает данные и проверяет четность.
Если неверно, запрашивается повторная передача. Если снова неправильно
сообщается об ошибке четности.
Если время между запросом на отправку и началом передачи больше
чем 15 мс, или если одиннадцать битов не получены в течение 2 мс,
сообщается о тайм-ауте.
В обоих случаях (ошибка четности или тайм-аут) байту данных присваивается значение 0xff.
Контроллер клавиатуры имеет три 8-битных регистра, участвующих в
связь с ЦП: его входной буфер, который может быть записан
ЦП, записав порт 0x60 или порт 0x64; его выходной буфер,
который может быть прочитан ЦП путем чтения из порта 0x60; и
регистр состояния, который может быть прочитан процессором через порт 0x64.
Если ЦП записывает в порт 0x64, этот байт интерпретируется как байт команды.
Если ЦП записывает в порт 0x60, байт интерпретируется как байт данных.
Контроллер клавиатуры имеет два 8-битных порта ввода-вывода, задействованных в
связь с клавиатурой:
входной порт P1 (прием ввода с клавиатуры)
и
выходной порт P2 (для отправки
к клавиатуре).
Контроллер клавиатуры имеет 8-битный регистр состояния.
ЦП может проверить его, прочитав порт 0x64.
(Обычно имеет значение 0x14: клавиатура не заблокирована, самопроверка завершена.)
ПАРЕ | ТИМ | ВСПОМОГАТЕЛЬНЫЙ | КЕЙЛ | К/Д | СИСФ | ИНПБ | ВНЕШНИЙ |
Бит 7:
Ошибка четности
0: ОК.
1: Ошибка четности с последним байтом.
Бит 6:
Тайм-аут
0: ОК.
1: Тайм-аут.
В системах PS/2: общий тайм-аут.
В системах AT: тайм-аут при передаче с клавиатуры на контроллер клавиатуры.
Возможна ошибка четности (в этом случае установлены оба бита 6 и 7).
Бит 5:
Дополнительный выходной буфер заполнен
В системах PS/2:
Бит 0 сообщает, будет ли допустимо чтение из порта 0x60.
Если он действителен, этот бит 5 сообщает, какие данные будут считаны из порта 0x60.
0: Данные клавиатуры. 1: данные мыши.В системах AT:
0: ОК.
1: Тайм-аут при передаче от контроллера клавиатуры к клавиатуре.
Это может указывать на отсутствие клавиатуры.
Бит 4:
Блокировка клавиатуры
0: заблокировано.
1: Не заблокирован.
Бит 3:
Команда/данные
0: последней записью во входной буфер были данные (записанные через порт 0x60).
1: Последняя запись во входной буфер была командой (записанной через порт 0x64).
(Этот бит также называется адресной строкой A2.)
Бит 2:
Системный флаг
Установите на 0 после сброса питания.
Установите значение 1 после успешного завершения самотестирования контроллера клавиатуры.
(Базовый контрольный тест, BAT).
Также можно установить командой (см.
ниже).
Бит 1:
Состояние входного буфера
0: входной буфер пуст, запись возможна.
1: Входной буфер заполнен, пока не записывайте.
Бит 0:
Состояние выходного буфера
0: Буфер вывода пуст, пока не читается.
1: Буфер вывода заполнен, можно читать.
(В ситуации с PS/2 бит 5 указывает, доступны ли данные.
с клавиатуры или мыши.)
Этот бит очищается при чтении порта 0x60.
Контроллер клавиатуры имеет некоторое количество оперативной памяти, например 32 байта,
доступ к которым может получить ЦП. Наиболее важной частью этой оперативной памяти является
байт 0, байт команды контроллера (CCB). Он может быть прочитан/записан
запись 0x20/0x60 в порт 0x64, а затем чтение/запись байта данных
из/в порт 0x60.
Этот байт имеет следующую структуру.
0 | XLATE | МЭ | КЭ | ИГНЛК | СИСФ | МИЭ | КИЭ |
Бит 7:
Неиспользованный
Всегда 0.
Бит 6:
Перевести
0: Нет перевода.
1: Переведите скан-коды клавиатуры, используя
таблица переводов приведена выше.
Контроллеры MCA типа 2 не могут установить этот бит в 1. В этом случае
Преобразование скан-кода задается с помощью клавиатурной команды 0xf0 на порт 0x60.
Бит 5:
Включить мышь
В системе EISA или PS/2: 0: включить мышь. 1: отключить мышь
путем понижения уровня тактовой линии.
В системе ISA: «Режим ПК»: 0: использовать 11-битные коды, проверять четность и выполнять
преобразование сканирования.
1: используйте коды 8086, не проверяйте четность и не выполняйте преобразование сканирования.
Бит 4:
Клавиатура включена
0: включить клавиатуру. 1: отключить клавиатуру
путем понижения уровня тактовой линии.
Бит 3:
Игнорировать блокировку клавиатуры
Для PS/2: не используется, всегда 0.
Для АТ:
0: Нет действий. 1: Сила
бит 4 регистра состояния
на 1, «не заблокирован». Это используется для тестирования клавиатуры после включения питания.
Возможно только на старых материнских платах.
Бит 2:
Системный флаг
Этот бит показан в
бит 2 регистра состояния.
«Холодная перезагрузка» — это перезагрузка с нулевым значением этого бита.
«Теплая перезагрузка» — это перезагрузка, в которой этот бит установлен в единицу (BAT уже завершен).
Это повлияет на тесты и инициализации, выполняемые POST.
Бит 1:
Включение прерывания мыши
В системе ISA: не используется, всегда 0. В системе EISA или PS/2:
0: Не использовать прерывания мыши.
1: Отправить запрос на прерывание IRQ12, когда выходной буфер мыши заполнен.
Бит 0:
Включение прерывания клавиатуры
0: Не использовать прерывания клавиатуры.
1: отправить запрос прерывания IRQ1, когда буфер вывода клавиатуры заполнен.Когда прерывания не используются, ЦП должен опросить биты 0 (и 5)
регистра состояния.
ЦП может управлять контроллером клавиатуры, записывая порт 0x64.
Полезными, общедоступными клавиатурными командами являются:
20 | Чтение командного байта контроллера клавиатуры |
60 | Запись командного байта контроллера клавиатуры |
аа | Самодиагностика |
ab | Проверка интерфейса |
объявление | Отключить клавиатуру |
ae | Включить клавиатуру |
c0 | Чтение входного порта |
d0 | Чтение выходного порта |
d1 | Выходной порт записи |
e0 | Чтение тестовых входов |
фе | Сброс системы |
Полезные общедоступные команды мыши:
a7 | Отключить порт мыши |
a8 | Включить порт мыши |
a9 | Тестовый порт для мыши |
d4 | Запись на мышь |
Непонятные, вероятно устаревшие, команды:
00-1f | Чтение ОЗУ контроллера клавиатуры |
20-3f | Чтение ОЗУ контроллера клавиатуры |
40-5f | Запись ОЗУ контроллера клавиатуры |
60-7f | Запись ОЗУ контроллера клавиатуры |
90-93 | Префикс мультиплексора Synaptics |
90-9f | Запись Порт 13-Порт 10 |
a0 | Читать авторские права |
a1 | Чтение версии прошивки |
a2 | Скорость переключения |
a3 | Скорость переключения |
а4 | Проверить, установлен ли пароль |
a5 | Загрузить пароль |
a6 | Проверить пароль |
ac | Диагностический дамп |
af | Версия клавиатуры чтения |
b0-b5 | Сброс линии контроллера клавиатуры |
б8-бд | Установить линию контроллера клавиатуры |
c1 | Непрерывный опрос входного порта, низкий уровень |
c2 | Непрерывный опрос входного порта, высокий уровень |
c8 | Разблокировать линии P22 и P23 |
c9 | Блок-линии P22 и P23 |
ca | Чтение режима контроллера клавиатуры |
cb | Запись режима контроллера клавиатуры |
d2 | Запись буфера вывода с клавиатуры |
d3 | Запись выходного буфера мыши |
dd | Отключить адресную строку A20 |
df | Включить адресную строку A20 |
f0-ff | Импульсный выход, бит |
Команда 0x00-0x1f:
Чтение ОЗУ контроллера клавиатуры
(только для AMIBIOS) Псевдонимы для 0x20-0x3f.
Команда 0x20-0x3f:
Чтение ОЗУ контроллера клавиатуры
Последние шесть бит команды определяют адрес ОЗУ для чтения.
Прочитанные данные помещаются в выходной буфер и могут быть прочитаны
путем чтения порта 0x60.
В системах MCA контроллеры типа 1 могут получить доступ ко всем 32 местоположениям;
контроллеры типа 2 могут получить доступ только к адресам 0, 0x13-0x17, 0x1d, 0x1f.Местоположение 0 — это
Командный байт, см. выше.Местоположение 0x13 (на MCA) не равно нулю, если включен пароль.
Местоположение 0x14 (на MCA) отлично от нуля, если пароль совпал.
Ячейки 0x16-0x17 (на MCA) дают два кода сборки, которые нужно отбросить
во время подбора пароля.
Команда 0x40-0x5f:
Запись контроллера клавиатуры RAM
(только для AMIBIOS) Псевдонимы для 0x40-0x5f.
Команда 0x60-0x7f:
Запись ОЗУ контроллера клавиатуры
Команда 0x90-0x93:
Префиксы маршрутизации Synaptics
Добавьте к команде мыши PS/2 префикс одного из них, чтобы поговорить с одним из не более четырех
мультиплексированные устройства. См. также
мультиплексное рукопожатие ниже.К сожалению, VIA также использует эту команду:
Команда 0x90-0x9f:
Запись Порт13-Порт10
(VIA VT82C42) Запись младшего полубайта в порты 13-10.
Команда 0xa0:
Читать авторское право
На некоторых контроллерах клавиатуры: строка авторских прав ASCIZ.
(возможно, просто NUL) доступен для чтения через порт 0x60.
В других системах: никакого эффекта, команда игнорируется.
Команда 0xa1:
Прочитать микропрограмму контроллера версии
На некоторых контроллерах клавиатуры: доступен один байт ASCII.
для чтения через порт 0x60.
В других системах: никакого эффекта, команда игнорируется.
Команда 0xa2:
Скорость переключения
(В системах ISA/EISA с AMI BIOS)
Сбросьте линии контроллера клавиатуры P22 и P23 на низкий уровень.
Эти линии можно использовать для переключения скоростей с помощью контроллера клавиатуры.
По завершении контроллер клавиатуры отправляет в систему один мусорный байт.
Команда 0xa3:
Скорость переключения
(В системах ISA/EISA с AMI BIOS)
Установите линии контроллера клавиатуры P22 и P23 в высокий уровень.
Эти линии можно использовать для переключения скоростей с помощью контроллера клавиатуры.
По завершении контроллер клавиатуры отправляет в систему один мусорный байт.(Compaq BIOS: включить управление скоростью системы.)
Команда 0xa4:
Проверьте, установлен ли пароль
В системах MCA:
Вернуть 0xf1 (через порт 0x60), если пароль не установлен,
вернуть 0xfa, когда пароль был установлен.
Некоторые системы без пароля всегда возвращают 0xf1.(в системах ISA/EISA с AMI BIOS)
Напишите Часы = Низкий.(Compaq BIOS: переключение скорости.)
Команда 0xa5:
Загрузить пароль
В системах MCA:
Загрузите пароль, написав строку с нулевым завершением в порту 0x60.
Строка имеет формат сканкода.(в системах ISA/EISA с AMI BIOS)
Напишите Часы = Высокий.(Compaq BIOS: специальное чтение P2 с заменой битов 4 и 5:
Бит 5: 0: 9-битная клавиатура, 1: 11-битная клавиатура.
Бит 4: 0: прерывание outp-buff-full отключено, 1: включено.)
Команда 0xa6:
Проверить пароль
В системах MCA:
Когда установлен пароль:
Проверьте пароль, сопоставив нажатия клавиш с сохраненным паролем.
Включить клавиатуру после успешного совпадения.(в системах ISA/EISA с AMI BIOS)
Читать Часы. 0: Низкий. 1: Высокий.
Команда 0xa7:
Отключить порт мыши
В системах MCA: отключите мышь (вспомогательное устройство)
установив низкий уровень на его тактовой линии и установив
бит 5
принадлежащий
Командный байт. Теперь P23 = 1.(в системах ISA/EISA с AMI BIOS)
Напишите Кэш Плохой.
Команда 0xa8:
Включить порт мыши
В системах MCA: включите мышь (вспомогательное устройство),
Чисто
бит 5 из
Командный байт. Теперь P23 = 0.(в системах ISA/EISA с AMI BIOS)
Напишите Кэш Хорошо.
Команда 0xa9:
Тестовый порт мыши
В MCA и других системах: проверьте последовательный канал между
контроллер клавиатуры и мышь. Результат можно прочитать с порта 0x60.
0: ОК.
1: Линия часов мыши застряла на низком уровне.
2: Линия часов мыши застряла на высоком уровне.
3: Линия данных мыши зависла на низком уровне.
4: Линия данных мыши зависла на высоком уровне.
0xff: Нет мыши.(в системах ISA/EISA с AMI BIOS)
Прочтите Кэш Плохой или Хороший. 0: Плохо. 1: Хорошо.
Команда 0xaa:
Самопроверка
Выполните самопроверку. Возвращает 0x55, если все в порядке, 0xfc, если нет.
Команда 0xab:
Тест интерфейса
Проверьте последовательный канал между контроллером клавиатуры и клавиатурой.
Результат можно прочитать с порта 0x60.
0: ОК.
1: Линия синхронизации клавиатуры зависла на низком уровне.
2: Линия синхронизации клавиатуры зависла на высоком уровне.
3: Линия данных клавиатуры зависла на низком уровне.
4: Линия данных клавиатуры зависла на высоком уровне.
0xff: Общая ошибка.
Команда 0xac:
Диагностический дамп
(В некоторых системах)
Прочитать из порта 0x60 шестнадцать байт ОЗУ контроллера клавиатуры,
порты вывода и ввода, а также слово состояния программы контроллера.
Команда 0xad:
Отключить клавиатуру
Отключите линию часов клавиатуры и установите
бит 4
принадлежащий
Командный байт.
Любая команда клавиатуры снова включает клавиатуру.
Команда 0xae:
Включить клавиатуру
Включите линию часов клавиатуры и снимите
бит 4
принадлежащий
Командный байт.
Команда 0xaf:
Читать версию клавиатуры
(Премия БИОС, ВИА)
Команда 0xb0-0xb5,0xb8-0xbd:
Сброс/установка линии контроллера клавиатуры
АМИ БИОС:
Команды 0xb0-0xb5 сбрасывают линию контроллера клавиатуры на низкий уровень.
Команды 0xb8-0xbd устанавливают высокий уровень соответствующей линии контроллера клавиатуры.
Это линии P10, P11, P12, P13, P22 и P23 соответственно.
(В случае линий P10, P11, P22, P23 это только в системах ISA/EISA.)
По завершении контроллер клавиатуры отправляет в систему один мусорный байт.ЧЕРЕЗ БИОС:
Команды 0xb0-0xb7 записывают 0 в строки P10, P11, P12, P13, P22, P23, P14, P15.
Команды 0xb8-0xbf записывают 1 в строки P10, P11, P12, P13, P22, P23, P14, P15.
Команда 0xc0:
Чтение входного порта
Читать
входной порт (P1),
и сделать полученный байт доступным для чтения с порта 0x60.
Команда 0xc1:
Непрерывный опрос входного порта, низкий уровень
(только системы MCA с контроллером типа 1)
Непрерывно копируйте биты 3-0 входного порта для чтения из битов 7-4.
порта 0x64, пока не будет получена другая команда контроллера клавиатуры.
Команда 0xc2:
Непрерывный опрос входного порта, высокий уровень
(только системы MCA с контроллером типа 1)
Непрерывно копируйте биты 7-4 входного порта для чтения из битов 7-4
порта 0x64, пока не будет получена другая команда контроллера клавиатуры.
Команда 0xc8:
Разблокировать линии контроллера клавиатуры P22 и P23
(В системах ISA/EISA с AMI BIOS)
После этой команды система может сделать линии P22 и P23 низкими/высокими.
с использованием
команда 0xd1.
Команда 0xc9:
Блокировать линии контроллера клавиатуры P22 и P23
(В системах ISA/EISA с AMI BIOS)
После этой команды система не может сделать линии P22 и P23 низкими/высокими.
с использованием
команда 0xd1.
Команда 0xca:
Чтение режима контроллера клавиатуры
(АМИ БИОС, ЧЕРЕЗ)
Считайте режим контроллера клавиатуры в бит 0 порта 0x60.
0: интерфейс ISA (AT).
1: интерфейс PS/2 (MCA).
Команда 0xcb:
Запись режима контроллера клавиатуры
(АМИ БИОС)
Запишите режим контроллера клавиатуры в бит 0 порта 0x60.
0: интерфейс ISA (AT).
1: интерфейс PS/2 (MCA).
(Сначала прочитайте режим с помощью команды 0xca, затем измените только
последний бит, затем запишите режим с помощью этой команды. )
Команда 0xd0:
Чтение выходного порта
Читать
выходной порт (P2)
и поместите результат в выходной буфер.
Используйте только тогда, когда выходной буфер пуст.
Команда 0xd1:
Запись выходного порта
Написать
выходной порт (P2).
Обратите внимание, что запись 0 в бит 0 вызовет аппаратный сброс.(Compaq: биты скорости системы не установлены. Используйте для этого команды 0xa1-0xa6.)
Команда 0xd2:
Запись буфера вывода с клавиатуры
(МСА)
Запишите выходной буфер контроллера клавиатуры с помощью байта
затем записывается в порт 0x60 и действует так, как если бы это были данные клавиатуры.
(В частности, поднимите IRQ1, когда
бит 0
принадлежащий
Командный байт говорит об этом.)
Команда 0xd3:
Запись выходного буфера мыши
(МСА)
Запишите выходной буфер контроллера клавиатуры с помощью байта
затем записывается в порт 0x60 и действует так, как если бы это были данные мыши.
(В частности, поднимите IRQ12, когда
бит 1
принадлежащий
Командный байт говорит об этом.)Не все системы поддерживают это.
Синаптическое мультиплексирование
С другой стороны, Synaptics (см.
ps2-мультиплексор.PDF)
использует эту команду как рукопожатие между драйвером и контроллером:
если драйвер дает эту команду три раза, с байтами данных
0xf0, 0x56, 0xa4 соответственно и читает 0xf0, 0x56, но не 0xa4
обратно из выходного буфера мыши, то драйвер знает, что
контроллер поддерживает мультиплексирование портов Synaptics AUX, а контроллер
знает, что ему не нужно делать обычную подделку данных, и идет
в мультиплексный режим. Третий прочитанный байт — это версия
Стандарт синаптики.Имеется соответствующая последовательность деактивации, а именно
0xf0, 0x56, 0xa5. (И снова последний байт меняется на
номер версии поддерживаемого стандарта.)
Эта последняя последовательность работает как в мультиплексном режиме, так и в устаревшем режиме.
и, таким образом, может использоваться для определения наличия этой функции
не активируя его.См. также команды мультиплексора
0x90-0x93.Для некоторых ноутбуков сообщалось, что бит 3 каждого третьего
байт мыши устанавливается равным 1 (как это было бы со стандартным
3-байтовые пакеты мыши). Это может превратить 0xf0, 0x56, 0xa4 в
0xf0, 0x56, 0xac и привести к неправильному обнаружению мультиплексирования Synaptics.
(для версии 10.12).
Команда 0xd4:
Напишите на мышку
(МСА)
Следующий байт, записанный в порт 0x60, передается на мышь.
Команда 0xdd:
Отключить адресную строку A20
(ХП Вектра)
Команда 0xdf:
Включить адресную строку A20
(ХП Вектра)
Команда 0xe0:
Чтение тестовых входных данных
Эта команда делает статус
Доступны тестовые входы T0 и T1
для чтения через порт 0x60 в битах 0 и 1 соответственно.
Используйте только тогда, когда выходной порт пуст.
Команда 0xf0-0xff:
Бит импульсного выхода
Биты 3-0
выходной порт P2
контроллера клавиатуры может иметь низкий импульс в течение примерно 6 секунд.
Биты 3-0 этой команды определяют биты выходного порта, которые должны быть импульсными.
0: Бит должен быть импульсным.
1: Бит не следует изменять.
Единственная полезная версия этой команды — Command 0xfe.
(Для MCA замените 3-0 на 1-0 выше.)
Команда 0xfe:
Сброс системы
Импульсный бит 0
выходной порт P2
контроллера клавиатуры. Это сбросит ЦП.
Это имеет следующий вид.
бит 7 | Блокировка клавиатуры | 0: заблокировано, 1: не заблокировано |
бит 6 | Дисплей | 0: CGA, 1: MDA |
бит 5 | Производственная перемычка | 0: установлена, 1: не установлена |
с перемычкой BIOS запускает бесконечный диагностический цикл | ||
бит 4 | ОЗУ на материнской плате | 0: 512 КБ, 1: 256 КБ |
бит 3 | Не используется в системах ISA, EISA, PS/2 | |
Можно настроить для переключения часов | ||
бит 2 | Не используется в системах ISA, EISA, PS/2 | |
Можно настроить для переключения часов | ||
Питание клавиатуры | PS/2 MCA: 0: нормальное питание клавиатуры, 1: нет питания | |
бит 1 | Данные мыши в | Не используется в ISA |
бит 0 | Данные клавиатуры в | Не используется в ISA |
Очевидно, что входными являются только биты 1-0.
Из вышеперечисленного исходная IBM AT использовала биты 7–4, а системы PS/2 MCA
используйте только биты 2-0.
Если в приведенных выше строках используются P10, P11 и т. д., они относятся к контактам
соответствует биту 0, биту 1 и т. д. порта P1.
Это имеет следующий вид.
бит 7 | Данные клавиатуры | данные на клавиатуру |
бит 6 | Часы клавиатуры | |
бит 5 | IRQ12 | 0: IRQ12 не активно, 1: активно |
бит 4 | IRQ1 | 0: IRQ1 не активен, 1: активен |
бит 3 | Часы мыши | Не используется в ISA |
бит 2 | Данные мыши | Не используется в ISA. Данные для мыши |
бит 1 | A20 | 0: линия A20 принудительно включена 0, 1: A20 включена |
бит 0 | Сброс | 0: сброс ЦП, 1: нормальный |
Если в приведенных выше строках используются P20, P21 и т. д., они относятся к контактам
соответствующий биту 0, биту 1 и т. д. порта P2.
бит 0
Клавиатурные часы (ввод).
бит 1
(AT) Данные клавиатуры (ввод).
(PS/2) Часы мыши (вход).
Далее
Предыдущий
Содержание
скан-кодов клавиатуры: контроллер клавиатуры AT
скан-кодов клавиатуры: контроллер клавиатуры AT
Следующий
Предыдущий
Содержание
Пользовательская программа может взаимодействовать с контроллером клавиатуры на материнской плате.
Контроллер клавиатуры снова может общаться с клавиатурой.
При нажатии клавиши клавиатура отправляет соответствующий
код сканирования клавиатуры на контроллер клавиатуры и контроллер клавиатуры
переводит это и прерывает ЦП, позволяя ЦП прочитать результат.
Подробнее: при нажатии клавиши клавиатура отправляет
стартовый бит (младший), за которым следуют 8 битов данных для скан-кода клавиатуры
ключа (сначала наименее значащий), за которым следует нечетный бит четности,
за которым следует стоповый бит (высокий).
Контроллер клавиатуры считывает данные и проверяет четность.
Если неверно, запрашивается повторная передача. Если снова неправильно
сообщается об ошибке четности.
Если время между запросом на отправку и началом передачи больше
чем 15 мс, или если одиннадцать битов не получены в течение 2 мс,
сообщается о тайм-ауте.
В обоих случаях (ошибка четности или тайм-аут) байту данных присваивается значение 0xff.
Контроллер клавиатуры имеет три 8-битных регистра, участвующих в
связь с ЦП: его входной буфер, который может быть записан
ЦП, записав порт 0x60 или порт 0x64; его выходной буфер,
который может быть прочитан ЦП путем чтения из порта 0x60; и
регистр состояния, который может быть прочитан процессором через порт 0x64.
Если ЦП записывает в порт 0x64, этот байт интерпретируется как байт команды.
Если ЦП записывает в порт 0x60, байт интерпретируется как байт данных.
Контроллер клавиатуры имеет два 8-битных порта ввода-вывода, задействованных в
связь с клавиатурой:
входной порт P1 (прием ввода с клавиатуры)
и
выходной порт P2 (для отправки
к клавиатуре).
Контроллер клавиатуры имеет 8-битный регистр состояния.
ЦП может проверить его, прочитав порт 0x64.
(Обычно имеет значение 0x14: клавиатура не заблокирована, самопроверка завершена.)
ПАРЕ | ТИМ | ВСПОМОГАТЕЛЬНЫЙ | КЕЙЛ | К/Д | СИСФ | ИНПБ | ВНЕШНИЙ |
Бит 7:
Ошибка четности
0: ОК.
1: Ошибка четности с последним байтом.
Бит 6:
Тайм-аут
0: ОК.
1: Тайм-аут.
В системах PS/2: общий тайм-аут.
В системах AT: тайм-аут при передаче с клавиатуры на контроллер клавиатуры.
Возможна ошибка четности (в этом случае установлены оба бита 6 и 7).
Бит 5:
Дополнительный выходной буфер заполнен
В системах PS/2:
Бит 0 сообщает, будет ли допустимо чтение из порта 0x60.
Если он действителен, этот бит 5 сообщает, какие данные будут считаны из порта 0x60.
0: Данные клавиатуры. 1: данные мыши.
В системах AT:
0: ОК.
1: Тайм-аут при передаче от контроллера клавиатуры к клавиатуре.
Это может указывать на отсутствие клавиатуры.
Бит 4:
Блокировка клавиатуры
0: Заблокировано.
1: Не заблокирован.
Бит 3:
Команда/данные
0: последней записью во входной буфер были данные (записанные через порт 0x60).
1: Последняя запись во входной буфер была командой (записанной через порт 0x64).
(Этот бит также называется адресной строкой A2.)
Бит 2:
Системный флаг
Устанавливается в 0 после сброса при включении питания.
Установите значение 1 после успешного завершения самотестирования контроллера клавиатуры.
(Базовый контрольный тест, BAT).
Также можно установить командой (см.
ниже).
Бит 1:
Состояние входного буфера
0: Буфер ввода пуст, запись возможна.
1: Входной буфер заполнен, пока не записывайте.
Бит 0:
Состояние выходного буфера
0: Буфер вывода пуст, пока не читается.
1: Буфер вывода заполнен, можно читать.
(В ситуации с PS/2 бит 5 указывает, доступны ли данные.
с клавиатуры или мыши.)
Этот бит очищается при чтении порта 0x60.
Контроллер клавиатуры имеет некоторое количество оперативной памяти, например 32 байта,
доступ к которым может получить ЦП. Наиболее важной частью этой оперативной памяти является
байт 0, байт команды контроллера (CCB). Он может быть прочитан/записан
запись 0x20/0x60 в порт 0x64, а затем чтение/запись байта данных
из/в порт 0x60.
Этот байт имеет следующую структуру.
0 | XLATE | МЭ | КЭ | ИГНЛК | СИСФ | МИЭ | КИЭ |
Бит 7:
Неиспользованный
Всегда 0.
Бит 6:
Перевести
0: Нет перевода.
1: Переведите скан-коды клавиатуры, используя
таблица переводов приведена выше.
Контроллеры MCA типа 2 не могут установить этот бит в 1. В этом случае
Преобразование скан-кода задается с помощью клавиатурной команды 0xf0 на порт 0x60.
Бит 5:
Включить мышь
В системе EISA или PS/2: 0: включить мышь. 1: отключить мышь
путем понижения уровня тактовой линии.
В системе ISA: «Режим ПК»: 0: использовать 11-битные коды, проверять четность и выполнять
преобразование сканирования.
1: используйте коды 8086, не проверяйте четность и не выполняйте преобразование сканирования.
Бит 4:
Клавиатура включена
0: включить клавиатуру. 1: отключить клавиатуру
путем понижения уровня тактовой линии.
Бит 3:
Игнорировать блокировку клавиатуры
Для PS/2: не используется, всегда 0.
Для АТ:
0: Нет действий. 1: Сила
бит 4 регистра состояния
на 1, «не заблокирован». Это используется для тестирования клавиатуры после включения питания.
Возможно только на старых материнских платах.
Бит 2:
Системный флаг
Этот бит показан в
бит 2 регистра состояния.
«Холодная перезагрузка» — это перезагрузка с нулевым значением этого бита.
«Теплая перезагрузка» — это перезагрузка, в которой этот бит установлен в единицу (BAT уже завершен).
Это повлияет на тесты и инициализации, выполняемые POST.
Бит 1:
Включение прерывания мыши
В системе ISA: не используется, всегда 0. В системе EISA или PS/2:
0: Не использовать прерывания мыши.
1: Отправить запрос на прерывание IRQ12, когда выходной буфер мыши заполнен.
Бит 0:
Включение прерывания клавиатуры
0: Не использовать прерывания клавиатуры.
1: отправить запрос прерывания IRQ1, когда буфер вывода клавиатуры заполнен.
Когда прерывания не используются, ЦП должен опросить биты 0 (и 5)
регистра состояния.
ЦП может управлять контроллером клавиатуры, записывая порт 0x64.
Полезными, общедоступными клавиатурными командами являются:
0x20 | Чтение байта команды контроллера клавиатуры |
0x60 | Запись командного байта контроллера клавиатуры |
0xaa | Самопроверка |
0xab | Тест интерфейса |
0xad | Отключить клавиатуру |
0xae | Включить клавиатуру |
0xc0 | Чтение входного порта |
0xd0 | Чтение выходного порта |
0xd1 | Выходной порт записи |
0xe0 | Чтение тестовых входных данных |
0xfe | Сброс системы |
Полезные общедоступные команды мыши:
0xa7 | Отключить порт мыши |
0xa8 | Включить порт мыши |
0xa9 | Тестовый порт мыши |
0xd4 | Запись на мышь |
Непонятные, вероятно устаревшие, команды:
0x00-0x1f | Чтение ОЗУ контроллера клавиатуры |
0x20-0x3f | Чтение оперативной памяти контроллера клавиатуры |
0x40-0x5f | Запись ОЗУ контроллера клавиатуры |
0x60-0x7f | Запись ОЗУ контроллера клавиатуры |
0xa0 | Чтение авторских прав |
0xa1 | Чтение версии прошивки |
0xa2 | Скорость переключения |
0xa3 | Скорость переключения |
0xa4 | Проверить, установлен ли пароль |
0xa5 | Загрузить пароль |
0xa6 | Проверить пароль |
0xac | Диагностический дамп |
0xaf | Чтение версии клавиатуры |
0xb0-0xb5 | Сброс линии контроллера клавиатуры |
0xb8-0xbd | Установить линию контроллера клавиатуры |
0xc1 | Непрерывный опрос входного порта, низкий уровень |
0xc2 | Непрерывный опрос входного порта, высокий уровень |
0xc8 | Разблокировать линии P22 и P23 |
0xc9 | Блок-линии P22 и P23 |
0xca | Чтение режима контроллера клавиатуры |
0xcb | Запись режима контроллера клавиатуры |
0xd2 | Запись буфера вывода с клавиатуры |
0xd3 | Запись выходного буфера мыши |
0xdd | Отключить адресную строку A20 |
0xdf | Включить адресную строку A20 |
0xf0-0xff | Бит импульсного выхода |
Команда 0x00-0x1f:
Чтение ОЗУ контроллера клавиатуры
(только AMIBIOS) Псевдонимы для 0x20-0x3f.
Команда 0x20-0x3f:
Чтение ОЗУ контроллера клавиатуры
Последние шесть бит команды определяют адрес ОЗУ для чтения.
Прочитанные данные помещаются в выходной буфер и могут быть прочитаны
путем чтения порта 0x60.
В системах MCA контроллеры типа 1 могут получить доступ ко всем 32 местоположениям;
контроллеры типа 2 могут получить доступ только к адресам 0, 0x13-0x17, 0x1d, 0x1f.
Местоположение 0
Командный байт, см. выше.
Местоположение 0x13 (на MCA) не равно нулю, если включен пароль.
Местоположение 0x14 (на MCA) отлично от нуля, если пароль совпал.
Ячейки 0x16-0x17 (на MCA) дают два кодовых кода, которые нужно отбросить
во время подбора пароля.
Команда 0x40-0x5f:
Запись контроллера клавиатуры RAM
(только AMIBIOS) Псевдонимы для 0x40-0x5f.
Команда 0x60-0x7f:
Запись контроллера клавиатуры RAM
Команда 0xa0:
Читать авторское право
На некоторых контроллерах клавиатуры: строка авторских прав ASCIZ
(возможно, просто NUL) доступен для чтения через порт 0x60.
В других системах: никакого эффекта, команда игнорируется.
Команда 0xa1:
Прочитать микропрограмму контроллера версии
На некоторых контроллерах клавиатуры: доступен один байт ASCII
для чтения через порт 0x60.
В других системах: никакого эффекта, команда игнорируется.
Команда 0xa2:
Скорость переключения
(в системах ISA/EISA с AMI BIOS)
Сбросьте линии контроллера клавиатуры P22 и P23 на низкий уровень.
Эти линии можно использовать для переключения скоростей с помощью контроллера клавиатуры.
По завершении контроллер клавиатуры отправляет в систему один мусорный байт.
Команда 0xa3:
Скорость переключения
(в системах ISA/EISA с AMI BIOS)
Установите линии контроллера клавиатуры P22 и P23 в высокий уровень.
Эти линии можно использовать для переключения скоростей с помощью контроллера клавиатуры.
По завершении контроллер клавиатуры отправляет в систему один мусорный байт.
(Compaq BIOS: включить управление скоростью системы. )
Команда 0xa4:
Проверьте, установлен ли пароль
В системах MCA:
Вернуть 0xf1 (через порт 0x60), если пароль не установлен,
вернуть 0xfa, когда пароль был установлен.
Некоторые системы без пароля всегда возвращают 0xf1.
(в системах ISA/EISA с AMI BIOS)
Напишите Часы = Низкий.
(Compaq BIOS: переключение скорости.)
Команда 0xa5:
Загрузить пароль
В системах MCA:
Загрузите пароль, написав строку с нулевым завершением в порту 0x60.
Строка имеет формат сканкода.
(в системах ISA/EISA с AMI BIOS)
Напишите Часы = Высокий.
(Compaq BIOS: специальное чтение P2 с заменой битов 4 и 5:
Бит 5: 0: 9-битная клавиатура, 1: 11-битная клавиатура.
Бит 4: 0: прерывание outp-buff-full отключено, 1: включено.)
Команда 0xa6:
Проверить пароль
В системах MCA:
Когда установлен пароль:
Проверьте пароль, сопоставив нажатия клавиш с сохраненным паролем.
Включить клавиатуру после успешного совпадения.
(в системах ISA/EISA с AMI BIOS)
Читать Часы. 0: Низкий. 1: Высокий.
Команда 0xa7:
Отключить порт мыши
В системах MCA: отключить мышь (вспомогательное устройство)
установив низкий уровень на его тактовой линии и установив
бит 5
принадлежащий
Командный байт. Теперь P23 = 1.
(в системах ISA/EISA с AMI BIOS)
Напишите Кэш Плохой.
Команда 0xa8:
Включить порт мыши
В системах MCA: включить мышь (вспомогательное устройство),
Чисто
бит 5 из
Командный байт. Теперь P23 = 0.
(в системах ISA/EISA с AMI BIOS)
Напишите Кэш Хорошо.
Команда 0xa9:
Тестовый порт мыши
В MCA и других системах: проверьте последовательный канал между
контроллер клавиатуры и мышь. Результат можно прочитать с порта 0x60.
0: ОК.
1: Линия часов мыши застряла на низком уровне.
2: Линия часов мыши застряла на высоком уровне.
3: Линия данных мыши зависла на низком уровне.
4: Линия данных мыши зависла на высоком уровне.
0xff: Нет мыши.
(в системах ISA/EISA с AMI BIOS)
Прочтите Кэш Плохой или Хороший. 0: Плохо. 1: Хорошо.
Команда 0xaa:
Самопроверка
Выполнить самопроверку. Возвращает 0x55, если все в порядке, 0xfc, если нет.
Команда 0xab:
Тест интерфейса
Проверка последовательного канала между контроллером клавиатуры и клавиатурой.
Результат можно прочитать с порта 0x60.
0: ОК.
1: Линия синхронизации клавиатуры зависла на низком уровне.
2: Линия синхронизации клавиатуры зависла на высоком уровне.
3: Линия данных клавиатуры зависла на низком уровне.
4: Линия данных клавиатуры зависла на высоком уровне.
0xff: Общая ошибка.
Команда 0xac:
Диагностический дамп
(в некоторых системах)
Прочитать из порта 0x60 шестнадцать байт ОЗУ контроллера клавиатуры,
порты вывода и ввода, а также слово состояния программы контроллера.
Команда 0xad:
Отключить клавиатуру
Отключить линию часов клавиатуры и установить
бит 4
принадлежащий
Командный байт.
Любая команда клавиатуры снова включает клавиатуру.
Команда 0xae:
Включить клавиатуру
Включить линию часов клавиатуры и очистить
бит 4
принадлежащий
Командный байт.
Команда 0xaf:
Читать версию клавиатуры
(Премиум БИОС, VIA)
Команда 0xb0-0xb5,0xb8-0xbd:
Сброс/установка линии контроллера клавиатуры
АМИ БИОС:
Команды 0xb0-0xb5 сбрасывают линию контроллера клавиатуры на низкий уровень.
Команды 0xb8-0xbd устанавливают высокий уровень соответствующей линии контроллера клавиатуры.
Это линии P10, P11, P12, P13, P22 и P23 соответственно.
(В случае линий P10, P11, P22, P23 это только в системах ISA/EISA.)
По завершении контроллер клавиатуры отправляет в систему один мусорный байт.
ЧЕРЕЗ БИОС:
Команды 0xb0-0xb7 записывают 0 в строки P10, P11, P12, P13, P22, P23, P14, P15.
Команды 0xb8-0xbf записывают 1 в строки P10, P11, P12, P13, P22, P23, P14, P15.
Команда 0xc0:
Чтение входного порта
Читать
входной порт (P1),
и сделать полученный байт доступным для чтения с порта 0x60.
Команда 0xc1:
Непрерывный опрос входного порта, низкий уровень
(системы MCA только с контроллером типа 1)
Непрерывно копируйте биты 3-0 входного порта для чтения из битов 7-4.
порта 0x64, пока не будет получена другая команда контроллера клавиатуры.
Команда 0xc2:
Непрерывный опрос входного порта, высокий уровень
(системы MCA только с контроллером типа 1)
Непрерывно копируйте биты 7-4 входного порта для чтения из битов 7-4
порта 0x64, пока не будет получена другая команда контроллера клавиатуры.
Команда 0xc8:
Разблокировать линии контроллера клавиатуры P22 и P23
(в системах ISA/EISA с AMI BIOS)
После этой команды система может сделать линии P22 и P23 низкими/высокими.
с использованием
команда 0xd1.
Команда 0xc9:
Блокировать линии контроллера клавиатуры P22 и P23
(в системах ISA/EISA с AMI BIOS)
После этой команды система не может сделать линии P22 и P23 низкими/высокими.
с использованием
команда 0xd1.
Команда 0xca:
Чтение режима контроллера клавиатуры
(АМИ БИОС, ЧЕРЕЗ)
Считайте режим контроллера клавиатуры в бит 0 порта 0x60.
0: интерфейс ISA (AT).
1: интерфейс PS/2 (MCA).
Команда 0xcb:
Запись режима контроллера клавиатуры
(БИОС АМИ)
Запишите режим контроллера клавиатуры в бит 0 порта 0x60.
0: интерфейс ISA (AT).
1: интерфейс PS/2 (MCA).
(Сначала прочитайте режим с помощью команды 0xca, затем измените только
последний бит, затем запишите режим с помощью этой команды.)
Команда 0xd0:
Чтение выходного порта
Читать
выходной порт (P2)
и поместите результат в выходной буфер.
Используйте только тогда, когда выходной буфер пуст.
Команда 0xd1:
Запись выходного порта
Напишите
выходной порт (P2).
Обратите внимание, что запись 0 в бит 0 вызовет аппаратный сброс.
(Compaq: биты скорости системы не установлены. Используйте для этого команды 0xa1-0xa6. )
Команда 0xd2:
Запись буфера вывода с клавиатуры
(МСА)
Запишите выходной буфер контроллера клавиатуры с помощью байта
затем записывается в порт 0x60 и действует так, как если бы это были данные клавиатуры.
(В частности, поднимите IRQ1, когда
бит 0
принадлежащий
Командный байт говорит об этом.)
Команда 0xd3:
Запись выходного буфера мыши
(МСА)
Запишите выходной буфер контроллера клавиатуры с помощью байта
затем записывается в порт 0x60 и действует так, как если бы это были данные мыши.
(В частности, поднимите IRQ12, когда
бит 1
принадлежащий
Командный байт говорит об этом.)
Команда 0xd4:
Напишите на мышку
(МСА)
Следующий байт, записанный в порт 0x60, передается на мышь.
Команда 0xdd:
Отключить адресную строку A20
(ХП Вектра)
Команда 0xdf:
Включить адресную строку A20
(ХП Вектра)
Команда 0xe0:
Чтение тестовых входных данных
Эта команда делает статус
Доступны тестовые входы T0 и T1
для чтения через порт 0x60 в битах 0 и 1 соответственно.
Используйте только тогда, когда выходной порт пуст.
Команда 0xf0-0xff:
Бит импульсного выхода
Биты 3-0
выходной порт P2
контроллера клавиатуры может иметь низкий импульс в течение примерно 6 секунд.
Биты 3-0 этой команды определяют биты выходного порта, которые должны быть импульсными.
0: Бит должен быть импульсным.
1: Бит не следует изменять.
Единственная полезная версия этой команды — Command 0xfe.
(Для MCA замените 3-0 на 1-0 выше.)
Команда 0xfe:
Сброс системы
Импульсный бит 0
выходной порт P2
контроллера клавиатуры. Это сбросит ЦП.
Это имеет следующий вид.
бит 7 | Блокировка клавиатуры | 0: заблокировано, 1: не заблокировано |
бит 6 | Дисплей | 0: CGA, 1: MDA |
бит 5 | Производственная перемычка | 0: установлена, 1: не установлена |
с перемычкой BIOS запускает бесконечный диагностический цикл | ||
бит 4 | ОЗУ на материнской плате | 0: 512 КБ, 1: 256 КБ |
бит 3 | Не используется в системах ISA, EISA, PS/2 | |
Можно настроить для переключения часов | ||
бит 2 | Не используется в системах ISA, EISA, PS/2 | |
Можно настроить для переключения часов | ||
Питание клавиатуры | PS/2 MCA: 0: нормальное питание клавиатуры, 1: нет питания | |
бит 1 | Данные мыши в | Не используется в ISA |
бит 0 | Данные клавиатуры в | Не используется в ISA |
Очевидно, что входными являются только биты 1-0.
Из вышеперечисленного исходная IBM AT использовала биты 7–4, а системы PS/2 MCA
используйте только биты 2-0.
Если в приведенных выше строках используются P10, P11 и т. д., они относятся к контактам
соответствует биту 0, биту 1 и т. д. порта P1.
Это имеет следующий вид.
бит 7 | Данные клавиатуры | данные на клавиатуру |
бит 6 | Часы клавиатуры | |
бит 5 | IRQ12 | 0: IRQ12 не активно, 1: активно |
бит 4 | IRQ1 | 0: IRQ1 не активен, 1: активен |
бит 3 | Часы мыши | Не используется в ISA |
бит 2 | Данные мыши | Не используется в ISA. Данные для мыши |
бит 1 | A20 | 0: линия A20 принудительно включена 0, 1: A20 включена |
бит 0 | Сброс | 0: сброс ЦП, 1: нормальный |
Если в приведенных выше строках используются P20, P21 и т.