Em 20 de julho de 2009, em homenagem ao 40º aniversário do pouso na Lua, as impressões com o código-fonte do programa do computador de bordo Apollo Guidance Computer (AGC) foram digitalizadas e publicadas na Internet . Sete anos se passaram - e agora esse exemplo único da história do computador recebeu uma segunda vida. Hoje, o código-fonte do AGC no assembler é publicado no Github na íntegra, aberto para pesquisa, comentários, forks, etc.No código, você encontra as chamadas dos famosos erros com os códigos 1201 e 1202 , com os quais Neil Armstrong estava tão preocupado, e muito mais.No Github, o repositório Apollo-11 decolou rapidamente em 1º lugar na lista dos repositórios mais populares por dia (não há dúvida de que na classificação semanal ele terá o 1º lugar amanhã). Realmente há algo para ver. É especialmente interessante ler alguns nomes de procedimentos ( BURN_BABY_BURN - MASTER_IGNITION_ROUTINE.s ) e comentários no código original.CAF CODE500 # ASTRONAUT: PLEASE CRANK THE
TC BANKCALL # SILLY THING AROUND
CADR GOPERF1
TCF GOTOP00H # TERMINATE
TCF P63SPOT3 # PROCEED SEE IF HE'S LYING
TC BANKCALL # ENTER INITIALIZE LANDING RADAR
CADR SETPOS1
TC POSTJUMP # OFF TO SEE THE WIZARD ...
CADR BURNBABY
O programa possui um código "temporário", como em muitos programas modernos.TC BANKCALL # TEMPORARY, I HOPE HOPE HOPE
CADR STOPRATE # TEMPORARY, I HOPE HOPE HOPE
TC DOWNFLAG # PERMIT X-AXIS OVERRIDE
E aqui está a versão de 1969 do comentário popular "Isso nunca deve acontecer".CA A
O primeiro ticket já foi criado no repositório do Github - uma discussão sobre o "bug" que precisa ser corrigido no programa.O desenvolvedor do SilverWingedSeraph escreve: "Um usuário teve um problema bastante sério com a mistura criogênica em tanques de oxigênio com a aparência de uma mensagem de falha". Para reproduzir o erro no programa, repita a seguinte sequência de ações:- Crie um módulo de serviço.
- Voe para a órbita lunar.
- Na órbita lunar, comece a se misturar em tanques de oxigênio.
“Se houver um problema com a fiação no módulo, o erro poderá ser reproduzido. Cuidado, pois a situação pode ser perigosa para um testador que está tentando reproduzir o erro ”, disse o desenvolvedor no Github, não sem senso de humor.Obviamente, ele se refere ao famoso acidente com o equipamento do módulo de serviço Apollo 13, após o qual o módulo teve que ser devolvido urgentemente à Terra usando manobras extraordinárias.Em geral, até o momento, apenas uma cópia física das impressões do programa do módulo lunar foi preservada . Um livro impresso é mantido no Museu do Instituto de Tecnologia de Massachusetts.O código do programa foi escrito por Don Islescom colegas. Isles, pessoalmente, é o autor de cerca de 2.000 linhas de código responsáveis pelo pouso do módulo lunar.Você pode tentar executar os comandos de controle Apollo no emulador (este é apenas um simulador de computador, sem a própria espaçonave). Emulador de
computador da nave espacial
Apollo Instruções do emulador Apollo Os computadoresApollo Command Module (CM) e Lunar Module (LM) pousaram automaticamente na superfície lunar. O computador controlava os motores e servomotores em tempo real.
Nave espacial Apollo
computador de controle a bordo Monitor de computador a bordoO gerenciamento foi realizado pela Apollo Guidance Computer (AGC). O computador de bordo era equipado com um sistema operacional em tempo real com suporte para multithreading, controlava todos os sistemas, recebendo sinais de radares, telescópios, giroscópios e acelerômetros.O livro “ Digital Apollo ” descreve bem como o programa priorizou e alocou o tempo da CPU.
Especificações técnicas do computador de controle a bordo da espaçonave ApolloOs padrões de tempo do AGC foram estabelecidos por um ressonador de quartzo com uma frequência de 2,048 MHz. A memória do computador consistia em 2048 palavras de RAM regravável e 36 K de ROM com amostragem linear em vários núcleos costurados. O ciclo de leitura e gravação de RAM e ROM levou 11,72 μs. O comprimento da palavra era de 16 bits: 15 bits de dados e 1 bit de paridade. O formato de texto de 16 bits do processador incluía 14 bits de dados, um bit de estouro e um bit de sinal.Consulte também:Guia de programação de computadores da Apollo Guidance