Компьютерные и информационные технологии

Автор: Пользователь скрыл имя, 09 Марта 2012 в 22:44, курсовая работа

Описание работы

Цель технологии материального производства - выпуск продукции, удовлетворяющей потребности человека или системы.
Цель ИТ - производство информации для её анализа человеком и принятия на его основе решения по выполнению какого-либо действия.

Содержание

ВВЕДЕНИЕ……………………………………………………………………………5
1 ИЗУЧЕНИЕ ЯЗЫКА POSTSCRIPT………………………………………………….8
1.1 Основные понятия языка PostScript…………………………………………......8
1.2 Графика и текст в PostScript…………………………………………………12
1.3 Пример создания программы на языке PostScript………………………….14
2 СИСТЕМА КОМАНД ДЛЯ УПРАВЛЕНИЯ МАТРИЧНЫМ ПРИНТЕРОМ…….18
2.1 Основные понятия…………………………………………………………………18
2.2 Команды управления режимами печати…………………………………………22
2.3 Команды перемещения бумаги…………………………………………………...24
2.4 Работа с загружаемым знакогенератором………………………………………..26
2.4.1 Подготовка образов загружаемых символов для черновой печати……...26
2.4.2 Подготовка образов загружаемых символов для качественной печати...28
2.4.3 Команды работы с загружаемым знакогенератором……………………..29
3 ПРИЕМЫ НИЗКОУРОВНЕВОЙ РАБОТЫ С МЫШЬЮ…………………………..33
3.1 Структура мыши………………………………………………………………….33
3.2.Операции низкоуровневой работы с мышью………………………………….34
4. ЗАГРУЖАЕМЫЕ СИМВОЛЫ……………………………………………………….40
ВЫВОДЫ………………………………………………………………………………..43
Перечень ссылок…………………………………………………………………………44

Работа содержит 1 файл

Курсовой_КИТ.doc

— 311.00 Кб (Скачать)

 

Команды принтера для печати текста в черновом режиме с использованием разработанных матриц символов и загружаемого знакогенератора представлены на скриншотах в приложении Б.2. Результат выполнения данных команд представлен в приложении Б.3.

Для реализации данного задания генерация текстовых строк была проведена с помощью программного продукта WINHEX.

 

 


3 ПРИЕМЫ НИЗКОУРОВНЕВОЙ РАБОТЫ С МЫШЬЮ

 

 

В этом разделе курсовой работы рассмотрим изучение структуры мыши и операций низкоуровневой работы с ней.

 

3.1 Структура мыши

 

Мышь – периферийное устройство, подключаемое к компьютеру, которое предоставляет возможность удобного перемещения в области экрана.

Эволюция мышек прошла 3 этапа:

- контактные

- фотодиодные

- оптические.

Первые 2 основаны на анализе частоты импульсов.

В первом случае электрический импульс генерируется при соединении контактов на диске и внешнего контакта прижатого к диску.

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

В третьем поколении мышки отсутствует самый популярный элемент – шарик, а также валы, диски, светодиод, фотодиод контакты. Вместо шариков в эти мышки встраивается миниатюрная фотокамера, которая постоянно, с большой скоростью, снимает изображение под мышкой, относительно мощный процессор анализирует последние несколько кадров и  на основании этих данных приходит к выводу о направлении перемещения мышки.

Операции работы с мышью:

- сброс мыши;

- включение курсора мыши;

- выключение курсора мыши;

- установление курсора мыши;

- определение координат и состояния клавиш мыши;

- определение области перемещения, видимости курсора мыши;

- задание формы курсора мыши;

- определение перемещения мыши в дюймах;

- подключение пользовательских процедур.

Рассмотрим реализацию описанных операций на низкоуровневом языке программирования Ассемблер.

 

3.2.Операции низкоуровневой работы с мышью

 

Обращение к подпрограмме обрабатывающей сигнал от мыши осуществляется с помощью прерывания int 33h.

Инициализация мыши:

Вход: AX = 0000h

Выход: AX = 0000h – если нет мыши или драйвера

              AX = FFFFh – есть мышка

              BX = 0, если  число клавиш мыши ≠2

              BX = 2, если число клавиш мыши  = 2

              BX = 3, если число клавиш мыши = 3

При начальной инициализации курсор в центре экрана, на нулевой странице и гасится. Видимость/перемещение всюду.

Включение курсора мыши:

Вход: AX = 0001h

При включении курсора счетчик видимости становиться равным 0, происходит сброс области невидимости.

Выключение курсора мыши:

Вход: AX = 0002h

При включении курсора счетчик видимости становиться равным -1, курсор гасится.

Определение положения курсора мыши:

Вход: AX = 0003h

Выход: BX = 76543210 (0 - левая клавиша нажата, 1 - правая, 2 - средняя)

                  СХ= координата Х в пикселях             

                  DХ= координата Y в пикселях             

Для текстового режима необходимо координаты сдвинуть на 3 разряда, т.е. разделить координаты на 8.

Установка курсора мыши:

Вход: 

АХ = 0004h

              СХ= координата Х в пикселях             

              DХ= координата Y в пикселях             

Для текстового режима необходимо координаты умножить на 8.

Определение положение курсора при нажатии клавиши мыши:

Вход:

АХ = 0005h

              ВХ = 0 – левая клавиша             

                            1 – правая клавиша             

                            2 – средняя клавиша             

Выход:

АХ = состояние клавиши

ВХ = количество нажатий клавиши после последнего вызова функции.

СХ:DХ = координаты курсора мыши в момент последнего нажатия.

Определение положение курсора при отпускании клавиши мыши:

Вход:

АХ = 0006h

              ВХ = 0 – левая клавиша             

                            1 – правая клавиша             

                            2 – средняя клавиша             

Выход:

АХ = состояние клавиши

ВХ = количество отпускания клавиши после последнего вызова функции.

СХ:DХ = координаты курсора мыши в момент последнего отпускания.

Задание диапазона движения курсора по горизонтали:

Вход: 

АХ = 0007h

СХ = минимальная координата по Х

DХ= максимальная координата по Х

Задание диапазона движения курсора по вертикали:

Вход:

АХ = 0008h

СХ = минимальная координата по Y

DХ= максимальная координата по Y

Задание формы курсора в графическом режиме:

Вход:

АХ = 0009h

BХ = координаты (0-15)

DХ = точки внутри графического изображения курсора, которые являются фактическим указанием положения курсора мыши на экране (0-15).

ES:DX = указатель на битовое изменение курсора мыши.

Задание формы курсора мыши в текстовом режиме:

Вход:

АХ = 000Ah

BХ = тип курсора

              0 – программный

              1 - аппаратный

СХ= маска экрана, если ВХ=0

СХ= начальная строка курсора мыши, если ВХ=1

DХ= маска курсора, если ВХ=0

DХ= конечная строка курсора мыши, если ВХ=1

Определение содержимого счетчиков перемещения:

Вход:

АХ = 000Вh

Выход:

Результат в “миках” (MicKey).

СХ = количество “миков” по горизонтали

DХ = количество “миков” по вертикали

Установка драйвера событий

Вход:

АХ = 000Сh

СХ = маска вызова, имеющая следующие биты:

0 – при перемещение мышки;

1 – при нажатии левой клавиши;

2 – при отпускании левой клавиши;

3 – при нажатии правой клавиши;

4 – при отпускании правой клавиши;

5 – при нажатии средней клавиши;

6 – при отпускании средней клавиши.

7Fh – любое событие

ES:DX = адрес драйвера, который будет обрабатывать эти события

Входная информация для драйвера событий:

AX = маска вызова

ВХ = состояние клавиш

СX, DX = координаты курсора

SI, DI = относительное перемещение курсора

DS = сегмент данных драйвера мыши

Этот драйвер событий подключается и вызывается из драйвера мыши. Мы регистрируем в операционной системе MS-DOS собственную программу, которая будет вызываться при наступлении событий связанных с мышью. Отсюда получаем еще один способ внедрения программ. Имеется возможность установить еще один альтернативный драйвер событий (АХ = 0018h).

Определение типа мыши:

Вход:

              AХ = 0024h

Выход:

              ВХ = версия драйвера

              СН = вид подключения

                            1 – BUS (через специализированный адаптер)

                            2 – SERIAL              (через последовательный адаптер)

                            3 – Inport

                            4 – PS/2              (через круглый разъем)

                            5 – HP

СL = номер прерывания, к которому подключена мышь.

Определение порога удвоения скорости:

Вход:

АХ = 0013h

Выход:

              DX = порог (мики/сек)

По умолчанию - 64 мика/сек

Установление области исключения видимости для курсора (то есть определение области, в которой курсор становится невидим):

Вход:

              AX = 0010h

              СX:DX = координата левого верхнего угла

              SI:DI = координата правого нижнего угла

Для примера при изучении структуры мыши и операций низкоуровневой работы с ней было обработано следующее задание: изменять тип курсора в графическом режиме при помещении его на середину экрана.

Листинг программы на языке низкого уровня – Ассемблере – приведен в приложении В.1. Также приведены скриншоты результата работы программы.

 


4. ЗАГРУЖАЕМЫЕ СИМВОЛЫ

 

 

В первых адаптерах MDA и CGA можно в текстовых режимах отображать только те символы, которые определены в таблице, расположенной в ПЗУ знакогенеpатоpа в составе адаптера. Такой тип знакогенеpатоpа не рассчитан на использование таблицы определений символов из ЗУПВ, называемой загружаемым шрифтом (loadable font). В новых адаптерах EGA, MCGA, VGA в текстовых режимах допускается вывод на экран символов, определения которых загружаются в конкретную область ЗУПВ.

Текстовый знакогенератор во всех видеосистемах ссылается на резидентную в памяти таблицы шрифтов, которые должны лежать в предопределенном месте памяти, чтобы текстовый знакогенеpатоp мог получить к ним доступ.

В адаптерах MDA, CGA и Hercules таблица шрифтов находится в ПЗУ вне адресного пространства CPU. Только аппаратный знакогенератор имеет туда доступ. Следовательно наборы символов, отображаемые в текстовых режимах, программно не контролируются.

На EGA, MCGA и VGA знакогенератор использует таблицу, находящуюся в ЗУПВ, а не в ПЗУ. BIOS содержит встроенные таблицы шрифтов, которыми инициализируется ЗУПВ знакогенератора при задании текстового режима с помощью функции 00h пpеывания INT 10h.

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

200-строчные режимы.

CGA 200-строчные текстовые режимы используют 8x8 матрицу символов. В 80x25 текстовом режиме экран имеет ширину в 604 пикселей, в режиме 40x25 ширина 320 пикселей. Хотя CGA использует тот же набор символов и шрифтов в текстовом и графических режимах, определение символов для текстовых режимов расположено в выделенном ROM, доступном только аппаратному генератору символов.

350-строчные режимы.

В 350-строчном текстовом режиме на MDA и Hercules адаптерах символы определяются в матрицах 8x14. Снова таблица определения символов расположена в ROM вне адресного пространства CPU, что выделено аппаратному генератору символов. Поскольку на этих адаптерах горизонтальное разрешение 720 пикселей, каждый 8x14 символ в действительности отображается в матрице шириной 9 пикселей. Таким образом каждая строка на экране содержит 720/9 или 80 символов.

Если символы определены в ROM в матрице 8x14, но отображаются в матрице 9x14, то откуда берутся остальные пиксели? Аппаратный генератор символов в MDA, плате Hercules, EGA и VGA (в монохромном режиме) добавляет дополнительный пиксель с права каждой строки восьмого пикселя в каждом символе. Для всех оставшихся кодов символов дополнительный пиксель отображается с атрибутом фона.

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

400-строчные режимы

Умалчиваемые текстовые режимы и MCGA и VGA имеют 400-строчное вертикальное разрешение. Символы, используемые в этих режимах, определены в матрице 8x16. На VGA символы 8x16 отображаются в матрице 9x16, так же как на MDA или EGA с монохромным дисплеем.

Таблицы шрифтов ЗУПВ.

Адаптеры EGA, VGA, MCGA имеют встроенный текстовый знакогенератор, который использует таблицу шрифтов, расположенную в предопределенной области ЗУПВ и в адресном пpостpанстве пpоцессоpа. Зная размещение этого ЗУПВ и его формат, можно писать программы, которые читают или обновляют таблицы шрифтов.

В текстовых режимах на EGA и VGA, видеобуфер организован как четыре параллельных банка памяти, как и в графических режимах.

Начальный адрес видеобуфера отображается на адрес В800:0000h. Однако в текстовом режиме отображаемые данные содержатся только в банках 0 и 1. Четные байты (коды символов) в адресном пространстве CPU расположены в банке 0, а нечетные байты (байты атрибутов) расположены в банке 1. Это распределение невидимо для CPU; CRTC внутренне транслирует нечетные адреса в смещение банка 1, а четные адреса ссылаются на банк 0.

Информация о работе Компьютерные и информационные технологии