Инженер 2.1
Шрифт:
Загрузив счётчик CPU начальным значением близким к 2 в 128 степени, мы сделали множество тестовых прогонов и сплели таким образом шестьдесят четыре стартовых ядра. Все произведённые тесты убедили нас, что всё работает и готово к запуску.
– “Помолясь усердно богу он отправился в дорогу” — процитировал я фразочку из детского стихотворения.
— Начинаем? — спросила Эт.
— Осталось два маленьких штриха.
— Какие?
— Подпустить огоньку и водичкой разбавить. Это же твоя идея.
— О, я и забыла!
— Я добавлю искорку, а
— Ага!
Завершив все подготовительные работы, мы перезапустили Орион-128 и шестьдесят четыре ядра начали плести новые шестьдесят четыре ядра.
Итоговая сложность каждого CPU получилась довольно высокой: на плетение одного ядра тратится около двух часов процессорного времени. Из за того, что сложность некоторых шин по мере их построения растёт нелинейно, то плетение новых слоёв будет происходить всё медленнее и медленнее. В конечном итоге, каждое ядро, по расчётам, будет изготавливаться около пяти часов, а на изготовление всех 128 слоёв Орион-128 уйдёт около двадцати дней.
Запустив репликацию в работу, мы прождали два часа и убедились, что седьмой слой ядер доплёлся и их стало сто двадцать восемь.
Я забрал одно ядро на нужды индикации и запустил на нём программку, показывающую сколько CPU уже сделано в виде этакого прогресс-бара, путешествующего от единицы до 128.
— А чем мы займёмся теперь? — спросила Эт.
— Таблицей символов. Нужно перестать разрабатывать программы в кодах и хотя бы писать их на ассемблере. Для этого будем учить наш компьютер выводить цифры и буквы.
— А куда он их будет выводить?
— В плетение связи. С его помощью я уже умею рисовать линии перед глазами. Нам нужны шрифты со всеми демонскими буквами, цифрами, а ещё с моим родным русским алфавитом. Заодно и алфавит древних нужно поддержать.
— Алфавит древних?
— Ага, я зря что ли рисунки их символов коллекционирую и переписываю все найденные тексты?
В общем, база символов будет первой базой данных нашего компьютера. По номеру символа из неё можно будет извлечь список, описывающих его линий.
— И как это делать?
— Смотри. — я взял лист бумаги. — Делим лист на клеточки, затем рисуем на нём букву. А потом описываем её считая, что компьютер умеет рисовать только прямые линии. Например: начало в клетке 20,30, толщина 4, прямая до клетки 25,45. И так далее. Такое надо прорисовать для каждого символа и сложить в память компьютера.
— Каждый символ вот так рисовать? Это же очень муторно и долго!
— У нас примерно двадцать дней впереди. Косм нам тоже поможет, он же хотел участвовать. На самом деле, хоть работа и однообразная, но нам надо нарисовать всего около пары сотен символов. Вот увидишь: уже к послезавтра мы всё доделаем. И, кстати, здесь можно загрузить конструкты: ты рисуешь, а он описывает нарисованное.
Как я и предполагал, на следующий день, когда Орион-128 добрался до двадцатого слоя CPU, мы уже сделали большую часть работы. У меня были описания для всех цифр и значительной части букв, включая буквы древних.
В
Главное, из за чего я взялся за эти биты, необходимость различать цифры и буквы. Выделив целых восемь бит под признак цифры и ещё шестнадцать бит под признак языка я получил возможность кодировать цифры на разных языках. Можно написать цифру 2, поставив ей во флагах признак “десятичная система” и язык “арабский”. Та же цифра 2, записанная в демонском написании будет иметь тот же код символа, но другие флаги. А изображение символа можно рисовать для любого сочетания флагов.
Если древние манипулировали двадцатеричным счислением, как я до сих пор считаю, то их первые десять цифр будут совпадать с нашими. В результате, если вдруг попадётся какая-то база данных древних, выгруженная в текстовый формат, то, думаю, что я смогу её адаптировать к хранению в Орион-128.
На самом деле, хоть это сперва и показалось нудным, но и Этера и Косм увлечённо рисовали символы, иногда даже споря о том, как красивее сделать то или другое, а я, как только этих символов скопилось около десятка, взялся модифицировать плетение связи, чтобы их показывать.
Удивительно, но факт: на Земле, когда появились первые кинескопы, то люди долгое время не использовали понятие “растровая развёртка” для вывода изображений на экран. Вместо этого они гоняли луч по экрану кинескопа по замысловатым траекториям, строя на ходу различные фигуры, в том числе буквы и цифры.
Приблизительно таким же методом пришлось воспользоваться и мне. Связано это не с тем, что я прохожу те же стадии развития, что и наше человечество, а с тем, что плетение связи даёт мне такую возможность.
Как подступиться к выводу растровых изображений у меня пока даже предположений нет. В плетение связи я очень легко могу показать изображение, но… из своей головы. Как это сделать при помощи воздействия на плетение я пока не знаю.
В общем, я сделал так, что ядро компьютера берёт описание символа в виде линий и проводит их при помощи плетения в нужном месте. Линия проводится только в восприятии человека, и нигде в другом месте не существует.
Для человека получается, будто в воздухе, неподалёку от него, он видит цифру или букву.
Поскольку, я совершенно не понимаю, как работает плетение связи, то пришлось “оцифровать” воздействия на него и разбить на кванты всё ощущаемое вокруг пространство. Выбрав кванты, окружающие меня на расстоянии приблизительно 50 сантиметров я, практически опытным путём (при помощи конструктов), собрал статистику воздействий на плетение связи так, чтобы символ можно было нарисовать в любом месте этой воображаемой сферы.