14 abril 2025

Computador Altair 8800 na versão nanico

 

Seguindo os passos do CP500 e CP200 nanicos, o Altair 8800 também ganhará sua versão "nanico", ou seja, uma réplica em escala reduzida, com cerca de 60% do tamanho original, construída com um painel de acrílico, um gabinete feito em MDF e emulado em uma placa Arduino Due.


Altair 8800: O Computador que Iniciou a Revolução Pessoal


Imagem: The National Museum of American History 

Imagine o mundo da computação em 1975: enormes máquinas trancadas em laboratórios, acessíveis apenas a cientistas, universidades e grandes corporações. O conceito de um "computador pessoal" parecia distante — até que um projeto ousado mudou tudo. Seu nome? Altair 8800.

Desenvolvido pela empresa MITS (Micro Instrumentation and Telemetry Systems), o Altair 8800 foi lançado como um kit para hobbyistas na revista Popular Electronics, em janeiro de 1975. Custando cerca de 400 dólares, vinha em uma caixa azul metálica com fileiras de interruptores e luzes. Não tinha teclado, monitor ou mouse — mas tinha algo ainda mais poderoso: o potencial de colocar a computação nas mãos de qualquer pessoa curiosa o bastante para montá-lo.


Lançamento do Altair 8800


O Altair 8800 usava o processador Intel 8080 e logo atraiu a atenção de entusiastas e engenheiros. Entre eles, dois jovens chamados Bill Gates e Paul Allen. Eles viram no Altair uma oportunidade única e desenvolveram uma versão da linguagem BASIC para ele — o que acabou se tornando o primeiro produto da Microsoft.

Esse pequeno computador de aparência modesta desencadeou uma revolução. Ele inspirou toda uma geração de inventores, programadores e empreendedores. Foi o catalisador para o nascimento da indústria dos PCs, abrindo caminho para gigantes como Apple, IBM e a própria Microsoft.

Hoje, o Altair 8800 é mais do que uma peça de hardware obsoleta. Ele é símbolo de um momento crucial na história da tecnologia — quando a computação deixou os laboratórios e começou a entrar nas casas, nas garagens e nas mentes de quem mudaria o mundo.


Carregando o Basic, primeiro produto da Microsoft, no Altair 8800



A versão "nanico" do Altair 8800

No coração da emulação está a placa Arduino Due, responsável por recriar o comportamento do Altair original com notável fidelidade.


Arduino Due


Por que o Arduino Due?

O Arduino Due oferece recursos ideais para esse projeto:

  • 64 KB de RAM emulada

  • Velocidade de execução muito próxima do Altair 8800 real

  • Capacidade de armazenamento permanente ao utilizar a memória flash de 512 KB disponível

  • Pinos de I/O suficientes para conectar os LEDs e chaves do painel frontal

Além disso, o Due permite o uso de até 32 KB de armazenamento semipermanente, ideal para carregar e salvar programas e dados no próprio emulador.


Principais recursos do emulador

  • Reprodução fiel do comportamento do painel frontal do Altair

  • Desempenho equivalente ao Altair 8800 real 

  • RAM emulada:

    • 64 KB no Arduino Du

  • Pacote de software incluso:
    • Pong

    • Altair 4K BASIC (o primeiro produto da Microsoft)

    • Altair Extended BASIC

    • MITS Programming System II (exclusivo para o Due)

    • Altair Time Sharing BASIC (permite múltiplos usuários simultâneos)

  • Programas de exemplo em BASIC e Assembler prontos para uso

  • Emulação de placas periféricas:

    • 88-SIO, 88-2SIO, 88-ACR (cassete de áudio)

    • Cada porta serial pode ser mapeada para uma interface física do Arduino (por padrão, via USB a 115200 baud 8N1)

    • Dongle Bluetooth para uso com dispositivos móveis como terminais

  • Comunicação serial dupla no Due:

    • A interface USB (Serial) e a Serial1 (pinos 18/19) podem ser usadas ao mesmo tempo

  • Captura e reprodução de dados seriais, inclusive da fita ACR, em até 256 arquivos armazenados localmente (EEPROM ou flash)

  • Interface cassete compatível com comandos CSAVE e CLOAD do Extended BASIC — funciona automaticamente, sem configuração manual

  • Suporte à emulação de vídeo:

    • Cromemco Dazzler (requer hardware/software adicional)

    • Processor Technology VDM-1 (também requer suporte extra)

  • Emulação de armazenamento:

    • Até 16 unidades de disco 88-DCDD (4 por padrão) com uso de cartão SD via SPI

    • Controlador de disco rígido 88-HDSK, com até 4 HDs e 4 pratos por unidade

    • Placa 88-RTC-VI com relógio em tempo real e suporte a interrupções vetoriais — essencial para rodar o Time Sharing BASIC

  • Salvamento e carregamento de páginas de memória (256 bytes) diretamente do painel frontal

  • Editor de configuração integrado: permite alterar várias definições sem mexer no código

  • Armazenamento em cartão SD:

    • SD armazena os dados permanentemente



O Painel do Altair 8800 nanico

A partir deste ponto, apresentarei o andamento do projeto. Novas informações serão adicionadas à medida que estiverem disponíveis.

O painel possui dimensões de 296 mm de largura por 107 mm de altura. Ele foi confeccionado a partir de uma placa de acrílico branco com 2 mm de espessura, previamente pintada na cor cinza chumbo. Os cortes e gravações foram feitos a laser, garantindo precisão e acabamento de qualidade.

As chaves e LEDs são fixados por encaixe preciso nos orifícios do painel e travados com uma pequena gota de cola, assegurando firmeza e durabilidade.


Cortes e gravação do painel



Arte do painel


Painel pronto para receber os componentes

Painel com todos os componentes fixados

Chaves e LEDS





A emulação com o ARDUINO Due


O projeto é uma adaptação do original "Arduino Altair 8800 Simulator" de David Hansel, publicado em 2017 no site Hackster.io.

Os detalhes da construção, assim como os arquivos fonte para o Arduino e manuais do emulador podem ser baixados no site:


É necessário que o IDE do arduino esteja atualizado para que inclua as bibliotecas do DUE, eu utilizo a versão 2.3.6 e funcionou perfeitamente. 

Inicialmente eu compilei o programa com o parâmetro "#define STANDALONE 1" no arquivo  "config.h" isso permite que o emulador funcione no modo de depuração com somente a interface serial, sem a necessidade das chaves e LEDs fisicos conectrados. 

O resultado, ligado a um terminal serial, é este.  Esta opção permite o controle através de comandos no terminal:






Rodando o primeiro programa em BASIC

Para carregar o BASIC no emulador o meio mais fácil é setar as chaves A0 a A7 para 0000101 e baixar a chave AUX1. 


Testando o primeiro  BASIC da Microsoft




Continua... 





17 março 2025

Uma engenheira de software, uma criança de 4 anos e um desastre prevenido nas naves Apollo.


A filha de Margaret Hamilton, Lauren, teve um papel inesperado na prevenção de um erro no software da Apollo. Margaret Hamilton foi a diretora da equipe de engenharia de software do Programa Espacial Apollo e teve um papel fundamental no desenvolvimento do software de voo da missão.


Ilustração de Dixie Leota



Durante o desenvolvimento do sistema de orientação e navegação da Apollo, Margaret frequentemente levava sua filha, Lauren, então com apenas 4 anos, para o trabalho no MIT Instrumentation Laboratory (atualmente Draper Laboratory). Certa vez, enquanto brincava no laboratório, Lauren acidentalmente pressionou uma sequência de teclas no simulador da Apollo, colocando o sistema no modo de pré-lançamento durante um voo simulado.


Margaret Hamilton e sua  filha Lauren


Margareth no simulador do módulo de comando das naves Apollo


Esse incidente revelou um problema sério: se um astronauta cometesse o mesmo erro durante uma missão real, o sistema poderia falhar ou comprometer a segurança da nave. Margaret imediatamente reportou o problema e argumentou que era necessário programar uma solução para evitar essa situação. Inicialmente, a NASA resistiu à ideia de gastar tempo e recursos corrigindo algo que, teoricamente, os astronautas deveriam evitar apenas seguindo as instruções corretamente.

Porém, sua preocupação se mostrou válida quando, durante a missão Apollo 8, o astronauta Jim Lovell acidentalmente digitou o mesmo comando que Lauren havia, brincando, descoberto, colocando o computador da espaçonave no modo errado. Felizmente, graças às modificações que Margaret insistiu em implementar, o software conseguiu se recuperar automaticamente e evitar um desastre.

Esse episódio reforçou a importância do trabalho de Hamilton e sua abordagem meticulosa ao desenvolvimento de software, garantindo que o sistema pudesse lidar com erros humanos e imprevistos, um conceito que se tornaria essencial para a engenharia de software moderna.


A falha durante a alunissagem da Apollo 11


Durante a aproximação do Módulo Lunar Eagle à superfície da Lua, o computador de navegação (AGC  Apollo Guidance Computer) começou a exibir alarmes de erro, especificamente os códigos 1202 e 1201. Esses erros indicavam uma sobrecarga de processamento, ou seja, o computador estava recebendo mais tarefas do que conseguia processar.

Causa do problema:

O problema foi causado por um radar de acoplagem que, por engano, permaneceu ligado durante a descida. Isso gerou dados extras e sobrecarregou o computador.

Como o software evitou um desastre:

Graças ao design inteligente do software desenvolvido pela equipe de Margaret Hamilton, o sistema foi programado para priorizar tarefas essenciais automaticamente. Dessa forma, o computador descartou processos menos importantes e continuou executando apenas as funções críticas para a alunissagem, permitindo que Neil Armstrong e Buzz Aldrin completassem, manualmente, o pouso com segurança.

Se não fosse por esse design, o computador poderia ter travado ou exigido um reinício, forçando o cancelamento do pouso. Esse episódio comprovou a robustez do software da Apollo e consolidou a importância do trabalho de Margaret Hamilton na história da computação e da exploração espacial.


 O AGC e sua interface de usuário DSKY


O reconhecimento tardio


Em 22 de novembro de 2016, Margaret Hamilton recebeu a Medalha Presidencial da Liberdade, a mais alta condecoração civil dos Estados Unidos, entregue pelo então presidente Barack Obama.

Ela foi reconhecida por seu trabalho pioneiro na engenharia de software e por sua contribuição fundamental para o sucesso das missões Apollo. Durante a cerimônia, Obama destacou sua importância ao afirmar que Hamilton foi responsável por garantir que o software do Apollo Guidance Computer (AGC) permitisse que os astronautas chegassem à Lua e voltassem em segurança.

Uma das imagens mais icônicas desse reconhecimento é Margaret Hamilton sorrindo ao lado de Barack Obama. Esse prêmio simbolizou o reconhecimento tardio, mas merecido, de seu impacto na história da computação e da exploração espacial. 


Margareth recebendo a medalha de Obama



A NASA disponibilizou o código fonte do AGC usado na Apollo 11


O código fonte foi digitalizado e publicado no GitHub por um ex-estagiário da NASA chamado Chris Garry, em 2016.

Acesse aqui: 

https://github.com/chrislgarry/Apollo-11


O código foi originalmente escrito em Assembly para o processador do AGC, que tinha apenas 2 KB de RAM e 36 KB de memória fixa. Ele contém comentários interessantes, incluindo algumas piadas da equipe de programadores do MIT.


Detalhes da linguagem:

  • O Assembly usado era um "dialeto" personalizado chamado AGC4 Assembly, desenvolvido para o processador do AGC.
  • O AGC era uma máquina de palavra de 15 bits, com instruções altamente otimizadas devido às limitações de hardware.
  • O código era escrito em listagens de código fonte impressas em papel perfurado e depois convertido para o formato que o computador entendia.
Margareth e a listagem do programa do AGC


Curiosidades sobre o código:

  • Ele contém comentários engraçados dos programadores do MIT Instrumentation Laboratory.
  • Um dos arquivos faz referência a "BURN_BABY_BURN", uma piada interna sobre a sequência de ignição do motor.



Parte da rotina "BURN_BABY_BURN"


Um vídeo interessante sobre esses episódios pode ser visto aqui:  




A restauração do AGC

 O canal do YouTube CuriousMarc documentou a restauração do Apollo Guidance Computer (AGC). A série de vídeos detalha o processo de recuperação desse equipamento histórico, destacando sua importância na exploração espacial.

A restauração do AGC é significativa não apenas por preservar um artefato histórico, mas também por proporcionar insights sobre a tecnologia da época e inspirar futuras gerações de engenheiros e entusiastas da exploração espacial.

Para uma visão mais detalhada desse projeto de restauração, você pode assistir aos vídeos aqui:


https://www.youtube.com/playlist?list=PL-_93BVApb59FWrLZfdlisi_x7-Ut_-w7



exposição Space Adventure realizada em São Paulo


A exposição "Space Adventure" foi uma mostra inédita realizada no Shopping Eldorado, em São Paulo, de 26 de agosto a 26 de outubro de 2021. Ela apresentou mais de 300 itens originais da NASA, incluindo artefatos dos projetos Mercury, Gemini e Apollo, que levaram o homem à Lua. 

Entre os destaques, estavam réplicas em tamanho real de naves como Juno e Titan, o foguete Saturno 5, o veículo lunar "Roving" e a cápsula Apollo 11. Além disso, os visitantes puderam ver trajes espaciais completos, ferramentas utilizadas pelos astronautas, computadores da década de 1960 e a mesa de controle original de Houston. 

A mostra foi realizada em uma tenda climatizada de 2.600 m² no estacionamento do Shopping Eldorado, proporcionando uma experiência imersiva aos visitantes. A inauguração contou com a presença de Charles Duke, um dos três homens ainda vivos que pisaram na Lua, que compartilhou suas experiências durante o evento. 

A "Space Adventure" ofereceu aos visitantes a oportunidade única de vivenciar a história das missões espaciais da NASA e a conquista da Lua, por meio de uma vasta coleção de artefatos e réplicas, muitas exibidas pela primeira vez fora dos Estados Unidos. 

Eu visitei a exposição por duas vezes. Abaixo algumas fotos do evento.


Interior de um módulo de comando das naves Apollo em exposição em São Paulo

Módulo de memória das naves Apollo em exposição em São Paulo

AGC das naves Apollo em exposição em São Paulo