Необычный самодельный-проект показал, как можно создать полноценный CPU из компонентов эпохи 8-битных компьютеров, вручную спаяв каждое соединение и написав собственный код для него.
То, что на первый взгляд выглядит как хаотичное переплетение проводов и компонентов, на самом деле представляет собой впечатляющий самодельный процессор, созданный энтузиастом под ником Majsterkowanie i nie tylko (MINT). Умелец потратил три месяца на проектирование, соединение, программирование и документирование архитектуры своего CPU, названного EPROMINT.
Идея родилась из простого эксперимента с устаревшими микросхемами памяти EPROM, которые изначально использовались для управления небольшими внешними системами. Если память можно было использовать для имитации базовой логики, то почему бы не попробовать создать полноценный процессор?
Создатель проекта начал с создания арифметико-логического устройства (ALU) – базового компонента любого процессора. Первый прототип, предназначенный для простого сложения, оказался ненадежным и был заменен. После этого конструкция расширилась, включив интерфейс памяти, контроллер адресной шины и управляющую логику, которая декодирует опкоды и координирует весь поток данных.
Программное обеспечение также было написано с нуля. Почти 2000 строк кода были разработаны для определения того, как процессор обрабатывает инструкции и перемещает данные через систему. Набор команд вышел далеко за рамки возможностей старых CPU, включая такие операции как умножение, деление, тригонометрические вычисления и обработку последовательностей битов.

После подключения всех модулей процессор был впервые включен. Для демонстрации работоспособности умелец подключил к нему VFD-дисплей и написал код для воспроизведения фрагментов из фильма "Матрица" в низком разрешении.
В отличие от современных интегральных микросхем, где все скрыто внутри, в этом процессоре каждый такт, каждый опкод и все изменения регистров видны и отслеживаемы. Правда, финальный результат размещается на четырех перфорированных платах, весит более 500 грамм и содержит более километра проводов.
Самое интересное, что каждая логическая операция реализована с использованием предварительно запрограммированной памяти. Вместо физических логических элементов на кремнии система отправляет 8-битный вход в EPROM, который возвращает результат из хранимой таблицы поиска.