ОТ ИНДИКАТОРОВ К ЭКРАНУ
Дисплейный модуль "ЮТ-88"


     Пришло время сделать первый шаг к расширению конфигурации нашего персонального компьютера — дополнить его дисплейным модулем. Он позволит, не только выводить информацию на экран телевизора (дисплей), но и подключить к компьютеру стандартную клавиатуру, оснащенную буквами русского и латинского алфавитов, цифрами, математическими и другими символами.
     Как вы помните, в первом модуле "ЮТ-88" дисплей был шестиразрядным на светодиодных индикаторах. Каждый символ в нем складывался из комбинации семи светящихся сегментов. Теперь, подключив дисплейный модуль, вы сможете выводить на экран и записывать в специальное экранное ОЗУ целую страницу текста объемом 28 строк по 64 символа. Начертание каждого символа формируется специальным дешифратором на стандартной матрице размером 5 х 7 точек.
     Принцип работы дисплейного модуля такой же, как и в первом, сегментном. Но теперь положение каждого символа на экране записывается в определенную ячейку экранного ОЗУ.
     ОЗУ страницы располагается в адресном пространстве от E000 до EFFF. Адрес E000 соответствует верхнему крайнему слева знакоместу, а EFFF — нижнему крайнему справа.
     Соответствие между адресами ячеек и положением символа на экране достигается синхронизацией импульсов строчной и кадровой разверток. Вырабатываются они дисплейным модулем. Адресация ячеек памяти при записи информации происходит от шины адреса микроЭВМ, а при чтении — от счетчиков, тактируемых синхроимпульсами дисплейного модуля. Переключение адресных выводов ОЗУ производится с помощью коммутатора.

Принципиальная схема дисплейного модуля

     ОЗУ страницы выполнено на микросхемах КР541РУ2, а ПЗУ знакогенератора на микросхеме К573РФ2. В дисплейном модуле имеется специальный разряд ОЗУ, который используется для хранения информации о текущем положении очередного символа — курсоре. Эта одноразрядная информация размещается в адресном пространстве всей страницы, занимающей около 2000 ячеек памяти. При считывании информации из ОЗУ страницы одновременно считывается она и из ячеек курсора. Наличие единицы в ячейке курсора, приводит к инверсии высвечиваемого на экране телевизора символа — фон становится светлым, а контуры символа темными.
     Наш дисплейный модуль позволяет организовать не только постраничный вывод информации, но и так называемый "ролик", когда информация бежит на экране непрерывным потоком.
     Луч кинескопа модулируется сигналами, поступающими с выхода сдвигового регистра DD11, в который предварительно записывается параллельный код строки одного символа. Таких строк для каждого символа в ПЗУ знакогенератора восемь. Начальный адрес каждой группы ячеек, соответствующих отдельному символу, определяется его адресом в знакогенераторе, и снимается с ячеек памяти страницы. Считанный параллельный код записывается в регистр DD11, а затем преобразуется в последовательный. Импульсы, управляющие параллельной/последовательной работой регистра, формируются в микросхемах DD1.2 (делитель на шесть), DD1.7 и DD20.2. На выходе логического элемента "2И-НЕ" DD1.7 формируются импульсы, период следования которых определяет длительность одного знакоместа в строке экрана.
     Счетчик знакомест в строке построен на микросхемах DD13 и DD14. В каждой строке может быть отображено 64 символа, причем отображение первого из них начинается спустя 8 знакомест после окончания строчного синхроимпульса. Шесть младших разрядов адреса ОЗУ страницы, осуществляющих привязку символов к строке, получаются вычитанием числа 8 из выходного кода счетчика знакомест. Вычитание выполняется микросхемой DD15 К155ИМЗ.
     На выводе 12 счетчика DD14 формируется строчный синхроимпульс длительностью 4,5 мкс с периодом повторения 63 мкс. Строчный гасящий синхроимпульс поступает с выхода старшего разряда микросхемы DD1.5. Счетчик DD24 формирует восемь строк по горизонтали, которые отводятся под одно знакоместо по вертикали. С выхода этого счетчика импульсы подаются на адресацию трех младших разрядов ПЗУ знакогенератора.
     Счетчик DD16 и один триггер микросхемы DD12 образуют счетчик строк с коэффициентом пересчета 32. С выхода этого счетчика импульсы подаются на адресацию ОЗУ страницы и курсора (старшие пять разрядов), осуществляя привязку символов по вертикали. На логических элементах DD18.1 и DD20.3 формируется кадровый синхроимпульс длительностью 1250 мкс с периодом повторения 20160 мкс.
     Узел на элементах микросхем DD21.2, DD22.3 и DD22.4 формирует сигнал запрета отображения, поступающий на вход СЕ микросхемы ПЗУ знакогенератора и отключающий ее выходы при высоком уровне сигнала. Благодаря этому на входах регистра сдвига в узле формирования видеосигнала также устанавливается высокий уровень, что соответствует гашению изображения. Синхроимпульсы строк и кадров смешиваются в элементе DD9.3, а затем, после смешивания с видеосигналами в транзисторе VT1, подаются на модулятор или на вход "ВИДЕО" телевизора.
     Коммутатор адресов ОЗУ страницы и курсора выполнен на мультиплексорах DD2 — DD4. Управление коммутатором осуществляется сигналом выборки адресного пространства низкого уровня E000 — EFFF, поступающим на вывод 1 мультиплексоров.
     Через шинные формирователи DD28, DD29 и мультиплексоры DD2 — DD4 ОЗУ страницы и курсора подключается к шине данных и адреса микропроцессора. Это происходит при обращении к нему микропроцессора. Если при наличии сигнала выборки адресов E000 — EFFF будет активен сигнал управления ЗПОЗУ, то произойдет запись кода с шины данных в ОЗУ страницы, а если будет активен сигнал ЧТОЗУ, то информация из ОЗУ страницы и курсора поступит на шину данных.
     Как и в первом модуле, микросхемы дисплея размещаются на отдельной плате из фольгированного стеклотекстолита. Общий провод и цепи питания выполните печатным способом, а все остальные соединения — тонким проводом в пластмассовой оболочке.

     В состав дисплейного модуля входит и полная клавиатура, которая формирует все необходимые символы. Реализована она на программном уровне. В ней используется микросхема DD19 —программируемый периферийный адаптер (ППА) КР580ВВ55. Обмен информацией, засылка в ППА управляющих слов, вырабатываемых монитором, и передача в микропроцессор сведений о состоянии клавиатуры происходят по шине данных. Низкий уровень сигнала на управляющем входе CS (вывод 6) разрешает обмен информацией между ППА и микропроцессором. В состав ППА входят три порта — А, В и С. Их функциональное назначение определяется кодом управляющего слова, которое загружается микропроцессором в регистр управляющего слова (РУС). Сигналы на адресных входах А0 и А1 производят селекцию одного из трех портов или регистра управляющего слова. Для работы клавиатуры ППА настроен на режим ввода-вывода (код управляющего слова 8ВН). В этом случае канал А работает на вывод, а каналы В и С на ввод информации.
     Как следует из схемы, клавиатура представляет собой матрицу нормально разомкнутых контактов. Замыкаются они при нажатии на клавиши. Диоды VD1 — VD8 служат для защиты канала А от повреждения при одновременном нажатии на несколько клавиш. Специальная программа осуществляет формирование нулевого уровня на каждом выходе канала А. Если не нажата ни одна из клавиш, то на всех разрядах канала В будут записаны единички. Если же какая-то клавиша нажата, то нулевой уровень с соответствующего канала А попадает на один из входов канала В. Монитор определяет, какая клавиша нажата, и соответствующий ей семиразрядный код записывается в аккумулятор микропроцессора. Сократить число клавиш удается, использовав клавиши модификации кода РУС, УС и СС. При нажатии на клавишу РУС формируются коды русского алфавита, клавиша УС, позволяет формировать управляющие и графические символы, а клавиша СС служит для формирования кодов специальных символов. Микросхемы DD1, DD2 устраняют дребезг контактов. Типовое расположение клавиш показано на рисунке.

Принципиальная схема модуля клавиатуры   Типовое расположение клавиш
Принципиальная схема модуля клавиатуры   Типовое расположение клавиш

     В дисплейный модуль входят также микросхемы ПЗУ/ОЗУ, которые необходимы для реализации программной части дисплейного модуля. В ПЗУ на микросхеме DD27 записана управляющая программа — МОНИТОР объемом 2 Кбайта, обслуживающая дисплей и клавиатуру. ОЗУ выполнено на двух микросхемах DD25 и DD26 объемом 1 Кбайт и используется для организации стековой памяти и рабочих ячеек МОНИТОРА. ПЗУ расположено в адресном пространстве F800 — FFFFH, а ОЗУ — F400 — F7FFH (распечатка МОНИТОРА и знакогенератора; файл МОНИТОРА и знакогенератора). В дисплейном модуле используются сигналы шин адреса, данных и управления первого модуля "ЮТ-88".

     После настройки ППА-клавиатуры на экране дисплея выводится сообщение "ЮТ/88". Появление на экране стрелки и курсора говорит о том, что можно вводить директиву (команду). Директивы МОНИТОРА "ЮТ-88" приведены в таблице 1.

Таблица 1

Директивы МОНИТОРА "ЮТ-88"


     Все указанные директивы МОНИТОРА задаются соответствующими латинскими буквами. Затем вводятся параметры директивы. Записываются они в виде шестнадцатеричных чисел и отделяются друг от друга запятыми. Символ Н после шестнадцатеричных чисел опускают. Незначащие нули в левых разрядах чисел можно не набирать. Символом окончания ввода директивы или директивы с параметром является символ "ВК".
     Директивы имеют те же самые обозначения, что и директивы мониторов "Микро-80", "РК-86" и "МИКРОШИ".
     Введены новые директивы, которые отсутствуют в указанных выше микро-ЭВМ, это "К", "V", "В", "W".
     Директива "D" позволяет просмотреть на экране дисплея содержимое области памяти в виде двухразрядных шестнадцатеричных чисел, представленных в формате таблицы. Сначала набирается буква D, затем начальный адрес области памяти, запятая и конечный адрес области памяти, нажимается кнопка "ВК".
     Директива "L" аналогична предыдущей, но только вместо вывода шестнадцатеричных чисел на экран выводятся их символьные представления. Если при исполнении этой директивы встречается код, не соответствующий ни одному алфавитно-цифровому символу, то выводятся точки. После буквы L набирается начальный адрес области памяти, запятая и конечный адрес области памяти, нажимается клавиша "ВК".
     Директива "М" позволяет просматривать и при необходимости изменять содержимое одной или нескольких ячеек памяти. После набора директивы, набора адреса и нажатия на клавишу "ВК" на экран дисплея выводится двухразрядное шестнадцатеричное число — содержимое ячейки памяти набранного адреса. Можно нажать клавишу "ВК", и тогда содержимое ячейки не изменится. Можно до нажатия "ВК" набрать новое двухразрядное шестнадцатеричное число и затем "ВК". Для выхода из этой директивы нужно нажать клавишу "." (точка).
     Директива "F" позволяет во все ячейки заданной области памяти записывать одинаковые коды. После набора директивы набирают начальный адрес, запятую, конечный адрес, запятую, шестнадцатеричное двухразрядное число и "ВК".
     С помощью директивы "Т" можно копировать содержимое одной области памяти в другую. После набора директивы набирают начальный и конечный адреса копируемой области памяти через запятую, затем начальный адрес копии и "ВК".
     Директива "С" позволяет проверить идентичность двух областей памяти путем побайтного сравнения. После набора директивы набирают начальный адрес, запятую, конечный адрес первой области, затем запятую и начальный адрес другой сравниваемой области и "ВК". При несовпадении содержимого ячеек памяти на дисплей выводится адрес ячейки из первой области и содержимое несовпадающих ячеек памяти.
     Директива "S" осуществляет поиск байта в заданной области памяти. После набора директивы вводят начальный адрес, запятую, конечный адрес области поиска, запятую, искомый байт и "ВК". В результате на экран дисплея будут выведены адреса ячеек памяти, в которых будут обнаружены байты, равные заданному.
     Директива "К" вычисляет контрольную сумму данных в определенной области ОЗУ и ПЗУ и выдает ее на экран дисплея в виде четырехразрядного шестнадцатеричного числа. После набора директивы вводят начальный адрес, запятую, конечный адрес области памяти и "ВК".
     Директива "О" применяется для записи данных на ленту кассетного магнитофона. После набора директивы набирают начальный адрес, запятую, конечный адрес области памяти с записываемыми данными, запятую, байт, определяющий скорость вывода информации. Затем включают магнитофон в режим записи, пускают лентопротяжный механизм и нажимают клавишу "ВК". Если в директиве не указать байт скорости, то будет использовано либо значение скорости предыдущей записи (если не была нажата клавиша "УСТ"), либо стандартное значение, записываемое в рабочую ячейку F7D0H при нажатии на клавишу "УСТ". После завершения вывода информации на экране отображаются начальный и конечный адреса и контрольная сумма выведенной информации.
     Директива "V" служит для измерения константы чтения при вводе информации с кассетного магнитофона. Для этого после набора директивы пускают магнитофон на воспроизведение и, услышав начало записи по однотонному звучанию, нажимают клавишу "ВК". Измеренная константа чтения выводится на дисплей и заносится в ячейку F7CFH.
     По директиве "I" осуществляется ввод информации с кассетного магнитофона. У нее два параметра. Указываются они только в случае необходимости. Первый параметр — смещение. Если он есть, то вводимая информация будет загружаться по адресу, который является суммой указанного в записи на ленте и значения смещения. Второй параметр задает скорость чтения данных с ленты. Если он опущен, используется константа чтения, установленная либо при начальной настройке рабочих ячеек "МОНИТОРА", либо при предыдущем чтении. По окончании ввода МОНИТОР сообщает начальный и конечный адреса загрузки и контрольную сумму, подсчитанную при вводе информации. Если она не совпадет с записанной на магнитной ленте, то на следующей строке будет вы ведено значение считанной контрольной суммы со знаком вопроса.
     Для просмотра и изменения содержимого внутренних регистров микропроцессора используется директива "X". При ее выполнении на экран выводятся символические имена регистров: PC, HL, ВС, DE, AF, SP. Рабoта с содержимым регистров и выход из директивы такие же, как и у директивы "М".
     Директивы запуска программ "G" и "W". С помощью первой директивы можно запускать программу, адрес которой используется в качестве параметра этой директивы. Вторая запускает программы с адреса С000Н.
     МОНИТОР дисплейного модуля (как и МОНИТОР процессорного модуля) позволяет осуществить привязку работы программ к реальному времени благодаря специально встроенной программе часов. При совместном использовании этих двух модулей возможны два режима работы. В первом используется МОНИТОР процессорного модуля (для удобства в дальнейшем мы будем обозначать его как МОНИТОР-"0"). После запуска происходит установка времени и пуск часов. Затем после запуска МОНИТОРА дисплейного модуля (в дальнейшем это МОНИТОР-"F") с помощью директивы "В", "ВК" можно вывести показания времени из ячеек памяти C3FDH, C3FEH, C3FFH на светодиодные индикаторы процессорного модуля. Второй режим предполагает отключение МОНИТОРА-"0" и использование программы часов в МОНИТОРЕ-"F". В этом случае информация о времени содержится в следующих ячейках памяти: F6FDH — секунды, F6FEH — минуты, F6FFH — часы. Чтобы запустить программу часов в МОНИТОРЕ-"F", необходимо убедиться до отключения МОНИТОРА-"0", что часы "идут", с помощью директивы "В". Затем директивой "М" загрузить в ячейки ОЗУ следующие коды: С000Н — F3H7, С00ЗН — СЗН, С002Н — 00Н, С00ЗН — F8H, С038Н — С3Н, С039Н — С1Н, С03АН — FFH, F6FDH — 00Н (секунды), F6FEH — код минут, F6FFH — код часов. Далее переключают ОЗУ из области С000 — C3FFH в область 0000 — 03FFH, одновременно отключив МОНИТОР-"0" (для этого подойдет любой сдвоенный тумблер). Затем по сигналам точного времени необходимо нажать на клавишу "УСТ", пустив тем самым часы в дисплейном модуле.
     Несколько слов следует сказать о пользовании директивами записи и чтения данных с магнитофона при наличии прерываний в микроЭВМ. Директивами записи и чтения МОНИТОРА-"0" (директивы "9" и "А" соответственно) следует пользоваться при небольшом объеме информации, так как в драйверах записи и чтения байта на магнитофон этого МОНИТОРА программно не делается запрет прерывания, и при большом объеме данных для н

Hosted by uCoz