Разбег в неизвестность
Шрифт:
Последний «клавиатурный» вопрос оказался совсем простым, тем более что его разрабатывал Федор. Сгенерированные контроллером биты «по ГОСТу» без особых раздумий выталкивались через небольшой буфер на выход через УИ-8 (Универсальный интерфейс на восемь линий), заодно для ЭВМ выдавалось соответствующее прерывание. Электропитание также поступало по кабелю УИ-8.
С дисплеем процесс сначала двигался куда быстрее. Под моим чутким руководством в качестве оптимального решения мэнээсы быстро приняли специализированный телевизор без блоков промежуточной и высокой частоты, он же монитор с зелеными «буковками и циферками». Причем специалисты проявили немалую инициативу, в два счета доказав, что только люминофор длительного свечения не будет портить зрение операторов. Против такой аргументации экономика бессильна, ведь девушки без очков куда симпатичнее очкастых стерв! Заодно
Управлять экраном с диагональю чуть более тридцати сантиметров предполагалось всего лишь по трем проводам: кадровой/строчной синхронизации, земли, видео. Я пробовал говорить о цвете, но быстро понял – ждать взаимности от техники в этом вопросе придется как минимум несколько лет. Мэнээсы дополнительно настояли на выводе звука, спорить с такой мелочью не стал, хотя и был уверен в будущей бесполезности. С дизайном корпуса тоже сложностей не возникло – по сути, получился металлический куб. Так что наш научный отдел быстро подготовил документацию и сдал ее в МЭП.
Зато дальше Иванам пришлось изрядно поломать голову без моей помощи. Ведь в устройстве телевизоров я разбирался примерно как в балете и фотонных звездолетах. Хотя на уровне схемы все выглядело просто. Всего-то вместо «эфирного» сигнала нужно было подать «компьютерный». Причем аналоговый и непрерывный, никаких пикселов в нем не предусматривалось, а значит, нельзя было обойтись без быстродействующего ключа для управления яркостью точки на экране. Если думать о градациях серого, то это выливалось в полноценный ЦАП, что, впрочем, тоже не выглядело сверхтехнологией.
Однако дьявол, как обычно, скрывался в мелочах. Если прикинуть частоты, то выйдет весьма неприятная картина. В телевизоре что-то около пяти сотен строчек [366] , в каждой нужно «показать» шестьсот сорок пикселов, а вот достижимые при массовом производстве частоты микросхем логики находятся в районе 10 МГц [367] . Быстрого прорыва тут нельзя ждать даже с подарками из будущего. Если десять миллионов разделить на произведение шестисот сорока на пятьсот, учесть всякие мелочи вроде обратного хода луча, то получится двадцать пять – тридцать кадров в секунду. А я-то по наивности надеялся сразу сделать монитор на сотню герц вертикальной развертки…
366
По ГОСТ 17793-77 для телевизоров черно-белого вещания, предназначенных для видеопросмотровых устройств, допустима разрешающая способность не менее 600 линий. В стандарте СЕКАМ используется 625 строк, из которых видимых на экране – 576.
367
К примеру, RAMDAC (Random Access Memory Digital-to-Analog Converter) для весьма старого стандарта SVGA – около 200 МГц.
Более того, стандартные системы развертки оказались «заточены» строго на частоту 50 Гц, какой-то балбес посчитал, что делать иначе нельзя из-за наводок от сети электропитания [368] . Значит, вытягивать «interlaced» [369] 30 или 40 Гц бессмысленно, вариантов всего два – или 25р обычных, progressive, или 50i. Жуткая гадость! Я хорошо помнил, как реагировали мои детские глаза на новый «стогерцовый» монитор после старого, который «тянул» всего лишь 85р. Поэтому резко стало жалко девушек-операторов. Тут на самом деле впору задуматься об использовании только части экрана, не зря этим путем пошли разработчики IBM 2260.
368
Действительно, кадровая частота была выбрана равной 50 Гц и совпадающей с частотой сети электропитания из-за возможности помех. Но позже опасения не подтвердились. По другой версии, 50 Гц приняли, чтобы не делать отдельного задающего генератора и синхронизироваться от сети. Но в результате точности частоты в сети не хватило, и отдельный генератор в телевизоре появился.
369
Interlaced – буквально режим чересстрочной развертки, обозначается в современном «иностранном стиле» 50i. Progressive – обычная развертка, или 25p.
Против
370
Эти трубки получили известность под именем Trinitron и впервые были представлены на рынке компанией Sony еще в 1982 году. Нити – апертурная решетка (aperture grill).
Конечно, в нашем положении не до таких высоких технологий. Но… Я просто взорвался потоком фраз: «Кто сказал, что для удвоения штатовских двенадцати строчек текста на экране до советских двадцати четырех нельзя обойтись парой сотен линий развертки? Долой буржуазные предрассудки! Да здравствует рабоче-крестьянская наука СССР! И вообще, сколько можно пить чай, где мой коньяк?!»
В переводе на нормальный язык это означало, что если попросту вытянуть пятно от пушки ЭЛТ по вертикали, то большая часть проблем решится сама собой! Чуть развив идею, мы урезали осетра маски символа с 8х16 пикселов до 7х11 [371] и получили двести шестьдесят четыре строчки. Что очень даже красиво уложилось в минимально-разумные 50 Гц кадровой частоты.
371
Выпущенный IBM в 1981 году стандарт CGA имел (в одном из режимов) эффективное разрешение экрана 640х200 пикселов, т. е. пропорции составляли 1:2,4.
Осталось только понять, какое устройство будет формировать «картинку». Поставить видеокарту в ЭВМ – подход явно не для шестидесятых. Шины тут не было, единого стандарта тоже, поэтому в ход опять пошел хорошо освоенный УИ-8. Сначала я хотел запихинуть всю электронику непосредственно под «телевизор», но потом пришлось отказаться от этой идеи – с памятью на ферритовых кольцах ящик выходил слишком большим. Причем НИИ «Точной механики», к которому попала на изучение микросхема RS-232 из будущего, так и не смог освоить производство чего-то, похожего на статическую память, примеров которой было более чем достаточно в буферах чипа. Мало им, видете ли, кристаллов для изучения, слишком передовой техпроцесс использован, не могут инженера пересчитать размеры транзисторов из одного мкм образца в свои десять мкм. Зато небось в отпуск ходят строго по расписанию! Надежда оставалась только на волшебный пинок от Шелепина, которому я не преминул пожаловаться на важность вопроса.
Впрочем, без полупроводниковой памяти работа и не думала останавливаться. Если не вдаваться в детали, получалось следующее: имелось два восьмиразрядных регистра под пикселы, из которых быстродействующий ключ брал биты для вывода на экран. Пока из первого регистра биты выводились – во второй загружались семь точек следующего символа из ПЗУ знакогенератора (именно там «жила» таблица «гостовского кода») и бит межбуквенного разделителя. Во всем этом процессе учитывались положение курсора и прочие атрибуты типа мигания, подчеркивания, инверсии, жирного шрифта. Соответственно, после вывода восьми пикселов регистры «менялись ролями».
По идее, данные для ПЗУ можно было брать напрямую из памяти «видеокарты». Вот только ферритовые кольца – совсем не полупроводниковый SRAM [372] , и время выборки в двадцать микросекунд (или 50 кГц) в несколько раз больше нужного. Поэтому пришлось поставить еще один огромный стошестидесятибайтный буфер на две строки. Пока из одной в одиннадцать проходов (по одному на каждую строчку матрицы) «вытаскивались» данные для знакогенератора, вторая спокойно и неторопливо заполнялась «с феррита».
372
Статическая оперативная память с произвольным доступом (SRAM, static random access memory).