- PVSM.RU - https://www.pvsm.ru -
Moonjs [1] — это небольшой эмулятор бортового компьютера космического аппарата «Аполлон».
Эта программа не была создана с нуля, это всего лишь порт написанного на С Рональдом Бёрки Virtual AGC на JavaScript с использованием asm.js и компилятора Emscripten.
У компьютера нет своего собственного специального названия, чаще всего его называют AGC по первым буквам Apollo Guidance Computer. По экземпляру было установлено в командном и лунном модулях. Впервые ввели в строй AGC в августе 1966 года, отказались от его использования в июле 1975.
Компьютер работает на частоте 2048 МГц (основной, впрочем, является частота 512 кГц) и обладает оперативной памятью на 2048 (в ранних версиях — 1024) слов по 16 бит, при этом один из этих битов — бит чётности, поэтому для использования доступны только 15 бит. Объём ПЗУ составлял 36864 слов, в ранней версии — 24576.
Использовались 4 16-битных регистра: один для основных вычислений, один для счётчика команд, один для остатка для выполнения команды DV или адреса точки возврата для безусловного перехода и один для младшей части произведения при умножении. Из-за бита чётности и бита на переполнение для использования были доступны только 14 бит.
Масса AGC без панелей управления — примерно 32 кг, он потреблял порядка 70 ватт энергии при работе от сети в 28 вольт постоянного тока и ровно 15 ватт в простое.
Впервые использовались интегральные микросхемы, логика была резисторно-транзисторной. Несмотря на внешнюю скромность показателей, этот компьютер смог доставить 12 человек на поверхность Луны и вернуть их обратно.
Программное обеспечение было написано на ассемблере. Простая операционная система реализовывала многозадачность с исполнением до 8 задач, при этом одна из них всегда присутствовала с наименьшим приоритетом — она была создана для работы лампочки активности компьютера.
Для астронавтов AGC выглядел как восьмикилограммовая панель DSKY с семисегментными индикаторами, сигнальными огнями и кнопками небольшой клавиатуры, посредством которых производился ввод.
Забавно, что данные хранились в метрической системе, но отображались для астронавтов в более распространённых в США футах и милях.
Команды вводятся в виде двух двухзначных чисел, которые называются глагол (verb) и существительное (noun). Как следует из названий, глагол указывал на операцию, а существительное — на область данных. Дисплей управлялся с помощью реле, что замедляло обновление. В более поздних моделях эта часть уже работала на полупроводниках.
Полный список всех глаголов и существительных можно посмотреть в разделе 4.4 второго тома руководства оператора [3]. Но для того, чтобы немного поиграть с эмулятором [1], это ни к чему.
Команды даются в виде последовательности вида V35E или V16N65E. E означает нажатие кнопки ENTR, V — VERB (глагол), N — NOUN (существительное).
Простые операции:
После этого знакомства с интерфейсом самое время отправиться на Луну.
Эмулятор доступен по адресу http://svtsim.com/moonjs/agc.html [1]. Больше интересных команд и описание работы на английском есть на странице Virtual AGC [5]. Документация работы программ «Аполлона» доступна всем желающим [6].
Автор: FakeFactFelis
Источник [7]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/staroe-zhelezo/77491
Ссылки в тексте:
[1] Moonjs: http://svtsim.com/moonjs/agc.html
[2] Image: https://habrastorage.org/files/102/912/b5d/102912b5d32844c89595d26182e86f41.png
[3] второго тома руководства оператора: http://www.ibiblio.org/apollo/Documents/LMA790-3-LM11-ApolloOperationsHandbookLunarModuleLM11AndSubsequent-Volume2-OperationalProcedures.pdf
[4] bugger: https://slovari.yandex.ru/bugger/%D0%BF%D0%B5%D1%80%D0%B5%D0%B2%D0%BE%D0%B4/
[5] странице Virtual AGC: http://www.ibiblio.org/apollo/index.html
[6] доступна всем желающим: http://www.ibiblio.org/apollo/Luminary.html
[7] Источник: http://geektimes.ru/post/243131/
Нажмите здесь для печати.