Текстовий режим

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку
Програма Norton Commander, що працює в текстовому режимі.

Текстовий режим — режим комп'ютерного відеоадаптера, в якому екран представлений у вигляді решітки знакомісць (а не пікселів, на відміну від графічного режиму). У кожному зі знакомісць може перебувати лише один символ з обмеженого набору.

Текстові відеотермінали почали замінювати телетайпи на початку 1970-х років і змінили спосіб ведення діалогу оператора з комп'ютером. Замість командного рядка з'явився текстовий інтерфейс користувача; в шрифти почали вводити псевдографічні символи для малювання рамок і імітації елементів графічного інтерфейсу. Одна з кодувань з псевдографікою — CP437 (IBM).

Текстовий режим дає перевагу над графічним у швидкості і простоті програмування. До того ж у ті часи (1970-ті роки) вважалося марнотратством ставити в термінал стільки відеопам'яті, щоб зберігати кожен піксель екрану (перший Macintosh став проривом, незважаючи на дорожнечу, саме через це). У текстовому режимі зображення генерується динамічно з матриці знакомісць та зображень символів за допомогою особливої ​​схеми — знакогенератора. На більш ранніх ЕОМ використовувалися також знакодрукувальні кінескопи, які генерували символи без складних схем знакогенератора, використовуючи трафарет. Другою перевагою текстових інтерфейсів, пов'язаним з терміналами, стали низькі вимоги до швидкості зв'язку терміналу і ЕОМ.

Оскільки зображення являє собою матрицю символів, шрифт в текстовому режимі, природно, може бути тільки моноширинним — приблизно таким же, як і в друкарських машинках. Таким же чином працюють АЦДП барабанного типу — так що зображення з екрану можна без проблем відправляти на друк. Більш нові пристрої друку (матричні принтери) імітували цю рису АЦДП.

Багато ОС дозволяють не тільки емулювати телетайп, а й писати в будь-яке можливе знакомісце. Для цього є два стандарти: ANSI-графіка і команди, сумісні з VT100.

Межа між текстовими та графічними режимами розмита: наприклад, деякі програми (Norton Utilities) динамічно перевизначають шрифт, щоб відображати графічні знаки або графічний курсор миші. Комп'ютер «Корвет» міг одночасно виводити текст поверх графічного зображення. Іноді текстовий режим через його швидкості застосовувався і в іграх.

Інтерфейс командного рядка і емулятори терміналу імітують поведінку комп'ютера в текстовому режимі.

Технічні подробиці[ред. | ред. код]

L\C 0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
1
0
0
1
0
0
0
0
1
0
1
0
0
1
1
0
0
0
1
1
1
00000000
11111111
00001111
00110011
01010101
11…
00…
00…
00…
01…
00000          
00001        
00010    
00011    
00100    
00101            
00110        
00111                
01000
01001
… … …

Внизу: схема найпростішого знакогенератора (32 × 24 знакомісця без атрибутів, 8 × 8 пікселів в кожному). Вгорі: одна з позицій шрифта для цього знакогенератора.

Відеоадаптер, який здатний працювати в текстовому режимі, має дві особливих царини відеопам'яті — текстовий буфер і шрифт. Шрифт — зображення всіх можливих символів (зазвичай, бітових). Текстовий буфер — масив за кількістю знакомісць. Для кожного з знакомісць в текстовому буфері зберігається код символу і додаткова інформація — атрибут. Залежно від моделі адаптера, атрибут може зберігати кольори символу та фону, прапори інверсії, яскравості, підкреслення, миготіння.

Роботою текстового режиму керує схема відеоадаптера, яку називають знакогенератором. Працює він так. У відеоадаптері є два лічильника: рядків (Y) і пікселів в рядку (X). Ці координати діляться з залишком на розмір знакомісця. Координати в текстовому буфері є частками від ділення, а координати в шрифті — залишками. Якщо розміри знакомісця — степені двійки, то ділення з залишком являє собою просто відкидання верхніх і нижніх бітів.

Координати в текстовому буфері направляються, як неважко зрозуміти, в текстовий буфер. Той повертає код символу і атрибут. Код символу, X і Y в шрифті проходять через шрифтову пам'ять, яка повертає один біт — 0, якщо в цій позиції фон, і 1, якщо зображення. Схема застосування атрибута (на малюнку праворуч не зазначена) перетворює лінії атрибуту і цей біт в остаточний сигнал, придатний до прогону через ЦАП. У простому випадку ця схема — мультиплексор на два входи по 4 біта, що перемикає між кольором зображення і кольором фону. Ця ж схема малює текстовий курсор.

Шрифт зберігається, залежно від моделі відеоадаптера, в ПЗУ або ОЗП. В останньому випадку шрифт можна перевизначити — це дозволяє українізувати комп'ютер або, змінюючи шрифт синхронно з розгорненням, робити піксельну графіку (так працюють, наприклад, TMS9918, MOS Technology VIC і Nintendo Game Boy).

У деяких текстових режимах (наприклад, на тому ж VT100) існують і атрибути рядків. Рядок може мати подвійну ширину.

У ранніх терміналах шрифт був вбудований в так звану літеродрукувальну ЕПТ.

Текстові режими на IBM-сумісних комп'ютерах[ред. | ред. код]

На IBM-сумісних машинах існує величезний вибір текстових режимів.

Дозвіл
Розмір
символу
Графічний
дозвіл
Кі-сть
кольорів
Адаптери
80×25 9×14 720×350 Чорно-білий MDA, Hercules
40×25 8×8 320×200 16 кольорів CGA, EGA
80×25 8×8 640×200 16 кольорів CGA, EGA
80×25 8×14 640×350 16 кольорів EGA
80×43 8×8 640×350 16 кольорів EGA
80×25 9×16 720×400 16 кольорів VGA
80×30 8×16 640×480 16 кольорів VGA
80×34 8×14 640×480 16 кольорів VGA
80×50 9×8 720×400 16 кольорів VGA
80×60 8×8 640×480 16 кольорів VESA-сумісні Super VGA
132×25 16 кольорів VESA-сумісні Super VGA
132×43 16 кольорів VESA-сумісні Super VGA
132×50 16 кольорів VESA-сумісні Super VGA
132×60 16 кольорів VESA-сумісні Super VGA

MDA дозволяє виділяти текст яскравим кольором, інверсією, підкресленням і миготінням; кольорові — містять атрибут з 4-бітного кольору тексту і 4-бітного кольору фону. Верхній біт в кольорі фону може ставати бітом миготіння. Відеоплати в цілому сумісні «зверху вниз»: так, EGA підтримує всі MDA-і CGA-режими.

Найбільш поширений режим, що застосовується як в DOS, так і в консольних програмах Windows — 80 × 25 символів, 16 кольорів. 40-символьні режими використовувалися в іграх і на телевізорах. Розміри символів у SVGA-режимах залежать від виробника. Також SVGA дозволяють зменшити кількість кольорів з 16 до 8, зате виводити цілих 512 різних символів. Деякі плати (наприклад, S3) підтримують величезні текстові режими (до 160 × 120). Щоб працювати з такими режимами в консолях Linux, застосовувалася програма SVGATextMode.

Див. також[ред. | ред. код]

Посилання[ред. | ред. код]