Страница 11 из 47
Раздел 2. Управление курсором. Курсор служит двум целям. Во-первых, он служит указателем места на экране, в которое операторы программы посылают свой вывод. Во-вторых, он обеспечивает видимую точку отсчета на экране для пользователя программы. Только для второго применения курсор должен быть видимым. Когда курсор невидим (выключен), то он все равно указывает на позицию экрана. Это важно, поскольку любой вывод на экран, поддерживаемый операционной системой, начинается с текущей позиции курсора. Курсор генерируется микросхемой контроллера дисплея 6845, описанной в [4.1.1]. Эта микросхема имеет регистры, устанавливаю- щие размер и положение курсора. Микросхема 6845 делает только мерцающий курсор, хотя имеются программные способы создания не- мерцающего курсора [4.2.6]. Частота мерцания курсора не может быть изменена. В графических режимах курсор не выводится, хотя символы позиционируются на экране теми же самыми процедурами установки курсора, что и в текстовых режимах. Когда видеосистема работает в режиме, допускающем несколько дисплейных страниц, то каждая страница имеет свой собственный курсор и при переключении между страницами восстанавливается позиция курсора, которую он занимал, когда было последнее обраще- ние к восстанавливаемой странице. Некоторые режимы дисплея позво- ляют иметь до 8 дисплейных страниц и соответствующие им позиции курсора хранятся в наборе восьми 2-байтных переменных в области данных BIOS, начиная с адреса 0040:0050H. В каждой переменной младший байт содержит номер столбца, отсчитывая от 0, а старший байт содержит номер строки, также отсчитывая от 0. Когда исполь- зуется меньше чем 8 страниц, то используются переменные, располо- женные в более младших адресах памяти.
|