Самодельная портативная консоль на процессоре 486
Мой интерес к компьютерам начался с подержанного клона PC-XT, который я купил ещё ребёнком на деньги, накопленные благодаря разным подработкам. У него был зелёный монитор, а у меня - огромное желание разбирать его, изучать и пробовать новое.
Позднее дядя, узнав о моём увлечении, стал привозить мне ненужные ему комплектующие: материнские платы, жёсткие диски, процессоры. Многие из них были рассчитаны на процессоры 486. Так я провёл немало времени, экспериментируя с этой платформой: менял память и ISA-карты, разгонял процессоры, настраивал параметры BIOS.
На 486 я оставался до тех пор, пока не устроился собирать компьютеры. Заработав на новую машину, я перешёл на Pentium 2. Тогда я почти ничего не знал об устройстве материнских плат, хотя с шиной ISA уже разобрался на практике: однажды собрал программатор флеш-памяти, используя старую карту расширения, микросхемы декодирования адресов и сокет для AM29F512. А вот многочисленные дорожки и крупные микросхемы на платах всё ещё казались мне сложной магией.
Спустя тридцать лет ностальгия по той эпохе никуда не исчезла. Можно запускать старые игры в DOSBox, но мне захотелось попробовать другой вариант - играть на настоящем оборудовании. Так появился проект VapourDeck: портативная ретроконсоль в духе Steam Deck, которая запускает DOS-игры без эмуляции. Внутри - реальный компьютер на процессоре 486.
От настольного прототипа к портативной системе
Изначально я не собирался делать карманную игровую машину. Первой задачей было создать простую плату для настольного компьютера: с VGA-выходом и без сложной системы управления питанием. Мне хотелось прежде всего выяснить, получится ли вообще самостоятельно собрать PC.
Первый прототип в целом оправдал ожидания, хотя без ошибок не обошлось. На плате не хватало нескольких подтягивающих резисторов, пара конденсаторов оказалась не там, где должна была быть в цепях запуска, а линии USB были перепутаны. Не сразу удалось разобраться и с разъёмом VGA: я выбрал его неправильный вариант. К счастью, ошибку исправил простой способ - разъём припаяли с обратной стороны платы.
В первой версии использовался Intel 486-DX4-100 - один из поздних процессоров семейства 486. Для следующей платы я выбрал AMD 486-DX5-133, совместимый по расположению выводов. AMD выпускала процессоры этой серии дольше Intel; DX5-133, вероятно, стал последним самостоятельным чипом 486. Более совершенный техпроцесс позволил ему работать быстрее и при этом выделять меньше тепла.
Оба процессора рассчитаны на питание 3,3 В. Для новой разработки это удобно: такое напряжение широко применяется в современной электронике, тогда как ранним моделям 486 требовалось 5 В. Но выбрать процессор и подать на него питание недостаточно. Нужно обеспечить связь между CPU, памятью и остальными устройствами.
Почему важна шина процессора
В отличие от современных систем-на-кристалле, процессор 486 выполняет сравнительно ограниченный набор задач. В нём нет встроенного контроллера оперативной памяти или графического ядра. Поэтому команды и данные, доступ к памяти и обмен с периферией проходят через внешнюю шину.
У 486 множество сигналов, а поздние модели поддерживают дополнительные возможности: встроенный кэш, режим обратной записи, пакетное чтение, несколько вариантов управления шиной и многопроцессорную работу. Однако для простого компьютера задействовать всё это не обязательно. Если не подключать соответствующие сигналы, можно начать с базовой 32-разрядной шины, на которой каждая операция занимает не менее двух тактов.
Именно понимание этого интерфейса становится отправной точкой при создании платы. Процессор должен получать корректные сигналы, а остальные компоненты - отвечать ему в нужный момент. Ошибка в соединении или временных параметрах способна помешать запуску системы, даже если сами микросхемы исправны.
Зачем здесь FPGA
При разработке самодельного компьютера требуется связать процессор с памятью и периферией и согласовать работу сигналов. FPGA позволяет реализовать логику, необходимую для такого взаимодействия, и при необходимости менять её без полной переделки платы. Это особенно полезно на ранних этапах, когда часть решений ещё проверяется на практике.
Такой подход помогает разделить проект на две задачи: создать аппаратную основу и отдельно отлаживать логику взаимодействия компонентов. Но FPGA не отменяет необходимости понимать шину 486: она должна корректно реагировать на запросы CPU и обеспечивать работу подключённых устройств.
Отдельное внимание требует запуск компьютера. Процессор должен получить начальные команды, пройти этап начальной загрузки и начать обращаться к памяти и периферии. Поэтому в разработке важны не только сами соединения, но и порядок появления сигналов, настройки платы и возможность наблюдать за поведением системы при старте.
Что делает VapourDeck портативной консолью
Переход от настольного прототипа к игровому устройству меняет требования к проекту. Для настольной платы достаточно проверить, что процессор запускается и выводит изображение на VGA. Портативной системе дополнительно нужны компактное размещение компонентов и подходящее питание. При этом цель остаётся прежней: запускать старые игры на реальном 486, а не имитировать его работу программно.
Такой проект интересен не только ностальгией. Он позволяет увидеть, как устроен компьютер, в котором процессор, память и периферия ещё не скрыты внутри одного чипа. Каждый сигнал приходится учитывать, а неудачи вроде перепутанных линий или неправильно установленного разъёма становятся частью инженерного процесса.
Создание VapourDeck - это возвращение к платформе, с которой когда-то началось моё увлечение компьютерами, но уже с другим уровнем понимания. Тогда я экспериментировал с готовыми платами и настройками BIOS. Теперь задача - самостоятельно спроектировать систему, разобраться в работе шины 486 и превратить компьютер той эпохи в портативную консоль для DOS-игр.



