Knigi-for.me

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

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

Морозов придвинул стул, сел и открыл свою папку. Поверх зеленоградских рабочих выписок и распечаток на столе лежал большой картонный конверт с дискетой. На обложке конверта рукой Каца было выведено: «Рабочая копия. Формат НЦ. Хранить особо».

Громов посмотрел на надпись и усмехнулся.

— Грозно написано, — сказал он. — Давай сначала узнаем, читается ли она.

Громов раскрыл свою тетрадь. На первом развороте уже стояла грубая схема памяти «Сферы-82»: нижняя область для МикроДОС, дальше рабочая память программы, отдельно экранная область, сверху — короткие служебные буферы. Против свободного места стояла жирная пометка: «мало».

— Я вчера прикинул, — сказал Громов. — Если работать на наших текущих тридцати двух килобайтах, целый слой выходит далеко за пределы памяти. Адресное поле у К580 теоретически шестьдесят четыре килобайта, но у нас сейчас живая машина на столе, вот эта. Система, экран, буферы диска, переменные — и от памяти остаётся узкая грядка.

— Значит, читаем слой кусками.

— Кусками, — кивнул Громов. — Последовательный файл с диска читаем порциями, как договаривались. Подозрительные места складываем в отдельный список. Но это всё базовые функции. Чтение, буфер, разбор записи, контроль, вывод ответа. Это я понимаю.

Он перевернул страницу. На следующем листе было другое: прямоугольники, стрелки, номера слоёв, зазоры. Карандашные линии сбивались в плотную кашу.

— Дальше начинается геометрия. Где прямоугольник, где технологический припуск, где намеренное наложение, где ошибка, которую Ланская признает настоящей. Я могу написать проверку в лоб: сравнить каждый участок с каждым. Машина будет думать до второго пришествия, если объём данных вырастет.

Он постучал карандашом по листу.

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

Морозов молча раскрыл принесённую папку и достал ещё один лист. На нём была собственная схема Морозова вместо зеленоградской распечатки: три прямоугольника, соединённые стрелками. Под первым было написано: «чтение и разбор записи». Под вторым: «проверка правила». Под третьим: «ведомость замечаний».

— Вот поэтому делим работу, — сказал он. — Ты пишешь машинную часть: дисковод, буфер, контрольное число, разбор строки, выдача результата. На ассемблере. Там каждый байт на счету и каждый лишний переход будет слышен.

Громов прищурился.

— А середину?

— Середину пишу я.

Несколько секунд Громов смотрел на него с каменным лицом.

— Ты.

— Я.

— На чём?

Морозов достал из папки вторую дискету, с пустой стороной конверта, в обычном бумажном конверте.

— На Си. Транслятор с этой дискеты должен завестись. Полной свободы там нет, зато для проверки правил его хватит.

Громов взял конверт двумя пальцами, как берут незнакомую микросхему с сомнительной маркировкой.

— Я всё ещё пытаюсь понять, когда ты успел стать программистом.

— У меня была другая школа и слишком много практики, — спокойно сказал Морозов.

Громов хмыкнул, и в этот раз удержался от шутки. Он положил дискету рядом с зеленоградской и постучал ногтем по столу.

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

— Потому что мне пришлось бы учить Фортран ваших больших машин, Алгол в тех вариантах, в которых он у вас живёт, и ассемблер К580. Я могу читать машинную логику, но писать на К580 так, как пишешь ты, — это годы привычки. А Си ближе к моей школе. Не такой, каким я пользовался дома, беднее, без привычных библиотек, с тяжёлой работой с памятью. Но фундамент те же.

Громов медленно сел.

— Покажи.

Морозов ответил делом. Он сбросил «Сферу-82», дождался короткой строки начального пуска и запустил МикроДОС в исходном, англоязычном режиме. На черно-белом экране возникла сухая строка приглашения. Громов придвинул стул ближе и оперся локтем о край стола.

Сначала они проверили вторую дискету. Дисковод несколько раз коротко щёлкнул, головка шагнула по дорожкам, и на экране появился каталог файлов. Громов наклонился вперёд.

— Живой.

— Тише.

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

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

«X1, Y1, ×2, Y2, слой, правило».

— Зеленоградская топология для первого опыта — это строго выбранный фрагмент. Значит, каждый проводник можно на первом шаге свести к прямоугольнику или к группе прямоугольников. Берём участок вместо всего кристалла и всей маски, где надо поймать грубое нарушение зазора.

— Ланская тебя за это прибьёт.

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

Морозов начал вводить текст программы. Он печатал медленнее, чем Громов набирал код на ассемблере, но странно ровно: сначала имена полей, потом одна короткая подпрограмма чтения прямоугольника из буфера, потом функция проверки пересечения по двум осям. В обозначениях держался один порядок; каждая новая строка вставала на место, будто в голове у него уже лежала готовая литейная форма, а теперь он только заливал её металлом.

Громов молчал. Потом придвинулся ещё ближе.

— Стой. Ты два раза используешь одну и ту же проверку.

— Именно.

— Для X и для Y?

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

— А если прямоугольник длинный, через пол-участка?

— Тогда он попадает в несколько полос.

Морозов нарисовал рядом с таблицей вертикальные линии.

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

Громов забрал у него карандаш и сам дорисовал две полосы.

— Список будет расти.

— Будет. Поэтому старые прямоугольники выбрасываем, когда их правая граница ушла дальше проверяемой зоны. Читаем файл по порядку, вместо хранения всего массива сразу.

— Если файл отсортирован.

— Поэтому первый вопрос Кацу: в каком порядке выгружаются записи.


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

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

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