Difference between revisions of "Uknc Resources chapter1"
(→1.3 Таблица строк) |
(→Регистровый доступ к ОЗУ) |
||
Line 138: | Line 138: | ||
===== Регистровый доступ к ОЗУ ===== | ===== Регистровый доступ к ОЗУ ===== | ||
+ | <p align="right">— Есть ли у вас план, мистер Фикс?<br/>— План, план… Да у меня целых три плана!<br/>''Ж.Верн «80 дней вокруг света»</p> | ||
+ | 96 Кб — вроде не так уж и мало для микро-ЭВМ. Но экран — вещь, которая требует под себя значительную часть памяти машины. Поэтому в УКНЦ наряду с прямым применяется регистровый доступ к памяти. | ||
+ | |||
+ | В страницах ввода-вывода обоих процессоров есть регистры, с помощью которых можно заглянуть туда, куда с прямым доступом нам путь заказан. Делается это так. | ||
+ | |||
+ | В регистр адреса (РА), который доступен нам как ячейка в странице ввода-вывода, пишется, как Вы уже догадались, адрес. Моментально в другой регистр — данных (РД) аппаратно считывается содержимое ОЗУ, соответствующее записанному адрес. Если теперь записать в РД число, то оно аппаратно же запишется по соответствующему адресу в память. У каждой страницы ввода-вывода эти регистры свои, и каждый процессор может записывать и считывать информацию с помощью своих регистров. | ||
+ | |||
+ | Таким способом мы можем достать, помимо обычного ОЗУ, еще и дополнительное, которое выходит за пределы адресного пространства процессоров при прямом доступе. Такое дополнительное, или верхнее ОЗУ называется планами ОЗУ. | ||
+ | |||
+ | На рис. 1.3 показано адресное пространство при регистровом доступе. Планов всего 3. В каждом содержится по 32 Кб. Их адреса в РА — 100000 и выше. При РА, меньшем 100000, идет доступ к обычным ОЗУ. | ||
+ | |||
+ | <p align="center">'''''TODO'''''<br/>'''Рисунок 1.3 Адресное пространство при регистровом доступе'''</p> | ||
+ | |||
+ | В таблице 1.1 приведены адреса РА и РД для каждого процессора. Центральному процессору доступны через РА и РД планы 1 и 2, а также свое собственное ОЗУ. Периферийному процессору доступно все ОЗУ в машине. То есть через РД ПП может читать и записывать сразу 3 байта. Совокупность этих трех байтов в разных планах назовем Т-словом. | ||
+ | |||
+ | Таблица 1.1<br/> | ||
'''''TODO''''' | '''''TODO''''' | ||
+ | |||
+ | ===== Пример 2. Пример работы с регистрами РА и РД в ЦП ===== | ||
+ | |||
+ | В прошлом примере для того, чтобы поменять кое-что в СОЗУ ЦП, нам приходилось залезать в монитор ПП. «Подглядывание» за ОЗУ ЦП оттуда осуществлялось, конечно же, с помощью регистрового доступа: ПП через регистры доступно все ОЗУ в машине. Теперь попробуем воспользоваться тем же механизмом, но в ЦП, причем более осознанно. | ||
+ | |||
+ | Предлагаю совершить такую нехитрую манипуляцию (в мониторе ЦП): | ||
+ | <pre> | ||
+ | (176640)=71607 Записываем с помощью РА и РД по адресам | ||
+ | (176642)=12500 163416 и 163450 некоторые числа. Адреса пишем | ||
+ | (176640)=71624 в РА несколько обделенными на 2. | ||
+ | (176642)=10045</pre> | ||
+ | После этой кропотливой работы можете убедиться, что перед Вами — ОЗУ ЦП в режиме HALT, и никаких регистров по адресам 176640 и 176642 уже не наблюдается. А так как их нет, то и говорить больше не о чем. | ||
+ | В заключение совершенно бесполезный и не относящийся к делу совет — запишите в ячейку 163731 число 77000 (вместо 71400), а в 163735 — 20077. Приятного Вам времяпрепровождения с клавишами ИСП и СТОП в мониторе ЦП! | ||
+ | |||
+ | <p align="center">* * *</p> | ||
+ | |||
+ | Теперь вернемся к видеоинформации. Видеоинформация — это не что иное, как данные, хранящиеся в планах ОЗУ и считываемые построчно на экран. В принципе, три плана можно называть и ВидеоОЗУ. | ||
+ | |||
+ | ===== Пример 3. Сохранение части экрана ===== | ||
+ | |||
+ | Используя регистровый доступ к ВОЗУ из ПП, сделаем две подпрограммки. Первая будет сохранять содержимое рабочего экрана в области ВОЗУ, которая обычно используется под меню «Установка» и под монитор ПП, т.е. в служебный экран. Вторая будет восстанавливать содержимое рабочего экрана. | ||
+ | |||
+ | Подпрограмма сохранения: | ||
+ | <pre> | ||
+ | 60000: 012702 MOV #100000,R2 | ||
+ | 100000 | ||
+ | 012703 MOV #154540,R3 | ||
+ | 154540 | ||
+ | M1: 005004 CLR R4 | ||
+ | M2: * 010237 MOV R2, @#177010 | ||
+ | 177010 | ||
+ | 013700 MOV @#177012,R0 | ||
+ | 177012 | ||
+ | 013701 MOV @#177014,R1 | ||
+ | 177014 | ||
+ | * 010337 MOV R3, @#177010 | ||
+ | 177010 | ||
+ | 010037 MOV R0, @#177012 | ||
+ | 177012 | ||
+ | 010137 MOV R1, @#177014 | ||
+ | 177014 | ||
+ | 005204 INC R4 | ||
+ | 005202 INC R2 | ||
+ | 005203 INC R3 | ||
+ | 022704 CMP #50, R4 | ||
+ | 000050 | ||
+ | 001356 BNE M2 | ||
+ | 062702 ADD #50, R2 | ||
+ | 000050 | ||
+ | 022703 CMP #157700,R3 | ||
+ | 175700 | ||
+ | 100350 BPL M1 | ||
+ | 000207 RETURN</pre> | ||
+ | Подпрограмма восстановления отличается лишь двумя словами (они отмечены звездочкой). Поэтому легче написать простенькую программу копирования, чем заново набивать нашу тяжеловесную подпрограмму. | ||
+ | |||
+ | Программа копирования: | ||
+ | <pre> | ||
+ | 40040: 012702 MOV #60000, R2 | ||
+ | 060000 | ||
+ | 012703 MOV #60100, R3 | ||
+ | 060100 | ||
+ | 012701 MOV #37, R1 | ||
+ | 000037 | ||
+ | M: 012223 MOV (R2)+, (R3)+ | ||
+ | 077103 SOB M, R1</pre> | ||
+ | Итак, Вы набиваете п/п, набиваете программу копирования, запускаете ее с начального адреса (40040). После этого в ОЗУ ПП появится копия подпрограммы, но уже с адреса 60100. В ней Вы меняете местами содержимое двух помеченных слов. | ||
+ | |||
+ | А для вызова этих подпрограмм используем местную хитрость — эти подпрограммы сделаем спецфункциями: | ||
+ | <pre> | ||
+ | 13144: 60000 | ||
+ | 13146: 60100</pre> | ||
+ | Теперь при посылке в терминал (то есть на экран) кода <001> (соответствует комбинации клавиш <УПР>+A) будет выполняться сохранение, а при посылке кода <002> (<УПР>+B) — восстановление левой верхней четверти рабочего экрана. | ||
+ | |||
+ | <p align="center">* * *</p> | ||
+ | |||
+ | Как происходит считывание видеоинформации на экран? | ||
+ | |||
+ | Экран УКНЦ состоит из 288 видео-строк. Каждой строке ставится в соответствие адрес в ВОЗУ, с которого последовательно считывается содержимое трех планов так, что одной точке на экране соответствуют три бита в трех различных планах по одному адресу. Цвет каждой из точек строки (для цветных экранов), либо градация яркости (для черно-белых) зависит от содержимого смежных битов в ВОЗУ. | ||
==== 1.3 Таблица строк ==== | ==== 1.3 Таблица строк ==== |
Revision as of 22:40, 31 March 2007
- Это глава из книги «Ресурсы УКНЦ».
Глава 1. Аппаратные средства вывода на экран
Решение некоторых сложных проблем иногда полезно начинать с конца. Поскольку вывод на экран — штука отнюдь не простая, мы именно так и сделаем. Причем концом будет у нас сам экран.
Contents
- 1 §0. Немного об экранах.
- 2 §1. Как видеоинформация попадает на экран
- 3 §2. Формирование видеоизображения. Использование аппаратных возможностей.
- 4 §3. Каналы связи между процессорами.
§0. Немного об экранах.
Экраном обычно служит телевизор или монитор. Оба они бывают черно-белые, цветные и выключенные. Причем последний тип легко может быть превращен в один из первых двух путем включения последнего. Если Вы уже запутались, кто первый, а кто последний, не страшно. Немного страшнее, если после подключения монитора или телевизора к компьютеру вместо удобоваримой картинки Вы обнаружите беспорядочное мерцание полос и бегание кадров с потрясной скоростью. Если предположить, что и монитор (телевизор), и ЭВМ исправны, то остается лишь разобраться с подключением одного к другому.
Обычно от компьютера к экрану идут следующие сигналы:
- Синхросмесь (смесь строчной и кадровой разверток).
Этот сигнал, грубо говоря, управляет положением электронного луча на экране. - Видеосигнал.
Для черно-белых экранов этот сигнал управляет яркостью точки в текущем положении электронного луча. В него еще подмешано немного синхросмеси (для вкуса). - R, G, B.
Сигналы управления красным (Red), зеленым (Green) и синим (Blue) составляющими цвета точки (для цветных экранов). - Звук.
Тот же сигнал, что подается на пьезодинамик ЭВМ. Как правило, его подключают к телевизору в плату звукового канала. - Общий (земля).
Все эти сигналы выводятся на разъемы "ВМ" на задней панели компьютера. Этих разъемов у УКНЦ два. Поэтому к ней можно подключить целых два монитора. (Любопытно, что у человека тоже целых два глаза. Совпадение?)
Теперь осталось подключить компьютер. К каждой машине прилагается видеошнур. В нем 10 жил. Разводка сигналов по этим жилам такова:
- СС — 10
- GND — 2, 4, 6, 8
- R — 5
- G — 3
- B — 1
- Видео — 9
- Звук — 7
Для передачи черно-белого изображения достаточно всего двух проводов — Видео и Земля. Для цветного требуется минимум 5: R, G, B, СС и земля.
Напряжение на выходе из компьютера в видеоразъеме - порядка 1 В.
§1. Как видеоинформация попадает на экран
1.0 Вывод картинки на экран
Вы, очевидно, знаете принцип передачи теле-изображения. Электронный луч под управлением сигналов строчной и кадровой разверток обегает весь экран построчно (рисунок 1.0).
То есть при движении от левого края к правому луч высвечивает на экране строку с переменной яркостью, а при обратном ходе он гасится и возвращается снова к левому краю экрана, сместившись немного вниз. Далее процесс повторяется до тех пор, пока луч не достигнет нижнего края экрана. Тогда он гасится и перебрасывается снова на начало экрана. Кадр нарисован.
То, что появилось на экране, назовем видеоизображением, или просто картинкой. Картинка перерисовывается на экране 50 раз в секунду. За время, равное 1/50 секунды, часто называемое тиком, глаз не успевает забыть старое изображение, поэтому картинка не мерцает.
1.1 Создание картинки
Будем постепенно продвигаться от конца к началу. Теперь вдоль видеошнура, через разъем «ВМ» влезем в компьютер и разберемся, как формируется видеоизображение.
Среди прочих устройств УКНЦ есть устройство, отвечающее за формирование картинки. Оно называется так: Устройство Управления ВидеоОЗУ (УВОЗУ). Помимо других функций, в задачи его входит считывание видеоинформации на экран.
Видеоинформацией мы будем называть данные, хранящиеся в особо отмеченной области оперативной памяти ЭВМ, а саму эту область — ВидеоОЗУ (ВОЗУ). Чтобы разобраться в строении ВОЗУ, давайте пройдемся по адресному пространству УКНЦ.
1.2 Экскурсия в адресное пространство УКНЦ
Среди всех микро-ЭВМ, выпущенных в нашей стране, УКНЦ — самая нетривиальная. Ни в одном другом компьютере больше не встретишь такого оригинального решения — 2 ОЗУ + 2 процессора. Некоторыми вопросами, связанные с повышенной микропроцессорностью УКНЦ, мы займемся позже, а теперь же перейдем к структуре памяти.
Прямой доступ к памяти
Каждый процессор — центральный (ЦП) и периферийный (ПП) имеет свое ОЗУ. Коль скоро в машине применены процессоры КМ1801ВМ2, адресное пространство которых 64 Кб, то прямым доступом к памяти оба они берут лишь каждый свои 64 Кб.
Взгляните на рисунок 1.2. Здесь показаны карты памяти для обоих процессоров при прямом доступе.
Рисунок 1.2 Адресное пространство при прямом доступе
Адресное пространство обоих процессоров может меняться. То есть будут меняться устройства, к которым могут они обращаться, а сам объем адресных пространств не изменится.
Устройства, «намертво» подключенные в адресное пространство, выделены (*) . К ним относятся:
в ЦП:
- ОЗУ пользователя (56 Кб, адреса 0 ... 157777). Именно здесь располагаются все программы пользователя, будь то Бейсик, RT-11 или Ваши собственные (если Вы случайно не являетесь автором Бейсика или RT-11);
в ПП:
- ОЗУ ПП (32 Кб, адреса 0 ... 77777). Это ОЗУ используется для системных нужд. Для каких — Вы скоро узнаете. Интересно то, что около 22 Кб из этих 32 остаются свободными и также пригодны к использованию пользователем.
- Системное ПЗУ (банки 2-4 в адресах 120000-176777). До него нам тоже пока нет дела. Всему свой черед.
- Страница ввода-вывода ПП. Здесь выведены регистры внешних и внутренних устройств.
Сменные устройства:
ЦП:
- В верхние адреса (160000 и выше), в зависимости от режима работы ЦП (а их два - HALT и USER) подставляются:
- Системное ОЗУ ЦП — 8 Кб (режим HALT), где хранится программа-монитор, драйверы внешних устройств, доступных ЦП через страницу ввода-вывода, программа-эмулятор команд с плавающей точкой и программа тестирования.
- Страница ввода-вывода ЦП (режим USER). Аналогично странице ввода-вывода ПП, сюда подставляются по фиксированным адресам регистры внешних и внутренних устройств.
- Как можно менять эти режимы ЦП из ЦП же, сказано в главе ... .
ПП:
- ПП в своем адресном пространстве имеет так называемое «окно» с адресами 100000-117777, в которое может подключаться:
- Первый банк СПЗУ;
- Один из трех банков ПЗУ на внешней кассете N1;
- Один из трех банков ПЗУ на внешней кассете N2;
- Вообще ничего.
- Всем этим управляет особый регистр в странице ввода-вывода ПП. Его адрес — 177054.
Как видим, каждый процессор глядит напрямую только в свое адресное пространство, а общий объем ОЗУ при прямом доступе составляет:
- 64 + 32 = 96 Кб.
Пример 1. Прогулка по адресному пространству
Влезьте, пожалуйста, любым известным Вам способом в монитор ЦП. Уже виден значок @
? Итак, мы на месте. Место это — адресное пространство ЦП.
Набрав любое восьмеричное число от 0 до 157776, и, нажав стрелку вправо, Вы увидите содержимое ячеек памяти с набранными адресами, а проделав то же с адресом от 160000 — сможете полюбоваться на грозные надписи «Зависание». На них не стоит обращать внимание, ибо УКНЦ как угодно может оповестить о своем зависании, но только не так. Эта часть адресного пространства ЦП — страница ввода-вывода. Здесь можно отыскать ячейки, не вызывающие при открытии никакого возмущения со стороны машины. Скорее всего, это и есть те самые регистры устройств.
Проделаем такой опыт: запишем в ячейку 177566 число 7. Машина что-то невнятно прогудит. Это значит, что число 7 попало куда следует (а следует ему попасть в канал связи с ПП). ПП обработал наш код, ответив добродушным гудком.
Тем, кому наскучило играться в мониторе ЦП, предлагаю покопаться с монитором ПП. Влезаем в него так:
- нажимаем <УСТ>, при этом должно появиться меню «Установка режимов». Если оно не появилось, проверьте, действительно ли ЭВМ перед Вами — это УКНЦ;
- нажмите <УПР>+@ или <ГРАФ>+<ИСП>.
Теперь мы находимся в «царстве теней» — мониторе ПП. Экран здесь не такой просторный, как в мониторе ЦП. Поэтому совет страдающим клаустрофобией — не задерживайтесь здесь подолгу! Из этого отладчика можно и не выбраться. Иногда случается находить в ОЗУ ПП останки тех, кто так и не смог выйти из лабиринтов монитора ПП. Именно их духи, мне кажется, время от времени и подвешивают машины. Но я отвлекся.
Правила игры с монитором ПП те же — можно с полным правом копаться в содержимом любых ячеек от 0 до 77776 (ОЗУ ПП) и любоваться на ячейки от 100000 до 176776 (ПЗУ). Также можно заглянуть и в страницу ввода-вывода ПП. ЭВМ же, в свою очередь, оставляет за собой право подвиснуть в любое удобное ей время.
Если вы устали, выйдите:
- <УПР>+C,
а дальше, через меню «Установки», куда пожелаете.
Оставшимся предлагаю заглянуть туда, где доселе редко ступала нога человека — в СОЗУ ЦП. Для этого прибегнем к черной магии: наберем в ОЗУ ПП 2 масенькие программки:
40000: 012704 MOV #450, R4 000450 004737 CALL @#162164 162164
40020: 012704 MOV #450, R4 000450 004737 CALL @#162204 162204
С помощью первой мы включим режим просмотра ОЗУ ЦП из монитора ПП. Смело жмем 40000 <ИСП>. Вверху появляются новые две буквы: ЦМ. Что они означают, не знаю, но вот что изменилось — можно посмотреть. Теперь перед нами до боли знакомое ОЗУ ЦП пользователя (в адресах от 0 до 157776) и совсем незнакомое СОЗУ ЦП (от 160000 и выше). Лазать в ОЗУ ЦП можно по-всякому — и записывать в ячейки, и считывать. Но вот запускать программы в ЦП из монитора ПП невозможно — даже черная магия здесь бессильна.
Прежде чем выбраться из этого заколдованного места, подправим кое-что в СОЗУ ЦП:
- в ячейку 163416 вместо 000021 запишем 012500,
- в ячейку 163450 вместо 000031 — 010045.
Теперь со всех ног бежим в монитор ЦП: <УПР>+C, <ENTER>. Наше последнее хитрое действо дало свои результаты — теперь из монитора ЦП можно без проблем «промониторить» все ОЗУ ЦП — пользователя и системное. Это адресное пространство ЦП в режиме «HALT».
Если Вы все же соскучились по монитору ПП и по ОЗУ ПП, вернитесь в монитор ПП, и запустите вторую программку, что с адреса 40020. Ничего страшного в том, что Вы не увидите эту записанную ранее программку - ведь монитор ПП покажет эти адреса в ОЗУ ЦП. Наберите 40020, крепко зажмурьтесь, и нажмите <ИСП>. Если, открыв глаза, в верхней строке Вы обнаружите слово "ПМ", значит, эксперимент удался.
Человек быстро привыкает ко всему хорошему. Поэтому вот инструкция к тому, чтобы восстановить обычную точку зрения монитора ЦП (работаем в мониторе ЦП):
- в ячейку 163416 обратно запишем 21,
- в ячейку 163450 — 31.
Ну что ж, теперь мы полностью восстановили первоначальный вариант: монитор ЦП видит ОЗУ пользователя + страницу ввода-вывода, а монитор ПП — свое суверенное адресное пространство. С возвращением!
Регистровый доступ к ОЗУ
— Есть ли у вас план, мистер Фикс?
— План, план… Да у меня целых три плана!
Ж.Верн «80 дней вокруг света»
96 Кб — вроде не так уж и мало для микро-ЭВМ. Но экран — вещь, которая требует под себя значительную часть памяти машины. Поэтому в УКНЦ наряду с прямым применяется регистровый доступ к памяти.
В страницах ввода-вывода обоих процессоров есть регистры, с помощью которых можно заглянуть туда, куда с прямым доступом нам путь заказан. Делается это так.
В регистр адреса (РА), который доступен нам как ячейка в странице ввода-вывода, пишется, как Вы уже догадались, адрес. Моментально в другой регистр — данных (РД) аппаратно считывается содержимое ОЗУ, соответствующее записанному адрес. Если теперь записать в РД число, то оно аппаратно же запишется по соответствующему адресу в память. У каждой страницы ввода-вывода эти регистры свои, и каждый процессор может записывать и считывать информацию с помощью своих регистров.
Таким способом мы можем достать, помимо обычного ОЗУ, еще и дополнительное, которое выходит за пределы адресного пространства процессоров при прямом доступе. Такое дополнительное, или верхнее ОЗУ называется планами ОЗУ.
На рис. 1.3 показано адресное пространство при регистровом доступе. Планов всего 3. В каждом содержится по 32 Кб. Их адреса в РА — 100000 и выше. При РА, меньшем 100000, идет доступ к обычным ОЗУ.
TODO
Рисунок 1.3 Адресное пространство при регистровом доступе
В таблице 1.1 приведены адреса РА и РД для каждого процессора. Центральному процессору доступны через РА и РД планы 1 и 2, а также свое собственное ОЗУ. Периферийному процессору доступно все ОЗУ в машине. То есть через РД ПП может читать и записывать сразу 3 байта. Совокупность этих трех байтов в разных планах назовем Т-словом.
Таблица 1.1
TODO
Пример 2. Пример работы с регистрами РА и РД в ЦП
В прошлом примере для того, чтобы поменять кое-что в СОЗУ ЦП, нам приходилось залезать в монитор ПП. «Подглядывание» за ОЗУ ЦП оттуда осуществлялось, конечно же, с помощью регистрового доступа: ПП через регистры доступно все ОЗУ в машине. Теперь попробуем воспользоваться тем же механизмом, но в ЦП, причем более осознанно.
Предлагаю совершить такую нехитрую манипуляцию (в мониторе ЦП):
(176640)=71607 Записываем с помощью РА и РД по адресам (176642)=12500 163416 и 163450 некоторые числа. Адреса пишем (176640)=71624 в РА несколько обделенными на 2. (176642)=10045
После этой кропотливой работы можете убедиться, что перед Вами — ОЗУ ЦП в режиме HALT, и никаких регистров по адресам 176640 и 176642 уже не наблюдается. А так как их нет, то и говорить больше не о чем. В заключение совершенно бесполезный и не относящийся к делу совет — запишите в ячейку 163731 число 77000 (вместо 71400), а в 163735 — 20077. Приятного Вам времяпрепровождения с клавишами ИСП и СТОП в мониторе ЦП!
* * *
Теперь вернемся к видеоинформации. Видеоинформация — это не что иное, как данные, хранящиеся в планах ОЗУ и считываемые построчно на экран. В принципе, три плана можно называть и ВидеоОЗУ.
Пример 3. Сохранение части экрана
Используя регистровый доступ к ВОЗУ из ПП, сделаем две подпрограммки. Первая будет сохранять содержимое рабочего экрана в области ВОЗУ, которая обычно используется под меню «Установка» и под монитор ПП, т.е. в служебный экран. Вторая будет восстанавливать содержимое рабочего экрана.
Подпрограмма сохранения:
60000: 012702 MOV #100000,R2 100000 012703 MOV #154540,R3 154540 M1: 005004 CLR R4 M2: * 010237 MOV R2, @#177010 177010 013700 MOV @#177012,R0 177012 013701 MOV @#177014,R1 177014 * 010337 MOV R3, @#177010 177010 010037 MOV R0, @#177012 177012 010137 MOV R1, @#177014 177014 005204 INC R4 005202 INC R2 005203 INC R3 022704 CMP #50, R4 000050 001356 BNE M2 062702 ADD #50, R2 000050 022703 CMP #157700,R3 175700 100350 BPL M1 000207 RETURN
Подпрограмма восстановления отличается лишь двумя словами (они отмечены звездочкой). Поэтому легче написать простенькую программу копирования, чем заново набивать нашу тяжеловесную подпрограмму.
Программа копирования:
40040: 012702 MOV #60000, R2 060000 012703 MOV #60100, R3 060100 012701 MOV #37, R1 000037 M: 012223 MOV (R2)+, (R3)+ 077103 SOB M, R1
Итак, Вы набиваете п/п, набиваете программу копирования, запускаете ее с начального адреса (40040). После этого в ОЗУ ПП появится копия подпрограммы, но уже с адреса 60100. В ней Вы меняете местами содержимое двух помеченных слов.
А для вызова этих подпрограмм используем местную хитрость — эти подпрограммы сделаем спецфункциями:
13144: 60000 13146: 60100
Теперь при посылке в терминал (то есть на экран) кода <001> (соответствует комбинации клавиш <УПР>+A) будет выполняться сохранение, а при посылке кода <002> (<УПР>+B) — восстановление левой верхней четверти рабочего экрана.
* * *
Как происходит считывание видеоинформации на экран?
Экран УКНЦ состоит из 288 видео-строк. Каждой строке ставится в соответствие адрес в ВОЗУ, с которого последовательно считывается содержимое трех планов так, что одной точке на экране соответствуют три бита в трех различных планах по одному адресу. Цвет каждой из точек строки (для цветных экранов), либо градация яркости (для черно-белых) зависит от содержимого смежных битов в ВОЗУ.
1.3 Таблица строк
TODO
Резюме к §1
- Изображение на экране УКНЦ состоит из 288 видеострок.
- Видеоинформация на экран построчно считывается Устройством Управления ВидеоОЗУ (УВОЗУ) из видеопамяти.
- Адресное пространство может быть доступно либо прямым доступом процессоров, либо регистровым доступом.
- Через РА и РД (регистры адреса и данных) доступно 192 Кб ОЗУ. Одному адресу соответствует Т-слово: 3 байта из трех смежных областей, называемых планами. ЦП доступны планы 1 и 2, ПП — 0, 1 и 2, т.е. все ОЗУ в УКНЦ.
- Одному Т-слову соответствуют восемь выведенных подряд точек на экране.
- Адреса в РА с 100000 указывают на особую область памяти, прямым доступом не видимую. Объем ее - 96 Кб, по 32 в каждом плане, и используется она в качестве ВОЗУ. Адреса меньше 100000 — это ОЗУ ЦП +ОЗУ ПП.
- Таблица строк — список в ОЗУ ПП, необходимый УВОЗУ для формирования видеоизображения. Начинается с пары ячеек с адресами 270 и 272.
- Таблица строк состоит из отдельных элементов. Каждый элемент, начиная с 21-го, соответствует видеостроке на экране. 21-й элемент соответствует самой верхней строке. Элементы могут быть двухсловными и четырехсловными. Первый элемент (270 и 272) всегда двухсловный.
- Формат двухсловного элемента:
- 1-е слово — адрес в ВОЗУ, с которого начинается вывод видеоинформации в текущую строку.
- 2-е слово — адрес следующего элемента в таблице строк. В трех младших битах слова содержится информация о типе следующего элемента, о переключении курсора в данной строке, а также определяется, какой регистр УВОЗУ загрузится из следующего элемента, если он — четырехсловный.
- Формат четырехсловного элемента:
- 1-е, 2-е слова — интерпретируются УВОЗУ либо как регистр управления отображением, либо как регистр управления цветом.
- 3-е слово — адрес в ВОЗУ.
- 4-е слово — адрес следующего элемента.
- Регистры управления цветом (УЦ) и отображением (УО) состоят из двух 16-битных слов каждый и входят в состав УВОЗУ. Загружаются они лишь из таблицы строк, только из четырехсловных элементов.
- Регистр УЦ определяет соответствие цвета точки содержимому трех битов в планах ВОЗУ. В данной строке может быть одновременно 8 цветов.
- Регистр УО управляет: цветом, типом, горизонтальной позицией аппаратного курсора.
- масштабированием изображения по горизонтали.
- яркостью составляющих R,G,B в текущей строке.
§2. Формирование видеоизображения. Использование аппаратных возможностей.
TODO
§3. Каналы связи между процессорами.
TODO