Вивід інформації на
екран персонального комп'ютера може виконуватися на трьох рівнях: 1) на рівні
MS-DOS з використанням функцій переривання 21h; 2) на рівні BIOS з
використанням функцій переривання 10h; 3) безпосереднім доступом до апаратних засобів.
Вивід інформації на рівні MS-DOS – мобільний,
але самий повільний. Функції MS-DOS для виводу информа
ции на екран викликають драйвер
консолі (виконують вивід у спеціальний символьний файл CON). Якщо в системі
інстальований спеціальний драйвер (наприклад, ANSI.SYS), можуть
використовуватися додаткові засоби по керуванню екраном. Суть розширеного керування
складається в передачі драйверу консолі (“висновку” на екран) спеціальних
керую-
щей рядка по символі ASCII 27(1Bh). Передані
на екран слідом за ним символи розглядаються як параметри ко-манды, що виконує
драйвер, наприклад переміщає курсор, установлює колір символу і т.п. Самі
керуючі символи не відображаються на екрані. Таким чином, використання функцій
MS-DOS дозволяє пропустити висновок через драйвер. Інші достоїнства функцій
MS-DOS – автоматичне позиционирование курсору і скролінг екрана, реакція на
натискання комбінації клавіш Ctrl-Break. Недоліком є неможливість
безпосереднього керування курсором і атрибутом символів. На рівні MS-DOS
працюють функції стандартного висновку Turbo C; їхні прототипи утримуються у
файлі <stdio.h> (див. гл. 3).
Висновок на рівні BIOS дає більш
широкі можливості по керуванню екраном. Саме ці функції використовують-
ся драйверами MS-DOS для висновку
інформації на екран. Недоліком функцій BIOS є невисока швидкість выво- так, що
особливо помітно при роботі в графічних режимах. На рівні BIOS працюють функції
консольного висновку
Turbo C; їхні прототипи поміщені у
файлі <conio.h>.
Для
додатків, критичних по швидкості висновку, приходиться виконувати висновок, використовуючи безпосередній дос-
тупий до портів і відеопам'яті адаптора. Такий спосіб
дозволяє досягти максимально можливої швидкості висновку, але требуетмаксимальных
витрат праці програміста. Функції консольного висновку Turbo C можуть на вибір
користувача працювати і на самому нижньому рівні, виконуючи доступ до
відеобуфера при роботі в текстовому режимі.
![]() |
![]() |
![]() |