Консультация № 77226
28.02.2007, 22:19
0.00 руб.
0 1 1
Здравствуйте. Интересует один вопрос. Как работает курсор. Поясняю. Процессор переходит в PM таблица прерываний еще не готова и ни одна функция BIOS не работает и прерывания запрещены. Единственное что в голову приходит - курсор управляется видеоадаптером. Если не прав, поправьте. Значит управлять им можно на уровне портов. Расскажите пожалуйста, как можно передвинуть курсор влево и вправо, спрятать, изменить скорость, если можно, приведите код. Спасибо.

Обсуждение

Неизвестный
01.03.2007, 00:06
общий
это ответ
Здравствуйте, RIV!
Да курсор управляется напрямую видеоадаптером.
Прямое программирование видеоадаптера штука сложная-опасная, говорят можно спалить монитор... Насчет портов управляющих курсором - поищи инфу о 3b5h,3d5h портах, так называемых "CRT controller internal registers"-CRTC.
(Скорость мерцания насколько я помню не меняется, вот на MSX2 там да меняли.... )
Но лучше положится на BIOS: Int10h
Ah=01H уст. размер/форму курсора (текст). Курсор, если он видим, всегда мерцает.
Вход: CH = начальная строка (0-1fH; 20H=подавить курсор)
CL = конечная строка (0-1fH)

Ah=02H уст. позицию курсора. Установка на строку 25 делает курсор невидимым.
Вход: BH = видео страница
DH,DL = строка, колонка (считая от 0)

Ah=03H читать позицию и размер курсора
Вход: BH = видео страница
Выход: DH,DL = текущие строка,колонка курсора
CH,CL = текущие начальная,конечная строки курсора (см. функцию 01H)
Форма ответа