Автор: Пользователь скрыл имя, 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
Команды принтера для печати текста в черновом режиме с использованием разработанных матриц символов и загружаемого знакогенератора представлены на скриншотах в приложении Б.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.
Информация о работе Компьютерные и информационные технологии