» » » » Ретро бит 4 - Сева Сотх Seva Soth

Ретро бит 4 - Сева Сотх Seva Soth

На нашем литературном портале можно бесплатно читать книгу Ретро бит 4 - Сева Сотх Seva Soth, Сева Сотх Seva Soth . Жанр: Попаданцы. Онлайн библиотека дает возможность прочитать весь текст и даже без регистрации и СМС подтверждения на нашем литературном портале litmir.org.
Ретро бит 4  - Сева Сотх Seva Soth
Название: Ретро бит 4 (СИ)
Дата добавления: 23 май 2026
Количество просмотров: 0
Читать онлайн

Внимание! Книга может содержать контент только для совершеннолетних. Для несовершеннолетних просмотр данного контента СТРОГО ЗАПРЕЩЕН! Если в книге присутствует наличие пропаганды ЛГБТ и другого, запрещенного контента - просьба написать на почту readbookfedya@gmail.com для удаления материала

Ретро бит 4 (СИ) читать книгу онлайн

Ретро бит 4 (СИ) - читать бесплатно онлайн , автор Сева Сотх Seva Soth

Калифорния 1982 года полна контрастов. Еще вчера Кристобаль Колон был бесправным школьником из трейлерного парка, а сегодня он перспективный разработчик видеоигр с выгодным контрактом.

Ни одна уточка при написании книги не пострадала!

1 ... 40 41 42 43 44 ... 52 ВПЕРЕД
Перейти на страницу:

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

Вся проблема в видеопамяти. Если кратко — её нет. Ну, не то, чтобы совсем нет — три регистра, суммарным объемом в двадцать байт при ширине игрового поля в сорок символов. Хватает на одну строку половины экрана. Но все, что рисуется слева — тут же повторяется в правой части дисплея в зеркальном отражении.

То есть Макаронный монстр или Омниссия посылали мне намёки на грядущие кошмары, отзеркалив мой фингал на лице Монтгомери Синклера. Вот и не верь после такого в предсказания. То-то экран в Питфоле, в который я чуточку погонял, дабы немного понять консоль, подозрительно симметричный.

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

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

В нормальных железках ты кладешь кадры в видеопамять и аппаратная часть всё сама нарисует. Тут же натуральная порнография! Приходится разбираться в физике работы электронно-лучевой трубки!

Естественно, поток исполнения кода единственный и синхронный, то есть посылать команды на отрисовку нужно в промежутках между выполнением остальной программы? Семьдесят шесть тактов процессора на каждую строку развертки кинескопа! Верните мне рваную видеопамять Эппл 2! Там она хотя бы в принципе есть! Я всё понял и осознал!

— Наверняка эту миерду придумал какой-нибудь Стив! — раздраженно бросил я, когда при помощи Джона и документации осознал, как глубока кроличья нора. В шутку, естественно, нет у меня никакой стивофобии.

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

Теперь понятно стало, почему несложные казуальные игры под старые консоли писались годы и месяцы. Я, помнится, вспоминал производственный ад, в который угодил разработчик ET, создавший забагованное чудовище. Я попал туда же. И нафиг я вообще под это подвязался? Мог бы оставаться в зоне комфорта, вместе с адекватным железом. VVVVVV писать бы начал. Но нет, купила баба порося, то есть приставку.

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

Глава 22

— Джон, я не рассказывал тебе, что такое безумие? Безумие — это повторение одного и того же действия раз разом в надежде на изменение. Разработка под Атари 2600 — вот что есть безумие, — обратился я к молчаливому программеру, пришедшему с распечаткой своего порта Тетриса под Атари 800 и начавшего карандашиком проставлять такты процессора в листинге, прикидывая, как уместить нехитрую логику в концепцию «нарисовать половину экрана за заданное число команд».

Веселья добавляло то, что действия стоимостью в один такт у процессора MOS6507, слегка урезанной версии 6502, как, собственно, и у изначального предка, нет. Минимум два. То есть нам надо нарисовать половину стакана за действия, оцененные четко в 38 попугаев, и добить остальные за оставшуюся длину удава, чтобы в итоге получилось заветное 76.

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

— И решать ее при помощи карандаша и бумаги — истинное безумие.

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

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

Идея моя оказалась проста, как двадцать пять центов — запилить анализатор синтаксиса, который подсчитает такты вместо меня. Пройдется по коду модуля, проставит накладные затраты на каждое действие и подобьет итог. Линтер — так подобные скрипты называют в светлом айтишном будущем. Но, кажется, в нынешние лохматые времена хотя бы сам термин уже придумали. Скармливаем ему ассемблерный код и видим прогноз, сколько процессорных действий он займет. Пожалуй, я преуменьшил, когда говорил про дробовик. У нас выйдет если и не БФГ, то, по крайней мере, ракетная установка.

Обстоятельно изложил Джону концепцию.

— Но у тебя ведь очень сжатые сроки, — напомнил коллега, — разумно ли тратить время на инструмент, который не факт, что поможет?

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

Да вообще не помню, кроме того, что взятая как из лексикона Трейси команда NOP, то есть «ничего не делать», стоит два такта, а однотактовых совсем нет, что очень усложняет жизнь и заставляет ненавидеть саму математическую концепцию четности и нечетности!

Ночь — она звала меня. И Джона вместе со мной. Справились ли мы с задуманным к утру? Решительное нет. Я, может быть, благословлен Омниссией и вообще инженер, но если бы подобные в чем-то революционные штуки писались за одну ночь, то их бы уже кто-нибудь создал. Нельзя просто так взять и написать парсер до рассвета.

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

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

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

У нас ушли две недели практически безостановочной разработки с редкими перерывами на сон и еду. Есть такая шутка, что если один программист напишет программу за неделю, то два — за две! Не наш случай. Помощь Джона на самом деле бесценной оказалась, главным образом за счет досконального знания ассемблера под процессоры семейства 6502. Я, со своей стороны, вкладывался знанием приемов командной разработки и общим пониманием принципов устройства линтеров. Мои навыки из будущего и его из прошлого, которое для меня настоящее, отлично друг друга дополнили.

Вообще, групповая разработка на технологиях 1982 — та еще боль, сопоставимая с фрустрацией от столкновения с недоконсолью. Джон с ухмылкой назвал её «Сникернет». То есть кроссовочная сеть. Ты записываешь код на дискету и несешь ее к соседнему столу ножками, после чего другой программер наполовину вручную объединяет ваши листинги.

Банальный копипаст «выделить-скопировать-вставить» в эпоху ретро-компьютеров выглядит, как тот еще цирк с конями. Нельзя просто так взять, открыть файл, скопировать кусок текста и вставить в другой файл. Не умеют так редакторы, в том числе самый продвинутый из имеющихся, включенный в среду UCSD Pascal.

1 ... 40 41 42 43 44 ... 52 ВПЕРЕД
Перейти на страницу:
Комментариев (0)