ZX Spectrum +2e: Mod IDE versão Spider-Man

Sabe quando você quer algo mas a grana anda curta? De repente te dá um surto de “jeitinho brasileiro” e começam a surgir ideias mirabolantes de como realizar o seu projeto, mesmo que isso possa parecer pouco provável… Pois é, agora finalmente posso lhes apresentar esta “adaptação técnica” (vulgo gambiarra)…

Esta é a modificação para adicionar uma interface IDE ao meu ZX Spectrum +2, no melhor estilo Spider-Man!

 

O começo…

Assim que comprei meu tão sonhado ZX Spectrum +2, logo de cara já comecei a procurar modificações extras que estivessem dentro de minhas possibilidades. No meio da pesquisa vi o esquema que o Victor Trucco fez em um ZX Spectrum +3, e então fui pesquisar mais sobre como reproduzir esta obra prima.

A fonte desde projeto é o “Santo Graal” da praticidade de quem possui um ZX Spectrum versão +2A, +2B e +3, e é chamado de ZX Spectrum +3e, criado pelo britânico Garry Lancaster.

O projeto ZX Spectrum +3e nada mais é que um conjunto de ROMs que corrige bugs e adiciona recursos para acesso a novos dispositivos, dando suporte aos mais diversos tipos de interfaces conhecidas para a plataforma, desde modelos exóticos até a interface mais famosa, a DivIDE.

Como optei pela economia absoluta e facilidade de construção, executei o projeto em seu molde original, utilizando uma interface IDE simples de 8 bits, que é baseada no projeto de Pera Putnik, mas com leves alterações no endereçamento para prover uma melhor compatibilidade. Para se ter uma ideia da facilidade, veja a quantidade de peças que usei na construção da minha interface:

Utilizei no total os seguintes componentes:

  • 1 resistor de 100K
  • 1 transistor BC 327
  • 1 CI 74LS10
  • 2 EPROMs 27C256
  • 1 cabo IDE
  • 40 pinos (para converter de macho para fêmea, mas foi uma opção minha)
  • 1 soquete de 40 pinos (de boa qualidade!)
  • 1 adaptador CF Fêmea (dependendo da construção, pode ser macho)
  • 1 cartão CF

Apesar de que no site do Garry Lancaster são exibidas interfaces construídas em placas externas a serem ligadas no barramento de expansão, preferi criar o modelo da interface interna, que é ligada diretamente ao CPU Z-80.

No site do Victor Trucco, como tudo o que ele faz, o projeto foi muito bem construído com um profissionalismo ímpar… Em contrapartida, no meu caso, optei pelo padrão heróico do Spider-Man 😉

Cuidado com a teia! …

 

Montagem Spider-Man

Sinceramente, quando comecei a cortas os fios e soldar, até me passou na cabeça o sentimento “o que é que estou fazendo?”, mas quanto mais fios eu soldava, mais curioso eu ficava para ver o resultado final.

No começo tentei soldar tudo somente no soquete, mas vi que isso dificultaria no encaixe, então resolvi apelar e soldei direto no CPU Z-80 e coloquei ele então em um soquete, para que pudesse ser encaixado na placa mãe quando estivesse pronto.

O resultado parcial você confere na foto abaixo:

Note as ROMs A e B gravadas com arquivos baixados no site do projeto ZX Spectrum +3e, ao qual aproveito para agradecer o amigo Claudio Moises que efetuou a gravação e ao Victor Trucco que nos atentou para o arquivo correto.

Como meu ZX Spectrum é a versão +2B, que não possui drive de disquetes, agora na tela de entrada ele passou a mostrar a seguinte informação:

Isto é, meu micro agora é um ZX Spectrum +2e!

É preciso prestar atenção para o tipo do arquivo a ser gravado de acordo com a interface utilizada.  No meu caso como utilizei o esquema original do projeto, foram gravadas as ROMs com as iniciais “sm8”, significando “8-bit simple”.

O esquema eletrônico que utilizei para criar a interface é este:

Vale lembrar que como soldei tudo direto, eu poderia ter deixado o cabo em seu padrão fêmea, mas preferi adaptá-lo para macho para ser possível conectar outro cabo IDE se fosse necessário. Usando um conector de placa mãe, o resultado desta adaptação até que ficou interessante:

No começo achei que seria legal usar um HD IDE antigo externamente, mas em menos de um dia percebi que além de ficar jurássico demais, aquilo atrapalhava e ficava apenas mais um “cacareco” pendurado fora do micro, sem contar a dificuldade na transferência de arquivos (explicarei adiante) e necessidade da ligação em fonte externa. A primeira tentativa ficou conforme a foto abaixo:

Não foi difícil perceber que aquilo não seria viável por muito tempo…

Outro detalhe que me assustou no começo é que ao ligar o micro ele não detectava o HD. Levei mais de 2 horas para perceber que o disco era detectado só depois do primeiro reset.

O que acontecia na verdade é que eu usei a mesma fonte para ligar o micro e o HD, então ao ligar o conjunto o disco rígido não tinha tempo suficiente para iniciar sua operação e se tornar disponível ao sistema, então ao resetar o micro, o disco já estava pronto para se comunicar.

 

Mudando da água para o vinho: usando um adaptador IDE – CF

Como a nível de praticidade e visual o resultado usando um HD externo não ficou tão legal quanto imaginei, acabei por comprar um adaptador CF IDE fêmea.

Cometi a heresia de cortar a linda carcaça preta de meu ZX Spectrum +2, mas é a vida, foi por uma boa causa:

Para fixar a interface quebrei no meio uma peça de aço que prendia o conector de uma fonte AT, deixando o esquema bem preso com parafusos.

Confesso que desta vez fiquei mesmo com pena de cortar a carcaça, mas ali era o melhor lugar para colocar o adaptador CF, e ao fechar o micro o resultado ficou bonito:

Pois é, tudo muito legal e bonito, mas agora começa a novela…

Vou escrever abaixo toda a minha experiência, tanto os prós e contras da interface IDE simples de 8 bits, bem como do projeto em um sentido mais amplo.

 

Não é todo cartão CF ou dispositivo IDE que é compatível

Comprei um cartão CF SanDisk de 1Gb, logo que o inseri no adaptador e liguei o micro, fui surpreendido com uma tela cheia de artefatos. Em um primeiro momento pensei que o adaptador estava com problemas, então testei mais dois cartões de marcas diferentes, com as capacidades de 2 e 4Gb respectivamente, e curiosamente com eles o micro ligou, mas não os reconheceu. Hum…

Lendo alguns documentos do Pera Putnik e experiências de usuários com as interfaces de 8 bits, fiquei informado de que este problema pode acontecer devido ao CI 74LS10, que pode ser de procedência duvidosa e não trabalhar à risca dentro da especificação, ou pode não ser o modelo exato recomendado. Em todo caso, mesmo que esta não seja a fonte do meu problema, de qualquer forma não é garantido o funcionamento de qualquer dispositivo IDE, e no caso da interface de 8 bits, não funcionará qualquer outro meio de armazenamento que não seja HD, portanto, nada de CD-ROM e afins.

Puxa, testei 3 cartões e nada, me restou uma atitude desesperada… Peguei meu pequeno cartão de 64Mb também da SanDisk, que estava ligado a CFFA v1.4 de meu Apple //e, pronto, funcionou perfeitamente!

Tudo bem, o “Apple //e não achou ruim”, transferi as partições do cartão antigo para o de 1Gb e o liguei na CFFA, e me pareceu ter ficado um pouco mais rápido, além de que agora foi possível ter 4 partições de 32Mb. Como é a plataforma que mais tenho programado ultimamente, o resultado alegrou “gregos e troianos”.

 

Metade do tamanho do disco é perdido

Uma desvantagem a ser mencionada nas interfaces IDE simples de 8 bits é que por padrão elas usam apenas metade da capacidade do disco, portanto, como meu cartão é de 64Mb, fiquei com apenas 32Mb disponíveis, que na verdade resultaram em 30Mb, ao qual particionei desta forma:

Deixei 8Mb para os snapshots (arquivos Z80 e SNA), 12Mb para os arquivos convertidos dos formatos TAP e DSK, e mais 6Mb para Demoscene. Depois ainda ficaram duas partições de swap de 2Mb cada uma, recomendação esta do próprio Garry Lancaster. Sinceramente para a minha utilização no momento, está ótimo, mais adiante pego um cartão de 256 ou 512Mb, ou troco o 74LS10 por outras versões para ver há diferenças na compatibilidade.

 

A transferência de imagens virtuais de disco é lenta

Outro ponto que me deu dor de cabeça e acabei ficando horas tentando resolver foi como transferir os arquivos do PC para o CF usando o padrão do +3e. Como sou usuário assíduo de Linux, tentei de tudo para se manter em meu sistema favorito, usei todos os tutoriais e recomendações, usando o comando “DD“, o software “3e” e tudo mais. Foi em vão.

Depois descobri que o meu problema é que os tutoriais estão voltados somente para interfaces IDE de 16 bits, e no caso da interface 8 bits eu teria que usar o programa chamado Drive Image do Pera Putnik. O programa é muito bom, mas infelizmente só roda no Windows, e via Wine não reconheceu os discos. Tudo bem, e lá vou eu usar o Windows em prol de mais um micro antigo. PS.:  Ainda faço rodar no Linux a dupla “CiderPress e Drive Image”!

Através do Drive Image foi possível copiar o conteúdo inteiro do cartão CF para o PC, para trabalhar ele em um emulador, e depois voltar para o cartão. No meu caso selecionei o padrão HDF256, que faz referência a interfaces de 8 bits, se errar já era.

Infelizmente o processo tanto de leitura quanto de escrita É LENTO pois a cópia é feita bit a bit. Imagine se eu continuasse com aquele HD de 8Gb do começo do post… O correto é preparar completamente a imagem em um emulador, seja de 512Mb, 1Gb ou o que preferir, para somente no final passar para o dispositivo físico real.

Aproveito para avisar que se alguém for usar o Drive Image no projeto original do Garry Lancaster com a interface simples de 8 bits, já aviso para usá-lo somente para copiar e jogar a imagem do cartão, não use-o para formatar, transferir arquivos ou qualquer outra coisa, pois estes recursos do programa são feitos para o formato da interface do Pera Putnik, e não para a interface IDE simples de 8 bits do +3e. Esteja avisado!

 

A criação e desenvolvimento do disco pode ser penosa

Vou explicar agora quase que passo a passo do que fiz para criar a imagem com os jogos e programas, só para que se tenha uma ideia de todo o processo.

Primeiramente usei o seguinte comando no ZX Spectrum para ver as especificações do cartão:

CAT TAB

O micro acusou 490 cilindros, 8 cabeças e 32 setores.

Anotei os valores e criei um arquivo de imagem virtual de HD (extensão HDF) no PC usando o emulador EightyOne (roda via Wine!), pois nele dá para especificar que a interface é 8 bits e o arquivo ficará com metade do tamanho e no padrão correto. Se tentar usar outras ferramentas, como o comando CREATEHDF do emulador fuse, não dará certo pois o arquivo criado será para interfaces de 16 bits.

Porém, o EightyOne tem duas peculiaridades que podem atrapalhar, uma delas é que apesar de criar a imagem HDF de 8 bits corretamente, ele não consegue formatar! Então peguei a imagem criada no EightyOne e a usei no emulador Fuse, seguindo o tutorial de formatação no site do projeto.

Outro bug do EightyOne é que a imagem criada pode ter no máximo 15 cabeças na geometria do disco virtual, então se alguém estiver com este problema, basta formatar o cartão CF diretamente no ZX Spectrum com todas as partições necessárias e depois cria-se a imagem do cartão pelo drive Drive Image, lembrando de usar o padrão HDF256.

Usar ou não o EightyOne somente para criar as imagens vai de como ele poderá lhe ser útil, pois se o seu disco tem 15 cabeças ou menos, em alguns poucos segundos você tem um arquivo HDF 8 bits vazio, já pelo Drive Image você pode esperar alguns minutos, dependendo do caso.

Para passar boa parte dos arquivos para as partições da imagem de disco virtual, usei o programa chamado e3StrowSaw. Em interfaces de 16 bits ele lê e grava os arquivos diretamente nos discos reais, mas nas interfaces de 8 bits sequer reconhece os dispositivos físicos, porém ao menos o software não apresentou problemas ao lidar com imagens no padrão HDF 8 bits, tanto que foi possível inserir facilmente arquivos de snapshot com a extensão Z80 e SNA. Também abri alguns arquivos TAP e o programa extraiu o conteúdo deles em uma partição. O problema é que os arquivos com extensão TAP são referentes a programas em cassete, e muitos jogos com multi carregamento acabam por chamar diretamente o cassete ou usar outras rotinas, o que pode não funcionar via HD. Em todos os casos tive que renomear os arquivos e efetuar algumas modificações para rodar os jogos que eram originalmente feitos para cassete.

Para os arquivos de extensão DSK, é fato que eles nem sempre são lidos pois podem usar esquemas de proteção, somente imagens de disquete com arquivos abertos é que podem ser passados para as partições do HD. Percebi que nem todos os disquetes, mesmo com arquivos abertos, são lidos e extraídos corretamente pelo e3StrowSaw, então emulei um ZX Spectrum +3e (que tem drive de disquetes), dei o boot com o arquivo de imagem HDF e fui inserindo as imagens DSK, as que aceitavam o comando CAT para mostrar os arquivos, eu copiava tudo para uma partição do HD. Fiquei tempos usando estes comandos na sequência:

CAT "A:"
  •  Se exibisse corretamente os arquivos do disco, eu digitava o comando abaixo
COPY "A:*.*" TO "D:"

A cópia é lenta no emulador, e nem tente acelerá-lo pois isso pode resultar em corrupções, travamentos ou falhas mais graves.

No final das contas, esta foto mostra o resultado da partição de snapshots:

A rom +3e permite carregar os snapshots diretamente, por exemplo, para carregar o jogo “Astro Marine Corps” usei o comando:

SPECTRUM "AMC.SNA"

E o resultado em menos de 3 segundos:

No caso dos arquivos presentes na imagem DSK, os que estão abertos em 90% dos casos possuem o loader em formato BAS, como no exemplo baixo:

Então para ver e carregar os arquivos de loader sem virar bagunça, bastou usar os comandos:

LOAD "D:"
  • Para tornar a partição D padrão, que no meu caso é a partição onde ficam os jogos passados dos arquivos TAP e DSK
CAT "*.BAS"
  • Para listar somente os arquivos BAS
LOAD "ALIENSTO.BAS"
  • Para carregar o jogo Alien Storm, por exemplo

 

Atribuição de unidades

É possível criar, mover e renomear partições e letras de unidades. A única ressalva que considero uma grande limitação é que somente é possível atribuir duas letras de unidade para o HD, então por exemplo, no meu caso tenho 3 partições, mas apenas duas estão com as atribuições C e D, e para usar programas da partição chamada “Demos” é necessário remover a atribuição de outra. Veja o exemplo dos comandos abaixo:

MOVE "C:" OUT
MOVE "C:" IN "Demos"

Pronto, agora ao usar o comando CAT ele vai listar o conteúdo da partição “Demos”, onde posso executar e fazer o que quiser. Ao resetar o micro as partições voltam ao padrão, mas se eu quisesse dar o boot sempre com a partição “Demos” na letra C: bastaria adicionar o comando ASN, por exemplo:

MOVE "C:" IN "Demos" ASN

Agora sempre ao bootar o micro, a letra C: passa a ser a partição “Demos”.

É interessante todos estes recursos, mas se fosse possível ao menos ter umas quatro atribuições de letras para as partições de disco, seria mais fácil. Quem sabe no futuro.

 

Conclusão

No aspecto final, o visual ficou melhor do que imaginava, e somado ao conjunto da fonte externa de PC que adaptei dentro de uma carcaça de estabilizador, acho que deu um certo charme:

É fato que ao usar a ROM +3e você tem bugs resolvidos e ganha comandos que lhe dão uma boa flexibilidade no sistema.

A adição de comandos e necessidade em se digitar tudo pode parecer confuso para os que estão acostumados com a mordomia de uma interface DivIDE ou similar, mas para meu gosto pessoal é uma maravilha ter que digitação de ações.

Logicamente que uma DivIDE também rodará mais jogos, pois faz a emulação das rotinas de cassete, e ainda para executar basta “pressionar uma tecla e jogar”. Mas se você for como eu e aprecia uma experiência computacional mais completa, garanto que poderá gostar da utilização dos comandos do +3e.

Apesar de toda a resposta da interface ser executada por comandos, tudo é muito rápido e com boa usabilidade, mesmo usando um cartão antigo de 64Mb. Os jogos em snapshots são carregados entre 3 a 5 segundos, e os jogos adaptados de disquetes e cassete carregam todos os seus blocos entre 5 a 10 segundos, dependendo do peso do título.

Sinceramente, posso afirmar com convicção que valeu cada centavo e cada gota de suor neste projeto, mesmo ciente de que o que fiz não foi eletronicamente recomendado, pois é óbvio que a brincadeira de Spider-Man não é tão segura quanto uma placa de circuito impresso.

Mas em todo caso fiz o possível para efetuar uma soldagem de qualidade e resistente, então não acho que deverei ter problemas de mal contato ou qualquer coisa do tipo… Ao menos não tão cedo.

48 comentários

2 menções

Pular para o formulário de comentário

  1. Muito bom o artigo, Mauro. Parabéns. Seria ótimo de funcionasse no +2 cinza… mais hora menos hora cai uma divIDE na minha mão rs

    1. Opa, obrigado pela apreciação 😉

      Pois é, o ZX +2 Preto tinha que ter alguma vantagem, porque o teu cinza dá de 10 a 0 a nível de compatibilidade. Tem demos e alguns joguinhos que não rodam no +2A/b e +3 nem a pau, infelizmente.

  2. Parabéns mauro, apesar de meu sonho é ter um +2 cinza esse seu agora não deixa nada a desejar.

    E alias o que aquele Expert Plus esta fazendo na foto (hahaha)

    Abraços.

    1. Aquele Expert Plus faz parte da família também, mas é só a carcaça, ele é na verdade agora um Expert 1.1 transformado em MSX 2+ com FM e tá bonitão ainda 😉

      1. Encontrou um atari raro e bem conservado no mercado livre tem uma coleção invejável, agora esnoba com um MSX 2+ com FM em um gabinete zerado (praticamente novo), esse nasceu com a bunda voltada para lua (hahahahahaha), brincadeira a parte fico feliz por você meu amigo.

        Abraços.

        1. Pode parecer que seja sorte, mas você não tem ideia de cada coisa que já passei… Tomei calote, perdi dinheiro com coisas que não foram entregues, entre outros problemas, mas faz parte…

          Mas em contrapartida, se eu for parar e pensar, pode ser sorte ter conseguido levantar esta coleção em 4 meses gastando relativamente pouco… Porque te digo, fiz muitas trocas, rolos e amizades no meio de tudo isso, e acho que valeu muito a pena, principalmente os AMIGOS que surgiram no meio deste caminho, e que se não fosse por eles, eu não teria realizado boa parte destas loucuras 😉

          PS.: Expert zerado nada, a parte do metal em cima está um pouco judiada 🙁

  3. O 32Mb de limite…..

    …..é devido ao mesmo suportar talvez Fat12 no dispositivo, ou algum filesystem similar, que disponibilizava o máximo que um disquete da época jamais conseguiria endereçar.

    []’s
    PopolonY2k

    1. 32Mb seria o limite se a interface fosse 16 bits ou usasse o barramento pleno de 8 bits, no caso da interface IDE simples de 8 bits o tamanho máximo da partição é de 16Mb.

      A vantagem deste projeto é que posso fazer 65535 partições de 16Mb em um mesmo dispositivo (WTF!?)…

      1. Ahhh, olhando tua mensagem agora que entendi… Não há limitação de espaço total, é que foi coincidência eu ter um CF de 64Mb. Tem gente usando este projeto com cartões de 128, 256 e 512Mb sem problemas… Mas haja partições!

        1. Perfeito…..

          …!!!

          No caso dessas interfaces para maquinas antigas, o modelo de multiplas partições é assim mesmo.

          No MSX é assim tb, o pessoal fez um excelente trabalho na BIOS da IDE do MSX, que suporta operaçoes de 24bits para acessar os setores de dispositivos conectados a IDE, tem até extensão prevista para operações de 32 bits, o que seria ótimo para filesystems que acessam mais setores, como FAT32.
          O mesmo deve ter sido feito na BIOS do dispositivo que vc montou.
          Em breve vou publicar um estudo, com software desenvolvido, que explica detalhes sobre o dispositivo IDE no MSX (essa informação está em primeira mão no seu blog ehehe).

          []’s
          Popolony2k

          1. No caso do MSX seria excelente o uso de FAT32, sem dúvida, pois o DOS2 aceita subdiretórios (tá, o DOS1 também com certa gambiarra).

            Já no esquema do +3e não há subdiretório AINDA, então também não sei se é vantagem ter partições grandes, pois iria virar uma zona…

            PS.: Hum… Aguardo o seu post sobre estes estudos 😉

  4. Cara, muito legal.

    A única coisa que me deu um certo arrepio foi a solda direto no Z80, mas, de boa, isto é preciosismo meu.

    Eu gosto de ir às últimas conseqüências para evitar soldar qualquer coisa no IC (ou o IC em qualquer coisa) – num projeto meu, eu coloquei um soquete em cima do soquete e foi ali que fiz as soldas. Deu um trabalho do cão pra ter o mesmo resultado, mas é o preço que eu pago pelo meu preciosismo. 🙂

    1. Eu iria fazer exatamente isso, mas no fim das contas, soldar em soquete torneado se tornou inviável… Então soldei no Z-80 já no soquete, e depois aí sim soquetei novamente na placa mãe. Posso tirar a hora que quiser, é só puxar que o soquete com a aranha sai, mas só fiz isso direto no CPU porque tenho mais uns 3 Z-80 por aqui, então eu tinha estepe se desse algo errado.

  5. Oi Mauro

    O computador que o Victor fez o Mod foi o meu. Ate hoje eu ainda não tinha conseguido transferir imagens de jogos para o meu CF (A falte de tempo livre tambem não ajuda). Quando vi o seu artigo quase cai de costas. A solução estava ai. O meu erro sempre foi tentar transferir diretamente para o CF em vez de fazer como voce. Criar uma Imagem, Gravar os Arquivos e Depois com o programa do Pera, gravar a imagem no CF. Logo no inicio me deparei com um problema. O meu cartao de 128Mb tem a seguinte estrutura 481/16/32, so que o EightyOne so cria imagens de HDF com ate 15 cabeças. Putz, e agora. Pensando um pouco, imaginei se o programa do Pera Grava uma Imagem HDF, ele tambem deve ler uma imagem HDF. Fui no meu Spectrum +3e, formatei o CF, criei umas partições. Fui no Windows com o DriveImage, Criei uma imagem do meu CF, usando o StroSaw, copiei uns jogos e gravei a imagem de volta no cartão CF. Levei o cartão para o Spectrum e BINGO!!! funcionou direitinho. Muito Obrigado pelo seu artigo cara, espero que incentive outros a fazerem essa interface. Abraços

    Alvaro

    1. Ahhh, acabei de atualizar a questão do limite de cabeças do EightyOne, eu tinha me esquecido disso… Sabia que tinha algo que eu deveria postar, falei que o Drive Image ia e voltava as imagens, mas esqueci de dizer o porquê mencionei isso, era exatamente devido ao limite da criação do HDF no emulador…

      Pois é, o Drive Image foi uma mão na roda, foi a única solução mesmo para imagens geradas pela interface simples de 8 bits.

      E fico muito satisfeito que o post tenha lhe sido útil, isso já fez o trabalho valer a pena 😉

      Abraços!

  6. Oi Primo! acho que vc vai gostar destas postagens no blog de MSX que o Ricbit acabou de fazer!

    http://viajandonomsx.blogspot.com/

    beijos

    1. Este blog é invejável… Pegar fotos pela web não teria tanta graça, só mesmo viajando o mundo para conseguir presenciar pessoalmente lugares que tenham ligação com jogos de MSX de forma tão brilhante.

  7. Caro Amigo está muito bom o moding e o investimento em tempo e trabalho ,actualmente faço modding em tudo que é maquina que goste,infelizmente não segui electronica como gostava mas vou trabalhando nos tempos livres em casa depois do trabalho e vim aqui parar depois de ver a pagina do vitor truco ,uma coisa que vi no teu projecto é que usas-te as roms do +2e e eu estou a pensar no meu 128k preto as roms do +3e ,que a nivel de funcionamento penso ser iguais a limitação de partiçoes pela metade penso ser um bug na escrita da rom que não assume a totalidade dos cflash que mais tarde vou tentar explorar para ver se a encontro, outra ideia é que acho que o teu problema de só conseguir usar aquele cflash é porque ele é de 80x velocidade de transferencia lenta por isso é que mesmo do pc para o cartão a transferencia é penosa o que não acontece quando temos uma rom como na divide que a transferencia é instantania como um cartucho timex 2068 e assm,acho que deviamos explorar mais esse chip montado na base do z80 o 74 que pode ser um grande causador da incompatibilidade dos compact flash e da lentidão

    um Abraço

    JOSÉ GONÇALVES (Portugal)

    1. Olá, José.

      Gostaria de esclarecer alguns pontos referente ao projeto:

      – As ROMS deverão funcionar provavelmente somente no ZX Spectrum +2 preto e +3, pois a alocação feita pelo Garry Lancaster é voltada para a estrutura de mapeamento de memória das placas da Amstrad, as outras versões do ZX Spectrum (+2 Cinza e anteriores) são da Sinclair, e tem suas diferenças sim. Provavelmente não funcionará esta ROM em um ZX Spectrum 128Kb (mas não custa tentar) 😉

      – A questão do cartão CF ser usado pela metade é porque usei o padrão “Simple 8 bit”, que é baseado no esquema do Pera Putnik, que prevê o acesso em 8 bits e com isso corta mesmo a capacidade pela metade, não é bug. Se quiser pode olhar no site do Garry Lancaster que aponta para projetos que usam interfaces de 16 bits e completa capacidade do cartão, mas são relativamente mais complexos para fazer. Como meu caso a intenção era fazer algo fácil, optei pelo projeto mais simples.

      – Testei inúmeros cartões posteriormente de velocidades diferentes, e não tinha relação com a velocidade, e sim com alguma diferença em relação a “tamanho X marca”.

      – 80x não é uma velocidade lenta para o barramento do ZX Spectrum, pelo contrário, chega a ser rápido até demais.

      – A velocidade de transferência de ROMs pequenas usando um sistema de arquivos FAT32, caso da DivIDE, obviamente será mais rápido que a transferência RAW (bit a bit) necessária para passar uma partição completa para um cartão CF, o tipo de escrita não é igual, sempre será mais lento. O esquema deste projeto +2e / +3e interpreta o cartão CF como se fosse um HD mesmo, usando um sistema próprio de arquivos e provê a leitura e GRAVAÇÃO dos arquivos, a DivIDE faz algo bem diferente e não é capaz de gravar arquivos através do ZX Spectrum.

      – Eu poderia dizer que a DivIDE é infinitamente superior para jogar e carregar as coisas mais facilmente, além do alto grau de compatibilidade, já o esquema +2e / +3e é mais adequado para programação diretamente no ZX Spectrum devido a possibilidade de gravação.

      Agradeço sua presença, e obrigado pelos comentários.

      Abraços.

  8. Ola caro Mauro e abraços a comunidade retro brasileira,aqui em Portugal a grana fugio toda 🙂 e o pouco dinheiro que tenho uso para comprar quando posso algo retro ou spectrum ou amiga mesmo que não funcione adoro consertar deixa me relaxado e ocupado e ao fim compensa dar vida a estas maquinas, obrigado pela explicação a ideia dos 16 bit não tinha me surgido visto não ter explorado a fundo o projecto pera putnik ,extranhamente mesmo com 8 bit deveria dar a capacidade completa isso acontece se calhar porque as controladoras do compact flash estão preparadas como disse para trabalhar com maquinas de 16 bit ou seja para isso secalhar teriamos de refazer todo o adaptador certo ?em relação a divide tem acesso directo não passa por controladores que controlam o acesso ao cartão e a transferencia ocorre em tempo real como ligar um spectrum e já está.
    como disses-te e muito bem não e possivel transferir para a divide nada a não ser por programação das eprom talvez o criador faça um tipo de interface para esse efeito em pc,contudo o que acontece é que estes projectos tendem a ficar cada vez mais caros como é o caso do emulador para disquetes com cartão para sd para amiga que ronda em moeda vossa os 190 reais o que para uma maquina só é exageradamente caro acho que deveria haver uma loja online para spectrums como a amigakit mas neste caso speckit 🙂 com acessorios para o spectrum como este caso.
    Adorava por a mao num desses amigas 4000 mas os poucos que surgem são na america e o portes mais vale esquecer ,é como o sinclair zx80 que quando puder vou pescar um 🙂 um abração Mauro comente.

    1. Eu gosto mais de micros “tudo em um”, com o teclado junto a CPU, então não sei se gostaria tanto de ter um Amiga 4000. Não gosto muito do conjunto de gabinete separado do teclado, nada que me lembre PC.

      Tem uma versão do projeto do Pera Putnik que usa 16 bits e é simples também e roda no projeto +3e, mas o de 8 bits é o mais simples possível e fácil de fazer. Na verdade o esquema do Garry Lancaster possui inúmeras ROMs para os mais variados tipos de interface, vale a pena consultar o site dele para ver todas as interfaces e observar qual te agrada mais.

      Estou muito feliz em ver teus comentários, ainda mais por ser de um lugar tão longe e que me agrada tanto. Mande um abraço a todos os amigos portugueses do mundo da retrocomputação.

      Um grande abraço!

  9. Já agora e relendo o comentário postado por ti o que eu queria dizer era que as tuas rom são do +2e ,e no meu spectrum preto estava a pensar programar as roms do +3e de disquetes que penso não serem diferentes as boards dos dois modelos não mereferia ao modelo 128k original nem aos chamados 128k com heatsink aqueles com o dissipador de lado.

    Um abraço

    1. Ah, se o teu é um ZX preto da Amstrad, roda na boa. Aqui na verdade as ROMs são também do +3, é tudo a mesma coisa, só muda que o meu tem apenas o tape e o +3 tem o drive de disquetes e controladora incorporada, mas a ROM é a mesma.

  10. Caro mauro gostava que me podesse enviar um mail ,para poder mostrar meus progressos para ti já gravei as roms tá de mais já detecta as drives no arranque ,ainda não tive hipotese de ir buscar o pera putnick de 16 bit

    grande abraço

    JOSÉ GONÇALVES

    1. Ok, e-mail enviado.

  11. Boa noite Mauro meu nome é Paulo e estava precisando de umas dicas suas tenho um +3 e quero fazer esse seu esquema já tenho os 2 chips para gravar as roms e tambem baixei as roms no site indicado e tambem tenho uma amigo que vai gravar para mim só que não sei quais os arquivos certos para gravar nos chips, você poderia me dar umas dicas sobre esse caso?

    grande abraço

    Paulo

    1. As ROMs que usei do site do Garry Lancaster, usando o esquema eletrônico deste post do meu site, são:

      sm8en3eA.rom
      sm8en3eB.rom

      Significando:

      sm8 – Simple 8 bit interface
      en – English
      3e – ZX Spectrum 3e
      A – Rom A
      B – Rom B

      Se precisar de qualquer ajuda, é só dar um toque.

      1. Mauro me dá mais uma dica to confuso com isso, tipo está assim no começo sei que o en é engles tenho que gravar 2 rom A e B no caso abaixo como eu divido isso ?
        Obrigado

        baden3e0
        baden3e1
        baden3e2
        baden3e3
        baden3eA
        baden3eB
        baden3eE

        1. No caso são as que terminam em A e B que devem ser gravadas. As de 0 a 3 e com final “E” são para emuladores, você não irá usar.

          A que você citou e começa com “bad” é do “ZX-Badaloc Clone“. Lembre-se, se for fazer o esquema de interface simples de 8 bits, tem que ser as ROMs que começam com “sm8”.

            • paulo em 17 de agosto de 2012 às 1:11

            Muito obrigado Mauro agora caiu a ficha rsssssss

            abraços

  12. Mauro bom dia preciso de mais uma orientação tentei gravar as roms em uma eprom
    27c256 e não estou conseguindo elas são novas e virgens voce poderia me dizer quais eprons você usou .

    abraços

    Paulo

    1. Foram duas 27c256 mesmo. Qual é o gravador que você está usando?

  13. Mauro comprei um willem pcb50 quando vou gravar dá o seguinte erro

    error at 0x000000 chip = 0xff buffer = 0xf3
    sabe me dizer o que pode ser ?

    Abraços e obrigado

    1. Este erro pode ser sinal dos seguintes problemas:

      – Configuração errada em relação a EPROM. Tente 27256 ao invés de 27C256 para ver se resolve;
      – EPROM com problemas de fábrica, ou FALSA;
      – VPP errado.

      Se puder, teste outra EPROM de outro fabricante ou modelo.

      Me avise se der certo.

      Abraços.

  14. Boa tarde Mauro bem já consegui gravar as eprons deu tudo certo nessa parte mais estou com 1 problema, estou usando um cf de 512mg quando dou um cat tab aparece da seguinte forma

    ide unit 0 (227/16/63)
    ide unit 1 (not detected)
    0 ok,01

    quando mando formatar seguido a instruções do site do +3e da o seguinte erro
    unknown disk erro,01
    Voce poderia me dar mais essa luz

    Grande abraço e obrigado

    1. Se teu cartão é de 512Mb e usa o esquema de interface simples de 8 bits, então o sistema irá considerar como 256Mb, pois ele corta metade do espaço.

      Vamos agora dividir o disco no máximo de suas partições, que seriam 16. Vamos colocar algumas a mais só caso você queira ter partições menores que 16Mb.

      Digite:

      FORMAT TO 0,20

      Se ele formatar, então basta começar a criar as partições, por exemplo:

      NEW DATA "Games",16
      NEW DATA "DSK",16
      NEW DATA "Demos",16
      NEW DATA "Utils",16
      NEW EXP "Swap",2

      E depois atribua duas letras para as unidades que serão mais acessadas:

      MOVE "C:" IN "Games" ASN
      MOVE "D:" IN "DSK" ASN
      LOAD "C:" ASN

      Depois dê o comando “CAT TAB” novamente e veja se deu certo.

  15. Oi Mauro, meu nome é Cleilton Farias, moro em Fortaleza/CE. Gosto muito de Consoles antigos e revirando na internet descubro estes computadores antigos que estão me fascinando. Eu achei muito show o seu post sobre o “ZX Spectrum +2e: Mod IDE versão Spider-Man”. Isto é muito show.
    Então eu não tenho nenhum computador antigo e estou querendo adquirir um, mas preciso de um conselho seu. Estou pesquisando na internet sobre estes: ZX Spectrum +2 ou Atari 65XE ou MSX.
    Destes me chamou a atenção o MSX, pois por exemplo o jogo HERO fica com uma resolução de cenário muito bacana, mas preciso de sua opinião, pois eu tenho interesse em adquirir um computador que possa fazer algo parecido como o que você fez com o ZX Spectrum, pois foi possível colocar ali um cartão (usando a IDE) com custo muito baixo e é isso que eu quero fazer, sem ser necessário comprar placas (mesmo que seja necessário montar algo).
    O Atari 65XE também é muito legal, parece que é um meio termo dos dois, me corrija se estiver errado. Enfim não sei se posso comparar os três mais é isso que preciso de conselhos e dicas suas.
    Fica com Deus e aguardo sua resposta.
    Obrigado.

    1. Bom, se for para lhe aconselhar, vou te dar meu parecer sobre cada plataforma em relação a atualidade, preços e dispositivos de massa, ok?

      1) Atari 8 bits (XL/XE): Achei interessante, E SÓ. Percebi que na proporção de jogo / qualidade, não gostei muito do resultado. Tem uma galeria imensa de jogos, mas poucos realmente me chamaram a atenção. É preciso alterar o micro para ter uma boa imagem, porque a imagem original não é nada agradável. A nível de preço, a interface IDE, que pode ser usada para um adaptador CF-IDE, é a mais econômica possível para comprar prontinha.

      2) ZX Spectrum +2: É muito legal fazer o projeto, e dá para encontrar os ZX +2 pretos por um bom preço. O esquema para a IDE é meio chato pra fazer, mas é de todos o mais econômico, e basta gravar as EPROMs e boa. Só é um pouquinho trabalhoso para formatar e organizar os jogos, mas funciona legal.

      3) MSX: É de todas as plataformas 8 bits, a mais expansível… MAS TEM SEU PREÇO. Um MSX 2+ não é tão barato e vai precisar de uma interface que não compensa fazer em casa, que seria um cartucho IDE se for usar um MSX2 que já tenha Mapper, ou IDE+Mapper se for usar um MSX1. Tem jogos legais e tudo mais, mas representa o maior custo em relação as plataformas 8 bits se você quiser usar um cartão CF e jogos mais sofisticados, já que usar um MSX1 com IDE é quase um desperdício de capacidade.

      Enfim, economia x capacidade eu iria mesmo de ZX Spectrum +2 preto com o projeto do Garry Lancaster (+2e/+3e) ou mesmo um ZX +2 cinza com uma DivIDE.

      Se tiver qualquer dúvida extra, pode ficar à vontade em entrar em contato.

      Abraços!

  16. http://www.youtube.com/watch?v=zsjTpFR0oYQ

    help can you explain if your interface is compatible with the spectra interface from the fruitcake Paul Farrow site please?

    http://www.fruitcake.plus.com/Sinclair/Spectrum/Spectra/SpectraInterface.htm

    1. Hum… If this “Spectra Interface” is compatible with the ZX Spectrum +2A/B or +3, I think there will be no problems with the ZX 3e IDE mod.

      But looking at the links, this interface seemed to be only compatible with the original ZX Spectrum 48k.

  17. Oi, Mauro Xavier.
    Estou buscando ajuda em relação a o ZX Spectrum. Como eu adapto uma fonte de PC nele?
    Quais as tensões?
    Preciso da tua ajuda.

    Desde já obrigado.

    1. Qual é a versão de seu ZX Spectrum? 48k, 128k, 2 (cinza) ou 2/3 (preto)?

      1. Oi Mauro, o ZX Spectrum que comprei e estou esperando chegar é um ZX Spectrum +2 cinza.
        Eu vi no site do Victor Trucco, que a adaptadão é bem simples. É só inverter os fios, positivo e negativo.
        Mais a minha pergunta é. Eu consigo fazer este esquema de colocar o CF, no Spectrum +2 cinza?
        Pelas respostas anteriores, parece que não “rola”.
        Existe alguma outra saída com baixo custo, para o meu caso?
        Há, mais um detalhe. Onde eu consigo ver algum material, para iniciantes?
        Eu não sei de nada, ainda, como usar o Spectrum.

        Obrigado e fico no aguardo.

        1. Infelizmente, que eu saiba, apenas os modelos +2 preto e +3 do ZX Spectrum são compatíveis com o esquema do Garry Lancaster.

          Uma alternativa para colocar cartões CF em seu ZX Spectrum seria comprar uma DivIDE, tanto que recentemente saiu um lote do Victor Trucco por um preço justo, e sempre tem no eBay.

          Uma versão legal da DivIDE, que apesar de não ter um preço tão camarada é muito conceituada, é a produzida pela Lotharek, pois é customizada e tem um tamanho menor, além de já possuir o encaixe para cartão CF direto e ter um design da placa “em pé” para encostar no micro, ao contrário das outras que ficam “deitadas”. Clique aqui e veja.

  18. Oi Mauro. O meu ZX Spectrum +2 (cinza), chegou. Eu inverti a polaridade, coloquei o interruptor de on/off e fiz a modificação do vídeo composto.
    Mas ele não está mandando a imagem para TV. Testei em uma AOC e uma Sansung e não deu nada. Testei em uma LG, só “chuviscou” e em uma Semptoshiba apareceu um chuvisco colorido, como se quisesse aparecer imagem.
    Eu acredito que seja a questão do PAL-M. O que eu posso fazer para funcionar?

    1. Se a sua TV aceita apenas PAL-M e NTSC, o máximo que aconteceria era de a imagem ficar preto e branco, mas a imagem deveria aparecer de qualquer jeito.

      Verifique se a modificação que você fez para a saída de vídeo composto está correta, talvez seja este o problema. Eu mesmo já passei por algo parecido várias vezes, e quando eu checava novamente sempre descobria uma coisinha aqui ou ali que não deixava o micro ligar.

  19. Olá,
    estou ainda a concluir este esquema, sabe se há um frontend/menu para navegar de forma simples nas pastas e para depois escolher o programa a lançar no spectrum, tipo o menu do DIVIde?

    1. Cara, no caso só fazendo um programinha em Basic mesmo com auto execução para rodar os jogos, principalmente os snapshots, pois a ROM já tem um comando pronto pra isso.

      Infelizmente me desfiz do meu antes de terminar o pequeno front end que eu estava desenvolvendo, rs.

  1. […] jogo leva 5 segundos e em meu ZX Spectrum +2 usando Turbo Loading não passa de 50 segundos, por cartão CF usando o esquema do +2e então leva 1 […]

  2. […] utilizado no projeto do ZX Spectrum +3e pelas mãos de Garry Lancaster, e que por fim utilizei em meu ZX Spectrum +2e, que já virou artigo aqui no […]

Deixe uma resposta