Продолжение постскриптума.

Вообще, забавные были времена в гидрометцентре. Устройство под названием "модем" представляло собой здоровенный шкаф и работало с жуткой скоростью 1200 бит в секунду, причем только на прием (передающая часть — это другой шкаф и он нам был не нужен). Информация принималась со спутника, через тарелки на крыше и послать retry было невозможно. Информация поступала из Москвы и из Washington DC (в рамках какого-то там советско-американского соглашения об обмене метеоинформацией). Потом это все распаковывалось, обрабатывалось и извлекались нужные данные для разных служб. Например, вертикальные разрезы атмосферы отсылались гражданским авиаторам и воякам. Но самый прикол был с картами. Карты были в виде больших бланков, на которых графопостроителем рисовались изолинии. Зачем? А вот. Нарисованная карта бралась, заправлялась в здоровенный факсимильный аппарат и бродкастом отсылалась в разные службы. Изврат? Нисколько! Для построения изолиний требовалась нехилая вычислительная мощность. А хранить карту в растровом виде, чтобы потом ее передать — было просто нереально, объемы памяти не позволяли. Вот и получалось, что нарисовать на бумаге, а потом опять считать и передать построчно — было вполне обоснованным техническим решением. Потом, когда комп заапгрейдили до 2-х мег, стали растеризовать в памяти, писать на ленту и передавать прямо с ленты. Дигиграфы стали нужны меньше, но все-таки нужны. Дело в том, что растеризация была все-таки очень дорогой по памяти и пользовались ей только лишь для наиболее критичных по времени карт.

Работа в гидрометцентре мне очень помогла в плане учебы. Я перестал зависеть от институтской ЭВМ! А потом поставили ЭЛТ-терминалы и систему Primus, так что с перфокартами можно было не возиться и полностью сделать курсовик за каких-то 4 часа вместо недель-месяцев на институтской ЭВМ с жутким трафиком. Для сдачи все равно требовались перфокарты, но было такое устройство вывода, ласково прозванное "бармалей", которое позволяло "пробить" файл на перфокартах. Я охотно помогал людям делать задания и учился таким образом. Были и приколы. Люди есть разные, в том числе и беспардонные. От одного такого я пострадал, оказавшись в роли козла отпущения. Чувачок был неким комсомольким лидером, попросил меня помочь с заданием, я ему помог, после чего на комсомольском собрании он рассказал, как я использую государственное машинное время в личных целях (не исключаю, что это все было подстроено комсомольским комитетом). Разборки с фингалами я опущу. Но потом, через полгода, он совершенно внаглую сказал, что "надо бы еще заданьице сделать". Была последняя ночь перед сдачей курсовика и как раз моя ночная смена, деваться ему было некуда. Мстя моя была страшна — я сделал это задание в лучшем виде, но на PL/I вместо Фортрана, объяснив это тем, что так мне было удобнее. А он был типа "отличником". А преподаватель прекрасно знал PL/I. А чувачок — ни уха ни рыла в нем (не было у нас таких курсов). А не пойти сдавать было нельзя. В общем, подставил я чувачка. Потом было много вони с его партейными папа-мамой и на меня было напущено страшное проклятье — я был объявлен чуть ли не врагом народа и путь в члены КПСС мне был заказан. На том и порешили.

Моим личным программистским апофеозом на майнфреймах была известная игра reversi в настоящем терминальном режиме, переписанная с Фортрана на PL/I с функциями терминального ввода-вывода системы Primus.

Усилители и HiFi я в конце концов забросил, в основном потому, что программирование компьютеров оказалось не менее увлекательным делом, а главное — для этого не требовалось никаких дефицитных транзисторов и операционников, которые имели тенденцию выгорать, если чего-то не туда припаял или случайно замкнул. Помню на кафедре что-то долго паяли на макетке, на 5-вольтовой TTL логике в металло-керамических корпусах, порядка сотни микросхем. А включалось это все в лабораторный блок питания обычной вилкой. И вот один студент-отличник перепутал провод и вместо блока питания воткнул в 220 саму плату. Ну, я вам доложу был фейерверк... Думаю, что эта плата до сих пор так и висит приколоченная к косяку гвоздем-соткой в назидание потомкам...

Далее была работа на кафедре, где я активно осваивал PDP-11. Сначала — тоже Фортран-4, затем — ассемблер MACRO-11. Преподаватель очень грамотно сумел нас увлечь сначала программированием в восьмеричных кодах PDP-11, а потом — макроассемблером. И вот это сочетание — MACRO-11 и Фортран было практически идеальным для решения довольно сложных задач. В самом деле, не будешь же на ассемблере программировать вычисления по формулам. В то же время, на Фортнане-4 было как-то очень плохо писать управляющую логику, работу со строками и т.д. — просто в силу того. что на MACRO-11 все получалось гораздо компактнее и было доступно гораздо больше системных функций. А адресного пространства было всего-навсего 56K (64-8). Тем не менее, был механизм оверлеев, при помощи которого можно было создавать хоть мегабайтные бинарники, что мы и делали.

Был еще компилятор с Паскаля, но он изредка вываливался по Trap 4, что было эквивалентно отсутствию какой-либо работоспособности (стандарты качества были высоки... ха! сравните с сегодняшней VS.Net).

Потом появился язык C. Весь в исходниках на том же MACRO-11 и его надо было компилировать. Наверное, это был первый серьезный Open Source, с которым я столкнулся в жизни. Однако, C меня разочаровал по сравнению с Фортраном. Генерировался гигантский код и главное — startup код был аж 6K, по сравнению с фортрановскими 2.5. А в оверлей его не засунешь. В общем, в эпоху PDP-11 я мощно сопротивлялся нашествию "незнакомой культуры" и оставался в рамках Фортрана и Ассемблера.

Весьма интересным был так же графический дисплей на запоминающей трубке, для которого я в основном и писал. Это был такой длинный зеленый монстр (в те времена почему-то все было зеленое), с монитором 12 дюймов по диагонали. Но разрешение при этом было 4096x4096. Но исключительно черно-зеленый, никаких градаций. Более того, изображение хранилось на самом люминофоре и стереть его было только все целиком, при этом дисплей отвратительно ярко мигал. Еще был графический дисплей с регенерацией изображения, для него я тоже писал, но меньше. Принцип там был такой. Никакой развертки, просто сфокусированный луч электронов, бьющих в люминофор и выдающих яркое пятно. Все! Но этим лучем можно было программно управлять. Таким образом, чтобы увидеть какую-то картинку, надо было крутить цикл, постоянно двигающий этот луч (точнее говоря, это делал дисплей через ПДП (DMA), но у него был свой собственный ассемблер). Тем не менее, на нем вполне успешно крутились разные CAD'ы и даже была игра — посадка на луну, управляемая через световое перо.

Вообще, из игр на PDP-11 запомнились (кроме посадки на луну) Packman, Тетрис Пажитнова (прозванный стаканом), бродилка "adventure", работавшая в режиме командной строки, какой-то Xonix, и чего-то там про "нашествие шестижопых кусак из соседней галактики".

Эпоха PDP-11 оставила у меня самые теплые воспоминания, там было все гораздо кайфовее, чем на майнфреймах и очень красиво, продуманно и логично по сравнению с Intel. Увы, все, что осталось от DEC — это Digital Credit Union, членом которого я состою. Но жизнь — борьба и побеждает в ней не обязательно самый умный, а как правило тот, у кого больше нахальства и крепче кулаки. Так всегда было и всегда будет, и жаловаться тут смысла нет.

Спасибо всем тем, кто дочитал до конца. Если интересно дальше — закончу попозже, если нет — пожалуйста модерируйте.
Автор: McSeem2    Оценить