quarta-feira, dezembro 27, 2017

6502 na Protoboard - Parte 2

Após uma luta inglória contra maus contatos misteriosos, o projeto está completo!

Linguagem do ano: BASIC

Recordando, montei em protoboard um computador minimalista (do ponto de quantidade de chips) baseado no 6502. O projeto usado é de Grant Searle, as modificações foram apenas acrescentar um circuito de reset e usar uma ROM 27E512 no lugar da 27128, como descrito na primeira parte.

Nesta segunda parte acrescentei a Ram (uma 62256 de 32K bytes) e a UART (6850). Na ROM eu gravei o BASIC preparado pelo Grant. Esta versão de BASIC utiliza a UART para comunicação com um terminal. Por enquanto estou usando um PC como terminal, mas pretendo testar algumas outras alternativas.

A UART recebe como clock a saída do oscilador principal (1.8432MHz), o que resulta em um baud rate de 115200 bps. Um adaptador TTL USB foi usado para ligar a UART ao PC, não são usados sinais de controle de fluxo.

A decodificação de endereços é bem simples:
  • A 6850 possui três sinais de seleção (um deles negado), que são ligados aos sinais mais significativos de endereço (A15, A14 e A13). O resultado é que a UART fica nos endereços A000 e A001 (para ser mais preciso, os endereços são 101xxxxxS onde x não importa e S seleciona entre o registrador de dados (1) e os registradores de comando e status (0),
  • A seleção da RAM é feita por A15, o que a coloca de 0000 a 7FFF (32K)
  • A seleção da ROM é feita por um NAND de A15 e A14, ficando em C000 a FFFF (16K)

O vídeo abaixo mostra o computador funcionando.


Não estava nos planos mas acho que vou acabar montando em uma placa soldada (como fiz com o Cosmac ELF).

No ano que vem pretendo montar um outro computador baseado no 6502, uma réplica do KIM-1. Já tenho as peças, mas é um projeto mais trabalhoso.

Nenhum comentário: