«

»

jan 10 2012

Avaliação SDisk II: Emulador de drive para Apple II

Finalmente chegou minha SDisk II. Para que não conhece, ela é uma placa que usa cartões SD para emular um drive Disk II, para micros da plataforma Apple II.

Esta versão foi montada e produzida por Victor Trucco, sendo baseada no projeto original de Koichi Nishida.

Veja agora todos os detalhes sobre o projeto e minha avaliação geral.

 

Primeira impressão

A placa está muito bem montada, foi feita em face simples com impressão industrial e profissional. Ela possui quatro furos laterais que permitem sua fixação, sendo mais do que adequado para os entusiastas que desejarem criar uma caixa para sua SDisk II.

O processo de soldagem foi realizado manualmente, porém, é perceptível a excelente habilidade por parte do montador, neste caso, o Victor Trucco.

Seu tamanho compacto é assustador, veja abaixo a comparação com um drive Disk II:

Ao ver em cima do drive, a diferença é ainda mais gritante:

Graças a todas estas vantagens, aqueles que gostam de soltar a criatividade efetuando modificações em seus micros tem um prato cheio de opções, por exemplo, daria para colocar o SDisk II dentro de um drive Disk II sem afetar seu funcionamento, de modo a criar um conjunto único de “drive de disquetes e emulador”. Outra sugestão seria utilizar as aberturas de ventilação do micro para encaixar o cartão SD sem precisar furar nada… Creio que você captou o sentido da coisa, a imaginação é o limite.

 

Recomendações

No site do próprio Koichi Nishida, ele cita alguns cartões SD que foram testados mas deixa claro que poderão ocorrer algumas incompatibilidades, que foi exatamente o meu caso na primeira experiência. Utilizei um cartão Sandisk SD de 2Gb classe 2, idêntico ao da foto abaixo:

Formatei ele em FAT 16 conforme recomenda o manual online enviado pelo Victor, inseri a imagem e na primeira tentativa tudo parecia ocorrer bem, com as luzes apontando o funcionamento como deveria, porém, a leitura travava, muitos jogos não rodaram e fiquei um pouco preocupado.

Como precisei criar um cabo de comunicação partindo de um cabo flat de drive de disquetes de PC, primeiramente pensei que isso poderia ser a causa do problema, então testei usando o cabo diretamente de um drive original Disk II, mas o problema na verdade piorou e o SDisk II não era reconhecido com este cabo.

Revirando minhas coisas acabei encontrando um antigo cartão micro SD de 512Mb da Nokia, que era usado em um celular. Coloquei o cartão em um adaptador SD da Kingston e tentei executar os mesmos jogos.

Os testes foram positivos, mas curiosamente, mesmo com vários jogos rodando neste outro cartão, alguns jogos ainda apresentavam problemas estranhos, como travamentos, tela preta etc.

Depois pensando um pouco melhor percebi que havia me esquecido de formatar o cartão, e mesmo já estando em FAT 16, sabemos que a fragmentação do sistema de arquivos pode causar problemas em certas situações. Usei a formatação lenta (recomendada!) com 32 Kbytes de alocação, e agora sim, todos os problemas foram sanados.

Devido a esta experiência, recomendo aos usuários que escolham cartões modestos e nem tentem utilizar cartões padrão SDHC ou superiores, além de não utilizar formatação rápida antes de usar. No site do Nishida ele recomenda cartões SD entre 32Mb a 2Gb, ao qual afirma ter testado os seguintes modelos: KingMax 2G, PQ1 2G, Kingston 2G, Transcend 2G (standard SD), KingMax 1G, Hagiwara 1G, Kingston 2G, Toshiba 2G, SanDisk 2G, Team 1G, A DATA 2G, PNY 2G (microSD), Toshiba 64M e Panasonic 32M (miniSD).

Note que na lista dele está escrito o “SanDisk 2G”, mas como ele não dá detalhes específicos sobre o modelo, provavelmente não deve ser o mesmo que tive problemas.

 

Padrão de funcionamento

O SDisk II utiliza um formato próprio de imagem, com extensão .NIC. A grande vantagem é que você pode utilizar qualquer arquivo .DSK de discos de Apple II e jogar na raíz do cartão, então quando o SDisk II iniciar ele acenderá a luz algumas vezes avisando que está criando um novo arquivo NIC baseado no DSK com data mais recente presente na raíz.

Tudo é muito simples e fácil. Esta conversão automática leva cerca de 5 segundos, não atrapalhando em nada o funcionamento do micro, nem mesmo o boot. Se o drive estiver sendo requisitado, o sistema aguarda o término da operação para então ler a imagem. Não ocorreu problema algum em nenhum momento nos testes com relação a esta conversão.

No site do Nishida há os softwares conversores que permitem ir do formato NIC para DSK e vice-versa, bastando arrastar o arquivo referente para o executável a fim de criar o arquivo convertido. Isso é útil caso você queira voltar do padrão NIC para DSK para utilizar a imagem em um emulador.

O Victor Trucco também me passou estes mesmos arquivos por e-mail, incluindo o código fonte do firmware e um manual em português com fotos, exclusivamente referente a sua versão da placa. Recomendo fortemente a leitura dele antes de utilizar sua SDisk II.

 

Diferença da SDisk II nacional

Nesta versão que tive acesso, sendo a primeira versão da SDisk II feita em terras tupiniquins, o Victor tratou de incluir um botão extra que neste primeiro lote não faz nada AINDA.

Através do firmware aberto em GPL, o experiente Fábio Belavenuto já fez uma alteração que faz com que o SDisk II conte o número de arquivos no cartão, ao qual ao pressionar o botão o sistema deverá correr para a próxima imagem na raiz, até chegar ao último arquivo e assim voltar ao primeiro, de forma cíclica. Esta modificação ainda não foi testada, mas qualquer novidade a respeito deverei notificar aqui no site.

Por enquanto a versão que tenho em mãos possui o firmware original 1.3 do Koichi Nishida, ao qual lê somente uma única imagem presente na raíz, com data mais recente. Você pode criar pastas e jogar seus arquivos DSK ou NIC, depois basta trocar de posição pelo PC quando for usar outro disco, jogando na raiz do cartão o arquivo desejado.

Até que um novo e funcional firmware esteja disponível, este é o único meio de usar a placa. Sinceramente, só o fato desta nossa SDisk II brasileira ter um botão extra presente já demonstra a visão do Victor e da comunidade Apple na intenção de expandir o projeto, pois ao empregar um firmware livre já temos meio caminho percorrido.

Informação adicional: O próprio Victor Trucco me notificou no comentário deste post que há mais melhorias que ele executou no projeto SDisk II, ao qual posto abaixo em suas próprias palavras:

  1. Coloquei capacitores de desacoplamento tanto no AVR quanto no TTL
  2. Modifiquei a parte da fonte de 3.3V com o LM317 porque o regulador do original não era comum por aqui
  3. O mais importante que só percebi já com as placas prontas: o Nishida deixou o pino de reset do AVR flutuando, o que levava a travamentos aleatórios e funcionamento errático. Então adicionei o resistor que aparece na parte de baixo da placa para o pull up do reset.

Depois de receber uma resposta deste nível, isso só adiciona mais um ponto positivo aos projetos que saem das mãos do Victor.

 

Avaliação da performance

Não usei nenhum software específico, apenas executei os mesmos jogos que já possuo em disquetes.

Em um primeiro momento, notei uma leve melhora no acesso em alguns jogos modestos, provavelmente devido a ausência da parte mecânica, mas no geral não espere por nenhum ganho de performance, pois os dados ainda usam o mesmo percurso através da controladora de discos.

Ao utilizar mais títulos notei que alguns apresentaram o efeito contrário, com uma perceptível perda de performance em relação ao disquete, talvez isso possa ser alguma característica de velocidade de meu cartão SD ou o jogo utiliza meios diferenciados de leitura que exigem mais do hardware da SDisk II.

Abaixo segue a lista dos títulos que testei e o resultado:

  • Berzap – Perfeito
  • Bruce Lee – Tela inicial de créditos do crack apareceu corrompida, mas o jogo entrou normal sem nenhum problema.
  • Commando – Perfeito.
  • Conan – Carregamento um pouco lento, mas perfeito.
  • Deathsword – Perfeito
  • Force Seven – Perfeito
  • Ghostbusters – Perfeito
  • Prince of Persia – Carregou somente o disco de boot, o segundo disco ficou com tela preta e travou. Tentei 3 versões diferentes e nenhuma carregou completamente.
  • Robocop – Travou em uma tela preta após o título
  • Thexder – Carregamento extremamente lento, menos da metade da velocidade do disquete. Após carregar o jogo estava perfeito.

Ressalto o fato de que os jogos que apresentaram diferenças de velocidade ou não carregaram, talvez possam ter ligação com o modelo de meu cartão SD, pois no site do Nishida ele esclarece que a velocidade de escrita é muito menor que o Disk II real e há diferenças de velocidade de acordo com a performance do cartão. Como acredito que a operação de leitura é o maior foco de quem pretende utilizar este emulador, isso não deve portanto afetar a usabilidade geral.

 

Detalhes adicionais importantes

Todas as imagens de disco que testei tinham algum tipo de crack, portanto, não espere que a SDisk II seja capaz de rodar imagens que utilizem algum tipo de sistema de proteção ativa.

Um ponto importante é que o recurso de trava contra escrita do cartão SD é completamente ignorado pela SDisk II, a única forma de proteger qualquer imagem contra gravação é através da configuração do arquivo NIC que está em uso, que deve ser modificado para o estado de “somente leitura”.

A caráter de testes, fiquei exaustivamente “brincando” com a retirada e colocação do cartão com a máquina ligada, mas sem efetuar operações de escrita, somente leitura. Todos os jogos se comportaram muito bem, mesmo aqueles que usam dois discos (Conan). Foi possível trocar o arquivo, inserir o cartão e pressionar para prosseguir a leitura mesmo no meio do ato da conversão do DSK para NIC. Achei o firmware bem maduro neste sentido, totalmente “plug & play”.

Se você for utilizar o SDisk II como um instrumento de backup ou desenvolvimento, atente ao detalhe de que ele não é capaz de “formatar” o disco virtual. Toda e qualquer operação de formatação parece que está sendo efetuada, mas na verdade o dispositivo estará ignorando a requisição. Se for para utilizar imagens formatadas, faça a formatação das imagens DSK através de emuladores antes de utilizar a imagem limpa no SDisk II.

Sempre faça backup de toda e qualquer imagem importante que estiver no cartão SD, isso é uma recomendação do próprio desenvolvedor.

 

Conclusão

É fato de que o pontapé inicial foi dado para que finalmente possamos ter um dispositivo de emulação de disquetes no Apple II a um custo acessível, principalmente pelo motivo do projeto ser aberto e de fácil replicação para quem é da área.

Falando em custo, este é um ponto chave no SDisk II. O seu custo / benefício é muito atraente levando em conta que ele é dispositivo funcional para quem deseja se livrar dos disquetes.

Creio que teremos em breve ótimas melhorias neste dispositivo, seja a nível de software do firmware, proporcionado a seleção de discos, bem como modificações físicas para maior comodidade, através de um display LCD, por exemplo.

Quem sabe até mesmo ocorra o surgimento de projetos expandidos partindo da base deste, ou possamos ter a sorte do Nishida liberar o diagrama de seu projeto mais recente, a SDisk II LCD. Em todo caso, mentes brilhantes nas comunidades brasileiras é que não faltam para aprimorar este nosso SDisk II, que pra falar a verdade, já está ótimo em seu estado atual.

Se alguém me perguntasse se eu posso recomendar uma SDisk II, eu diria: “Se você não tem ou não pode ter uma CFFA 3000, a SDisk II é sua única e mais econômica alternativa para não utilizar mais os disquetes”.

Fica aqui o agradecimento especial ao amigo Victor Trucco por ter oferecido este projeto a comunidade com tanto profissionalismo e competência, mantendo sempre a cena da retrocomputação bem servida com a qualidade de seus serviços.

20 comentários

2 menções

Pular para o formulário de comentário

  1. Victor Trucco

    Mauro, agradeço suas palavras e o ótimo review. Uma observação é que eu fiz algumas mudanças no esquema do projeto original. 1) Coloquei capacitores de desacoplamento tanto no AVR quanto no TTL. 2) modifiquei a parte da fonte de 3.3V com o LM317 porque o regulador do original não era comum por aqui. 3) O mais importante que só percebi já com as placas prontas: o Nishida deixou o pino de reset do AVR flutuando, o que levava a travamentos randomicos e funcionamento errático. Então adicionei o resistor que aparece na parte de baixo da placa para o pull up do reset.

    1. Mauro Xavier

      Eu é que agradeço a oportunidade de ter uma mãos um placa feita por você, e tudo o que escrevi foi exatamente a realidade e resultado único de seu trabalho impecável.

      Apesar de às vezes não parecer, sou muito imparcial em tudo o que escrevo. No dia que eu pegar o projeto de alguém e ele não for tão bem feito, sem dúvida serei obrigado a apontar as deficiências, o que no seu caso com esta SDisk II, é impossível apontar uma imperfeição.

      E pode deixar que suas informações adicionais serão incluídas no texto.

      Muito obrigado!

  2. Leandro Polimeno

    Mauro,

    Ótimo post, bem completo !! Vale lembrar que ele só funciona com imagens de DOS 3.3, ProDOS (não sei se “ainda”) não roda. O “engraçado” é que a interface “boota” o ProDOS mas para na metade da “carga”.

    Abraço.

    1. Mauro Xavier

      Opa, Leandro!

      Eu tive este problema de travar no carregamento do ProDOS no SanDisk 2Gb e até mesmo no de cartão micro SD de 512Mb antes de formatá-lo. Porém, com o cartão de 512Mb efetuando uma formatação completa em FAT16 usando 32 Kbytes de alocação (sem usar formatação rápida), o problema foi totalmente resolvido. Depois disso tudo o que testei em ProDOS rodou na boa na SDisk II, inclusive o meu jogo feito em ZBasic e o Renegade.

      Tente usar também a última versão do ProDOS para ver se resolve.

      Poste o resultado aqui pelos comentários, pode ser importante como consulta aos outros usuários.

      Abraços.

  3. Daniel Campos

    Mauro, Parabéns pelo excelente review! Bem completo por sinal.
    Mesmo não tendo um Apple II fiquei fascinado com a simplicidade do projeto.

    Abs,
    Daniel

    1. Mauro Xavier

      Pois é, tome cuidado… Foi esta simplicidade e abertura da plataforma Apple II que me conquistou… E ISSO CONTAGIA QUE É UMA BELEZA!

      1. Alexandre

        Hehe. E pensar que agora tudo que é Apple é super fechado. :(
        Parabéns! Dá até vontade de ter um. 😉

        1. Mauro Xavier

          Realmente, vai ver que eles ficaram “traumatizados” com a quantidade de clones de Apple II que surgiram pelo mundo…

  4. PopolonY2k

    Ótimo review….

    …é bom saber que o Trucco está trabalhando ativamente em projetos para retrocomputing.

    Segue abaixo o link do review, que fiz no ano retrasado, sobre o emulador de discos do Trucco.

    http://www.popolony2k.com.br/?p=24

    Infelizmente ele não tá mais fabricando.

    []’s
    PopolonY2k

  5. Alexandre

    O Victor parou o emulador dele, mas ainda tem o HxC2001 que funciona uma beleza.
    Estou usando um no meu Expert.

    Abs.

    1. Mauro Xavier

      Eu tive também um HxC Floppy Drive Emulator, ele é excelente também, mas acho o custo meio alto.

  6. Danjovid

    Mauro,
    As informações sobre o hardware da versão LCD estão no próprio código. Não deve ser difícil desenhar.

    D0: DO (SD card)
    D1: USART TX to the LCD unit
    D2: WRITE REQUEST (APPLE II disk IF, pull up with 10K ohm)
    D3: EJECT switch (LOW if SD card is inserted)
    D4: DI (SD card)
    D5: CLK (SD card)
    D6: yellow LED (through 330 ohm, on when HIGH)
    D7: CS (SD card)
    B0: PHASE-0 (APPLE II disk IF)
    B1: PHASE-1 (APPLE II disk IF)
    B2: PHASE-2 (APPLE II disk IF)
    B3: PHASE-3 (APPLE II disk IF)
    B4: red LED (through 330 ohm, on when HIGH)
    B5: ENTER switch (LOW when pushed)
    B6-B7: connect to the crystal
    C0: DRIVE ENABLE (APPLE II disk IF)
    C1: READ PULSE (APPLE II disk IF through 74HC125 3state)
    C2: WRITE (APPLE II disk IF)
    C3: WRITE PROTECT (APPLE II disk IF through 74HC125 3state)
    C4: UP switch (LOW when pushed)
    C5: DOWN switch (LOW when pushed)
    C6: NC

    1. Mauro Xavier

      O Fabio Belavenuto hoje publicou o firmware que muda de imagem através do botão que o Victor colocou no projeto, agora ele também observou como é o esquema do LCD… Creio que não demora muito para soltarem um esquema para adicionar LCD neste SDiskII, ou um novo projeto de fácil reprodução.

  7. Danjovic

    Mauro, pelo que vi do código do projeto, o LCD é serial, e alguns pinos são modificados. Eu marquei na lista abaixo as diferenças. Como tenho interesse em montar uma, eu desenhei o diagrama no Eagle: https://picasaweb.google.com/lh/photo/5mtGpez4Y8YmUql-JIMZm9MTjNZETYmyPJy0liipFm0?feat=directlink

    Se precisar, entre em contato no gmail que eu lhe envio o arquivo do Eagle.

    1. Mauro Xavier

      Pelo que vi em seu site, já é de praxe você se destacar em seus projetos eletrônicos retrocomputacionais, está de parabéns. Tudo muito bom mesmo, heim?

      Quando você fizer um protótipo desta SDiskII LCD e tudo ocorrer bem, se for fazer um lote através dos grupos de entusiastas (Yahoo e afins), pode me colocar na lista 😉

      Eu não tenho toda esta bola para fazer uma placa para isso… Infelizmente carrego uma mistura de programador entusiasta (meu lado produtivo), com técnico em eletrônica preguiçoso. Pra você ter uma ideia, logo deverei postar a ARANHA que fiz de fios direto no Z80 para o IDE do ZX Spectrum +2E… Não usei placa em lugar algum, até mesmo o transistor e 74LS10 ficaram “voando”. Levei o subtítulo do meu site (gambiarra) ao extremo.

      Muito obrigado por compartilhar seu esquema!

    2. Fábio Belavenuto

      Danjovick,

      Ontem consegui ligar um LCD 16×2 diretamente na placa da SDISK2 multiplexando alguns pinos. Funcionou, está mostrando o nome do arquivo.
      O que farei agora é adicionar mais 2 botões e adicionar o recurso para navegar entre as imagens e selecioná-la.
      Quando estiver pronto vou postar toda a modificação no hardware e o código-fonte.

      1. Mauro Xavier

        Fabio,

        E pode ter certeza de que quando esta alteração estiver finalizada, irei reproduzi-la em meu SDiskII e farei um novo post a respeito, obviamente lhe creditando a façanha 😉

      2. Danjovic

        Fábio, excelente!!!

        Vou aguardar o projeto então.
        Uma outra alternativa que eu acho bacana é colocar um par de displays de 7 segmentos para mostar o número do disco (que pode ser o número da entrada de diretório). Fica retrô e ocupa pouco espaço (ou seja, dá pra colocar o conjunto numa caixa pequenininha).

  8. kadu

    ola tudo bem ?
    eu tenho um apple II MAS NÃO TENHO O DRIVE GOSTARIA DE SABER COMO ADQUIRIR UM DESSES COM GAMES , QUANTO CUSTA ? E COMO POSSO COMPRAR

    1. Mauro Xavier

      Use este site:
      http://asciiexpress.net/gameserver

      Com ele você pode usar seu Apple II ou compatível sem ter drive de disquetes. Ele faz o carregamento do jogos em segundos. Basta seguir as instruções do site e fazer um cabo que liga a saída de som do seu micro na entrada de áudio do Apple II.

  1. Victor trucco | Exercisebikess

    […] Avaliação SDisk II Emulador de drive para Apple II | Casa dos Nerds […]

  2. Fábio Belavenuto » SDISK2 com display LCD e botões de navegação

    […] A versão anterior, versão 1, foi produzida aqui no Brasil por Victor Trucco, o qual fez várias melhorias que são relatadas no excelente blog do Mauro Xavier. […]

Deixe uma resposta