Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОТВЕТЫ ЗЫКОВ.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
678.4 Кб
Скачать

130 Poke(&h17,newbyte) 'посылаем новое значение статуса

Чтобы, наоборот, включить этот бит:

120 NEWBYTE=STATUSBYTE OR 32 'устанавливаем бит 5

130 Poke(&h17,newbyte) 'посылаем новое значение статуса

Строки 110-130 могут быть уплотнены к виду:

110 POKE(&H417,PEEK(&H417)AND 223)

или

110 POKE(&H417,PEEK(&H417)OR 223)

Средний уровень.

Функция 2 прерывания 16H предоставляет доступ к одному - но

только одному - из байтов статуса. Это байт по адресу 0040:0017,

который содержит больше полезной информации. Байт возвращается в

AL.

;---проверка статуса клавиши вставки

MOV AH,2 ;номер функции

Int 16h ;получаем байт статуса

TEST AL,10000000B ;проверяем бит 7

JZ INSERT_OFF ;если 0, то INSERT выключен

Низкий уровень.

В данном примере устанавливается режим вставки, за счет уста-

новки бита 7 байта статуса по адресу 0040:0017 (который адресует-

ся как 0000:0417).

SUB AX,AX ;устанавливаем добавочный сегмент на

MOV ES,AX ;начало памяти

MOV AL,10000000B ;готовим бит 7 к установке

OR ES:[417H],AL ;меняем байт статуса

7.Установка атрибутов/цветов символов. Вывод символов на экран.

7.1.Установка атрибутов/цветов символов.

Когда дисплей установлен в текстовый режим в любой из видео

систем, то каждой позиции символа на экране отводится два байта

памяти. Первый байт содержит номер кода ASCII кода символа, а

второй - атрибуты символа. Цветной адаптор и PCjr могут выводить

в цвете, как сам символ, так и всю область, отведенную данному

символу (фоновый цвет). Монохромный адаптор ограничен только

черным и белым цветом, но он может генерировать подчеркнутые

символы, чего не могут делать цветной адаптор и PCjr. Все три

системы могут выдавать мигающие символы и негативное изображение.

Все три системы могут также создавать символы с высокой интенсив-

ностью, хотя для цветного адаптора и PCjr повышенная интенсив-

ность символа на самом деле приводит к другому цвету (восемь

основных цветов имеют версии с повышенной интенсивностью, что

дает набор 16 цветов). EGA умеет делать все, что могут все ос-

тальные системы и многое другое. В частности, на улучшенном дисп-

лее он может выводить подчеркнутые цветные символы, поскольку

матрица изображения символов 8*14 дает такую возможность.

Атрибуты цвета:

Для указания цветов экрана одни и те же номера кодов исполь-

зуются в Бейсике и прерываниями операционной системы. Они такие:

0 - черный 8 - серый

1 - синий 9 - голубой

2 - зеленый 10 - светлозеленый

3 - циан 11 - светлый циан

4 - красный 12 - светлокрасный

5 - магента 13 - светлая магента

6 - коричневый 14 - желтый

7 - белый 15 - яркобелый

Младшие четыре бита байта атрибутов устанавливают цвет самого

символа (бит 3 включает высокую интенсивность). Следующие три

бита устанавливают фон символа. И при обычных обстоятельствах

старший бит включает и выключает мигание. Таким образом:

когда бит 0 = 1, синий включается в основной цвет

1 = 1, зеленый включается в основной цвет

2 = 1, красный включается в основной цвет

3 = 1, символ выводится с высокой интенсивностью

4 = 1, синий включается в фоновый цвет

5 = 1, зеленый включается в фоновый цвет

6 = 1, красный включается в фоновый цвет

7 = 1, символы мигают

Биты 0-2 и 4-6 содержат одни и те же компоненты цветов для

самих символов и фона. Эти трехбитные группы позволяют 8 возмож-

ных комбинаций. Когда включается бит высокой интенсивности, то

добавляются еще 8 цветов. Шестнадцать возможных цветов получаются

из этих установок битов следующим образом:

Красный Зеленый Синий Низкая интенсивность Высокая

0 0 0 черный серый

0 0 1 синий светлосиний

0 1 0 зеленый светлозеленый

0 1 1 циан светлый циан

1 0 0 красный светлокрасный

1 0 1 магента светлая магента

1 1 0 коричневый желтый

1 1 1 белый яркобелый

Можно иметь 16 цветов и для фонового цвета. В этом случае бит 7

должен служить указателем высокой интенсивности для фона, а не

указателем мигания символов. Для цветного адаптора надо изменить

бит 5 порта с адресом 3D8H в 0, как показано ниже. Поскольку этот

порт доступен только для записи, то все остальные биты должны

быть переустановлены. Эта возможность доступна только в двух

случаях: текстовых режимов с 40 и с 80 символами в строке. Для

режима с 80 символами надо послать в порт число 9, а для режима с