Friday, March 18, 2016

TB-Blue



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:
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;
  • divMMC e ESXDOS: permite navegar nos arquivos gravados no cartão SD;
  • 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:
PCB TBBlue
Placa de acrílico com logotipo e parafusos de suporte
A TBBlue também demanda uma "placa-filha" com o processador FPGA. Esta placa deve ser adquirida à parte.
Placa com FPGA: ep2c5t144
Não é minha intenção percorrer neste blog os detalhes da montagem e configuração da TBBlue. Estaria sendo redundante pois na página de Victor Trucco já temos um guia bem detalhado e prático para seguir o processo de instalação.

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! :-)
"Opa! Mas cadê as outras máquinas? Como as seleciono?"

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!
Por fim, pude testar brevemente alguns jogos, cujos screenshots coloco no álbum de fotos.

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), basta remover a PCB FPGA e carregar a nova implementaçã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!



  • Émerson apresenta o protótipo TBBlue de Fábio Belavenuto:



11 comments:

  1. E1000, gostei muito do seu review! Um detalhe, o TBBlue tem auto-atualização, para novas versões, colocando um arquivo específico no cartão SD e atualizando pelo próprio micro. Não precisa desmontar e retirar a placa FPGA.

    ReplyDelete
    Replies
    1. Obrigado por sua atenção Fábio! Atualizei o post com esta correção!

      Abraços!

      Delete
  2. Emiliano, obrigado pelo artigo e elogios. Corrigindo apenas que uma vez gravado o FPGA, as atualizações posteriores são pelo proprio cartao SD. No momento do boot ele reconhece um arquivo e entra em modo de update, mostrando a versão atual do firmware e a confirmação para o update.

    ReplyDelete
    Replies
    1. Obrigado Victor! Atualizei o post com esta correção!

      Abraços!

      Delete
  3. Boa! o TBBlue precisa ser bem explorado e divulgado.
    Parabéns E1000.
    Sugestão: Faz umas matérias do funcionamento do TBBlue com Jupiter Ace, ZX80 e ZX81.

    ReplyDelete
    Replies
    1. Oi Luiz, muito obrigado por sua atenção!

      Obrigado pela dica. ZX80 e derivados merecem ser explorados, em particular por esta obra-prima: http://muriloq.com/ebdt/

      Delete
    2. EBdT é sensacional! Fiz review: http://retrogamesrevival.blogspot.com.br/2013/06/em-busca-dos-tesouros.html
      Masada Class também é fantástico:http://retrogamesrevival.blogspot.com.br/2013/06/masada-class.html

      Delete
    3. Luiz, obrigado pela dica! Não conhecia Masada Class!

      Delete
  4. Meio atrasado ... rs rs rs ... mas parabéns. Muito bom o artigo

    ReplyDelete