Данному образовательному сайту пришлось несколько раз менять свое имя. С 2022 года доступ к нему обеспечивается по URL
emc.orgfree.com

emc.km.ru (2001-2007) ==> educomp.org.ru (2007-2011) ==> educomp.runnet.ru (2011-2021) ==> emc.orgfree.com (2022-...)
Более подробно об истории сайта можно прочитать здесь.


Учебные модели компьютера



Модели (software):

"Е14" (parallel !!!)
"S9PU" (parallel)

Модели (hardware):






Награды сайта
Награды сайта 2005

Учебная модель ЭВМ: контроллер клавиатуры

Контроллер клавиатуры представляет собой модель внешнего устройства, принимающего ASCII-коды от клавиатуры ПЭВМ.

Символы помещаются последовательно в буфер символов, размер которого установлен равным 50 символам, и отображаются в окне обозревателя.

В состав контроллера клавиатуры входят три программно-доступных регистра:

  • DR (адрес 0) — регистр данных;
  • CR (адрес 1) — регистр управления, определяет режимы работы контроллера и содержит следующие флаги (устанавливаются и сбрасываются программно):
    • Е — флаг разрешения приема кодов в буфер, при Е = 0 контроллер игнорирует нажатие на клавиатуре, прием кодов в буфер не производится. На считывание кодов из буфера флаг Е влияния не оказывает;
    • I — флаг разрешения прерывания, разрешает формирование запроса на прерывание от клавиатуры в момент установки флага готовности Rdy
    • S — флаг режима посимвольного ввода. При S = 0 флаг готовности Rdy формируется только после нажатия кнопки Завершить ввод в окне обозревателя клавиатуры, при S = 1 – после каждого нажатия клавиши;
  • SR (адрес 2) — регистр состояния, содержит два флага, устанавливаемые контроллером «аппаратно»:
    • Err — флаг ошибки устанавливается при вводе в буфер 50-го символа, сбрасывается программно;
    • Rdy — флаг готовности, устанавливается в зависимости от значения флага S, сбрасывается «аппаратно» после выполнения команды ввода из регистра DR – считывание символа из буфера.

Контроллер клавиатуры выполняет четыре команды при выводе соответствующих кодов по адресу 1:

Десятичное числоКоманда
101 очистить буфер (эквивалентно нажатию кнопки Очистить буфер)
102 сбросить флаг Err в регистре SR
103 установить в «1» флаг S в регистре CR
104 сбросить в «0» флаг S в регистре CR

Пример программирования контроллера клавиатуры в режиме посимвольного ввода:

МеткаКомандаПримечание
 RD #10; установить флаг Е в регистре CR
 OUT 1; - включить клавиатуру;
 OUT 11; заодно включаем и дисплей
 RD #103; передаём в контроллер код команды
 OUT 1 ; Установить S в «1» (режим посимвольного вода);
M1:   IN 2; проверка нажатия –  флага готовности Rdy
 JZ M1 ; ожидание Rdy  = 1;
 IN 0 ; считывание введённого символа из буфера в аккумулятор;
 OUT 10 ; передача ASCII-кода (например) на символьный дисплей;
 JMP M1 ; возврат к ожиданию следующего нажатия.

Внимание! Контроллер клавиатуры с установленным битом Е будет реагировать на нажатие клавиш только когда окно обозревателя  Контроллер клавиатуры активно.


© Жмакин Анатолий Петрович (Курский государственный университет). anatoly.zhmakin@gmail.com

Оформление Web-страницы - Е.А.Еремин, 2010


Автор сайта - Евгений Александрович Еремин (Пермский государственный педагогический университет). e_eremin@yahoo.com


Free Web Hosting