Você está na página 1de 13

Transferindo arquivos de e para

sua HP48G/GX via HyperTerminal

Prefácio
Há muito tempo venho notado uma certa escassez de informações mais completas
e em português a respeito de como transferir arquivos do computador para a HP48G/GX
e vice-versa. Resolvi então escrever esse tutorial sobre como fazer a comunicação
HP48/PC utilizando um programa que aposto que a maioria das pessoas nem sabem que
tem (ou sabem que tem, mas não sabem para que).
Existem muitos outros programas e formas de se transferir arquivos entre HP48
e PC. Talvez eu deva publicar mais tarde outros tutoriais sobre esses programas.
Gostaria também de lembrar que esse tutorial não é e nem poderia ser
completo. Sugiro que seja lido por completo, pois algumas partes são
inter-relacionadas umas com as outras.
Esse tutorial foi escrito numa máquina com o Windows 98SE. Pessoas que
estejam utilizando versões antigas (Win95, Win95OSR2 ou Win98) ou mais recentes
(WinMe, WinXp) poderão notar algumas diferença, pois as versões do HyperTerminal
parecem ser também diferentes.
Esse tutorial pode ser distribuído livremente, bastando apenas que não seja
modificado e que os créditos sejam devidamente atribuídos a mim.
Desse modo, sinta-se livre para entrar em contato comigo através dos
endereços abaixo para quaisquer dúvidas, críticas ou sugestões.

Márcio Ferreira
Engenheiro Químico
E-mail: www.engenheiroquimico.cjb.net

Introdução
A HP48G/GX (a partir de agora referenciada somente como HP48) é uma
calculadora incrível, pois além de permitir ser programada, possui também uma porta
serial compatível com os protocolos RS-232 (padrão universalmente utilizado) para a
transferência de dados entre ela e outro dispositivo qualquer (coletores de dados,
sistemas de posicionamento global – GPS, osciloscópios, multímetros) enfim, uma
infinidade de dispositivos. Deste modo, as possibilidades são ilimitadas.
Assim, esse tutorial se concentra na transferência de arquivos entre HP e PC
utilizando-se um programa chamado HyperTerminal.

Instalando o HyperTerminal
O Windows (da Micro$oft, argh!) traz vários aplicativos extras chamados de
Acessórios. Esses aplicativos podem ser adicionados/retirados durante a instalação
do Windows, mas como a maioria das pessoas que instalam o Windows utilizam a opção
Típica da Instalação, o aplicativo HyperTerminal é quase sempre instalado. Para
você verificar se você possui o HyperTerminal instalado em sua máquina, clique no
menu Iniciar, depois em Programas, Acessórios e finalmente escolha o menu
Comunicações.
Como podemos verificar, neste exemplo não temos o HyperTerminal instalado.
Caso você tenha ele instalado na sua máquina, pule para o tópico seguinte: Algo que
você precisa saber. Para quem não tem o HyperTerminal instalado, para adicioná-lo,
vá até o Painel de Controle e escolha Adicionar/Remover Programas e na janela de
diálogo que se abre, clique na guia Instalação do Windows. Na lista Componentes (se
não me engano, no Win95 é Componentes Instalados), clique em Comunicações e depois
clique no botão Detalhes. Na nova caixa de diálogo que se abre, marque a opção
HyperTerminal.
Clique em OK e novamente em OK. Será então instalado o HyperTerminal e
provavelmente a instalação irá pedir o CD de instalação do Windows. Normalmente os
montadores de computador enviam uma cópia em CD do Windows ou o copiam no seu HD
num diretório em C:\ com o nome de WIN98 ou coisa do gênero.
Se tudo correr bem agora o HyperTerminal estará instalado corretamente no
menu Comunicações, como pode ser visto na figura a seguir.

Algo que você precisa saber


Antigamente, na época em que computador era uma coisa muito, mas muito cara
mesmo, o que as grandes empresas, universidades ou qualquer um que quisesse um
sistema computacional distribuído faziam era o seguinte: comprava-se um grande,
caro e poderoso mainframe e compartilhava o seu poder computacional entre os
usuários através de terminais remotos (mais baratos), que eram pequenos
dispositivos providos simplesmente de um monitor, teclado e uma CPU limitada a
transmitir as entradas do teclado (ou outro dispositivo de entrada) para o
mainframe e receber as respostas do mainframe e mostrá-las no monitor. Assim, todo
o processamento seria feito no mainframe e o terminal era considerado um ‘terminal
burro’, pois tinha um ínfimo poder de processamento. Esse tipo de arquitetura (se é
que possamos chamar assim) era também utilizada para se acessar dados de um
computador remoto, através de um modem, cabo, etc.
O HyperTerminal, então, nada mais é que um programa que emula um terminal
para que você possa acessar um computador remoto. Aliás, as primeiras BBS eram
acessadas dessa forma, ou seja, com um programa emulador de terminal você trocava
mensagens, baixava arquivos, acessava chats, etc.
Mas então como é que eu vou usar o HyperTerminal para transferir arquivos do
PC para a HP48 e vice-versa? Por ser um terminal que simplesmente envia e recebe
dados, você pode fazer com que ele transfira arquivos remotamente com qualquer
protocolo que você quiser. Quer dizer, pelo o menos com os protocolos que vêm
embutidos com o programa. E adivinhem só: o HyperTerminal possui suporte tanto para
Kermit quanto para XModem, que são os dois protocolos suportados pela HP48.
Na lista Conectar usando: você deverá instruir o HyperTerminal a direcionar a
conexão para a porta serial na qual a sua HP48 está conectada. No exemplo, eu
escolhi Direcionar para Com1, pois minha HP48 está conectada na porta COM1 do meu
computador. Clique em OK.
Agora iremos configurar a porta serial em si. Na caixa de diálogo
Propriedades de COMX (onde o X é o número da porta serial utilizada), escolha os
seguintes parâmetros:
- Bits por Segundo: 9600
- Bits de Dados: 8
- Paridade: Nenhuma
- Bits Parada: 1
- Controle de Fluxo: Nenhum
Depois veremos que esses valores devem coincidir com os parâmetros na HP48,
para que possa haver comunicação entre a HP48 e o PC.
Feche a caixa de diálogo clicando em OK.
Pronto! O HyperTerminal agora está devidamente configurado para transferir ou
receber arquivos da sua HP48.

Uma palavrinha sobre protocolos


Um protocolo é um conjunto de regras preestabelecidas que permitem uma
comunicação eficaz entre duas entidades. A HP48 possui suporte para dois
protocolos: o Kermit e o XModem. A diferença básica entre eles é a seguinte:

Kermit:
- Permite a transmissão automática dos nomes do arquivo
- Através da HP48, permite a transmissão de vários arquivos ao mesmo tempo
- É mais lento que o XModem

XModem:
- É muito rápido
- Não permite transmissão nem de vários arquivos nem transmissão automática do nome
do arquivo

Eu particularmente prefiro utilizar o XModem, devido a sua alta velocidade.


Comparativamente, um arquivo é transferido com o protocolo Kermit à uma velocidade
média de 2200 bps (bits por segundo1) enquanto que, utilizando o protocolo XModem,
essa mesma taxa é de 7280 bps. Comparativamente, um mesmo arquivo de 48967,5 bytes
(na HP48) transmitido em Kermit demora 3 minutos e 55 segundos enquanto que o mesmo
arquivo, utilizando-se o protocolo XModem, demora apenas 1 minuto e 7 segundos2.

Configurando Sua HP48


Existem vários métodos de se configurar sua HP48, e eu mostrarei aqui o meio
mais simples e fácil.
Na sua HP48, pressione [seta verde] depois [1]. Você verá o menu I/O:

Selecione o item Transfer...:

Essa tela nos apresenta várias configurações para a transmissão de dados.


Selecione os valores de acordo com o seguinte:
PORT: Wire (transmissão via cabo).

1
Mesmo que se configure a HP48 para trabalhar com 9600bps, a taxa de transmissão média depende do protocolo, pois este
insere bytes para a correção de erros, enquadramento, numeração de pacotes, etc.
2
Esse é o tempo da transmissão. Mais adiante veremos um problema com o HyperTerminal que faz com que esse tempo
seja maior.
TYPE: Escolha Kermit para transmitir utilizando o protocolo Kermit ou XModem
para transmitir com protocolo Xmodem (óbvio, não?).
FMT: Bin (Binário) ou ASCII. XModem só aceita Binário. No protocolo Kermit,
especifica qual o formato em que os dados serão enviados. Dados em Binário resultam
em taxas de transferências maiores, mas a HP48 não irá decodificar arquivo que
chegará pela porta serial. Modo ASCII é requerido para transferir certos arquivos
que foram salvos utilizando este formato e esse arquivo será decodificado pela
HP48. Veremos mais a frente qual deles escolher.
XLAT: Indiferente para XModem. Em Kermit, especifica qual tipo de tradução
será utilizada para os caracteres cujos códigos sejam acima de 128 (ASCII
estendido). Veremos mais a frente qual deles escolher.
CHK: Indiferente para XModem. Especifica o checksum para Kermit. Veremos mais
a frente qual deles escolher.
BAUD: Utilize 9600 bps.
PARITY: Utilize None.
_OVRW: Marque para sobrescrever variáveis locais caso se receba um arquivo
com o mesmo nome.
Os parâmetros FMT, XLAT e CHK são parâmetros um tanto quanto empíricos. Eu
costumo usar Bin, Newl e 3, respectivamente. Mas quando você, ao invés de receber o
arquivo devidamente, obter uma string do tipo "HP48...", você talvez consiga
transferir o arquivo corretamente utilizando a opção ASCII. E se você receber a
mensagem “Invalid Caracter” (ou coisa do gênero) quando estiver recebendo um
arquivo, mudar o parâmetro XLAT para uma das outras opções talvez corrija o
problema. Na maioria das vezes esses parâmetros que eu uso são os corretos.

Transferindo arquivos via Kermit


Transferir arquivos via Kermit é a maneira mais fácil e descomplicada, pois
permite receber/transmitir vários arquivos ao mesmo tempo, além de transferir o
nome dos mesmos automaticamente; porém, é também a maneira mais lenta que existe.
Para transferir com o protocolo Kermit, na tela TRANSFER, escolha Kermit no item
TYPE.

Transmitindo do PC para a HP48:


No HyperTerminal, clique na opção Enviar Arquivo... do menu Transferir. Na
caixa de texto Nome do Arquivo, digite o nome do arquivo a ser enviado, ou
escolha-o, utilizando o botão Procurar... ao lado. É importante lembrar que a HP48
não tem as mesmas regras de nomeação de arquivos que o Windows. Por exemplo, você
não pode enviar nomes de arquivos que contenham espaços. Outra: se sua HP48 estiver
selecionada para utilizar a vírgula como separador de casas decimais e você enviar
um arquivo com extensão (.lib, .hp, etc.) ela dará um erro de nome inválido. A
melhor saída para não ter problemas é renomear o arquivo com um nome que contenha
somente letras, sem números ou símbolos e, de preferência, sem extensão.
Na lista Protocolo, escolha Kermit.

Na sua HP48, vá até a tela TRANSFER ([seta verde], [1] depois item
Transfer...) e escolha a opção RECV (estou supondo que você já ajustou os
parâmetros nessa tela segundo o tópico anterior). Sua HP48 irá mostrar a seguinte
mensagem, indicando que está a espera do arquivo:
Agora volte ao HyperTerminal e clique no botão Enviar. Uma tela mostrando o
andamento da transmissão será mostrada:

Se tudo der certo, o arquivo será transmitido para a sua HP48 e será salvo no
diretório corrente da HP48.

Transmitindo da HP48 para o PC:


Para transferir arquivos da sua HP48 para o PC, basta ir até a tela TRANSFER
e, na caixa NAME: clicar em CHOOS (CHOOSE) e escolher Local Vars (variáveis
locais). Isso abrirá um menu com todas as variáveis do diretório corrente da sua
HP. Basta então selecionar a variável desejada (na HP48 os arquivos são chamados de
variáveis) e clicar em CHK para marcá-la para transferência. Você também pode
transferir um diretório inteiro. Note que você pode selecionar várias variáveis
para transferência ao mesmo tempo. Se pressionar CHOOS enquanto estiver na lista de
variáveis no diretório corrente, outra lista se abrirá e você poderá selecionar um
outro diretório de trabalho, contudo não é possível trasferir variáveis que estejam
em diretórios separados. No exemplo a seguir, vamos escolher o jogo DIAMONDS que
está no diretório JOGOS, e o diretório atual é o HOME.
Agora, no HyperTerminal, escolha a opção Receber Arquivo... do menu
Transferir. Escolha o diretório (pasta) onde deverá ser salvo o arquivo recebido,
digitando o caminho na caixa Colocar o arquivo recebido na seguinte pasta: ou então
escolhendo o diretório clicando em Procurar... Selecione Kermit na lista Utilizar
protocolo receptor:. Clique em Receber.

Uma janela de andamento da transmissão será mostrada.


Na HP48, pressione o menu SEND. Se tudo estiver OK, o arquivo deverá ser
transferido para o diretório escolhido no HyperTerminal.

Transferindo arquivos via XModem


Transferir arquivos via XModem é um misto de alegria e tristeza. Alegria pois
velocidade de transmissão, se comparado com o Kermit, é muito maior. Tristeza
porque você só poderá enviar um arquivo por vez e ainda terá que digitar o nome do
arquivo na HP48. Mas convenhamos: se você possui uma HP48 com 128KB de RAM e quer
transferir jogos ou programas REALMENTE BONS, você acabará achando XModem uma
maravilha.
Para utilizar o XModem como protocolo, na tela TRANSFER escolha XModem no
item TYPE.

Transmitindo do PC para a HP48:


No HyperTerminal, escolha a opção Enviar Arquivo... do menu Transferir.
Escolha o nome do arquivo, do mesmo modo se tivesse transferindo em Kermit. Na
lista Protocolo escolha XModem. Clique em Enviar.

Na HP48, na tela TRANSFER (com o item TYPE devidamente selecionado para


XModem) no campo NAME, digite um nome para o arquivo a ser recebido. Clique em
XRECV.
Também aqui será mostrada uma janela de andamento da transmissão. Se tudo
correr bem o arquivo será salvo no diretório atual da HP48.

Se você for um pouco observador, verá que nessa janela existe um campo
chamado Taxa de transferência:. Observe também a diferença no valor da taxa de
transferência quando se usa Kermit para quando se usa XModem. Espantosa a
diferença, não?
Um outro fato que deve ser notado é que a transferência às vezes não se
inicia no mesmo momento em que se dá o comando XRECV na HP48 ou o comando Enviar no
computador. Pelo o menos na minha máquina isso ocorre quase sempre.

Transmitindo da HP48 para o PC:

Para transferir variáveis da HP48 para o PC, no HyperTerminal escolha a opção


Receber Arquivo... do menu Transferir. Escolha o diretório onde será salva a
variável da mesma forma que o exemplo utilizando o protocolo Kermit. Na lista
Utilizar protocolo receptor: escolha XModem.
Clique em Receber. Uma janela se abrirá indicando que você digite o nome do
arquivo, visto que o protocolo XModem não o envia automaticamente. Digite o nome
desejado para o arquivo.

Na HP48, vá até a tela TRANSFER e escolha a variável a ser transmitida, do


mesmo modo que o exemplo utilizando o protocolo Kermit. Clique em XSEN.

Volte ao HyperTerminal e clique em OK.


Agora é que acontece um fato interessante: na minha máquina, pelo o menos, a
transferência demora muito para ser iniciada, não importa se você inicia primeiro o
processo na HP48 ou no computador. Tentei modificar alguns parâmetros, mas nada
parece dar certo.
Após algum tempo, a transferência será iniciada e uma janela mostrará o
andamento da transferência.

Se tudo ocorrer bem, o arquivo será salvo no diretório escolhido.

Conclusão
Como pudemos ver, transferir arquivos de e para a HP48 é muito fácil. Não é
necessário programas absurdamente complexos e nem configurações difíceis e
complicadas. Está certo, existe outros programas de transferência, como o
hpExplorer, que diga-se de passagem apresenta uma interface super interessante, mas
o programa tem um problema muito grande com bugs (pelo o menos eu parei de usá-lo
porque a versão que eu usava estava insuportavelmente cheia de bugs). Assim, acho
que o HyperTerminal é uma solução com os recursos necessários e com boa
funcionalidade.

Você também pode gostar