Um pouco de história.
Me lembro que na década de 80 ter um computador era algo incomum para a maioria das pessoas e quem possuia um, ou era da área ou entusiasta em tecnologia, ainda mais por se tratar de um item caro. Quem se aventurava pelo mundo dos computadores logo percebia que ter um computador e ter um meio de armazenamento com grande capacidade e principalmente veloz, era essencial.
Nesse cenário de nossa micro-informática embrionária um item caro se tornou tão importante quanto o próprio computador…o disk drive.
Naquela época tinhamos basicamente, aqui no Brasil, dois formatos de drives e disquetes dominantes, eram eles os de 5/14” e 3/12”, sendo que até o final da década de 80, dominavam os de 5/14” com 360Kb de capacidade de armazenamento e os de 3/12” com capacidade de 720Kb de armazenamento. Mais tarde, no inicio da década de 90, tivemos um upgrade de capacidade para cada um desses formatos, os de 5/14” chegando a 1.2Mb e os de 3/12” a 1.44Mb.
MSX e os drives
A linha MSX era um bem servida de periféricos e no Brasil tivemos alguns fabricantes de interfaces e drives de boa qualidade, sendo os maiores destaques a DDX, Microsol, DMX e finalmente a Gradiente que embutia interface e drive em seus computadores MSX (Expert DDPlus).
Tempos modernos
Muito tempo se passou e ao contrário da crença de que um hardware antigo certamente ficaria relegado ao empoeiramento e esquecimento, computadores como o MSX sobreviveram ao tempo, inclusive com upgrades e adaptações de periféricos modernos ao hardware antigo bem como criação de novos softwares.
É exatamente sob esse cenário que surge um novo item no cenário dos computadores antigos…. o Emulador de Disk Drive do Victor Trucco.
Emulador de drive (www.victortrucco.com)
Desde o ano passado tenho o Emulador de Disk Drive que adquiri do próprio autor via site do Mercado Livre, na época. Após adquirir também uma interface de drive DDX, finalmente consegui colocar o emulador em funcionamento, seguindo as instruções do próprio fabricante conforme descrito nessa página:
http://www.tk90x.com.br/Perifericos_EmuDrive_AntesDeUsar.html
Pré-requisitos
Os pré-requisitos aqui descritos são acessórios essenciais mas que não vem junto com o produto, devendo ser adquiridos separadamente.
O emulador de disk drive necessita de uma fonte com saída de no mínimo 7.5v (DC) e o próprio fabricante me informou que as fontes utilizadas podem ser de 7.5v, 9v e 12v (DC). Eu testei em cada uma dessas voltagens, com uma dessas fontes (“xing-ling”) encontradas na Santa Efigênia (SP) com seletor de multiplas voltagens de saída, e com todas o produto funcionou perfeitamente.
Segue abaixo as especificações da fonte que utilizei:
7 OUTPUT A.C – D.C ADAPTOR
INPUT – 110V/220V (AC)
OUTPUT – 7.5V, 9V, 12V (DC)
CURRENT: 1000mA MAX
O cabo, que liga o emulador de drive a interface de drive do computador, também é pré-requisito importante e essencial para o funcionamento do emulador de disk drive, por isso o autor mostra através de um link em sua página, como fazer um cabo (“desinvertido”) que funciona no emulador usando como base um cabo de disk drive de PC, demostrando o passo a passo para adaptar o cabo para funcionar com o emulador de disk drive.
Eu segui exatamente as instruções descritas pelo fabricante para desinverter um cabo de PC, conforme descrito no endereço http://www.tk90x.com.br/Perifericos_EmuDrive_CaboDrive.html e funcionou logo no primeiro teste.
Funcionamento
O funcionamento do emulador é simples, basicamente ele trabalha da mesma forma que um disk drive comum porém o meio de armazenamento agora é um SD ao invés de disquetes magnéticos. O conceito de disquete ainda existe para emulador de disk drive e na verdade um disquete é agora um arquivo em um formato especial que o emulador de disk drive entende, similar as imagens de discos (.dsk) utilizados pela maioria dos emuladores de MSX existentes, como o fMSX e o BlueMSX.
O SD Card utilizado deve estar formatado com FAT32, operação essa possível em qualquer PC/Mac ou outro computador que tenha uma interface de SD Card e que possa formatar um filesystem no padrão FAT32.
O emulador de disk drive foi testado com um SD Card comum e também com um SDHC (SD High Capacity – 4Gb até 32Gb), das marcas DaneElec e SanDisk respectivamente. É importante ressaltar a compatibilidade com o SDHC que é um padrão mais novo (2006) de alta capacidade e com isso vários dispositivos antigos não funcionam com esse típo de cartão de memória atual, entretanto o emulador de disk drive funciona respeitando completamente a especificação SDHC, conforme informação recebida do próprio fabricante do emulador.
O suporte a SDHC pelo emulador, para mim, é a melhor e maior vantagem desse produto uma vez que, no caso do MSX, se utilizarmos um SDHC de 4Gb poderemos armazenar praticamente tudo o que existe no universo MSX e até outros arquivos alheios ao emulador. Resumindo, capacidade de armazenamento não será problema daqui pra frente.
A interface do emulador de disk drive com o usuário é bem simples, não necessitando nenhuma configuração adicional, basta ligar, selecionar a imagem de disco a ser utilizada e montar o arquivo que será utilizado como “disquete” pelo computador.
Conforme imagem do emulador abaixo, podemos ver 3 botões do lado esquerdo do SD Card, esses botões são utilizados para a navegação na árvore de diretórios do SD Card (botões laterais) e seleção da imagem desejada (botão central). Para ejetar um disco (imagem), basta segurar por alguns segundos o botão central.
Software de conversão de imagem .dsk para o formato do emulador.
Quem é usuário de emuladores de MSX, como o BlueMSX e OpenMSX, já está bastante habituado ao uso de dois tipos de imagens diferentes, os famosos arquivos .rom (imagens de cartuchos) e os arquivos .dsk (imagens de discos).
O emulador de discos trabalha com um formato próprio de discos que devem ser convertidos através de um software feito pelo próprio fabricante e que está disponível no endereço http://www.tk90x.com.br/arquivos/ConversorEmu1.2.rar para download.
A idéia de manter um formato único no emulador é uma boa idéia uma vez que a lógica de conversão de novos formatos fica no software externo e não embarcado no emulador, o que o limitaria futuramente caso novos formatos sejam suportados pois seria necessário atualizar o software embarcado do emulador para cada novo formato. No caso de manter a lógica de conversão em um software externo, temos a possibilidade de atualizar o software e redistribuir o executável pela internet, o que é mais simples e fácil.
O software de conversão suporta vários formatos, conforme listados abaixo:
TRD e IMD = TK90X, TK95 e ZX Spectrum
ADF e ADZ = Amiga
ST e MSA = Atari ST
DSK, IMG, IMD = MSX, PC e outros
A imagem resultante, utilizada pelo emulador, feita pelo software de conversão tem sempre o tamanho de 1961Kb, nos testes que realizei com conversão de imagens .dsk de 720kb, ou seja, a imagem resultante tem um acréscimo de quase 2 discos e meio de 720Kb para cada imagem de 720Kb convertida.
Em um primeiro momento tive a impressão que o software embarcado que implementa o formato da imagem aceito pelo emulador poderia ser otimizado futuramente e talvez realmente isso possa ser feito um dia e, após a explicação do autor do projeto, cheguei a conclusão de que isso não será possível sem uma otimização também no hardware do emulador.
Abaixo vou reproduzir um trecho do email que troquei com o autor do emulador, Victor Trucco, que explica porque o formato da imagem gerada para o emulador é maior do que o da imagem original:
[Victor Trucco] – “O formato do emulador na prática é um arquivo que simula o “sinal elétrico” que a interface Shugart receberia. Fiz desse jeito por dois motivos.
1 – Existem centenas de padrões de disco usados por emuladores e para um simples PIC aceitar todos os padrões, seria completamente irreal com a tecnologia atual.
2 – Velocidade. Se o PIC tivesse que converter os bytes nos sinais elétricos, o emulador teria somente metade da velocidade de um drive. Com a pré conversão, a velocidade ficou na casa dos 97% do drive, precisando ainda de um leve overclock para chegar a velocidade real.
Sobre o tamanho, não considero relevante, visto que tudo que existe para MSX por exemplo não ocuparia nem um SD de 2GB, mesmo após as conversões.”
Ou seja, por limitações de performance do hardware, o formato foi desenvolvido para diminuir o trabalho de processamento do microcontrolador central do emulador, otimizando assim a performance do produto.
Sobre o software de conversão, o autor do emulador de drive me informou que o mesmo está descontinuado, ou seja, não haverá inclusão de novos formatos ao software conversor desenvolvido pelo autor do emulador, porém as informações sobre o formato suportado pelo emulador (VTR) foram repassadas a Jean François Del Nero, que também é conhecido por fabricar um emulador de discos popular a usuários do Atari ST e Amiga, conforme visto no endereço, http://hxc2001.free.fr/floppy_drive_emulator/index.html onde o mesmo já incluiu o suporte ao formato enviado pelo autor do emulador brasileiro, Victor Trucco.
Del Nero já disponibilizou binários e fontes (Open Source – GPL) de seu conversor nos seguintes endereços:
Binário Windows
http://hxc2001.free.fr/floppy_drive_emulator/HxCFloppyEmulator_soft.zip
Fontes
http://hxc2001.free.fr/floppy_drive_emulator/HxC_Floppy_Emulator_soft_src.zip
O interessante é que o conversor de Del Nero funciona em Windows, Mac, Linux e provavelmente pode ser compilado para diversos UNIXes devido a compatibilidade com Linux, ao contrário do software conversor disponibilizado por Victor Trucco que só funciona na plataforma Windows.
Abaixo segue uma lista de pontos de destaques e de melhorias para o projeto no futuro. Alguns desses pontos, ou até todos, não serão suportados futuramente pelo fabricante desse produto, porém deixo registrado para que outros fabricantes possam considerar essas possibilidades na construção de produtos similares.
Pontos fortes
- Suporte a SD Cards de alta capacidade (SDHC), possibilitando ter um total de até 32Gb suportados pelo padrão;
- Interface simples de operação;
- Bom suporte do autor ao produto, feito através de seu site e com um bom manual de operação disponível no endereço http://www.tk90x.com.br/Perifericos_EmuDrive_AntesDeUsar.html
Pontos de melhoria
- Otimização to tamanho imagem de disco aceita pelo emulador em projetos futuros, visando ampliar ou manter a performance de acesso aos dados do disco porém utilizando menos espaço em disco;
- Possibilidade de atualização do software embarcado do emulador em futuras versões do produto;
- Adição de uma seção de “Throubleshoot” no site, com os problemas comuns que os usuários possam ter na instalação e/ou operação e suas soluções;
Conversa com o fabricante (Victor Trucco)
Segue abaixo algumas perguntas, após algumas trocas de email, que fiz diretamente ao autor do emulador, Victor Trucco, que prontamente me respondeu e a quem deixo aqui meus agradecimentos.
[PopolonY2k] – Quero lhe fazer mais algumas perguntas sobre o emulador, visando melhorar meu review. O formato do arquivo convertido (aceito pelo emulador) tem um tamanho fixo de 1961Kb aproximadamente, porém o formato comum em um MSX é de 720Kb, entretanto quando esse disco de 720kb é convertido para o formato do emulador ele fica com esse tamanho de 1961Kb, quase 2 discos e meio a mais do que a imagem de um 720kb do MSX.
[Victor Trucco] – O formato do emulador na prática é um arquivo que simula o “sinal elétrico” que a interface Shugart receberia. Fiz desse jeito por dois motivos.
1 – Existem centenas de padrões de disco usados por emuladores e para um simples PIC aceitar todos os padrões, seria completamente irreal com a tecnologia atual.
2 – Velocidade. Se o PIC tivesse que converter os bytes nos sinais elétricos, o emulador teria somente metade da velocidade de um drive. Com a pré conversão, a velocidade ficou na casa dos 97% do drive, precisando ainda de um leve overclock para chegar a velocidade real.
Sobre o tamanho, não considero relevante, visto que tudo que existe para MSX por exemplo não ocuparia nem um SD de 2GB, mesmo após as conversões.
[PopolonY2k] – A pergunta é se existe alguma forma de otimizar o uso dessa imagem para se aproximar ao tamanho do formato real utilizado pelo computador que utiliza o emulador ?
[Victor Trucco] – Não acredito, pelos motivos citados acima.
[PopolonY2k] – Outra pergunta é se futuramente vc pretende ampliar as funcionalidades do emulador, como por exemplo uma otimização do formato suportado por ele (caso não exista – conforme pergunta anterior) e se existirá a possibilidade de baixar um “update” em seu site e aplicar no emulador ?
[Victor Trucco] – Não acredito que existirá um update. Apesar de uma antiga vontade de incluir emulação dos padrões do Commodore e da Apple, a falta de tempo e foco em outros projetos me impedem. Mesmo que exista um update, não seria possivel aplica-lo de maneira fácil, somente me mandando o emulador para reprograma-lo.
[PopolonY2k] – Imagino que a próxima pergunta seja algo tecnicamente mais complicado pois pelo que vi no hardware, você usa um PIC para controlar as operações do emulador e para atualizar o mesmo o usuário deveria ter algum programador de PIC, ou algo do tipo, para “queimar” o novo software no mesmo, entretando existe alguma interface prevista de atualização ?
[Victor Trucco] – Não existe. Mesmo assim eu não poderia fornecer código aberto ou compilado para ele, por estar preso por contrato com empresas que trabalho.
[PopolonY2k] – Existe algum setup no emulador ? Me lembro que entrei nas configurações dele teclando alguma sequencia nos botões, porém não me lembro o que fiz.
[Victor Trucco] – Sim, existe, segurando um botao lateral e ligando a fonte. Mas o setup é somente para montagem interna ou casemods e dizem respeito a montagem do display e botao de proteçao.
[PopolonY2k] – Você tem interesse em continuar o desenvolvimento e produção desse produto ?
[Victor Trucco] – Não vou continuar o desenvolvimento, pelo menos a curto prazo. Venderei o restante sem pressa, conforme me pedirem, mas não acredito que vai haver novo lote. A produção é cara porque não tenho como pedir pequenas quantidades de componentes. Até mesmo a placa de circuito impresso custa uma soma “não-agradavel” para produzir.
Grande abraço.
Referências na internet
http://www.tk90x.com.br/Perifericos_EmuDrive_AntesDeUsar.html
http://www.tk90x.com.br/Perifericos_EmuDrive_CaboDrive.html