Microsoft Excel не входит в топ-10 самого увлекательного программного обеспечения. Рассматриваемый как надежный, хоть и скучноватый рабочий конь среди приложений для повышения продуктивности, одно лишь упоминание Excel вызывает ассоциации с бесконечными электронными таблицами, бюджетными расчетами и отчетами. Но когда кто-то создает полноценный 16-битный процессор внутри программы, это определенно стоит того, чтобы обратить внимание.
Ютубер Inkbox опубликовал 16-минутное видео, подробно рассказывающее, как он построил полностью функциональный 3 Гц 16-битный ЦПУ в этом офисном приложении, включая 128 КБ RAM, 16-цветный вывод дисплея и собственный язык ассемблера. ЦПУ был создан (и работает) внутри Excel, причем без каких-либо скриптов Visual Basic или плагинов, что означает, что его можно воспроизвести в любом Excel.
Inkbox указывает, что в своей основе электронная таблица — это просто фантастический калькулятор, принимающий входные данные и выдающий результат. Объединяя связанные ячейки для получения все более сложных результатов, он смог эффективно имитировать входные/выходные функции процессора, пусть и в данном случае относительно простого.
Для этого потребовалось создание пользовательского языка ассемблера под названием Excel-ASM15 с достаточной функциональностью для загрузки, передачи и выполнения арифметических операций, позволяющих выполнять инструкции как в традиционных программах. Видео содержит подробный и в то же время достаточно понятный разбор процесса, и служит хорошим представлением о внутренней структуре и расчетах, выполняемых CPU, и как они были эффективно воспроизведены.
Это не первый случай, когда мы видим CPU, построенные внутри других программ, как, например Chungus 2 — полноценный ПК, построенную в Minecraft, включая собственный 1Гц CPU, созданный с очень изобретательным использованием редстоуна. Тем не менее, как может засвидетельствовать любой, кто провел в игре много часов, строить в Minecraft весело, а вот Excel — это требует совсем другого уровня дисциплины и силы воли.
Inkbox опубликовал результаты своей работы на Github, так что если у вас есть Excel, вы можете сами посмотреть на внутреннее устройство рабочего процессора, включая несколько базовых программ для тестирования.