Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
33_Metodicheskie_ukazania_po_laboratornym_rabot...doc
Скачиваний:
0
Добавлен:
07.01.2020
Размер:
706.56 Кб
Скачать

Запись символов в буфер клавиатуры

На входе: AH = 05h;

CL = ASCII-код записываемого символа;

CH = скан-код записываемого символа, или 0.

На выходе: AL = 0 - запись выполнена успешно;

1 - буфер клавиатуры переполнен.

С помощью этой функции можно вставить символы в буфер клавиатуры, как будто они были введены оператором.

Приведенная программа записывает в буфер клавиатуры пять символов '*'. Запустите ее и посмотрите на системное приглашение. Вы увидите что-нибудь похожее на C:\>*****.

#include <stdio.h>

#include <dos.h>

void main(void);

void main(void) {

union REGS rg;

int i;

for(i=0; i<5; i++) {

rg.h.ah = 5;

rg.h.cl = '*';

rg.h.ch = 9;

int86(0x16, &rg, &rg);

}

}

Чтение символа с ожиданием для 101-клавишной клавиатуры

Функция 10h полностью аналогична функции 00h, но она предназначена для работы с клавиатурой, имеющей 101 клавишу.

Приведем формат вызова функции:

На входе: AH = 10h.

На выходе: AL = ASCII-код символа или 0, если AH содержит

расширенный ASCII-код символа;

AH = скан-код или расширенный ASCII-код

символа, если AL=0.

Функция определена для BIOS, изготовленной не раньше 15 декабря 1985 года.

Проверка буфера на наличие в нем символов для 101-клавишной клавиатуры

На входе: AH = 11h.

На выходе: ZF = 0, если в буфере имеется код нажатой

на клавиатуре клавиши;

ZF = 1, если буфер клавиатуры пуст;

AL = ASCII-код символа или 0, если AH содержит

расширенный ASCII-код символа;

AH = скан-код или расширенный ASCII-код

символа, если AL=0.

Функция 11h полностью аналогична функции 01h, но она предназначена для работы с клавиатурой, имеющей 101 клавишу.

Получение состояния переключающих клавиш для 101-клавишной клавиатуры

На входе: AH = 12h.

На выходе: AL = Байт состояния переключающих клавиш.

Функция возвращает в регистре AL состояние переключающих клавиш (Shift, Ctrl, Alt, ScrollLock, NumLock, CapsLock, Ins):

Биты Значение

0 Нажата левая клавиша Shift вместе с Ctrl.

1 Нажата левая клавиша Shift вместе с Alt.

2 Нажата правая клавиша Shift вместе с Ctrl.

3 Нажата правая клавиша Shift вместе с Alt.

4 Нажата клавиша ScrollLock.

5 Нажата клавиша NumLock.

6 Нажата клавиша CapsLock.

7 Нажата клавиша SysReq.

Функция 12h аналогична функции 02h, но она предназначена для работы с клавиатурой, имеющей 101 клавишу и имеет другой формат байта состояния.

Варианты лабораторных работ:

Варианта

Задание

1

Блокировка клавиатуры на определённый промежуток времени.

2

Получение состояния переключающих клавиш(используя порты)

3

Установка состояния переключающих клавиш(используя порты)

4

Установка временных характеристик клавиатуры

(используя порты)

5

Чтение символа с ожиданием

6

Проверка буфера на наличие в нем символов

7

Получение состояния переключающих клавиш

(используя прерывание)

8

Установка состояния переключающих клавиш

(используя прерывание)

9

Установка временных характеристик клавиатуры

(используя прерывание)

0

Запись символов в буфер клавиатуры

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]