Origens
Fábio Belavenuto e Victor Trucco possuem vários projetos relacionados à computação clássica, mas em particular, ambos são entusiastas da plataforma britânica de microcomputadores ZX Spectrum.
O grande interesse deles por esta plataforma rendeu um primeiro fruto que foi, através de muito estudo, recriar a ULA do Spectrum em FPGA
Este excelente trabalho da dupla foi muito bem recebido pelas comunidades de entusiastas do ZX.
Após o sucesso da ULA, Fabio e Victor partiram para um próximo e audacioso projeto: implementar toda a arquitetura de um ZX Spectrum em FPGA.
A TBBlue é, portanto, resultado deste trabalho conjunto.
Máquinas implementadas
Mais do que implementar uma máquina específica, a TBBlue implementa vários computadores clássicos da linha ZX Spectrum:
- TK90X
- TK95
- ZX Spectrum
- ZX Spectrum 128
- ZX Spectrum 128 +3e
- ZX80
- ZX81
- Jupiter Ace
Sensacional, não? :-)
Características
Além disto, a TBBlue inclui diversas características relevantes ao entusiasta da computação clássica e da linha ZX Spectrum, a saber:
- Porta de teclado PS/2
- Leitor de cartões SD: basta formatar o cartão em FAT32 e nele colocar os arquivos para o boot da TBBlue e demais programas do seu interesse (jogos ?) :-)
- Saída de vídeo VGA de 15KHz e 31KHz: permite a TBBlue ser utilizada numa grande variedade de monitores VGA;
- Interface de som Explorer: uma expansão de áudio para ZX Spectrum que traz os PSG AY3-8910 ou YM2149;
- Multiface: originalmente um hardware de expansão para o Spectrum, foi incorporada à TBBlue de forma bem prática como uma ferramenta. A Multiface paralisa a execução do Spectrum e permite navegar pela memória da máquina, buscar e alterar o conteúdo de endereços específicos para, dentre outras coisas acrescentar infinitas vidas e outros macetes nos jogos;
- ULA Plus: outra expansão que permite o ZX Spectrum ter até 256 cores!
- Saída de com estéreo: padrão "fone de ouvido" (plug p2)
- Entrada de áudio: para simular leitor de cassete útil para as primeiras máquinas ZX: ZX80, ZX81 e Jupiter Ace.
- Porta para joystick: porta para Joystick padrão Kempston.
Espere! E não é só isto!
Pois é, além de tudo o que foi mencionado, tem mais!
Fábio Belavenuto e Victor Trucco criaram a TBBlue em conjunto, porém cada um optou por formatos distintos do produto final, a saber:
- Fábio Belavenuto optou por uma versão da TBBlue para instalação em gabinete genérico, conforme vídeo de Émerson Renato.
- Victor Trucco deu à TBBlue formato, dimensões, posicionamento de furos na placa e conectores exatos para substituir a PCB original de um TK90X/95. Isto mesmo, se o colecionador quiser ele pode retirar a parte interna de um TK90X/95 real e substituir pela TBBlue de Trucco.
Ambas são idênticas nas funcionalidades, apenas há esta diferença no formato final para uso com gabinete genérico ou gabinete de TK.
Instalação e montagem
Adquiri esta TBBlue na versão de Victor Trucco como um kit para montar, com os seguintes componentes:
Placa de acrílico com logotipo e parafusos de suporte |
Placa com FPGA: ep2c5t144 |
Vou lhes trazer apenas informações únicas referentes à minha experiência no processo de instalação que consiste, basicamente, dos seguintes passos:
- Testar a Placa FPGA
- Programar a FPGA
- Remover 5 componentes da placa FPGA
- Conectar a placa FPGA na TBBlue
- Preparar um cartão SD para a TBBlue
- Pronto, agora é só diversão!
Testar a Placa FPGA
Note os LEDs piscando
Programando a FPGA - no Linux
A programação da FPGA é possível com um dispositivo chamado USB Blaster e um software próprio da Altera, "Quartus II Web Edition".
No meu caso, por questões de configuração de minha máquina, usei a versão Linux do Quartus II, e mais, instalado numa máquina virtual.
Três coisas neste processo me chamaram a atenção:
- USB Blaster sendo reconhecida sem problemas pelo VMWare e pelo Linux:
- O tamanho do software: tanto para Windows quanto para Linux o Quartus II possui mais de 4 GiB;
- A necessidade de instalar e usar o Quartus II como root;
Remover 5 Componentes
Conforme orientado por Trucco, é necessário remover 5 componentes: 4 resistores e um capacitor, todos SMD.
Não canso de me surpreender com o tamanho diminuto destas pulguinhas.
Pulgas SMD |
Conectar a placa FPGA na TBBlue
Solução prática e elegante |
Diversão!
O derradeiro teste! Ligar a máquina! Será que deu certo? Será que falhou?
Liguei a TBBlue pela primeira vez num monitor VGA LG M1921A.
A TBBlue faz um boot bem rápido, mostra algumas mensagens e um breve resumo de teclas de função na tela e vai direto para o BASIC do TK90X.
Tela de boot: passa muito rápido! |
TK90X! :-) |
Calma. Lendo atentamente as instruções no site de Trucco entendo que, dentre outras teclas temos:
F1 - Hard Reset
F4 - Soft Reset
F9- MultiFace
F10- DivMMC
Durante o boot da TBBlue ou após um Hard Reset (F1) deve-se manter pressionada a tecla ESPAÇO no teclado.
Aí temos a seleção de máquinas!
Seleção de máquinas e opções! |
O que mais eu testei? Veja abaixo!
DivMMC e ESXDOS
DivMMC: Trata-se de uma interface sucessora da DivIDE. A DivIDE para Spectrum permite conectar o Speccy à um dispositivo IDE para acesso a dados.
Porém era necessário aperfeiçoar o suporte à cartões CF e cartões SD. Eis que a DivMMC é lançada como sucessora e opção viável à DivIDE.
A DivMMC permite acessar dados gravados em cartão SD em FAT32, o que torna a gravação e uso destes cartões no Spectrum muito mais fácil.
A TBBlue possui embutida uma implementação de DivMMC. Isto é maravilhoso pois esta máquina já conta com suporte à FAT32 e cartões SD!
O ESXDOS é um firmware específico para estas interfaces DivIDE e DivMMC do Spectrum. Com o ESXDOS a navegação em arquivos e diretórios é muito simples e trivial através de uma interface de texto para seleção de diretórios ou arquivos para executar.
O uso da DivMMC é transparente, basta formatar um cartão SD em FAT32 e colocar os arquivos conforme instruções no site de Victor Trucco.
Para acionar o ESXDOS para navegação e seleção de arquivos basta usar a tecla F10 do teclado.
Muito prático e de excelente resultado.
Navegação no ESXDOS |
MultiFace
Fábio e Victor não pouparam esforços para tornar a TBBlue um trabalho perfeito.
Parece exagerado, mas não é. Além de tudo o que já foi apresentado, a TBBlue oferece suporte à Multiface. Esta é uma interface que permite paralizar a execução da máquina e percorrer / alterar o conteúdo da memória.
Para ativar a MultiFace, basta pressionar F9 no teclado.
O uso é bem simples, aparece um menu com as letras de atalho, você acessa a função desejada através da tecla correspondente.
Um uso bem interessante é acrescentar pokes de dicas nos jogos, como fiz abaixo no Knight Lore.
To Infinity and Beyond! |
ULAPlus
Por fim testei também a ULAPlus que está incorporada à TBBlue e permite redefinir a paleta de cores do Speccy acrescentando mais cores, além de alguns modos especiais com mais cores simultâneas na tela.
O uso é bem simples, primeiro você carrega um arquivo TAP com a paleta para o jogo em questão e depois o jogo.
Outra forma é carregar jogos já criados para uso da ULAPlus, como Subacuatic.
Abaixo alguns exemplos:
Links e considerações finais
Enfim, este post é superficial e breve diante das características exploráveis da TBBlue.
A criação de Trucco e Belavenuto possuem ainda recursos para geração de som e música (PSG), caneta óptica, suporte ao joystick e às expansões de hardware do Spectrum.
E, ainda se não bastasse tantas características positivas, ainda há o fator de reconfiguração da FPGA.
Isto quer dizer que, respeitando os limites da Altera Cyclone II, a TBBlue é facilmente atualizável. As máquinas e recursos de hardware implementados podem ser alterados, atualizados e aprimorados gravando um arquivo de atualização no próprio cartão SD, não é necessário remover a PCB FPGA. (obrigado Fabio e Victor pela correção),
Imperdível para os fãs do Speccy, sem sombra de dúvida, a TBBlue é um trabalho de dedicação que honra a icônica criação de Sir Clive Sinclair.
Deixo aqui meus parabéns à Fábio Belavenuto e Victor Trucco pelo trabalho feito com tanto esmero.
Abaixo coloco links para álbuns de fotos, vídeos e sites relevantes.
Agradeço-lhe pela leitura e aguardo seus comentários, críticas e sugestões.
Abraços e até o próximo post!
- Página rica em detalhes da implementação da TBBlue por Belavenuto:
- Página de Trucco sobre a TBBlue:
- Émerson apresenta o protótipo TBBlue de Fábio Belavenuto:
- Algumas fotos tiradas por mim do processo de montagem e testes;
- Fotos do processo de programação da FPGA no Linux;
- Fotos com o trabalho impecável de Manoel Carvalho adaptando a TBBlue num gabinete de TK95 (fotos disponíveis com permissão do autor)