Quase todos na comunidade Portuguesa de Spectrum usamos o Pirata para copiar cassetes.
Aposto que muitos de nós, sempre se perguntaram como o Pirata funciona(va). Tinha também um amigo, que se queixava que em sessões de maior volume de cópias, a cópia ficava estragada e, dado a fiabilidade das cassetes, nunca fiquei muito convencido do que ele dizia.
Segue aqui neste artigo, o link para uma análise ao código assembly do Pirata de 1984:
https://spectrumcomputing.co.uk/entry/36321/ZX-Spectrum/Pirata .co.uk/entry/36321/ZX-Spectrum/Pirata
Note-se que, embora seja mencionado falhas no programa, o Pirata marca uma era na qual em Portugal havia um vazio legal na legislação de cópia, sendo um feito ter sido desenvolvido em assembly, e quando a tecnologia de turbo-loaders ainda não estava divulgada.
De notar que o programa em si, é relativamente e intencionalmente curto para poupar recursos, de forma a ter livre o máximo de bytes possíveis em RAM, num ZX Spectrum 48K. O programa é também curto, porque tira proveito de rotinas da ROM.
Notavelmente, é bastante inteligente o (ab)uso da rotina de carregamento da ROM, para carregar blocos com identificação de bloco diferente de 0, e de passar como argumento o valor máximo de bloco e fazer a diferença aos bytes carregados, de forma a determinar o tamanho do bloco. O facto de usar a ROM, por sua vez, cria também algumas limitações. Seria possível estender o programa, para não ser possível fazer LOAD por cima do código máquina do mesmo, mas isso implicaria o uso de mais RAM e transcrever as rotinas de ROM para RAM ; os checksum dos blocos também são recalculados.
Infelizmente, existem também algumas incongruências e bugs, que são discutidas na listagem assembly, e que causam corrupção de dados, quer ao nível do código máquina, quer ao nível dos dados carregados. Estas limitações serão endereçadas na parte II deste artigo.
Link para o disassembly comentado do Pirata:
https://raw.githubusercontent.com/ruyrybeyro/pirate128/main/pirata1984/pirata.asm
Parte II deste artigo: ASM, TAP, TZX e ROM do Pirata MOD2021 com bugs corrigidos
Este comentário foi removido pelo autor.
ResponderEliminarsou do Brasil... usei muito esse programinha, usava tbm o Mr copy, transtuctor ...
ResponderEliminaré o que eu uso sempre :)
EliminarTambém usava bastante, até escrever o pirate128 e aprender a dar a volta aos bugs do ZX-Blockeditor. Agora só se aparecer um TAP/TZX com mais erros.
EliminarCuriosamente eu quando disse à minha mãe para botas as minhas cassetes todas ao lixo ,perdi o mesmo e encontrei mais tarde num site brasileiro numa coletânea que dizia cassetes do Sr.Edison e consegui extrair o mesmo através de comandos do dos no pc.gostava que a Paula Silva partilhasse a versão que ela disse que converte para Rom do mesmo.
ResponderEliminarBoa noite Sr. "RAMparts", caso esteja interessado no Piratita (o Pirata alterado por mim), entre em contacto comigo ou com o Consultório da Paula via PM. :-)
EliminarEncontra uma ROM actualizada sem bugs sérios na parte II deste artigo, e no github tém vários formatos; terá também a versão 128 na parte III que aceita na realidade blocos >= 48K.
EliminarA ROM com patches pode ser obtida desde já em https://github.com/ruyrybeyro/pirate128/blob/main/pirata2021ROM/Pirata2021_USR14446.rom