Глава 4. Вывод на терминал.

Раздел 2. Управление курсором.

4.2.3 Включение и выключение курсора.

Kурсор генерируется микросхемой 6845. Он функционирует совершенно независимо от видеопамяти. Это значит, что при прямой адресации в память дисплея {4.3.1} программное обеспечение должно координировать перемещения курсора с вставкой нового символа в буфер. Отметим, что микросхема 6845 не может ни создавать немерцающий курсор, ни изменить частоту его мерцания. В {4.2.6} показано как сконструировать другие "искусственные" типы курсора.

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

Ассемблерные программы оставляют курсор включенным, до тех пор, пока им не указано обратное. Операционная система не предоставляет специальных средств выключения курсора, но это легко сделать. Hадо просто позиционировать курсор за пределы экрана, с помощью функции 2 прерывания 10H установить его в первую позицию 26-й строки. Помните, что координаты отсчитываются от нуля, так что этой позиции соответствуют координаты 25,0.
MOV BH,0 ;номер страницы (всегда 0 для монохромного)
MOV DH,25 ;строка
MOV DL,0 ;столбец
MOV AH,2 ;номер функции
INT 10H ;устанавливаем курсор за пределы экрана

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

Бит 6 регистра 10 микросхемы 6845 {4.1.1} выключает курсор, когда он установлен в 1, и включает его, когда сброшен в 0. Этот регистр содержит также значение "начальной строки" для курсора, которое вместе со значением "конечной строки" определяет толщину курсора {4.2.4}. Поскольку тип курсора не имеет значения, когда курсор выключен, то надо просто поместить в регистр 10 значение 32, чтобы установить бит 6. Чтобы восстановить курсор Вы должны также вернуть значение "начальной строки" курсора. Для нормального курсора это значение равно 11. Значение "конечной строки" при этих процедурах не меняется, поскольку оно хранится в другом регистре. ;---выключение курсора
MOV DX,3B4H ;номер порта адресного регистра 6845
MOV AL,10 ;выбор регистра 10
OUT DX,AL ;посылаем запрос
INC DX ;доступ к регистру через следующий порт
MOV AL,32 ;устанавливаем бит 6 для выключения курсора
OUT DX,AL ;выключаем курсор
;---обратное включение курсора
MOV AL,11 ;значение "начальной строки"
OUT DX,AL ;включаем курсор


<~-4.2.2 Относительное позиционирование курсора
Содержание
4.2.4 Изменение формы курсора.-~>

Сайт управляется системой uCoz