Knigi-for.me

Проект «Сфера-82»: Цвет и слой - Станислав Миков

Тут можно читать бесплатно Проект «Сфера-82»: Цвет и слой - Станислав Миков. Жанр: Альтернативная история издательство , год . Так же Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте knigi-for.me (knigi for me) или прочесть краткое содержание, предисловие (аннотацию), описание и ознакомиться с отзывами (комментариями) о произведении.
почти не дрожали. Наташа проделала огромную работу по стабилизации синхросигналов.

— Работает, — негромко сказал Морозов. — Выжали из кинескопа максимум.

— Работает, — эхом отозвалась Наташа, не отрывая взгляда от осциллографа. — Прогрев держит. Питание Люба вылизала, наводок по земле почти нет.

— Хорошо, — сказал Морозов. — С новой машиной понятно. А схему приставки для старой «Сферы-80» пора готовить к публикации.

Олег отложил отвертку:

— Я тут прикидывал. Журнальную доработку надо описать максимально просто. Радиолюбитель или кружок спаяет её на коленке из доступных деталей.

Громов подошел к их столу.

— Главное, чтобы старая машина оставалась черно-белой по умолчанию, — напомнил он. — Основной видеовывод не трогаем.

— Не трогаем, — кивнул Олег. — Плата расширения просто слушает определенный порт. Программа пишет текст, как обычно, а потом кидает координаты и код цвета. Приставка подмешивает цвет поверх монохрома. Никакой графики, только раскраска букв и фона. Схемотехнически это не так сложно: регистр-защелка, немного логики, простой ЦАП на резисторах.

— И программное управление простейшее, — добавил Громов. — Вызов порта командой OUT в Бейсике. Пока никаких переделок ПЗУ.

Пусть сначала побалуются раскраской из-под Бейсика или через маленькую кассетную библиотеку. Если приживется — тогда будем думать о новой версии системы для восьмидесятых. Главное — чтобы старая программа даже не догадывалась, что она работает в цвете, пока сама его не попросит.

Птицын, пришедший забрать осциллограф, с интересом спросил:

— А мои цветовые тесты, которые я для 82-й машины написал, придется сильно переделывать под эту приставку?

Громов усмехнулся.

— Придется, Саша. Адресация портов другая. И мы это обязательно перепишем. Но только после того, как ты покажешь мне, как твой сетевой загрузчик без ошибок загружает систему в пустую память по кольцу десять раз подряд.

* * *

На центральном столе стоял один из распакованных дисководов ИЗОТ. Толстый плоский шлейф тянулся от него к плате опытной «Сферы-82». Володя Артемьев наклеивал на заднюю панель привода бирку с инвентарным номером.

Зоя Мельникова сидела за столом, перенося карандашные отметки в чистовик ведомости. В графе «Комплектация» напротив первых пяти номеров появились галочки, а напротив остальных десяти — четкая надпись: «Резерв под локальный накопитель».

Громов выписывал на листке системные входы для нового нижнего слоя МикроДОС.

Морозов стоял у стены. На столе между двумя платами «Сфер» лежал первый спаянный коаксиальный кабель с массивными разъемами.

Птицын сидел перед экраном второй, «бездисковой» машины. Он запустил простейшую проверочную программу — пока еще не полноценную загрузку по линии связи, а только тест физического уровня поверх программы опроса кольца.

На экране моргнул курсор. Затем появилась строчка:

УЗЕЛ 2: ЗАПРОС МАРКЕРА…

Спустя долю секунды, когда первая машина обработала сигнал и перевела линию в нужное состояние, на экране Птицына высветилось:

МАРКЕР ПРИНЯТ. ПЕРЕДАЧА ТЕСТОВОГО БАЙТА… ОК.

Морозов смотрел на светящиеся буквы. Коробки с дисководами так и стояли у стены — пять штук на пятнадцать машин. Он подошел к столу Птицына, проверил подключение сетевого кабеля к разъему системной платы и кивнул.

Глава 34

Клетчатая рубашка

Шум в заводской столовой стоял сплошной, густой, замешанный на звоне алюминиевых вилок, грохоте жестяных подносов по трубчатым направляющим раздачи и запахе пережаренного лука. Воздух казался влажным и тяжелым от пара, поднимавшегося над огромными алюминиевыми кастрюлями с супом. Свободных мест не было. Люди ели быстро, сосредоточенно, изредка перекидываясь короткими фразами.

Морозов сидел за угловым столиком у окна, методично разрезая ребром вилки плотную, щедро обвалянную в сухарях столовскую котлету. Напротив него Евгений Громов совершал сложные акробатические маневры: левой рукой он удерживал на весу тетрадный листок в клеточку, защищая его от брызг подливки, а правой пытался зацепить скользкое картофельное пюре.

Между тарелками, прямо на влажной клеенке, лежала причина их спора.

— Относись к этому как к схеме, Женя, — Морозов указал вилкой на листок.

На бумаге убористым почерком Морозова была выведена всего одна длинная строка кода на языке Си. Короткая функция, вычисляющая день недели по заданной дате. Никаких громоздких условных переходов, никаких многоэтажных проверок. Только базовая арифметика, пара побитовых сдвигов вправо, заменявших деление на степени двойки, и в конце — тернарный оператор, изящно сводящий финальный выбор между двумя значениями в конструкцию с вопросительным знаком и двоеточием.

int get_day(int d, int m, int y) { return ((y -= (14 — m) / 12) || 1)? (d = (d + y + (y 2) — y / 100 + (y / 100 2) + 31 * (m + 12 * ((14 — m) / 12) — 2) / 12) % 7)? d: 7: 0; }

Громов наконец сдался, отложил вилку и пододвинул листок ближе, брезгливо огибая мокрый след от чьего-то чужого стакана.

— Это прекрасно и ужасно, — проворчал программист, всматриваясь в плотную вязь латинских символов. Он поднял взгляд на коллегу. — Нет, Алексей Николаевич, ты послушай. Это абсолютно прекрасно. Но это совершенно ужасно.

Он постучал тупым концом карандаша по сдвоенным угловым скобкам побитового сдвига.

— Да, компактно. Да, ты упаковал три экрана на ассемблере в одну строчку. Машинное время экономится, транслятор проглотит это вмиг. Но это же шифровка! За такое в приличном проекте по рукам бьют.

Морозов отпил компот из граненого стакана. Компот отдавал сухофруктами и хлоркой.

— Это выразительность, — возразил он, чувствуя давно забытый азарт чистого программистского спора, далекого от режимов, планов и нормоконтроля. — Язык позволяет тебе сжать мысль до формулы. Я ведь даже оператор «запятая» использовать не стал, чтобы не плодить банальные последовательные команды. Видишь эти две вертикальные черты? Чистая магия короткого замыкания через логическое «ИЛИ». Мощнейший трюк: этот костыль с единицей заставляет компилятор жестко споткнуться, зафиксировать точку останова и гарантированно обновить год прямо в полете, до начала основного расчета. Никакого неопределенного поведения, всё строго по стандарту! Ты просто говоришь машине: пересчитай год, проваливайся по условию в формулу, сдвинь биты в регистре, а в конце проверь — если истина, бери левое, если ложь — правое. Всё.

— Отлично, — Громов саркастично усмехнулся, прищурив уставшие глаза. — А теперь представь, что этот код через год откроет какой-нибудь вчерашний выпускник. И у него на входе окажется кривая дата. Например, тридцать второе мартобря. Знаешь, что сделает твоя гениальная формула с двойным «ИЛИ»? Она радостно зафиксирует твою точку останова, сдвинет биты, проглотит мусор, выплюнет тебе какой-нибудь «минус третий день недели» и


Станислав Миков читать все книги автора по порядку

Станислав Миков - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки kniga-for.me.

Все материалы на сайте размещаются его пользователями.
Администратор сайта не несёт ответственности за действия пользователей сайта..
Вы можете направить вашу жалобу на почту knigi.for.me@yandex.ru или заполнить форму обратной связи.