Assembly 6507 para Atari 2600 – Parte 4

Acessado 499 vezes.
Como citar esse artigo: VERTULO, Rodrigo Cesar. Assembly 6507 para Atari 2600 – Parte 4. Disponível em: <http://labdeeletronica.com.br/atari-2600/assembly-6507-para-atari-2600-parte-4/>. Acessado em: 05/11/2024.


Agora as coisas começaram a ficar mais interessantes na jornada de aprendizado da linguagem Assembly para o microprocessador 6507, que equipa os consoles da linha Atari 2600. Neste momento, comecei a trabalhar com os elementos Player. Esses elementos, quando corretamente utilizados, podem funcionar como se fossem os sprites tradicionalmente usados no desenvolvimento de games com linguagens de programação mais modernas. No caso do Atari 2600, é possível ter dois Players na mesma scanline por vez: o Player0 e o Player1. No exercício que me propus a fazer, decidi trabalhar apenas com o Player0.

A ideia agora foi desenhar um bonequinho no centro da tela, em cima de um gramado verde, com o céu azul ao fundo. Basicamente, configurei a cor de fundo (COLUBK) como azul até aproximadamente o meio da tela, e, da metade para baixo, mudei o COLUBK para verde. Criei um contador para a quantidade de scanlines exibidas e, quando o contador atingiu o centro da tela, fiz a mudança de cor do background e iniciei o desenho do Player0. Esse desenho é feito linha a linha, colocando-se um valor binário com 8 bits no registrador GRP0 para cada uma delas. Os números 1 do valor binário indicam onde haverá desenho, e os 0 onde nada será desenhado. A cor do Player0 é definida com o registrador COLUP0 e a do Player1 com o COLUP1.

Novamente, o controle do tempo para o traçado mostrou-se muito importante para garantir que as coisas não ficassem tortas no meio do caminho.

Nessa etapa, as principais lições aprendidas foram a utilização das instruções de comparação CPX e CPY, que comparam os valores dos registradores X e Y com o parâmetro indicado para elas. Se os valores forem iguais, o bit de status Zero é setado, permitindo que, logo em seguida, se utilize a operação BEQ para fazer um salto condicional caso esse bit de status esteja setado. Usei essas instruções para identificar o momento exato em que o sprite deveria ser desenhado. Além disso, o conhecimento adquirido para a manipulação dos registradores envolvidos no desenho dos Players será muito útil mais adiante.

Resultado do exercício de manipulação do Player0.

Se você gostou deste artigo, não deixe de ler o anterior, que fala um pouco mais sobre minha saga no aprendizado da linguagem Assembly para o microprocessador 6507 do Atari 2600.

Para ler o próximo artigo dessa série, clique aqui!

Eletrônica Simples Para Projetos Complexos
Deixe de ser alguém que fica copiando e colando circuitos da Internet e passe a ser um projetista capaz de criar soluções inovadoras com esse poderoso componente.

Comentários