Ресурсы УКНЦ/Глава 3
Глава 3. Стандартный экранный вывод.
§ 7. Разделение экранов
Итак, мы разобрались с буфером и с Диспетчером. Рассмотрим такую рядовую ситуацию: ПП «кружит» в Диспетчере, сканируя таблицу запросов и с нетерпением ожидая задачи на исполнение.
Пусть теперь ЦП по каналу К0 послал байт (пока неважно какой). Сработает прерывание от приемника К0 со стороны ПП. Наш байт запишется в буфер, указатель буфера изменится.
Также установится ячейка (7064) в таблице запросов. Программа обработки прерывания завершается, и управление возвращается в Диспетчер. Он обнаруживает, что поступил запрос на обслуживания экрана (ячейка (7064) не равна 0) и запускает подпрограмму экранного вывода, адрес которой находит в таблице задач.
Этот адрес — 111144.
Вряд ли стоит спешить сходу описывать эту подпрограмму. Вообще-то она не очень сложная. Просто будет удобнее подойти к ней с другой стороны.
7.0. Принцип разделения экранов
Из множества хитростей, заложенных в УК разработчиками, эта, на первый взгляд, в глаза не бросается. Однако без нее УК — не УК.
Допустим, Вы работаете в Бейсике, или в пультовом отладчике, и понадобилось, например, изменить цвет символа. Что Вы делаете? Нажимаете клавишу «УСТ». Что происходит? Появляется меню «Установка режимов». Выполнив необходимые манипуляции с этим меню, Вы возвращаетесь опять в ту же среду, где находились, нажатием клавиш «ИСП» или «Ввод».
При этом никаких изменений в текущем экране Вы не находите. Даже курсор на том же месте.
Иными словами, работа в меню «Уст» не касалась Вашей программы и Вашего экрана. Эта работа велась в другом экране. Каким образом этот другой экран влез вместо основного, рабочего? Конечно же, с помощью таблицы строк. Она стала указывать на другие адреса в ВОЗУ, и, таким образом, сделала видимой видеоинформацию другой области видеопамяти.
В этом заключается принцип разделения экранов в УК. Вместо того, чтобы копировать массивы видеоинформации, сохраняя старое изображение, просто меняются несколько ячеек в таблице строк, и в результате перед Вами — новый экран.
7.1 Стандартные экраны в УК-НЦ
Поскольку таблица строк указывает на целые строки, а не на их отрезки, экраны в УК представляют собой горизонтальные «полосы» на всю ширину экрана, различной высоты и расположения на экране.
Системой поддерживаются 4 стандартных экрана (см. рис. 7.0).
Два из них можно назвать экранами лишь с натяжкой. Они представляют собой по символьной строке каждая — служебная (вверху) и информационная (внизу). Эти «экранчики» всегда присутствуют на терминале. Каждая из них содержит 40 знакомест.
Служебная строка служит для отображения текущего алфавита (РУС/ЛАТ), индикации режимов инверсии, подчеркивания, дополнительной клавиатуры (ИНВ, ПОДЧ, ДКЛ), режима индикации символов управления (ИСУ), режима «Установка режимов» (УСТ). Разработчиками предусмотрен вывод и кое-каких других надписей в верхнюю строку, но почему-то Система не использует эти возможности.
Нижняя инфо-строка в Системе вообще не используется.
Для вывода в эти строки предназначены ЕМТ 52 и ЕМТ 56. Но о них позже. Пока — на очереди еще 2 экрана.
Они выводятся в «окошко» между служебной строкой и инфо-строкой. Один — назовем его рабочим — самый главный в УК. В нем работают практически все программы пользователя.
Этот экран содержит 26 символьных строк по 80 символов максимум. Из этих 26 строк 24 всегда выводятся на экран, а две оставшиеся можно просмотреть, циклически сдвинув экран вверх или вниз с помощью команд терминала (УПР+R или УПР+V). Лишь в этом экране действует рулон, и меню «Установка режимов» меняет режимы этого экрана (меняет цвета, формат рабочего экрана, тип рулона).
И последний стандартный экран — служебный. Он содержит 20 символьных строк, максимум по 40 символов в каждой. Рулон в этом экране всегда выключен. Служебный экран используется для размещения меню «Установка режимов», а также под монитор ПП.
Входят в этот монитор так: вызывают меню «Установка» нажатием УСТ, а затем нажимают ГРАФ + ИСП или УПР + @. Работа в мониторе ПП аналогична работе в мониторе ЦП. Однако подвесить машину здесь намного легче. Выход из него в меню «Установки» выполняется нажатием УПР + C.
Каждому экрану в таблице строк соответствуют свои регистры управления цветом и отображением. Их адреса даны в таблице 7.1. Напомним, что каждый из этих регистров занимает в таблице строк 2 слова.
TODO: Таблица 7.1. Адреса регистров управления отображением и цветом для стандартных экранов.