O melhor inimigo da humanidade

O ATARI VCS (2600) é um dos grandes exemplos da indústria de tecnologia que demonstra ser possível desenvolver software que entregue muito mais performance do que “teoricamente” o ecossistema em que ele irá “viver” suporta.

A economia da época impossibilitava um mercado de massa a baixo custo, entretanto em um mercado com elevado nível técnico esse tipo de limitação termina se transformando no desafio a se superar.

Para baratear o custo do produto os engenheiros da ATARI utilizaram o processador MOS 6507, que era uma versão mais barata (ainda) do clássico MOS 6502 (o mesmo do AppleII) e que dentre suas limitações tinha um BUS de endereçamento de apenas 13 bits, possibilitando até 8 KBytes de RAM, ao invés dos 16 bits do 6502, capaz de endereçar até 64 KBytes.

Atari 2600 (VCS) block diagram

Tudo isso feito para evitar a utilização de um componente caríssimo na época, que eram as memórias RAM, o que explica também a falta de um FrameBuffer (um dos componentes mínimos mais básicos para se desenvolver alguma saída visual) e também seus apenas 128 BYTES de RAM.

O principal componente que possibilitou essa redução da quantidade de memória no Atari 2600 foi o TIA, que é um chip customizado que podemos sem duvida nenhuma chamar de “coração” do Atari 2600, uma vez que além dos gráficos ele também é o responsável pela geração de sons e da leitura dos joysticks.

Com toda essa capacidade e multiplas funções, o TIA, é naturalmente um componente bastante complexo e dificil de se programar.

Apesar de toda essa limitação, o Atari 2600 foi capaz de entregar obras-primas inimagináveis em um primeiro momento e talvez até mesmo para os dias atuais para computadores cujos recursos são praticamente infinitos.

[]’s
PopolonY2k

Referência na internet

A link to the future

É possível fazer um modelo de plugins que seja capaz de expandir uma tecnologia para fazer muito mais do que ela foi projetada ?

O Super NES (SNES) é a prova de que quando uma arquitetura é projetada focando a expansibilidade e um alto grau de acoplamento futuro, a mesma ultrapassa os limites para a qual fora concebida.

Além da potência superior a qualquer concorrente da época, essa “potência” poderia ser multiplicada futuramente através de expansões via cartucho.

SNES block diagram

A diferença entre o BUS de cartucho do SNES e seu principal concorrente, o Mega Drive, é que os BUSes internos do SNES eram todos interconectados, possibilitando acesso direto entre os chips internos e externos e com isso vários jogos embutiram diversas tecnologias extras ao SNES através do sistema de cartuchos, como co-processadores matemáticos, DSPs, chips compressores/decompressores de dados e até outros processadores capazes de rodar como um “core” independente, inclusive podendo “interromper” um ao outro.

Bom, parece que o segredo sempre foi a “engenharia” das coisas mesmo. 😉


[]’s
PopolonY2k

Referência na internet

https://en.wikipedia.org/wiki/List_of_Super_NES_enhancement_chips

https://hackaday.com/2015/11/06/winning-the-console-wars-an-in-depth-architectural-study/

Genesis capitulo 1, versículo 1

A SEGA nos anos 80 (Nintendo idem) já lidava com o paralelismo e suas implicações de maneira inteligente, padronizada e principalmente estabelecendo os limites a seus players (fabricantes de jogos), através de uma arquitetura de software e hardware com limites muito bem delineados.

O Mega Drive (Genesis) é um excelente exemplo, até nos dias atuais, de como lidar com os componentes lentos (e muitas vezes sensíveis) em uma cadeia de processamento de um sistema compartilhado. O uso de “brute force”, ou poder de processamento exagerado, nem sempre vai resolver a sua lentidão e entregar o melhor resultado.

Mega Drive (Genesis) Block Diagram

No caso do Mega Drive por exemplo existem 2 CPUs extremamente potentes para cada fim, sendo o Motorola 68000 o processador principal e o Zilog Z80 o sequencer de música. Mesmo com todo esse poder de processamento, tanto o 68000 quanto o Z80, serão inúteis se eles entregarem muito mais processamento do que as pontas finais podem processar, nesse caso o Video Display Processor para o 68000 e o YM2612/SN76489 (som) para o Z80, causando distorções indesejadas.

A solução ? Hummm…vamos deixar esse papo para o próximo post ou nos comentários.

Apenas não se esqueça de que a estrutura que carrega a “internet” é exatamente um Mega Drive…só que gigante. 😉

[]’s
PopolonY2k

To infinity… and beyond.

Além dos tradicionais lançamentos de sondas espaciais, foguetes, satélites, homens no espaço bem como na lua, a agência espacial mais conhecida do planeta (quiçá em outros planetas), a NASA, tem feito um esforço para tornar conhecidas as suas iniciativas no desenvolvimento de software.

NASA
NASA logo

Apesar de muito conhecida por seus grandes feitos desde a época da corrida espacial nos anos 50, é óbvio que além de todo o conhecimento científico adquirido com esses feitos, principalmente o conhecimento e desenvolvimento matemático e algorítmico devem ter sido algo jamais experimentado na história da humanidade em um curto intervalo de tempo.

Como a NASA foi criada em uma época em que o “segredo” era algo que poderia mudar o rumo da história devido a um momento de “guerra” (psicológica) entre as duas maiores potências da época, é normal que tudo o que fora desenvolvido por essa agência fosse “secreto” até então.

Entretanto os tempos são outros e a quantidade de informação existente hoje não justifica mais nenhum “segredo”, uma vez que é muito mais interessante que a própria agência se beneficie das vantagens do compartilhamento via iniciativas de software open source.

Até mesmo outras agências, como a DARPA, vem utilizando há anos software open source em seus projetos internos.
Eu mesmo já obtive um feedback há uns 15 anos atrás, onde um engenheiro da DARPA me pareceu estar usando a minha biblioteca JMML (Java MSN Messenger Library), já naquela época.

Voltando à NASA, desde o ano passado percebi que a agência tem demonstrado estar bem compromissada em organizar um grande catálogo contendo todas as suas tecnologias em software, já criadas e utilizadas em seus projetos.

NASA Software Category

Na imagem acima podemos ver todas as categorias de software contemplados pela iniciativa.
Particularmente me interessei pela “Data servers processing and handling” e ao abrir essa categoria, percebi que tenho, só ali, um universo a ser explorado que irá me levar “ao infinito e além“.

Segue abaixo o link da iniciativa.

https://www.nasa.gov/directorates/spacetech/techtransfer/Software_Catalog_2019

https://software.nasa.gov/

[]’s
PopolonY2k

Super Laydock Mission Striker

Um dos melhores jogos de shoot ’em up já feitos para o MSX pela lendária T&E Soft e apesar da limitação do MSX1, os desenvolvedores da T&E Soft conseguiram, nesse jogo, trazer a mesma experiência dos arcades para o computador, na época.

Super Laydock Mission Striker

O jogo foi um sucesso e transformou uma empresa de 2 irmãos, Toshiro e Eiji Yokoyama (daí o nome T&E), cujo headquarter diz a lenda era seu quarto, em um dos maiores estúdios de games da década de 80, rivalizando com gigantes como a Konami, Sega e Taito.

Esse sucesso inicial colocou a T&E Soft na mira dos grandes produtores de hardware a ponto de bem antes do lançamento do MSX2 pela ASCII Corp Japan, a T&E Soft receber atualizações de BIOS diárias da nova máquina que estava por ser lançada, pois a ASCII tinha grande interesse que empresas como a T&E Soft lançassem jogos e softwares exclusivos para o seu novo MSX2.

Assim começou o desenvolvimento de Laydock, uma continuação de Super Laydock só que para MSX2. Entretanto a cada mudança de BIOS recebida, o jogo quebrava dificultando a conclusão de seu desenvolvimento no prazo.

Laydock

No final da história, Laydock não conseguiu superar Super Laydock, apesar do hardware e capacidade gráficas superiores do MSX2 frente ao MSX1.

PopolonY2k