Logo GenDocs.ru

Поиск по сайту:  


Загрузка...

Атрощенко В.А. Методические указания по периферийным устройствам - файл 1.doc


Атрощенко В.А. Методические указания по периферийным устройствам
скачать (5402.5 kb.)

Доступные файлы (1):

1.doc5403kb.08.12.2011 23:46скачать

содержание
Загрузка...

1.doc

  1   2   3   4
Реклама MarketGid:
Загрузка...
Содержание


Введение

4

Нормативные ссылки

4

Лабораторная работа №1 Клавиатура и манипулятор ПЭВМ

5

Лабораторная работа №2 Работа с экраном и видеоадаптерами

15

Лабораторная работа №3 Управление печатающим устройством

24

Лабораторная работа №4 Дисковая память ПЭВМ

38

Лабораторная работа №5 Управление работой модема

46

Лабораторная работа №6 Работа со сканерами

57













Введение
Лабораторные работы по дисциплине: «Периферийные устройства» выполняются студентами специальности 230101 в пятом семестре.

Цель лабораторных работ – закрепить основы и углубить знания в области дисциплины «Периферийные устройства» и в частности структуру и состав основных периферийных устройств ПЭВМ: устройства клавиатура, видеоадаптера, печатающего устройства, привода жесткого диска, модема и сканирующего устройства.

Тематика заданий на лабораторные работы, приведенная в данных методических указаниях, может быть дополнена и расширена за счет научно-исследовательских задач, решаемых на кафедре.
^ Нормативные ссылки
В настоящем пособии использованы ссылки на следующие стандарты:

ГОСТ 2.105-95 ЕСКД. Общие требования к текстовым документам.

ГОСТ Р 50739-95. Государственный стандарт РФ. Средства вычислительной техники. Защита от несанкционированного доступа к информации. Общие технические требования.

ГОСТ 7.1-84 СИБИД. Библиографическое описание документа. Общие требования и правила составления.

ГОСТ 7.32-2-1. СИБД. Отчет о научно-исследовательской работе. Структура и правила оформления.

ГОСТ 7.80-2000. СИБД. Библиографическая запись. Заголовок. Общие требования и правила составления.
Используемые сокращения:
ПЭВМ – Персональная Электронно-Вычислительная Машина;

ASCII - American Standart Code for Information Interchange – Американский Стандартный Код для Обмена Информацией;

BIOS – Base Intput Output System – Базовая Система Ввода Вывода;

PS/2 – Personal System – серия персональных компьютеров

CPU – Central Processor Unite – Блок Центрального Процессора;

PCI – Peripheral component interconnect — взаимосвязь периферийных компонентов — шина ввода/вывода для подключения периферийных устройств к материнской плате компьютера;

AGP – Accelerated Graphics Port - шина, функционирующая на частоте 66 МГц;

DAC – Digital analog Converter – Цифро – Аналоговый Преобразователь;

PC – Personal Computer – Персональный Компьютер;

CMOS – Complementary metal–oxide–semiconductor - комплементарная логика на транзисторах металл-оксид-полупроводник, технология построения электронных схем;

CIS сканер – Contact Image Sensor - контактный сенсор изображения;

CCD сканер - Charge-Coupled Device — специализированная аналоговая интегральная микросхема.


^ Лабораторная работа №1 Клавиатура и манипулятор ПЭВМ
Цель работы: изучить устройство клавиатуры, интерфейс связи с ПЭВМ и схемы связи контроллера клавиатуры и манипулятора «мышь».
Содержание работы:

1.1. Разборка, сборка клавиатуры. Описание конструкции ее изготовления.

1.2. Разборка, сборка системного блока. Описание способа подключения контроллера клавиатуры и «мыши».

1.3. Настройка, тестирование клавиатуры и «мыши» с помощью Assembler.

1.4. Определение алгоритма работы клавиатуры и «мыши».

1.5. Непосредственная работа с контроллером клавиатуры.

1.6. Контрольны вопросы.

1.7. Задание.

1.8.Содержание отчета.


    1. Работа с клавиатурой


Клавиатура является основным средством ввода текстовой инфор­мации в компьютер, поэтому при программировании на низком уров­не (на языке ассемблера) программист в первую очередь вынужден осваивать работу с клавиатурой: он должен изучить способы коди­рования текстовых символов и особенности использования функ­ций операционной системы. Если у программиста возникает потреб­ность в работе на уровне аппаратного обеспечения, он должен также разобраться с особенностями программирования контроллера кла­виатуры и контроллера прерываний.

1.2. Представление символов и управляющих кодов в памяти компьютера

Система представления символов в персональных компьютерах базируется на Американском стандартном коде для обмена инфор­мацией (American Standard Code for Information Interchange), кото­рый был введен в 1963 году и ставил в соответствие каждому сим­волу семиразрядный двоичный код, обеспечивающий представление 128 символов. ASCII-код включал две группы символов:

  • управляющие символы, используемые в коммуникационных протоколах для передачи команд периферийным устройствам;

  • символы пишущей машинки — цифры, буквы и специальные знаки.



Управляющие символы имеют коды с номерами от 0 до lAh. К управ­ляющим относится также символ с кодом 7Fh. Каждый управляющий символ выполняет строго определенную функцию. Функции и кодовые обозначения управляющих символов описаны в табл. 1.1. Все остальные символы относятся к алфавитно-цифровой группе (группе символов пишущей машинки).
Таблица 1.1. Управляющие символы ASCII-кода

^ Код символа

Мнемоническое обозначение

Назначение символа

00h

NUL

Пустой символ

01h

SOH

Начало заголовка (начало блока данных)

02h

STX

Начало текста

03h

ETX

Конец текста

04h

EOT

Конец передачи

продолжение таблицы 1.1

Код символа

Мнемоническое обозначение

Назначение символа

05h

ENQ

Запрос подтверждения

06h

ACK

Подтверждение

07h

BEL

Звонок (звуковой сигнал)

08h

BS

Забой (возврат на одну позицию влево)

09h

HT

Горизонтальная табуляция

0Ah

LF

Перевод строки

0Bh

VT

Вертикальная табуляция

0Ch

FF

Перевод формата (переход к новой странице)

0Dh

CR

Возврат каретки

0Eh

SO

Переход на нижний регистр

0Fh

SI

Переход на верхний регистр

10h

DLE

Завершение сеанса связи

11h

DC1

Управление устройством № 1

12h

DC2

Управление устройством № 2

13h

DC3

Управление устройством № 3

14h

DC4

Управление устройством № 4

15h

NAK

Ошибка передачи

16h

SYN

Холостой ход передатчика

17h

ETB

Конец передачи блока

18h

CAN

Отмена

19h

EM

Конец носителя данных

1Ah

SUB

Подстановка (замена символа)

1Bh

ESC

Переход (посылка сложной команды)

1Ch

FS

Разделитель файлов

1Dh

GS

Разделитель групп

1Eh

RS

Разделитель записей

1Fh

US

Разделитель элементов

7Fh

DEL

Удаление символа


Чтобы отобразить символы европейских алфавитов и символы псевдографики, ASCII-код был расширен до 256 символов. Это так называемая американская кодировка (кодиров­ка IBM), которая в операционных системах корпорации Microsoft носит также название «Кодовая страница 437».

Однако по мере распространения персональных компьютеров по­стоянно возникала потребность в добавлении изображений новых символов, поэтому каждая страна мира сейчас имеет свою собствен­ную кодовую страницу, а в многоязычных странах обычно приме­няется несколько таких страниц. Графиче­ское представление символов расширенного ASCII-кода показано на рис. 1.1.
��♀2��☺☻☺☻☺☻☺☻☺☻☺☻☺☻☺☻☺☻☺○♣♫


Младшая цифра

Старшая цифра

0

1

2

3

4

5

6

7

8

9

A

B

C

D

E

F

0









0

@

P

`

p

А

Р

а







р

Ё

1





!

1

A

Q

a

q

Б

С

б







с

ё

2





«

2

B

R

b

r

В

Т

в







т

Є

3





#

3

C

S

c

s

Г

У

г







у

є

4





$

4

D

T

d

t

Д

Ф

д







ф

Ї

5



§

%

5

E

U

e

u

Е

Х

е







х

ї

6





&

6

F

V

f

v

Ж

Ц

ж







ц

Ў

7





'

7

G

W

g

w

З

Ч

з







ч

ў

8





(

8

H

X

h

x

И

Ш

и







ш

°

9





)

9

I

Y

i

y

Й

Щ

й







щ



A





*

:

J

Z

j

z

К

Ъ

к







ъ

·

B





+

;

K

[

k

{

Л

Ы

л







ы



C





,

<

L

\

l

|

М

Ь

м







ь



D





-

=

M

]

m

}

Н

Э

н







э

¤

E





.

>

N

^

n



О

Ю

о







ю



F





/

?

O

_

o



П

Я

п







я





Рис. 1.1. Представление символов ASCII-кода в русской кодовой странице 866
Представление символов ASCII-кода в русской кодовой таблице MS-DOS (кодовая страница 866) показано на рис. 1.1. Как видно из рисунка, символов в таблице гораздо больше, чем клавиш в алфа­витно-цифровой части типовой клавиатуры (101-клавишный АТ-совместимый вариант исполнения), поэтому каждой клавише поставлено в соответствие несколько различных символов. ASCII-код, генерируемый при нажатии клавиши, опре­деляется не только этой клавишей, но и состоянием управляющих клавиш Caps Lock и Shift, а также режимом работы драйвера клавиа­туры, то есть текущим языком — русским или английским.

Кроме ASCII-кодов, для идентификации клавиш используются так­же скан-коды. Скан-коды в старых клавиатурах (появившихся до использования микроконтроллеров) являлись порядковыми номе­рами клавиш: нумерация велась сверху вниз, справа налево. С целью сохранения совместимости со старым программным обеспечением микропроцессоры современных клавиатур преобразуют действи­тельные порядковые номера клавиш в номера, соответствующие ла­тинской раскладке на клавиатуре IBM XT с учетом дополнительных клавиш клавиатуры IBM AT. В результате распределение номеров перестало быть строго упорядоченным. Кроме того, функции BIOS также выполняют перекодировку скан-кодов с целью упрощения анализа этих кодов в прикладных программах. Поэтому существует несколько различных видов таблиц скан-кодов:

  • собственная внутренняя таблица встроенного микроконтрол­лера клавиатуры;

  • таблица для обмена кодами между контроллером клавиатуры
    и специализированным клавиатурным микропроцессором сис­темной платы;

  • таблица кодов, которые клавиатурный микропроцессор передает подпрограммам BIOS;

При работе с функциями BIOS интерес представляет последняя из этих таблиц. Скан-коды BIOS для клавиш алфавитно-цифровой группы и скан-коды клавиш функциональной, дополнительной и цифровой групп приведены в таблице 1.2. Следует учитывать, что клавиши цифровой группы, расположенной с правой стороны клавиатуры, могут ис­пользоваться не только как си вольные (цифровые), но и как управ­ляющие — в зависимости от состояния клавиши Num Lock.
Таблица 1.2. Скан-коды BIOS для клавиш алфавитно-цифровой группы

^ Скан-код Русский

Режим

Скан-код Латинский

Режим

Латинский

Русский

Латинский

Русский

01h

Esc




1Eh

A и a

Ф и ф

02h

1 и !

1 и !

1Fh

S и s

Ы и ы

03h

2 и @

2 и «

20h

D и d

В и в

04h

3 и #

3 и №

21h

F и f

А и а

05h

4 и $

4 и ;

22h

G и g

П и п

06h

5 и %

5 и %

23h

H и h

Р и р

07h

6 и ^

6 и :

24h

J и j

О и о

08h

7 и &

7 и ?

25h

K и k

Л и л

09h

8 и *

8 и *

26h

L и l

Д и д

0Ah

9 и (

9 и (

27h

; и :

Ж и ж

0Bh

0 и )

0 и )

28h

“ и ’

Э и э

0Ch

- и _

- и _

29h

` и ~

Ё и ё

0Dh

= и +

= и +

2Ah

Левая клавиша Shift

0Eh

Back Space

2Bh

\ и |

\ и /

0Fh

Tab




2Ch

Z и z

Я и я

10h

Q и q

Йй

2Dh

X и x

Ч и ч

11h

W и w

Цц

2Eh

C и c

С и с

12h

E и e

Уу

2Fh

V и v

М и м

13h

R и r

Кк

30h

B и b

И и и

14h

T и t

Ее

31h

N и n

Т и т

15h

Y и y

Нн

32h

M и m

Ь и ь

16h

U и u

Гг

33h

, и <

Б и б

17h

I и i

Шш

34h

. и >

Ю и ю

18h

O и o

Щщ

35h

/ и ?

. и ,

19h

P и p

Зз

36h

Правая клавиша Shift

1Ah

[ и {

Хх

37h

*

1Bh

] и }

Ъъ

38h

Alt

1Ch

Enter

39h

Пробел

1Dh

Ctrl

3Ah

Caps Lock




    1. Ввод информации с клавиатуры при помощи функций BIOS


Для ввода информации с клавиатуры можно использовать либо функции операционной системы, либо прямой опрос контроллера клавиатуры. Функ­ции MS-DOS, используемые для ввода данных с клавиатуры непри­годны для сколько-нибудь серьезной работы. Функции DOS имеют два очень серьезных недостатка. Первый недостаток заключается в том, что они не позволяют полностью реализовать возможно­сти функциональных клавиш. Второй недостаток — клавиатурные функции DOS предназначены для работы в режиме терминала В процессе считывания символа они вы­полняют ряд дополнительных операций, что делает весьма неудоб­ным их использование в любом другом, не терминальном режиме.

Функции BIOS обладают гораздо более широкими возможностя­ми, чем функции DOS. Этих возможностей вполне достаточно для выполнения любых операций реальном режиме работы процессора. Вызов клавиатурных функций BIOS выполняется по прерыванию Int 16h.

1.4. Контроллер прерываний
Устройства ввода информации сообщают центральному процессору о поступлении новых данных с помощью сигналов прерываний. Прерывания от клавиатуры, мыши PS/2-типа и других периферийных устройств, прежде чем поступить в процессор, проходят через контроллер прерываний, где подвергаются предварительной обработке. Контроллер позволяет управлять приоритетами, прохождением сигналов и адресами векторов прерываний.

Контроллер прерываний IBM AT состоит из двух микросхем Intel 8259, включенных в режиме каскадирования (рис. 1.2). Пер­вая микросхема была ведущей, а вторая — ведомой (ведомый кон­троллер подключен к входу IRQ2 ведущего). На входы IRQO, IRQ1, IRQ3-IRQ7 ведущей микросхемы и на входы IRQ8-IRQ15 ведомой поступают запросы прерываний, из которых выбирается немаски­рованный запрос с наивысшим приоритетом, после чего контрол­лер вырабатывает сигнал INT и передает в процессор вектор преры­вания.


Рис. 1.2. Традиционный порядок подключения внешних устройств к контроллеру пррываний

Вектор формируется путем сложения базового значения (записан­ного в соответствующий регистр микросхемы) и номера линии, на которую поступил запрос (ведущей микросхеме IRQ0 соответству­ет линия 0, IRQ7 — линия номер 7; ведомой микросхеме IRQ8 со­ответствует линия 0, IRQ15 — линия 7). Базовый вектор ведущей микросхемы в реальном режиме DOS имеет значение 08h; вектор ведомой — 70h. Соответственно, ведущая схема вырабаты­вает вектора с номерами 08h-0Fh, ведомая — с номерами 70h-77h (Табл. 1.3). Приоритеты запросов прерывания (по убыванию) рас­полагаются в следующем порядке: IRQ0, IRQ1, IRQ8-IRQ15, IRQ3-IRQ7.

Все последующие модели АТ-совместимых компьютеров вынуждены имитировать работу микросхем i8259 с целью сохранения совмести­мости со старым программным обеспечением. Большая часть воз­можностей указанных микросхем, к счастью для программистов, не используется в АТ-совместимых персональных компьютерах: при­оритеты прерываний, поступающих от периферийных устройств, и адреса соответствующих векторов жестко зафиксированы (уста­навливаются BIOS в процессе начальной загрузки).

Таблица 1.3. Аппаратные прерывания АТ – совместимых компьютеров

Прерывание

Номер вектора

^ Адрес вектора

Источник сигнала прерывания

IRQ0

08h

0000:0020h

Системный таймер

IRQ1

09h

0000:0024h

Клавиатура

IRQ2

0Ah

0000:0028h

Ведомая микросхема контроллера

IRQ3

0Bh

0000:002Ch

Последовательный порт COM2

IRQ4

0Ch

0000:0030h

Последовательный порт COM1

IRQ5

0Dh

0000:0034h

Параллельный порт LPT2

IRQ6

0Eh

0000:0038h

Контроллер дисководов гибких дисков

IRQ7

0Fh

0000:003Ch

Параллельный порт LPT1

IRQ8

70h

0000:01C0h

Часы реального времени

IRQ9

71h

0000:01C4h

Любое устройство PnP

IRQ10

72h

0000:01C8h

Любое устройство PnP

IRQ11

73h

0000:01CCh

Любое устройство PnP

IRQ12

74h

0000:01D0h

Мышь PS/2 – типа

IRQ13

75h

0000:01D4h

Математический сопроцессор

IRQ14

76h

0000:01D8h

Контроллер жесткого диска №1

IRQ15

77h

0000:01DCh

Контроллер жесткого диска №2



1.5. Непосредственная работа с контроллером клавиатуры
Реальная необходимость в непосредственной работе с клавиатурой возникает в том случае, когда создается программа, которая переводит процессор из реального режима в защищенный, а затем выполняет в защищенном режиме всю дальнейшую работу. Переход в защищенный режим приводит к тому, что функции BIOS, рассчитанные на реальный режим, становятся непригодными для использования.

Для управления работой клавиатуры в машинах типа IBM AT и PS/2 использовался микроконтроллер Intel 8042. Кроме клавиатуры, этот контроллер управлял также координатным устройством, в качестве которого обычно использовалась мышь типа PS/2. С целью обеспе­чения совместимости нового аппаратного обеспечения со старыми программами все современные наборы микросхем, предназначенные для изготовления системных плат (так называемые чипсеты), вынужденно повторяют в своей структуре особенности контролле­ра.

Писать программы для клавиатурного контроллера i8042 и встроенного микропроцессора клавиатуры нет необходимости и возможности, поскольку соответствующие программы уже записаны в ПЗУ контроллеров. Поэтому клавиатурный контроллер на системной плате и микропроцессор клавиатуры могут выполнять только те операции, которые заложены в них разра­ботчиками аппаратуры и внесены в соответствующие наборы ко­манд. Самопроверка контроллера и программирование основных параметров его работы, а также самотестирование и программирование параметров клавиатуры (и мыши PS/2) производятся при включении компьютера и могут быть изменены с помощью прерываний BIOS, пока процессор еще не переведен из реального режима в защищенный. В защищенном режиме необходимо выполнять только два типа операций: считывание кодов нажимаемых клавиш и зажигание/гашение светодиодов на клавиатуре.

Управление работой контроллера и обмен данными с мышью и клавиатурой осуществляются при помощи трех регистров: регистра состояния, регистра команд и регистра данных. Кроме того, при поступ­лении информации от клавиатуры контроллер i8042 вырабатывает прерывание IRQ1, а при приеме данных от мыши — IRQ12. Интерфейсы клавиатуры и мыши аналогичны, наборы команд управления также имеют некоторое сходство. Упрощенная схема подключения к компьютеру клавиатуры и мыши типа PS/2 показана на рис. 1.3.

Регистр состояния доступен только для считывания через порт 64h. Формат регистра показан на рис. 1.4. Значение разрядов регистра следующее:

  • бит 0 — признак наличия данных в выходном буфере (0 — буфер пуст, 1 — буфер заполнен);

  • бит 1 — признак наличия данных во входном буфере (0 — буфер пуст, 1 — буфер заполнен);

  • бит 2 — признак типа последнего общесистемного сброса (0 — сброс по включении питания, 1 — программный сброс);

  • бит 3 — признак записи команды (0 — последняя операция записи являлась операцией записи данных, 1 — записи команды);

  • бит 4 — состояние «замка» клавиатуры (0 — клавиатура блокирована, 1 — не блокирована);

  • бит 5 — признак ошибки тайм-аута передачи в АТ-режиме (0 — нормальное завершение передачи, 1 — произошла ошибка); признак наличия данных в выходном буфере мыши в PS/2-режиме (0 — буфер пуст, 1 — буфер заполнен);

  • бит 6 — признак ошибки тайм-аута приема в АТ-режиме (0 — нормальное завершение приема, 1 — произошла ошибка); общий признак ошибки тайм-аута при приеме или передаче данных в PS/2-режиме (0 — нормальное завершение операции, 1 — произошла ошибка);

  • бит 7 — признак возникновения ошибки паритета при приеме или передаче данных (0 — нет ошибки, 1 — обнаружена ошибка по четности).



Рис. 1.3. Упрощенная схема подключения клавиатуры и мыши типа PS/2 к компьютеру



Рис. 1.4. Формат регистра состояния контроллера клавиатуры



Рис. 1.5. Формат регистра команд контроллера клавиатуры

Регистр команд доступен для записи через порт 64h. Формат регистра показан на рис. 1.5. Разряды регистра имеют следующее назначение:

  • бит 0 — управление выдачей сигнала прерывания по готовности данных в выходном буфере клавиатуры (0 — генерация прерывания запрещена, 1 — разрешена);

  • бит 1 — управление выдачей сигнала прерывания по готовности данных в выходном буфере мыши (0 — генерация прерывания запрещена, 1 — разрешена);

  • бит 2 — установка признака системного сброса (значение, записанное в этот разряд, переносится в разряд 2 регистра состояния);

  • бит 3 — управление функцией блокировки клавиатуры (0 — функция блокировки разрешена, 1 — функция запрещена и блокировка игнорируется);

  • бит 4 — управление интерфейсом клавиатуры (0 — обмен данными с клавиатурой разрешен, 1 — запрещен);

  • бит 5 — признак типа протокола передачи данных в АТ-режиме (0 — протокол IBM); управление интерфейсом мыши в PS/2-peжиме (0 — обмен данными с мышью разрешен, 1 — запрещен);

  • бит 6 — преобразование скан-кодов в PC-совместимые (0 — выключено, 1 — включено); по умолчанию имеет значение 1, то есть скан-коды преобразуются в РС-совместимые;

  • бит 7 — не используется (зарезервирован).


^ Регистр данных доступен для записи и считывания через порт 60h. В режиме считывания он служит для приема информации от клавиатуры и мыши. В режиме записи регистр данных служит для передачи команд клавиатуре, координатному устройству (мыши PS/2-типа) и клавиатурному контроллеру системной платы i8042. Какого-либо особого формата данный регистр не имеет.

Клавиатура может работать в трех различных режимах, которые отличаются друг от друга наборами скан-кодов, выдаваемых клавиатурой. Набор № 1 предназначен для компьютеров типа IBM «PS/2 30», набор №2 - для «PC/AT», «PS/2 50» и «PS/2 60», набор № 3 — для «PS/2 80». Для переключения режимов работы ис­пользуется команда F0h. Однако программисты никогда не стал­киваются непосредственно с наборами кодов, выдаваемыми кла­виатурой, а имеют дело с преобразованным набором, выдаваемым клавиатурным процессором системной платы.

При включении питания клавиатура устанавливается в режим № 2, причем для всех клавиш разрешена посылка кодов нажатия и отпускания, а также разрешен автоповтор. Самотестирование после включения выполняется в следующем порядке:

  • включаются все индикаторы;

  • тестируется встроенный микроконтроллер клавиатуры;

  • тестируется оперативная память клавиатуры;

  • все индикаторы выключаются;

  • клавиатура выдает компьютеру результат самотестирования.
    Когда разрешен опрос клавиш, клавиатура передает компьютеру
    скан-коды, сообщающие об изменении их состояния (под изменением состояния подразумевается нажатие, длительное удержание или отпускание). Кроме того, возможна посылка следующих специ­ализированных кодов в ответ на команду или при возникновении неисправностей.

Режим работы клавиатуры устанавливается при запуске компьюте­ра процедурами BIOS, и после этого изменять его обычно нет необ­ходимости. Единственная команда, которую драйвер периодически посылает клавиатуре, — команда переключения светодиодов EDh. Данная команда является ответной реакцией драйвера на нажатие клавиш Num Lock, Caps Lock и Scroll Lock.

Как уже отмечалось выше, набор скан-кодов, которые выдает клавиатурный процессор системной платы, отличается и от набора скан-кодов, которые используют процедуры BIOS. На рис. 1.6 по­казаны коды, присвоенные клавишам основной и функциональ­ной групп, на рис. 1.7 — коды дополнительной клавиатуры, а на рис. 1.8 — коды цифровой клавиатуры.



Рис. 1.6. Скан-коды клавиш основной и функциональной клавиатур



Рис. 1.7. Скан-коды клавиш дополнительной клавиатуры



Рис. 1.8. Скан-коды клавиш цифровой клавиатуры

Нажатие клавиши приводит к передаче от клавиатуры к компьюте­ру одного символа или последовательности символов (от двух до шести). При нажатии обычных клавиш (алфавитно-цифровых или функциональных) передается только один байт, содержащий скан-код. Последовательности генерируются для клавиш, которые отсут­ствовали в 84-кнопочной клавиатуре XT-типа, и состоят из кодо­вых пар, причем каждая пара начинается с кода E0h, а во втором байте передается скан-код. Последовательность из четырех байт (двух пар) передается в том случае, если нажата дополнительная клави­ша, заменяющая собой нажатие определенной последовательности обычных клавиш. Специфическая последовательность из шести байт генерируется только в одном случае — при нажатии клавиши Pause.

При отпускании клавиши клавиатура также посылает в компьютер скан-код, но старший (знаковый) разряд кода при этом устанавливается в единицу. Отпускание клавиши, выдающей пару кодов, мож­но отличить от нажатия по второму символу пары (первым кодом в паре по прежнему является E0h, а у скан-кода при отпускании будет установлен старший разряд). При отпускании дополнительных клавиш генерируются две пары кодов, но порядок этих пар является обратным тому, который генерируется при их нажатии, и установ­лены старшие разряды скан-кодов. При отпускании клавиши Pause клавиатура никакой информации в компьютер не передает.

Например, при нажатии клавиши Пробел вырабатывается код 39h, а при отпускании — код B9h. При нажатии клавиши 1 на основной клавиатуре вырабатывается код 02h, а при отпускании — код 82h; Нажатие клавиши 1 на цифровой клавиатуре порождает код 4Fh, отпускание — код CFh. При нажатии правой клавиши Ctrl выраба­тывается последовательность Е0h, 1Dh, а при отпускании — последовательность E0h, 9Dh. Нажатие Insert порождает последовательность кодов E0h, 2Ah, E0h, 52h, а отпускание — последовательность E0h, D2h, E0h, AAh. Нажатие клавиши Pause приводит к выдаче последователь­ности Elh, lDh, 45h, Elh, 9Dh, C5h, а при отпускании данной клавиши никаких кодов не вырабатывается вообще.

Для поддержки расширенного интерфейса управления конфигура­цией и питанием (Advanced Configuration and Power Interface, со­кращенно ACPI) на клавиатуру были добавлены три клавши:

  • Power (Выключить питание) — вырабатывает последователь­ность E0h, 5Eh;

  • Sleep (Переключить систему в спящий режим) — вырабатывает последовательность E0h, 5Fh;

  • Wake (Разбудить систему) — вырабатывает последовательность E0h, 63h.


1.6. Контрольные вопросы:
1. Что называется ASCII – кодом и на какие группы делится таблица символов ASCII – кодов?

2. Что называется скан-кодом? Перечислите основные виды таблиц скан-кодов и их предназначение.

3. Как образуются прерывания от манипулятора «мышь»?

4. Опишите принцип обмена данных между клавиатурой и конечным пользователем.

5. Какое назначение имеет регистр состояния контроллера клавиатуры, расположенного на системной плате?

6. Какое назначение имеет регистр команд контроллера клавиатуры, расположенного на системной плате?

7. Какое назначение имеет регистр данных контроллера клавиатуры, расположенного на системной плате?

8. Как происходит тестирование клавиатуры при включении компьютера?

1

1.7. Задание.



  1. Разобрать клавиатуру. Изучить устройство и принцип работы. Составить список функциональных частей клавиатуры.

  2. Подключить клавиатуру к системному блоку. Описать принцип ее подключения и определить месторасположения контроллера i8042.

  3. Получить задание от преподавателя и определить последовательность символов, введенных преподавателем (по скан-коду).

  4. Записать последовательность ASCII – кодов преобразованных символов из задания №3.

  5. Составить алгоритм обработки сигнала контроллерами клавиатуры.


1.8. Содержание отчета:
1. Название, цель, содержание работы.

2. Задание и результат его выполнения.

3. Оформленные результаты выполненной работы. Ответы на контрольные вопросы.

4. Выводы по работе.
Лабораторная работа №2 Работа с экраном и видеоадаптерами
Цель работы: Вывод текста на экран путём непосредственного программирования видеобуфера. Введение задержки для программных операций.
Содержание работы:

2.1. Стандартные типы видеоадаптеров.

2.2. Видеопамять.

2.3. Методические рекомендации.

2.3.1 Введение.

2.3.2. Прямое программирование видеобуфера в текстовом режиме.

2.3.3. Справочные данные по функциям BIOS.

2.3.3.1. Прерывание int 10h. Видеофункции BIOS.

2.4. Варианты индивидуального задания.

2.5. Контрольные вопросы.

2.6. Содержание отчета.

2.7. Информационные источники.


    1. Стандартные типы видеоадаптеров


Устройство, которое называется видеоадаптером (или видеоплатой, видеокартой), есть в каждом компьютере. В виде устройства, интегрированного в системную плату, либо в качестве самостоятельного компонента - платы расширения. Главная функция, выполняемая видеокартой, это преобразование полученной от центрального процессора информации и команд в формат, который воспринимается электроникой монитора, для создания изображения на экране. Монитор обычно является неотъемлемой частью любой системы, с помощью которого пользователь получает визуальную информацию.

MDA (Monochrome Display Adapter - монохромный адаптер дисплея) -простейший видеоадаптер, применявшийся в первых IBM PC. Работает в текстовом режиме с разрешением 80x25 (720x350, матрица символа - 9x14), поддерживает пять атрибутов текста: обычный, яркий, инверсный, подчеркнутый и мигающий. Частота строчной развертки - 15 Кгц. Интерфейс с монитором - цифровой: сигналы синхронизации, основной видеосигнал, дополнительный сигнал яркости.

HGC (Hercules Graphics Card - графическая карта Hercules) - расширение MDA с графическим режимом 720x348, разработанное фирмой Hercules.

CGA (Color Graphics Adapter - цветной графический адаптер) - первый адаптер с графическими возможностями. Работает либо в текстовом режиме с разрешениями 40x25 и 80x25 (матрица символа - 8x8), либо в графическом с разрешениями 320x200 или 640x200. В текстовых режимах доступно 256 атрибутов символа - 16 цветов символа и 16 цветов фона (либо 8 цветов фона и атрибут мигания), в графических режимах доступно четыре палитры по четыре цвета каждая в режиме 320x200, режим 640x200 - монохромный. Вывод информации на экран требовал синхронизации с разверткой, в противном случае возникали конфликты по видеопамяти, проявляющиеся в виде "снега" на экране. Частота строчной развертки - 15 Кгц. Интерфейс с монитором - цифровой: сигналы синхронизации, основной видеосигнал (три канала - красный, зеленый, синий), дополнительный сигнал яркости.

EGA (Enhanced Graphics Adapter - улучшенный графический адаптер) -дальнейшее развитие CGA, примененное в первых PC AT. Добавлено разрешение 640x350, что в текстовых режимах дает формат 80x25 при матрице символа 8x14 и 80x43 - при матрице 8x8. Количество одновременно отображаемых цветов - по-прежнему 16, однако палитра расширена до 64 цветов (по два разряда яркости на каждый цвет). Введен промежуточный буфер для передаваемого на монитор потока данных, благодаря чему отпала необходимость в синхронизации при выводе в текстовых режимах, структура видеопамяти сделана на основе так называемых битовых плоскостей - "слоев", каждый из которых в графическом режиме содержит биты только своего цвета, а в текстовых режимах по плоскостям разделяются собственно текст и данные знакогенератора. Совместим с MDA и CGA. Частоты строчной развертки - 15 и 18 Кгц. Интерфейс с монитором - цифровой: сигналы синхронизации, видеосигнал (по две линии на каждый из основных цветов).

MCGA (Multicolor Graphics Adapter - многоцветный графический адаптер) -введен фирмой IBM в ранних моделях PS/2. Добавлено разрешение 640x400 (текст), что дает формат 80x25 при матрице символа 8x16 и 80x50 - при матрице 8x8. Количество воспроизводимых цветов увеличено до 262144 (по 64 уровня на каждый из основных цветов). Помимо палитры, введено понятие таблицы цветов, через которую выполняется преобразование 64-цветного пространства цветов EGA в пространство цветов MCGA. Введен также видеорежим 320x200x256, в котором вместо битовых плоскостей используется представление экрана непрерывной областью памяти объемом 64000 байт, где каждый байт описывает цвет соответствующей ему точки экрана. Совместим с CGA по всем режимам, а с EGA - по текстовым, за исключением размера матрицы символа. Частота строчной развертки -31 Кгц, для эмуляции режимов CGA используется так называемое двойное сканирование - дублирование каждой строки формата Nx200 в режиме Nx400. интерфейс с монитором - аналогово-цифровой: цифровые сигналы синхронизации, аналоговые сигналы основных цветов, передаваемые монитору без дискретизации. Поддерживает подключение монохромного монитора и его автоматическое опознание - при этом в видео-BIOS включается режим суммирования цветов по так называемой шкале серого (grayscale) для получения полутонового черно-белого изображения. Суммирование выполняется только при выводе через BIOS - при непосредственной записи в видеопамять на монитор попадает только сигнал зеленого цвета (если он не имеет встроенного цветосмесителя).

VGA (Video Graphics A rray - массив визуальной графики) - расширение MCGA, совместимое с EGA, введен фирмой IBM в средних моделях PS/2. Фактический стандарт видеоадаптера с конца 80-х годов. Добавлен текстовый режим 720x400 для эмуляции MDA и графический режим 640x480 с доступом через битовые плоскости. В режиме 640x480 используется так называемая квадратная точка (соотношение количества точек по горизонтали и вертикали совпадает со стандартным соотношением сторон экрана - 4:3). Совместим с MDA, CGA и EGA, интерфейс с монитором идентичен MCGA.

IBM 8514/а - специализированный адаптер для работы с высокими разрешениями (640x480x256 и 1024x768x256), с элементами графического ускорителя. Не поддерживает видеорежимы VGA. интерфейс с монитором аналогичен VGA/MCGA.

IBM XGA - следующий специализированный адаптер IBM. расширено цветовое пространство (режим 640х480х64к), добавлен текстовый режим 132x25 (1056x400). Интерфейс с монитором аналогичен VGA/MCGA.

SVGA (Super VGA - "сверх" VGA) - расширение VGA с добавлением более высоких разрешений и дополнительного сервиса. Видеорежимы добавляются из ряда 800x600, 1024x768, 1152x864, 1280x1024, 1600x1200 - все с соотношением 4:3. Цветовое пространство расширено до 65536 (High Color) или 16.7 млн. (True Color). Также добавляются расширенные текстовые режимы формата 132x25, 132x43, 132x50. Из дополнительного сервиса добавлена поддержка VBE.
2.2. Видеопамять
Один из компонентов компьютера, от которого требуется наибольшая производительность, это графический контроллер, являющийся сердцем всех мультимедиа систем. Фраза требуется производительность означает, что некоторые вещи происходят настолько быстро, насколько это обеспечивается пропускной способностью. Пропускная способность обычно измеряется в мегабайтах в секунду и показывает скорость, с которой происходит обмен данными между видеопамятью и графическим контроллером.

На производительность графической подсистемы влияют несколько факторов:

  • скорость центрального процессора (CPU)

  • скорость интерфейсной шины (PCI или AGP)

  • скорость видеопамяти

  • скорость графического контроллера

Видеокарта состоит из четырех основных устройств: памяти, контроллера, ЦАП и ПЗУ.

Видеопамять служит для хранения изображения. От ее объема зависит максимально возможное полное разрешение видеокарты - АхВхС, где А - количество точек по горизонтали, В - по вертикали, и С - количество возможных цветов каждой точки. Например, для разрешения 640x480x16 достаточно 256 Кб, для 800x600x256 -512 Кб, для 1024x768x65536 (другое обозначение - 1024х768х64к) - 2 Мб, и т.д. Поскольку для хранения цветов отводится целое число разрядов, количество цветов всегда является степенью двойки (16 цветов - 4 разряда, 256 - 8 разрядов, 64k - 16, и т.д.).

Видеоконтроллер отвечает за вывод изображения из видеопамяти, регенерацию ее содержимого, формирование сигналов развертки для монитора и обработку запросов центрального процессора. Для исключения конфликтов при обращении к памяти со стороны видеоконтроллера и центрального процессора видеоконтроллер имеет отдельный буфер, который в свободное от обращений ЦП время заполняется данными из видеопамяти. Если конфликта избежать не удается - видеоконтроллеру приходится задерживать обращение ЦП к видеопамяти, что снижает производительность системы; для исключения подобных конфликтов в ряде карт применялась так называемая двухпортовая память, допускающая одновременные обращения со стороны двух устройств.

Многие современные видеоконтроллеры является потоковыми - их работа основана на создании и смешивании воедино нескольких потоков графической информации. Обычно это основное изображение, на которое накладывается изображение аппаратного курсора мыши и отдельное изображение в прямоугольном окне. Видеоконтроллер с потоковой обработкой, а также с аппаратной поддержкой некоторых типовых функций называется акселератором или ускорителем, и служит для разгрузки ЦП от рутинных операций по формированию изображения.

ЦАП (цифроаналоговый преобразователь, DAC) служит для преобразования результирующего потока данных, формируемого видеоконтроллером, в уровни интенсивности цвета, подаваемые на монитор. Все современные мониторы используют аналоговый видеосигнал, поэтому возможный диапазон цветности изображения определяется только параметрами ЦАП. Большинство ЦАП имеют разрядность 8x3 - три канала основных цветов (красный, синий, зеленый, RGB) по 256 уровней яркости на каждый цвет, что в сумме дает 16.7 млн. цветов. Обычно ЦАП совмещен на одном кристалле с видеоконтроллером.

Видео-ПЗУ - постоянное запоминающее устройство, в которое записаны видео-BIOS, экранные шрифты, служебные таблицы и т.п. ПЗУ не используется видеоконтроллером напрямую - к нему обращается только центральный процессор, и в результате выполнения им программ из ПЗУ происходят обращения к видеоконтроллеру и видеопамяти. ПЗУ необходимо только для первоначального запуска адаптера и работы в режиме MS DOS; операционные системы с графическим интерфейсом - Windows или OS/2 - практически не используют ПЗУ для управления адаптером, хотя и могут иметь проблемы в работе при ошибках в программе BIOS, не найденных разработчиками.

На карте обычно размещаются один или несколько разъемов для внутреннего соединения; один из них носит название Feature Connector и служит для предоставления внешним устройствам доступа к видеопамяти и изображению. К этому разъему может подключаться телеприемник, аппаратный декодер MPEG, устройство ввода изображения и т.п. На некоторых картах предусмотрены отдельные разъемы для подобных устройств.
2.3. Методические рекомендации
2.3.1. Введение
Все возможности видеосистемы компьютера можно реализовать с помощью видеофункций BIOS прерывания int 10h. Прерывание int 10h обеспечивает: смену видеорежима (текстовый или графический); вывод символьной и текстовой информации; смену шрифтов, настройку цветовой палитры, работу с графическим изображением. Программирование видеосистемы с помощью средств BIOS более громоздко, однако большие возможности и высокая скорость вывода обуславливают широкое использование этого метода в прикладных программах.

В данной работе рассматриваются функции BIOS для обслуживания видеосистемы компьютера, а также функции для работы с клавиатурой. Перечислим функции, являющиеся предметом рассмотрения в лабораторной работе.

Int 10h:

функция 00h - установка видеорежима;

функция 02h - установка позиции курсора;

функция 03h - считывание позиции и размера курсора;

функция 05h - установка видеостраницы;

функция 06h (07h) - инициализация или прокрутка окна вверх (вниз);

функция 08h - чтение символа и атрибута в позиции курсора;

функция 09h - запись символа и атрибута в позицию курсора;

функция 0Ah - запись символа в позицию курсора с текущим атрибутом;

функция 0Eh - запись символа в режиме телетайпа с текущим атрибутом;

функция 0Fh - получить режим дисплея;

функция 1003h - переключение назначения старшего бита байта атрибута: мерцание/яркость,

функция 13h - запись строки с заданным атрибутом в режиме телетайпа.

Int 16h:

функция 00h (10h) - чтение символа с клавиатуры с ожиданием;

функция 01h(11h)- проверка буфера клавиатуры на наличие в нём символа;

функция 02h (12h) - получение флагов (расширенной) клавиатуры.
2.3.2. Прямое программирование видеобуфера в текстовом режиме
Современные видеоконтроллеры поддерживают разнообразные текстовые и графические режимы. Текстовые режимы различаются по разрешению (число отображаемых символов по горизонтали и вертикали) и цветовой палитре (монохромный или 16-цветный режим). Для графических режимов основным признаком классификации является количество одновременно отображаемых цветов и, соответственно, количество бит видеопамяти, отводимое на каждую точку (пиксел) изображения. Различают следующие типы графических режимов:

  • монохромный (1-битное кодирование);

  • 16-цветный EGA/VGA (4-битное кодирование);

  • 256-цветный SVGA (8-битное кодирование);

  • HiColor (16-битное кодирование);

- True Color (24-битное / 32-битное кодирование).

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

На экране отображается видеобуфер, соответствующий активной странице. В текстовых режимах для изображения каждого символа отводится 2 байта: байт с ASCII-кодом символа и байт с его атрибутом. Вообще при формировании изображения непосредственно в видеобуфере, в обход программ DOS и BIOS, все управляющие коды ASCII теряют свои управляющие функции и отображаются в виде соответствующих символов. Структура байта атрибутов приведена на рис. 2.1.


Рис. 2.1.- Структура байта атрибутов
Из рис. 2.1 следует, что каждый символ может принимать любой из 16 возможных цветов, определяемых сочетанием младших 4-х битов. Биты 4-6 байта атрибутов задают цвет фона под данным символом. Последний бит 7, в зависимости от режима видеоадаптера, определяет либо яркость фона под данным символом (тогда фон также может принимать 16 разных цветов), либо мерцание символа (устанавливается DOS no умолчанию).

При загрузке машины устанавливается стандартная палитра, коды цветов которой приведены в табл. 2.1. Рассмотрим некоторые примеры. Так, в режиме мерцания значение старшего полубайта атрибута 8h обозначает не серый фон, а чёрный при мерцающем символе, цвет которого по-прежнему определяется младшим полубайтом; значение старшего полубайта 0Ch - красный фон при мерцающем символе. Переключение назначения бита 7 осуществляется подфункцией 03h функции 10h прерывания int 10h.
Таблица 2.1 Коды цветов стандартной палитры

Код

Цвет

Код

Цвет

0h

Чёрный

8h

Серый

lh

Синий

9h

Голубой

2h

Зелёный

0Ah

Салатовый

3h

Бирюзовый

0Bh

Светло-бирюзовый

4h

Красный

0Ch

Розовый

5h

Фиолетовый

0Dh

Светло-фиолетовый

6h

Коричневый

0Eh

Жёлтый

7h

Белый

0Fh

Ярко- белый


Двухбайтовые коды символов записываются в видеобуфер в том порядке, в каком они должны появиться на экране: первые 80*2 байт соответствуют первой строке экрана, вторые 80*2 байт - второй и т.д. При этом переход на следующую строку экрана определяется не управляющими кодами возврата каретки и перевода строки, а размещением кода в другом месте видеобуфера. Вычислить смещение ячейки в координатах "строка-столбец" (row, clm) можно так:

VidAddr= (row* 160) + (clm* 2)

При большом объёме выводимых данных, информационный кадр формируется заранее в буфере пользователя, располагающегося в сегменте данных программы.
2.3.3.Справочные данные по функциям bios
Регистры общего назначения.

Регистрами общего назначения называются 32-битные регистры EAX, EBX, ECX, EDX, EBP, ESP, ESI и EDI. Данные регистры используются для хранения операндов логических и арифметических команд. Кроме того, они могут использоваться для хранения операндов при вычислении адресов (кроме регистра ESP, который не может быть использован как индексный операнд). Имена указанных регистров наследованы от имен регистров общего назначения процессора 8086 - AX, BX, CX, DX, BP, SP, SI и DI. В Таблице 2.2 показано, как можно адресовать младшие 16 бит регистров общего назначения процессора i486, используя имена регистров процессора 8086.

Каждый байт 16-битных регистров AX, BX, CX и DX также имеет свое имя. Байты этих регистров называются AH, BH, CH и DH (старшие байты) и AL, BL, CL и DL (младшие байты).

Таблица 2.2 Имена регистров

8 Бит

16 Бит

32 Бита

AL

AH

BL

BH

CL

CH

DL

DH

AX
BX
CX
DX
SI

DI

BP

SP

EAX
EBX
ECX
EDX
ESI

EDI

EBP

ESP


2.3.3.1. Прерывание int 10h. Видеофункции BIOS
Функция 00h. Установка видеорежима (табл. 2.2) текущей видеостраницы с очисткой экрана (быстрая очистка экрана реализуется функцией 06h и 07h, полная очистка экрана 00h).

Вызов: АН = 00h,

Al = видеорежим (код режима задаётся в младших 7 битах, установка в 1 старшего бита запрещает очистку экрана).

Регистры АХ, ВР, SI, и DI – не используются в данной функции.
Функция 02h. Установка позиции курсора.

Задаёт положение курсора на экране в текстовых координатах, с которых в дальнейшем будет выводиться текст. Отсчёт номера строки и столбца ведётся от верхнего левого угла. Курсор можно установить как в текстовом, так и в графическом режиме, однако, в графическом режиме курсор не виден. BIOS поддерживает до восьми независимых курсоров - по одному на каждую страницу (см. табл. 2.2) независимо от того, какая страница является активной. Функцию 02h BIOS можно использовать в комбинации с функциями DOS для организации вывода на экран.

Вызов: АН = 02h; ВН = номер страницы (0,1,...7), обычно 0; DH = строка; DL = столбец.

Регистры АХ, ВР, SI и DI – не используются в данной функции.

Функция 03h. Считывание позиции и размера курсора.

Возвращает текущие координаты состояния курсора на выбранной странице. Это даёт возможность временно перейти для работы на другое место экрана, а затем вернуться на старое место. Функцию 03h BIOS можно использовать в комбинации с функциями DOS для организации вывода на экран.

Вызов: АН = 03h, ВН = номер страницы (0,1,...7), обычно 0.

Возврат: DH, DL = строка и столбец текущей позиции курсора, СH, CL = первая и последняя строки развёртки курсора – размер курсора.

Регистры АХ, ВР, SI и DI – не используются в данной функции.

^ Функция 08h. Чтение символа и атрибута в текущей позиции курсора на выбранной странице.

Вызов: АН = 08h, (цвет) ВН = номер страницы (0,...,7), обычно 0.

Возврат: АН = атрибут символа, AL = ASCII-код символа.

Регистры ВР, SI и D – не используются в данной функции..

Функция 09h. Запись символа с заданным атрибутом на экран в позицию курсора. Действует как в графическом, так и в текстовом режимах. В графическом режиме символы не должны переходить на следующую строку. Все коды в AL рассматриваются как символьные и не управляют положением курсора. После вывода символа курсор смещается к следующей позиции функцией 02h. Коэффициент повторения позволяет выводить строки одинаковых символов. В текстовом режиме символ выводится с указанным в BL атрибутом. В графическом - содержимое BL влияет только на цвет символа, но не на фон под ним. Графическое изображение под знакоместом затирается.

Вызов: АН =09h, AL = ASCII-код символа,

BLатрибут символа (текстовый режим) или только цвет символа (графический режим),

^ ВН = номер страницы (0,1,...7), СХ= коэффициент повторения.

Регистры АХ, ВР, SI и DI – не используются в данной функции.

Функция 0Ah. Запись символа с текущим атрибутом на экран в позицию курсора. Функция действует как в графическом, так и в текстовом режимах. Символ принимает атрибут, установленный ранее для этой позиции. Все ASCII-коды в AL рассматриваются как символьные и не управляют положением курсора (также как и в функции 09h). После вывода символа курсор смещается к следующей позиции функцией 02h.

Вызов: АН = 0Ah, AL = ASCII-код символа,

ВН = номер страницы (0,1,...7), СХ = коэффициент повторения.

Регистры АХ, ВР, SI и DI – не используются в данной функции.

Функция 0Fh. Получить режим дисплея и номер текущей страницы.

Вызов: АН = 0Fh.

Возврат: AL = режим дисплея, АН = ширина экрана в текстовом формате

ВН =номер активной страницы.

Регистры ВР, SI и DI – не используются в данной функции.

Пример. Процедура установки позиции курсора на текущей странице.

Вход: dh = строка (0 - 25), dl = столбец (0 - 79)

Proc SetCursor

;Сохранить регистры (по необходимости)

Mov ah,0Fh

Int 10h

Mov ah,02h

Int l0h

;восстановить регистры

Endp SetCursor
Функция 10h. Подфункция 03h. Переключение бита "мерцание/яркость".

Определяет назначение старшего бита 7 атрибута символа: мерцание символа или повышенная яркость фона.

Вызов: АХ= 1003h, BL = назначение 7-го бита атрибута:

0 - повышенная яркость, 1 - мерцание (устанавливается по умолчанию).

Функция воздействует сразу на все символы экрана, у которых установлен старший бит атрибута фона.

^ Функция 13h. Запись строки символов с заданными атрибутами.

Записывает строку в текущую страницу видеобуфера, начиная с указанной позиции. Коды ASCII: 07h - звонок, 08h - шаг назад, 0Ah - перевод строки, 0Dh - возврат каретки, рассматриваются как управляющие, остальные - как символьные.

Вызов: АН = I3h, AL = режим записи:

  1. — атрибут символа в BL, строка содержит только коды символов, после записи курсор принимает исходное положение (т.е. вывод следующей строки, если не изменить позицию курсора, начинается с изначально установленной позиции);

  2. - отличается от режима 0 тем, что после записи курсор остаётся в конце строки;

  3. - строка содержит попеременно коды символов и атрибутов (т.е. каждый символ описывается 2 байтами — ASCII-кодом и атрибутом), после записи курсор принимает исходное положение;

  4. - отличается от режима 2 тем, что по окончании вывода курсор остаётся в конце строки.

^ ВН = номер страницы (0,1,.. .7), BL = атрибут для режимов 0 и 1,

СХ - длина символьной строки (в длину входят только коды символов, но не байты атрибутов),

DX = DH.DLкоординаты курсора (строка, столбец) в исходной точке вывода строки на экране,

ES:BP = адрес начала строки в памяти.
Пример программы индивидуального задания.

Нарисовать прямоугольник зелёного цвета в любом месте экрана
.model small

.stack 100h
VGA_mode equ 13h ; 320x200 256 цветный графический режим

color equ 2 ; цвет линий

x_sise equ 300 ; ширина прямоугольника в пикселах

y_sise equ 100 ; высота прямоугольника в пикселах

x_pos equ 10 ; положение нижнего левого угла прямоуг-ка

y_pos equ 50
.code

start:

set_mode:

mov ah,00h ; вызов нулевой функции BIOS

mov al,VGA_mode ; и инициализация графического режима

int 10h

set_proc:

mov ah,0Ch ; настройка параметров для вызова функции 0Ch

mov al,color

mov cx,x_pos

mov dx,y_pos

line_1: ;

int 10h

inc cx

cmp cx,(x_pos + x_sise)

jne line_1

line_2: ;

int int10h

inc dx

cmp dx,(y_pos + y_sise)

jne line_2;

line_3: ;

int 10h

dec cx

cmp cx,x_pos

jne line_3;

line_4: ;

int 10h

dec dx

cmp dx,y_pos

jne line_4

anykey: ; блок отвечающий за завершение приложения

mov ah,1 ; при нажатии любой клавиши

int 16h ; вызов 16h прерывания BIOS, определения

jz anykey ; наличия введенного символа

int 21h

end start ; завершене программы
2.4. Варианты индивидуального задания:
1. Разработать программу рисования зеленого прямоугольника в любом месте экрана.

  1. Разработать программу рисования красного прямоугольного треугольника
    в нижнем правом углу экрана.

  2. Разработать программу рисования синего равнобедренного треугольника в верхнем правом углу экрана.

  3. Разработать программу рисования белого ромба в любом месте экрана.

  4. Разработать программу рисования желтого квадрата в центре экрана.

  5. Разработать программу рисования белой трапеции в любом месте экрана.

  6. Разработать программу рисования синего параллелограмма в любом месте экрана.




  1. Разработать программу рисования двух любых букв русского алфавита в любом месте экрана.

  2. Разработать программу рисования красного закрашенного квадрата в центре экрана.


2.5. Контрольные вопросы:
1. Краткая характеристика возможностей, предоставляемых программисту базовой системой ввода-вывода BIOS.

2. Назовите объём видеопамяти для изображения одного символа и, соответственно, одной видеостраницы монитора в текстовом режиме.

3. Дайте характеристику атрибута символа в видеобуфере.


    1. Содержание отчета.


1.Название, цель, содержание работы.

2. Задание.

3. Результаты выполнения работы (листинг программы).

4. Письменные ответы на контрольные вопросы.

5. Выводы по работе.
2.7. Информационные источники.
1. Энциклопедия аппаратных средств IBM PC, М.Гук


  1   2   3   4



Скачать файл (5402.5 kb.)

Поиск по сайту:  

© gendocs.ru
При копировании укажите ссылку.
обратиться к администрации
Рейтинг@Mail.ru