Esta página contém informações sobre a ferramenta de edição e depuração de programas para calculadoras RPN.
Click here to go to the English version.
No momento, esta ferramenta existe apenas para a versão Web da calculadora. No futuro, ela será adicionada aos apps Android e iOS. No momento, você pode editar programas no computador e enviar para o app.
Este guia presume que você já tem alguma experiência na operação da calculadora. A ferramenta procura ser o mais intuitiva possível para o usuário que já conhece o jeitão da calculadora RPN.
Se restar alguma dúvida, entre em contato conosco via seção de comentários, no fim desta página.
A ferramenta possui quatro setores principais: editor de programa, botões de comando, estado da calculadora, e armazenamento.
O estado da calculadora, exibido na coluna central, é composto por diversos registradores: pilha, registradores financeiros ou científicos, ponteiro de instrução, anunciadores, etc.
Os registradores de armazenamento, acessíveis via STO e RCL, são visíveis na coluna direita. Nas calculadoras financeiras, esses registradores também armazenam fluxos de caixa (CFj, Nj). Além disso, alguns registradores são reutilizados pelas funções estatísticas, conforme legenda.
Fique à vontade para operar a calculadora e ver o que acontece com os registradores exibidos pela ferramenta. Sugerimos abrir as telas lado a lado, em janelas separadas. Além de ser mais ergonômico, a ferramenta funcionará melhor. (*)
Os valores dos registradores são exibidos com todas as casas decimais e sem formatação. O separador de milhar e as casas decimais só dizem respeito ao display da própria calculadora.
Os botões de comando são atalhos para facilitar a execução e depuração de programas. O botão Run/Stop da ferramenta é análogo à função R/S da calculadora, e o botão Step é análogo à função SST.
Falta falar do principal: o editor de programa.
O editor de programa, na coluna esquerda da tela, reflete o conteúdo atual da memória de programação, e também permite sua edição.
Você ainda pode usar o modo P/R da própria calculadora para digitar um programa, e o editor reflete imediatamente as alterações. Mas é claro que usar o editor é mais fácil e mais produtivo.
O editor possui quatro colunas:
A linha azul no editor, que destaca uma linha, corresponde ao valor do registrador IP ("instruction pointer"). A instrução em destaque ainda não foi executada; ela será a próxima a ser executada assim que o programa for posto a rodar (botão Run/Stop, R/S). Ou quando você der um passo (botão Step, SST).
O programa pode ser editado ou via calculadora (função P/R) ou via ferramenta; mas não é permitido usar os dois métodos ao mesmo tempo. Quando a calculadora entra em modo de programação P/R, são desligadas todas as funções de edição na ferramenta. Também não é permitido editar um programa enquanto ele estiver em execução.
Na figura acima, vemos que a instrução STO x 0 programada na posição 01 é exibida de duas formas no editor: pelo código numérico 44.22.00 (opcode), e pelo nome legível (mnemônico). Você pode digitar um programa nas duas formas. A escolha é sua.
As calculadoras RPN exibem as instruções usando um formato numérico, que batizamos de "opcode". Os números de um opcode correspondem aos números das teclas pressionadas para alcançar aquela instrução.
Por exemplo, a instrução ENTER tem opcode 36. Esse opcode possui apenas um número, pois apenas uma tecla precisa ser pressionada para executar essa operação.
Já a instrução LSTx tem opcode 43.36, que representa uma sequência de duas teclas digitadas: modificador g (código 43) seguido de ENTER (código 36).
Para digitar ou alterar uma instrução em formato de opcode, basta clicar sobre o campo. Durante a digitação, duas dicas são exibidas, nas colunas central e direita.
A dica da coluna central exibe uma lista de opcodes válidos. Conforme os números vão sendo digitados, a lista vai sendo filtrada. Você pode clicar numa instrução da lista para inserí-la no programa, economizando digitação.
A dica da coluna direita é a grade de teclas da calculadora. Passe o mouse sobre uma tecla para obter uma lista de todas as instruções relacionadas àquela tecla.
Fazendo uso dessas dicas, você nunca precisará decorar instruções. Basta ir procurando o que precisa conforme prossegue na codificação do programa.
Utilize as teclas de navegação usuais (Enter, Tab, Shift-Tab, setas) para navegar pelas linhas e colunas do editor.
Esta ferramenta atribui apelidos humanamente legíveis a cada instrução da calculadora. Denominamos esses apelidos de "mnemônicos".
A inserção e edição de mnemônicos funciona da mesma forma que os opcodes. Também são exibidas dicas nas colunas central e direita. A diferença é que os mnemônicos são mais naturais, mais fáceis de lembrar, e fica mais fácil "ler" um programa para saber o que ele faz.
A digitação de mnemônicos não é sensível à caixa (tanto faz inserir LSTX, LSTx e lstx). O editor corrige automaticamente para a forma canônica (no caso, LSTx).
Tanto quanto possível, os mnemônicos baseiam-se nos rótulos das teclas da calculadora. Assim sendo, a maioria dos mnemônicos vem naturalmente: ENTER, LSTx, CHS, os dígitos numéricos.
Algumas teclas apresentam símbolos não digitáveis. Por exemplo, a instrução R↓ possui mnemônico "R down" pois não há forma simples de digitar uma seta para baixo num teclado comum.
Pelo mesmo motivo, o mnemônico da raiz quadrada é SQRT, o mnemônico da multiplicação é a letra X, e o da divisão é a barra /.
Em outros casos, preferimos substituir caracteres sobrescritos por nomes mais explícitos. Exemplos: o mnemônico de ex é EXP; o mnemônico de Yx é POWER.
Lembrando novamente que você não precisa decorar mnemônicos; basta usar as dicas apresentadas pelo editor durante a digitação. A coluna central lista todos os mnemônicos disponíveis, enquanto a coluna direita exibe os mnemônicos ligados a uma tecla, basta passar o mouse por cima da tecla de interesse.
Algumas instruções só podem ser usadas manualmente, não podem ser programadas. Exemplos: CLEAR PREFIX e CLEAR REG. Estas não aparecem nas dicas, nem há mnemônicos para elas.
O editor não permite inserir uma instrução inválida na memória de programação. Se o opcode ou o mnemônico for inválido, a instrução é convertida para 00 (dígito 0).
De forma semelhante, ao pressionar o botão de inserção (sinal de mais, verde), a nova instrução inserida é 00 por padrão.
Nas calculadoras RPN, a linha zero do programa (IP=0) tem tratamento especial. Ela não faz nada e não pode ser editada. Assim que o registrador IP assume o valor zero, o programa pára. Tanto assim que, na HP-12C e na HP-10C, a instrução GTO 00 é utilizada para encerrar o programa.
Nos tipos 12C e 10C, o comprimento do programa é sempre a memória toda. Por padrão, a memória "vazia" é inteiramente preenchida com GTO 00.
Nos tipos 11C, 15C e 16C, o comprimento do programa é variável. A região desocupada da memória fica realmente vazia. Atingir o final do programa tem o mesmo efeito da instrução RTN: retornar de uma subrotina, ou fazer IP=0 (e parando o programa) se não estiver dentro de uma subrotina.
Não é possível inserir instruções "no vácuo". Por exemplo, na figura acima, não seria possível inserir instruções na posição 17 ou adiante. O editor só permite digitar na linha 16, adjacente ao programa que já existe. Se a memória estivesse completamente limpa, a digitação teria de começar obrigatoriamente pela linha 01.
A memória da calculadora, incluindo o programa e todos os registradores, pode ser salva, compartilhada e recarregada na forma de arquivos de texto.
Você pode guardar os arquivos para formar sua biblioteca de programas, e/ou compartilhá-los com outras instâncias da calculadora. Tanto a versão Web quanto os apps para celular são capazes de salvar, carregar e compartilhar memórias.
Na versão Web, há três botões: salvar memória (Save Memory), carregar arquivo de memória (Load Memory), e compartilhar memória (Share Memory). Este último botão funciona apenas no navegador Safari.
Para saber como compartilhar memórias no Android (app Touch RPN), consulte esta página.
Para saber como compartilhar memórias no iOS (app Touch RPN para iPhone), consulte esta página.
(*) A ferramenta comunica-se com a calculadora através do recurso BroadcastChannel. Alguns browsers limitam a velocidade deste canal quando a comunicação acontece entre duas abas de uma mesma janela. Esta limitação pode fazer a ferramenta ficar lenta ou mesmo exibir informações atrasadas.
O problema não acontece na comunicação entre janelas separadas, por isso recomendamos que a calculadora e a ferramenta estejam em janelas separadas, lado a lado.