MSXDUMP v0.2 (final) liberado no SourceForge.net

Finalmente após as previsões extremamente otimistas feitas no final do ano passado quando lancei a primeira versão do primeiro utilitário da suite MSX Disk Doctor (MSXDD), denominado MSXDUMP e que finalizaria o mesmo em dezembro de 2012, posso dizer que esse software está completamente pronto e funcional, incluindo o suporte a dispositivos de armazenamento em massa de grande capacidade (IDE) que eu havia prometido.

MSXDUMP 0.0 Main screen
MSXDUMP 0.2 Main screen

Com isso, o MSXDUMP v0.2 pode editar setores em dispositivos conectados à interfaces IDE Sunrise-like, de fabricantes como ACVS, Tecnobytes e lógicamente Sunrise.

Abaixo vou fazer uma compilação de algumas informações que já foram descritas nos posts anteriores sobre o MSXDUMP e que fazem mais sentido que estejam centralizadas nesse post final, uma vez que se trata da versão final estável do software e também porque existem modificações no comportamento de alguns parâmetros que foram redefinidos e não serão mais modificados a partir dessa versão.

Operação através do teclado

Com uma interface tradicional característica da maioria dos editores de setores, o MSXDUMP tem alguns poucos shortcuts que permitem ao usuário um completo controle sobre a edição de arquivos e setores.

Os shortcuts estão descritos logo abaixo:

  • SELECT – Alterna o modo de operação das setas direcionais. Quando em modo DISK, as setas direcionais podem avançar ou retroceder o ponteiro de setor/arquivo que está sendo editado. No modoEDIT, as setas direcionais podem se movimentar pelos dados exibidos na tela, permitindo assim a edição do buffer de memória que está sendo visualizado;
  • CTRL+S – Quando em modo DISK, essa combinação de teclas salva o conteúdo do buffer carregado;
  • CTRL+A – Quando em modo DISK, avança o ponteiro de setor/arquivo, carregando e exibindo os dados do setor lido. As direcionais UP e RIGHT, quando em modo DISK, tem a mesma função de CTRL+A;
  • CTRL+R – Quando em modo DISK, retrocede o ponteiro de setor/arquivo, carregando e exibindo os dados do setor lido. As direcionais DOWN e LEFT, quando em modo DISK, tem a mesma função de CTRL+R;
  • Direcionais UP, DOWN, LEFT, RIGHT – Quando em modo EDIT, podem ser utilizadas livremente para posicionar o cursor no dado a ser modificado;

ATENÇÃO:
O MSXDUMP não salva o conteúdo editado pelo usuário “automagicamente“, por isso, sempre que se editar dado, deve-se sair do modo de edição (através de SELECT) e salvar o buffer atual, antes de navegar para o próximo setor, senão a alteração será perdida ao se mudar de setor.

Parâmetros de startup por linha de comando.

O MSXDUMP pode ser iniciado com as seguintes opções de linha de comando.

-h Mostra a tela de help do MSXDUMP. Chamar o software com uma opção inválida ou sem parâmetros, também ativa a tela de help;

-f <filename> Essa opção especifica o nome do arquivo que se deseja editar, onde <filename> pode conter uma especificação completa da origem do arquivo, no formato drive:\path\filename, aceito pelo MSXDOS 2;

Ex (MSXDOS2): msxdump -f a:\MSXDD\MSXDUMP.PAS
Ex (MSXDOS): msxdump -f MSXDUMP.PAS

-d <drive> Essa opção especifica a unidade de disco dos setores a serem editados. Pode ser qualquer unidade de disco (A:, B:, C:, …., H:) aceita pelo MSX, incluindo dispositivos FLOPPY, IDE e RAMDISK;

Ex: msxdump -d a:

-s <sector_number> Essa opção especifica onde o ponteiro de setores será posicionado inicialmente para edição através do MSXDUMP. Um detalhe importante para o parâmetro -s <sector_number>, a partir dessa versão, é que número do setor especificado no parâmetro pode ser qualquer valor de zero até o limte máximo de um inteiro sem sinal (unsigned) de 24bits, nesse caso, 16777215.
Outro detalhe importante sobre o valor de <sector_number> é que o mesmo descreve o numero do setor de maneira relativa à partição apontada pela unidade especificada no parâmetro -d <drive>. Para discos conectados a uma IDE, onde geralmente existe mais de uma unidade mapeada a um unico dispositivo IDE, cada unidade inicia em um setor físico diferente de 1.

Considere um disco IDE com duas partições FAT12. A primeira partição (drive A:) inicia em 1 e a segunda partição (drive B:), digamos que por exemplo inicie em 65000.

Com base nesse cenário, caso o MSXDUMP seja chamado conforme exemplo abaixo:

Ex: msxdump -d b: -s 1

MSXDUMP irá posicionar o ponteiro do disco no setor físico relativo à posição inicial da unidade B:, ou seja, 65001.

-a Essa opção especifica que o valor apontado por <sector_number> será sempre absoluto, ou seja, se o parâmetro -a for chamado no startup, o valor de <sector_number> será interpretado como a posição absoluta no disco, independente da posição física do primeiro setor da unidade de disco especificada em -d <drive>;

Considerando o mesmo exemplo anterior, onde temos um disco IDE com duas partições FAT12. A primeira partição (drive A:) inicia em 1 e a segunda partição (drive B:), digamos que, por exemplo, inicie em 65000.

 Com base nesse cenário, caso o MSXDUMP seja chamado conforme descrito abaixo:

Ex: msxdump -d B: -s 1 -a

Na verdade o setor físico do disco será posicionado no primeiro setor do dispositivo IDE, ou seja, no setor 1 do drive A:, uma vez que estamos trabalhando no modo de apontamento absoluto.

OBS: O modo padrão de apontamento de setores do MSXDUMP é sempre relativo à posição fisica inicial do setor da unidade de disco selecionada, caso queira mudar para o modo absoluto, especificar a opção -a no startup da aplicação.

Código fonte

Juntamente com o MSXDUMP foi desenvolvido um Framework com funções que possibilitam acesso em alto nível a funcionalidades internas do MSX, como chamadas a funções da BIOS, funções do sistema operacional MSXDOS, MSXDOS2, chamadas à funções de baixo nível da IDE Sunrise-like, funções de matemáticas para manipulação de BigInt, o que possibilitou a manipulação de setores em 24Bits presente nas IDE Sunrise-like, dentre outras possibilidades que já estão disponíveis e outras que estão planejadas para futuros desenvolvimentos.

Os fontes foram desenvolvidos em Turbo Pascal 3 e Assembly Z80, estão completamente comentados e disponíveis no repositorio do projeto, o Old Skool Tech, sob licença GPLv3.

Apesar de ter otimizado o código visando um melhor aproveitamento de memória e velocidade, infelizmente não foi possível gerar um binário único, uma vez que o software foi pensado para funcionar em qualquer MSX com no mínimo 64Kb e MSXDOS.

No futuro pretendo otimizar mais o Framework e adicionar a possibilidade de trabalhar com módulos carregáveis, como nos sistemas operacionais modernos como Windows (.DLL) e Linux (.SO) e também adicionar suporte a detecção e uso de todas as memórias existentes no MSX, como Memory Mapper e Megaram.

Mas enquanto isso não acontece, precisei deixar o MSXDUMP em 3 binários separados, conforme descrevo abaixo:

MSXDUMP – Módulo base para edição de arquivos (MSXDOS e MSXDOS2);

MSXDUMPD – Módulo base para edição de setores (FLOPPY, IDE, …);

MSXDUMPHHelp do sistema;

Todos os módulos binários estão interconectados, ou seja, se por exemplo o módulo MSXDUMP for chamado com opções suportadas apenas pelo  MSXDUMPD, o primeiro chama o segundo repassando para esse o controle da operação.

Instalação

A instalação do MSXDUMP é simples, basta copiar todos os binários para uma pasta (no caso do MSXDOS2) e adicionar essa caminho na variável de ambiente PATH do MSXDOS2, conforme exemplo abaixo:

SET PATH=<suas definições de PATH aqui> B:\MSXDD 

Outro detalhe muito importante é definir uma variável de ambiente no AUTOEXEC.BAT do MSXDOS2, chamada MSXDD e setar essa variável com o caminho de onde está instalado o MSXDUMP e também onde estarão os futuros utilitários do MSX Disk doctor, conforme exemplo abaixo:

SET MSXDD=B:\MSXDD

Com isso os binários estarão interconectados e um poderá chamar o outro, conforme expliquei anteriormente.

Considerações finais e download.

Bom, realmente no ano passado e inicio desse ano dediquei bastante tempo nesse software e toda a base do Framework desenvolvido, entretanto agora é hora de colher os frutos desse trabalho pois daqui para frente os novos projetos serão cada vez mais fáceis de desenvolver, uma vez que a base já está criada e estará com novas features a cada novo lançamento.

Se tudo der certo, em breve teremos um dd, ScanDisk e um Defrag, para compor e ampliar a suite MSX Disk Doctor.

Segue abaixo os links para download do código fonte e binários do MSXDUMP v0.2.

MSXDUMP v0.2 – Código Fonte (Old Skool Tech – SourceForge.net)

http://sourceforge.net/projects/oldskooltech/files/MSX/MSXDD/v0.2/msxdd-src.zip/download  (Zip)
http://sourceforge.net/projects/oldskooltech/files/MSX/MSXDD/v0.2/msxdd-src.lzh/download  (Lzh)

MSXDUMP v0.2 – Binários (Old Skool Tech – SourceForge.net)

http://sourceforge.net/projects/oldskooltech/files/MSX/MSXDD/v0.2/msxdd-bin.zip/download  (Zip)
http://sourceforge.net/projects/oldskooltech/files/MSX/MSXDD/v0.2/msxdd-bin.lzh/download  (Lzh)

[]’s
PopolonY2k

Print Friendly, PDF & Email

MSXDUMP v0.1 liberado no Sourceforge.net

Após um pequeno período de silêncio tanto nos projetos relacionados a retrocomputing quanto nos posts aqui no blog, volto com uma “novidade” que na verdade eu já deveria ter lançado no final do ano passado mas que infelizmente devido a diversos problemas e também pela “correria” de fim de ano, não pude fazê-lo.

É a segunda versão do editor de discos MSXDUMP, que, conforme expliquei no primeiro post sobre o software, é parte de uma suite maior, denominada MSXDD ou MSX Disk Doctor.

MSXDUMP 0.1 Main screen
MSXDUMP 0.1 Main screen

Pois bem, a principal característica da versão 0.1 do MSXDUMP é a capacidade de edição de setores de discos (floppy), com isso as opções de linha de comando, -d e -s, agora estão completamente funcionais, conforme descrevo abaixo.

-d <drive> Essa opção especifica a unidade de disco cujo os setores serão editados;

Ex: msxdump -d a:

-s <sector_number> Essa opção especifica onde o ponteiro de setores será posicionado inicialmente para edição através do MSXDUMP;

Ex: msxdump -d a: -s 100

Lembrando que ainda pretendo lançar uma ultima versão que adiciona a capacidade do MSXDUMP gerenciar setores em dispositivos IDE Sunrise-like, ou seja, Sunrise, Tecnobytes e ACVS.

WARNING:

Como a versão 0.1 do MSXDUMP passou por poucos testes, eu a considero mais instável em relação à versão 0.0, portanto muita cautela em sua utilização.

Enjoy the silence. 🙂

[]’s
PopolonY2k

Referência na internet

MSXDUMP v0.1 no OldSkoolTech (Sourceforge.net)
http://sourceforge.net/projects/oldskooltech/

MSXDUMP no OldSkoolTech (Download binário compactado – zip)
http://sourceforge.net/projects/oldskooltech/files/MSX/MSXDD/v0.1/msxdd-bin.zip/download

MSXDUMP no OldSkoolTech (Download binário compactado – lzh)
http://sourceforge.net/projects/oldskooltech/files/MSX/MSXDD/v0.1/msxdd-bin.lzh/download

MSXDUMP no OldSkoolTech (Download fontes compactado – zip)
http://sourceforge.net/projects/oldskooltech/files/MSX/MSXDD/v0.1/msxdd-src.zip/download

MSXDUMP no OldSkoolTech (Download fontes compactado – lzh)
http://sourceforge.net/projects/oldskooltech/files/MSX/MSXDD/v0.1/msxdd-src.lzh/download

Print Friendly, PDF & Email

MSXDUMP vrs 0.0, liberado no SourceForge.net

Amigos, após um bom tempo sem nenhum post no blog, finalmente retorno com novidades na área de software para o MSX.

Como muitos aqui já devem saber através do post feito no MSX.ORG, na semana passada liberei extra-oficialmente a primeira ferramenta do MSX Disk Doctor (MSXDD), suite essa que eu mesmo já havia citado aqui no inicio de 2011.

O MSXDD está sendo desenvolvido como uma suite de utilitários de gerenciamento de discos para MSX, compatível com diversos tipos de formatação, como FAT12, FAT16 e até FAT32, caso algum dia o MSXDOS seja capaz de manipular esse tipo de formatação. Isso é possível devido ao mesmo ser construido sob a base de um framework escalável, , escrito em Pascal e ASM, desenvolvido paralelamente ao desenvolvimento das ferramentas do MSXDD.

Na primeira versão do MSXDD, está disponível o MSXDUMP (vrs 0.0), que é um editor de arquivos e setores, compatível com os sistemas operacionais MSXDOS e MSXDOS2 e capaz de operar com floppy disks, bem como com dispositivos conectados a uma IDE Sunrise-like, sendo que nessa versão 0.0 inicial, apenas o suporte a edição de arquivos está presente.

MSXDUMP 0.0 Main screen
MSXDUMP 0.0 Main screen

Operação

Com uma interface tradicional característica da maioria dos editores de setores, o MSXDUMP tem alguns poucos (por enquanto) shortcuts que permitem ao usuário um completo controle sobre a edição de arquivos e setores.

Os shortcuts estão descritos logo abaixo:

  • SELECT – Alterna o modo de operação das setas direcionais. Quando em modo DISK, as setas direcionais podem avançar ou retroceder o ponteiro de setor/arquivo que está sendo editado. No modo EDIT, as setas direcionais podem se movimentar pelos dados exibidos na tela, permitindo assim a edição do buffer de memória que está sendo visualizado;
  • CTRL+S – Quando em modo DISK, essa combinação de teclas salva o conteúdo do buffer carregado;
  • CTRL+A – Quando em modo DISK, avança o ponteiro de setor/arquivo, carregando e exibindo os dados do setor lido. As direcionais UP e RIGHT, quando em modo DISK, tem a mesma função de CTRL+A;
  • CTRL+R – Quando em modo DISK, retrocede o ponteiro de setor/arquivo, carregando e exibindo os dados do setor lido. As direcionais DOWN e LEFT, quando em modo DISK, tem a mesma função de CTRL+R;
  • Direcionais UP, DOWN, LEFT, RIGHT – Quando em modo EDIT, podem ser utilizadas livremente para posicionar o cursor no dado a ser modificado;
MSXDUMP 0.0 help screen
MSXDUMP 0.0 help screen

Até o final desse ano pretendo lançar mais duas versões do MSXDUMP, adicionando o suporte a edição de setores para floppy disks e por ultimo adicionar suporte a dispositivos  com capacidade suficiente para suportar FAT16, nesse caso dispositivos compatíveis com IDE Sunrise-Like.

Por enquanto deixo abaixo os arquivos, já devidamente liberados no repositório do projeto Old Skool Tech, que está hospedado no SourceForge.net.

Binários (LZH)
http://sourceforge.net/projects/oldskooltech/files/MSX/MSXDD/v0.0/msxdd-bin.lzh/download

Binários (ZIP)
http://sourceforge.net/projects/oldskooltech/files/MSX/MSXDD/v0.0/msxdd-bin.zip/download

Fontes (LZH)
http://sourceforge.net/projects/oldskooltech/files/MSX/MSXDD/v0.0/msxdd-src.lzh/download

Fontes (ZIP)
http://sourceforge.net/projects/oldskooltech/files/MSX/MSXDD/v0.0/msxdd-src.zip/download

Até lá, outras ferramentas poderão ser adicionadas à suite do MSXDD, talvez um DD.

[]’s
PopolonY2k

Referência na internet

Anuncio do MSXDUMPP 0.0 (MSX.ORG)
http://www.msx.org/news/en/msxdump-0 

Software Suite (Wikipedia)
http://en.wikipedia.org/wiki/Software_suite

Anuncio do Old Skool Tech & MSXDD (PopolonY2k Rulezz)
http://www.popolony2k.com.br/?p=377

FAT12 (Wikipedia)
http://en.wikipedia.org/wiki/Fat12

 FAT16 (Wikipedia)
http://en.wikipedia.org/wiki/Fat12#FAT16

FAT32 (Wikipedia)
http://en.wikipedia.org/wiki/Fat12#FAT32

Turbo Pascal (Wikipedia)
http://pt.wikipedia.org/wiki/Turbo_Pascal

ASM Z80 (CodeWorld)
http://codeworld.wikidot.com/asm:z80

MSXDOS (Wikipedia)
http://en.wikipedia.org/wiki/MSX-DOS

Floppy Disk (Wikipedia)
http://en.wikipedia.org/wiki/Floppy_disk

Análise da Interface ATA-IDE – Tecnobytes
http://www.popolony2k.com.br/?p=409

Old Skool Tech (SourceForge.net)
http://sourceforge.net/projects/oldskooltech/

SourceForge.net
http://sourceforge.net/

Print Friendly, PDF & Email

Grupo de desenvolvimento de software e coisas legais para MSX

Após um bom tempo conversando com diversos amigos de listas de discussão para MSX, principalmente na MSX-All e MSXBR-L, finalmente coloquei em prática a idéia de criar uma lista específica para o desenvolvimento de software para MSX e outras plataformas old skool.

MSX trademark

Em conversa com o amigo Nivardo Cavalcanti, principal incentivador da nova lista, chegamos a uma idéia de que a mesma deveria tratar basicamente de desenvolvimento de novos projetos de software para o MSX, principalmente porque hoje temos, finalmente no Brasil, muita coisa legal em hardware, como placas de rede baseadas em Obsonet, placas de som baseadas em Moonsound, placas gráficas baseadas na V9990, IDE Sunrise-like e apesar de tudo isso, a quantidade de software para todas essas tecnologias é quase nula.

Então a idéia da lista é estudar toda a camada de software embutida em cada uma dessas tecnologias, documentar e difundir o conhecimento sobre esses e outros novos hardwares e por ultimo criar peças de software, ou bibliotecas, para controlar cada um desses dispositivos, possibilitando assim a criação de novos softwares, do mesmo nível dos existentes em outras plataformas mais modernas.

Com isso, na data de hoje, estou anunciando a criação do Grupo de desenvolvimento de software e coisas legais para MSX e afins, que está no Google Groups no endereço abaixo:

http://groups.google.com/group/gdmsx

Espero a visita e inscrição de todos os que são entusiastas da tecnologia MSX ou qualquer outra plataforma retrô, ou até mesmo aqueles que gostam de hacking, arduino ou aos que são simples entusiastas de tecnologia em geral, sintam-se em casa.

Arduino Uno logo

Qualquer discussão sobre tecnologias, impossíveis ou não, podem e devem ser fomentadas no grupo. Em nosso grupo, nunca peça desculpas por alguma pergunta que você acredita ser simples ou idiota demais, pois certamente não é simples nem idiota, ou seja, toda pergunta é válida e importante, pois muitas vezes perdemos a oportunidade de desenvolver excelentes idéias por medo de expô-las.

Bom, é isso, vida longa ao novo Grupo de desenvolvimento de software e coisas  legais para MSX e afins.

[]’s
PopolonY2k 

Print Friendly, PDF & Email

Casa dos Nerds

Quem visita o meu blog frequentemente já deve ter percebido que desde o último mês tenho 2 blogs parceiros, que podem ser vistos na lateral da página, sendo o primeiro o MSX Resources, conforme notificado nesse post aqui, e o segundo o blog Casa dos Nerds.

Casa dos Nerds

Bem, o blog Casa dos Nerds é um de meus preferidos desde que o conheci, inclusive já citei sobre o mesmo no último post da série Lata Velha MSX, sendo parte de minha fonte particular de consulta sobre retrocomputing e coisas legais, sendo assim eu não poderia deixar de fazer um post apresentando esse excelente blog parceiro.

Se você gosta de jogos, tecnologias retrô, dicas e reviews sobre novos e velhos dispositivos  e também sobre computação em geral, certamente se sentirá em casa no Casa dos Nerds :).

[]’s
PopolonY2k

Print Friendly, PDF & Email