Страница 3 из 47
4.1.2 Установка/проверка режима дисплея. Монохромный адаптер поддерживает один режим терминала, цветной графический - семь, PCjr - десять, а EGA - двенадцать. Система PCjr более гибкая, чем монохромный или цветной адаптеры, посколь- ку она предоставляет широкий выбор цветов в режимах с двумя и четырьмя цветами, а также серые тени в черно-белом режиме. EGA еще более сложен, поддерживая палетту из 64 цветов, графику на монохромном дисплее и вывод в 43 строки. Ниже приведен перечень различных режимов:
Номер Режим адаптеры
0 40*25 (320*200) B&W алфавитноцифровой цветной, PCjr, EGA 1 40*25 (320*200) цветной алфавитноцифровой цветной, PCjr, EGA 2 80*25 (640*200) B&W алфавитноцифровой цветной, PCjr, EGA 3 80*25 (640*200) цветной алфавитноцифровой цветной, PCjr, EGA 4 320*200 4-цветная графика цветной, PCjr, EGA 5 320*200 B&W графика (4 тени на PCjr) цветной, PCjr, EGA 6 640*200 B&W графика цветной, PCjr, EGA 7 80*25 (720*350) B&W алфавитноцифровой монохромный, EGA 8 160*200 16-цветный графика PCjr 9 320*200 16-цветный графика PCjr A 640*200 4-цветный графика PCjr B зарезервирован для EGA C зарезервирован для EGA D 320*200 16-цветный графика EGA E 640*200 16-цветный графика EGA F 640*350 4-цветная графика на монохромном EGA 10 640*350 4- или 16-цветная графика EGA
EGA разрешает иметь 8 страниц в режиме 7 - стандартном монох- ромном текстовом режиме. Режимы 0-6 полностью совместимы, исполь- зуя память одинаковым образом. При условии, что переключатели на EGA установлены для работы с улучшенным цветным дисплеем фирмы IBM, традиционные текстовые режимы выводятся с высоким разреше- нием, используя рисунок символов, состоящий из 8*14 точек, а не обычные 8*8. BIOS хранит однобайтную переменную по адресу 0040:0049, в которой содержится номер текущего режима. Байт по адресу 0040:004A дает число символов в строке в текстовом режиме.
Высокий уровень. Бейсик использует операторы SCREEN и WIDTH для управления режимом экрана. PCjr использует эти операторы несколько другим способом, чем монохромный и цветной адаптеры, и это будет обсуж- даться ниже. Один оператор SCREEN устанавливает режим для цветно- го адаптера. За оператором стоит номер кода, устанавливающий разрешение, где:
0 текстовый режим 1 графический режим среднего разрешения 2 графический режим высокого разрешения
SCREEN 1 устанавливает графический режим среднего разрешения. Второй параметр включает и выключает цвет. Этот параметр не имеет смысла для режима высокого разрешения на цветном адаптере, пос- кольку разрешен только черно-белый режим. Для текстовых режимов 0 в качестве второго параметра выключает цвет, а 1 - включает. Оператор SCREEN 0,0 устанавливает текстовый черно-белый режим. Для графического режима ситуация обратная: 0 - включает цвет, а 1 - выключает. Поэтому оператор SCREEN 1,1 устанавливает черно-бе- лый графический режим среднего разрешения. Все режимы первоначально показываются черно-белыми. Оператор COLOR (см. [4.1.3]) должен быть использован, чтобы закрасить экран фоновым цветом. В графическом режиме одного оператора COLOR достаточно, чтобы изменить весь фон на указанный цвет. Но для текстового режима Вы должны после оператора COLOR использовать оператор CLS. В текстовых режимах в строке может быть 40 или 80 символов. Для установки требуемого числа символов в строке надо использо- вать оператор WIDTH. WIDTH 40 дает 40 символов в строке, а WIDTH 80 - 80. Другие значения недопустимы. Если оператор WIDTH исполь- зуется в графическом режиме (SCREEN 1 или SCREEN 2), то WIDTH 40 переводит экран в режим среднего разрешения, а WIDTH 80 - в режим высокого разрешения. Вот несколько примеров:
100 SCREEN 0,1: WIDTH 40 'цветной текстовый режим с 40 символами
100 SCREEN 0,1: WIDTH 40 'цветной дисплей как монохромный
100 SCREEN 0,1: WIDTH 40 'цветная графика среднего разрешения . . 500 WIDTH 80 'переводим в режим высокого разрешения
Монохромный монитор может быть переведен в режим 40 символов в строке операторами SCREEN 0: WIDTH 40. Для восстановления режима с 80 символами введите WIDTH 80. В режиме с 40 символами они сохраняют свою обычную ширину, поэтому будет использоваться толь- ко левая часть экрана. Строка переносится после 40-го столбца и невозможно поместить курсор в правую половину экрана с помощью оператора LOCATE. CLS чистит только левую часть экрана. Трудно представить программу, которая использовала бы это свойство, но оно действительно позволяет программе принимать ввод (скажем, через оператор INPUT), в то время как пользователь продолжает печатать в левой половине экрана, оставляя правую половину экрана для возможной корректировки вводимой информации. При этом любой вывод в правую половину экрана возможен только прямого обращения к памяти дисплея, как объяснено в [4.3.1]. PCjr использует в Бейсике 7 номеров режимов:
Номер Режим
0 текстовый режим, ширина может быть 40 или 80 1 4-цветная графика среднего разрешения 2 2-цветная графика высокого разрешения 3 16-цветная графика низкого разрешения 4 4-цветный режим среднего разрешения 5 16-цветный режим среднего разрешения 6 4-цветная режим высокого разрешения
Последние четыре режима требуют дискетты с Бейсиком. Размер страницы определяет количество памяти, требуемое для одного экра- на (дисплейные страницы обсуждаются в [4.5.3]). Программа должна отвести соответствующее количество памяти перед установкой режи- ма. Это делается оператором CLEAR. За оператором CLEAR должны следовать три числа, определяющие отводимую память, третье из этих чисел устанавливает размер видеобуфера (первые два параметра обсуждаются в [1.3.1]). Например, размер для видеобуфера 16K, устанавливаемый по умолчанию, выделяется командой CLEAR ,,16384. К сожалению, размер видеобуфера указывается в байтах, поэтому он не равен круглому числу типа 4000 или 32000, а равен 4096 или 32768. Помните, что 2K = 2^11, 4K = 2^12, 16K = 2^14, а 32K = 2^15. Для выделения трех страниц по 16K, введите CLEAR ,,3*2^14. Этот оператор должен помещаться в самом начале программы, пос- кольку при использовании оператора CLEAR все переменные очищают- ся. Отметим также, что при создании нескольких страниц, страница 0 начинается с младших адресов памяти. К моменту выхода этой книги Бейсик не поддерживает дополни- тельные режимы терминала EGA. В [4.3.3] приведена подпрограмма на машинном языке, которая позволит Вам установить эти режимы.
|