Idiomas disponíveis:

Programando como se fosse 1982. Parte VII – Projeto: Mini Piano

Nos posts anteriores desta série desmontamos o C64 peça por peça. Registradores, memória, instruções, controle de fluxo e os chips de hardware. Agora vamos montar tudo de volta numa coisa que funciona.

O projeto é um mini piano de cinco notas. As teclas Z X C V B tocam Dó Ré Mi Fá Sol. Cada nota muda a cor da borda da tela, toca um som no SID e exibe a letra da nota no centro da tela. Simples o suficiente para caber num único post, complexo o suficiente para usar os três chips juntos.

Read More

Programando como se fosse 1982. Parte VI – Hardware na Memória

Nos posts anteriores desta série construímos o modelo completo. Registradores, memória, instruções, decisões e loops. Você já sabe como um programa se move pela memória e como o processador executa cada byte que encontra pela frente. O que falta é a parte mais surpreendente da história do C64, e provavelmente a ideia mais elegante de toda a série.

Escrever na memória era acionar hardware

No post sobre o mapa de memória vimos que certas regiões não eram RAM comum. A faixa de $D000 a $DFFF pertencia aos chips de hardware. O VIC-II, o SID e o CIA. Mas o que isso significa na prática só fica claro quando você vê o código.

Read More

Programando como se fosse 1982. Parte V – Controle de Fluxo

No post anterior vimos como o processador movimenta dados e faz aritmética. Mas um programa que só executa instruções em linha reta não faz muita coisa útil. Em algum momento ele precisa tomar uma decisão. Ir por um caminho ou outro, dependendo de um resultado. Ele precisa de loops, condicionais, da capacidade de se comportar diferente dependendo do estado das coisas.

No assembly do 6510, tudo isso é construído sobre um único mecanismo. Flags.

Read More

Programando como se fosse 1982. Parte IV – Instruções

No post anterior construímos o mapa. Sabemos onde os dados vivem, como a memória é organizada em endereços e por que certas regiões valiam mais do que outras. Agora falta a peça central. O que o processador realmente faz enquanto executa um programa.

O programa também são bytes

No post sobre o ciclo de execução vimos que o processador lê um byte, interpreta como instrução, executa e avança para o próximo. Mas nunca falamos sobre como um byte vira uma instrução.

Read More

Programando como se fosse 1982. Parte III – Memória e Endereços

No post anterior vimos que o processador tem três registradores de uso geral e um ciclo de execução simples e ininterrupto. O problema é que três registradores não são suficientes para nenhum programa real. Você precisa de algum lugar para guardar dados enquanto não os está usando, guardar o programa em si, guardar variáveis e resultados intermediários. Esse lugar é a RAM.

A RAM é um array gigante

Se você já usou um array em qualquer linguagem, já entende a RAM. A memória do C64 era exatamente isso:

Read More

Programando como se fosse 1982. Parte II – O Processador

Na Parte I cobrimos o cenário: a época, a máquina, o contexto. Agora é hora de descer um nível e entender como o processador realmente funciona. Onde os dados vivem, como as instruções são lidas e o que acontece a cada fração de segundo enquanto um programa roda.

Registradores: o espaço de trabalho do processador

Quando você escreve algo como x = 5 + 3 em qualquer linguagem moderna, o processador precisa pegar o 5 de algum lugar, pegar o 3 de algum lugar, somá-los e guardar o resultado. Esse “algum lugar” são os registradores.

Read More

Programando como se fosse 1982. Parte I - Os anos 80, o Commodore 64 e por que isso importa

Quando entrei no mercado de tecnologia, na segunda metade dos anos 2010, as linguagens de alto nível já eram o padrão. Quando estudei Engenharia da Computação, até sistemas embarcados eram escritos em C++, e isso era considerado o nível mais baixo. No mundo do software e dos jogos, a abstração ia ainda mais longe. Java dominava a indústria, e a Unity estava no meio do processo de democratizar o desenvolvimento de jogos a ponto de qualquer pessoa com um fim de semana livre conseguir publicar algo jogável.

Read More

BASIC e a Arquitetura que Perdemos

Você provavelmente já passou por um prédio brutalista sem saber o nome do estilo. São aquelas construções de concreto aparente, sem reboco, onde se vêem as marcas das fôrmas usadas na fundição. Estrutura exposta. Tubulações à mostra. Por muito tempo, os computadores eram assim.

Nos anos 80, quando você ligava um microcomputador (MSX, Apple II, ou meu favorito pessoal, o TK90x/ZX Spectrum), não havia uma área de trabalho. Não havia ícones de pastas simulando um escritório. Não havia metáfora nenhuma. O que aparecia era um cursor piscando, esperando. A máquina olhava para você e perguntava: “Qual é o plano de hoje, chefe?”

Read More