Энтузиаст посадил корабль на Луну в Kerbal Space Program с помощью компьютера 1982 года с процессором на 3,5 МГц

Всего через несколько недель после успешного управления виртуальным космическим кораблём на ZX Spectrum космический энтузиаст и ютубер Скотт Мэнли совершил следующий шаг – "посадил" аппарат на Луну, используя домашний компьютер из 1980-х.

Настоящего лунного модуля у Мэнли, конечно, не было, так что в роли симулятора выступила Kerbal Space Program 2015 года, а ZX Spectrum взял на себя управление полётом.

Для тех, кто не застал эту эпоху: ZX Spectrum – домашний компьютер британской компании Sinclair Research, вышедший в 1982 году.

Этот 8-битный девайс работал на процессоре Z80A с тактовой частотой 3,5 МГц и поставлялся с 16, 48 или 128 КБ оперативной памяти. Операционной системой служил Sinclair BASIC, а сам компьютер прославился тем, что познакомил целое поколение детей с играми и программированием благодаря невысокой цене.

https://youtu.be/XQTh1Davsj8

По современным меркам характеристики кажутся смехотворными – Мэнли сам отметил, что некоторые зарядные устройства для телефонов мощнее этого гаджета. Однако стоит помнить, что ZX Spectrum появился через 13 лет после реальной высадки "Аполлона-11" на Луну.

Бортовой компьютер "Аполлона" (AGC), отвечавший за навигацию, ориентацию и управление кораблём, был куда слабее – процессор на 2,048 МГц, 15-битная длина слова и возможность хранить всего 2 048 слов.

Именно из-за таких ограничений программистам NASA приходилось проявлять изобретательность, укладывая код в минимальный объём данных. Несмотря на то что ZX Spectrum располагает значительно большей памятью, чем оригинальный AGC, Мэнли столкнулся с похожим вызовом.

Ему пришлось запрограммировать компьютер так, чтобы тот рассчитывал необходимые переменные для управления виртуальным кораблём – вычислял ориентацию и ускорение для манёвров и посадки на лунную поверхность.

Техническая сложность на этом не закончилась. ZX Spectrum нужно было каким-то образом соединить с симулятором, но у компьютера 1982 года нет USB или других современных портов. Выручило периферийное дополнение Interface 1, также выпущенное Sinclair Research, оно включало последовательный порт RS232, через который ZX Spectrum смог "общаться" с ПК на Windows.

Но и здесь возникла загвоздка – Kerbal Space Program не поддерживает последовательный ввод. Мэнли решил проблему установкой мода Kerbal RPC, который позволяет управлять кораблём дистанционно через Python или другой язык программирования. Таким образом цепочка замкнулась: древний компьютер отдавал команды через последовательный порт на Windows-машину, а та передавала их в игру через мод.

Когда всё было настроено, Мэнли запустил программу, и виртуальный лунный модуль начал медленное снижение. По мере приближения к поверхности ютубер рассказывал о задержках системы – иногда лаг достигал двух секунд. Впрочем, Мэнли отметил, что бортовой компьютер "Аполлона" работал в двухсекундном цикле, пересчитывая значения с такой же частотой, и при этом успешно сажал реальный корабль на Луну.

NASA планирует вернуться на Луну до конца десятилетия и, безусловно, будет использовать оборудование в 100 000 раз мощнее того, что обеспечило первую посадку почти 60 лет назад.

Больше статей на Shazoo
Тэги:

Об авторе

Эксперт по Fallout
Главный редактор
Более 16 лет в индустрии освещения видеоигр, кино, сериалов, науки и техники. Особенно разбираюсь в серии Fallout, ценитель The Elder Scrolls. Поклонник Arcanum и Fallout Tactics. Больше всего играю в Civilization, Old World и градостроители. Изучаю ИИ и загадки космоса.