Transferência de
arquivos usando protocolo XMODEM
A transferência de
arquivos entre computadores é hoje em dia algo muito
comum. Hoje fazemos isso diariamente sem mesmo
percebermos ao escutarmos uma música via Internet,
assistirmos um filme, ou quando jogamos via web,
ou quando enviamos/recebemos um arquivo através de e-mail,
WhatsApp, estamos "transferindo" um arquivo
(alguns via streaming) de um servidor para nossos
PC's ou celulares, ou vice-versa.
Porém isso nos primórdios da informática não era algo tão comum. Os computadores não eram compatíveis entre si, e a internet sequer existia. Mesmo assim as transferências entre arquivos aconteciam, principalmente usando a porta RS-232 localmente e modem's para transferências a longas distâncias, nesse caso com auxílio de uma linha telefônica. E foi assim que durante a década de 1970 e 1980, muitos usuários transferiram arquivos das famosas "BBS's" (Buletim Board Service). E eu usei muito esse protocolo ainda durante a década de 1990, quando ainda haviam algumas BBS's tentando sobreviver bravamente após o surgimento da Internet no Brasil. Motivação Há um tempo atrás eu desenvolvi um cartucho RS-232 para usar no meu MSX. Na época para testar eu preparei um pequeno programa "Terminal" que me permitia que o MSX "conversasse" com outro MSX, PC ou outro dispositivo com porta RS-232. A aplicação é legal e me lembra dos tempos em que eu usava aplicativos parecidos para acessar as BBS's com auxílio de um modem US Robotics 14400bps. Mas faltava uma aplicação mais prática e a transferência de arquivos entre máquinas me pareceu algo legal e útil para mim. Agora, após gerar um arquivo compilado via SDCC/Fusion-C (cross compiler) ou mesmo um arquivo BASIC usando o OpenMSX ou um arquivo .BIN através do Pasmo eu não precisaria gravar o resultado num disquete para em seguida usar isso no MSX. Bastaria enviar o arquivo para o MSX usando a RS-232!!! Tá, para muitos algo desnecessário e/ou sem sentido. Mas enquanto uns se divertem criando novos jogos, eu me divirto criando esse tipo de aplicação. Cada um na sua não é mesmo?! Tem espaço para todos! O Protocolo XMODEM O protocolo XMODEM foi criado em 1977 por Ward Christensen ainda no período do CPM/80. Ao longo dos anos o protocolo sofreu algumas modificações na tentativa de melhorar sua segurança, principalmente no que diz respeito a verificação da integridade dos dados. O protocolo funciona dividindo, na origem, o arquivo a ser transmitido em "pacotes" com a remontagem dos mesmos no destino. Para isso alguns bytes de controle são inseridos no pacote. No padrão XMODEM 128 os pacotes têm 128Bytes e no padrão XMODEM 1024 têm 1kByte (o que diminui consideravelmente o número de pacotes finais na transmissão/recepção). Inicialmente a verificação da integridade do pacote era feita através de um simples checksum (somatória de todos os bytes do pacote, com resultado usado apenas dos 8 bits menos significativos). Esse método não é muito seguro, pois é possível obter o mesmo resultado com combinações diferentes de bytes no pacote. Assim, uma das melhorias propostas e adotadas foi a adoção de um CRC (Cyclic Redundancy Check) tipo CRC CCITT 0x1021, onde através da aplicação de um polinômio (x16 + x12 + x5 + 1) é possível chegar a um valor de 16bits sempre diferente, já que nesse caso a posição dos bytes influência diretamente no cálculo. Formato do Pacote XMODEM 128 CRC Exemplo de transmissão/recepção no protocolo XMODEM Conclusão O cenário nacional e também internacional para o MSX está em plena "efervescência"! Algumas pessoas/grupos estão desenvolvendo jogos, compiladores, cartuchos com as mais variadas funções e claro, aplicações das mais diversas. O que é muito legal, já que isso garante para nós amantes do MSX novidades com uma constância muito interessante. O MSX vive!!! |
Copyright deste conteúdo reservado para Márcio José Soares e protegido pela Lei de Direitos Autorais LEI N° 9.610, de 19 de Fevereiro de 1998. É estritamente proibida a reprodução total ou parcial do conteúdo desta página em outros pontos da internet, livros ou outros tipos de publicações comerciais ou não, sem a prévia autorização por escrito do autor. |