Escolar Documentos
Profissional Documentos
Cultura Documentos
SUMRIO
O AMBIENTE
EMULADOR EMU48 HP48 PAD
1
1 3
4
4 4 4 4 4 4 4 4 5 5 5 5 5 5 6 6 6 6 6 7 7 7 8 9 9 9 10 10 11 11 11 11 12 12 12 13 13 13 14 14 14 14 15 15 15
16
O AMBIENTE
EMULADOR EMU48 Esta uma tela de trabalho do Emu48i, uma HP48G/GX perfeitaii, com alguns toques a mais!! Alm do mouse, voc pode usar o teclado para acionar o emulador. As teclas da calculadora que possuem uma letra tm suas correspondentes no teclado do PC, assim como ., ), @, # e !. Para as teclas +, -, * e / devem ser utilizadas as correspondentes do teclado numrico. As setas direcionais do teclado funcionam tambm, correspondendo as teclas PKQR. As teclas restantes tm a seguinte correspondncia: Tecla da HP48G/GX ; ^ % ` Tecla do PC
e l t `
Inicia uma nova sesso do Emu48 Abre uma sesso Salva a sesso corrente Copia a tela Reseta a calculadora Configuraes Troca o script 1999 Pablo Saldo
Carrega um arquivo na pilha Salva em um arquivo externo Diminui o contraste Aumenta o contraste Tela de Copyright Todos estes botes tm seus correspondentes nos menus. Os nico submenus ausentes nos botes so Save As... e Backup
Calculadora HP48G/GX - Programador - Bsico Uma caracterstica importante do emulador a possibilidade da comunicao de dois emuladores, em computadores separados, ou entre um emulador e uma HP48G/GX! Para isso, nas configuraes do emulador necessrio indicar por qual porta serial de comunicao (COM), ser feita a transmisso/recepo dos dados. A porta mais comum a COM2, j que a COM1 geralmente utilizada pelo mouse, e as portas COM3 ou COM4, pelo modem. A comunicao entre emuladores feita atravs de um cabo serial nulo, enquanto que a comunicao entre um emulador e uma HP48G/GX feito atravs de um cabo especial. O emulador permite tambm a simulao de cartes de memria, atravs de um programa externo chamado CREATE.EXE, que permite utilizarmos um carto de at 4MB de memria (o sonho de todo usurio)! A porta 1 j automaticamente disponibilizada com 128KB. O emulador s trabalha com arquivos no formato binrio, por isso necessrio, as vezes, converter-se um arquivo ASCII. Isso pode ser feito pelo programa ASCTOBIN (A2B), presente dentro do ambiente do emulador.
Calculadora HP48G/GX - Programador - Bsico HP48 PAD O HP PAD um editor de textos especial para produzir textos que iro ser carregados na HP48G/GX. Nele podem ser confeccionados tanto texto, quanto programas. Seu funcionamento semelhante ao dos editores de texto mais comuns, com opes para recortar, colar, desfazer, trabalho em mltiplas janelas, lista de arquivos recentes, etc. Seu diferencial est nas caractersticas que o fazem ideal para trabalhos de digitao para a HP48G/GX: R Cria novos arquivos j com o cabealho dos arquivos de programas para a HP48G/GX, %%HP: T(1)A(D)F(,);. Esse cabealho necessrio para a calculadora identificar o arquivo como um programa; R Barra de ferramantas com caracteres especiais e lista de comandos da HP48G/GX. O problema de outros editores que os smbolos da HP48G/GX no correspondem aos smbolos normais destes editores; R Opo de abir e limitar arquivos a 22 colunas. Utilizado principalmente para textos Assim todo o texto digitado ser visualisado na tela da HP48G/GX sem necessidade de rolagem; O editor gera arquivos ASCII, o que permite a abertura destes arquivos em outros editores. O editor em espanhol, o que ajuda para aqueles que no conhecem o ingls.
Calculadora HP48G/GX - Programador - Bsico VARIVEIS LOCAIS Os programas que fizemos at agora no necessitaram de variveis, assim como no necessitaram de entradas do usurio. Mas a maioria, para no dizer a totalidade dos programas que desenvolvemos, necessita de entradas do usurio, que no decorrer da execuo do programa sero utilizadas, alteradas e descartadas. Para um pequeno nmero de variveis fica fcil control-las, mas quando esse nmero comea a aumentar, a coisa comea a piorar. Poderamos armazen-las em variveis com o comando STO e utiliz-las com RCL, STO+, STO-, etc., e apag-las ao fim do programa usando PURGE. Mas e se o nome da varivel que iremos utilizar j existir, ou se o programa terminar com um erro. No primeiro caso, perderamos informaes importantes, enquanto que no segundo ficaramos com variveis armazenadas que no fazem nenhum sentido para ns. A soluo do nosso problema a utilizao de variveis locais dentro de nossos programas, ou apenas em trechos deles. Uma varivel local pode ter qualquer nome vlido de variveis e s visvel dentro do bloco de programa exatamente aps a sua declarao. A declarao se d utilizando o operador : var1 var2 bloco local fim do bloco As variveis var1 e var2 s so visveis dentro do bloco local. Toda informao sobre elas deve ser deixada na pilha, se quisermos utiliz-las no fim do bloco. O valor das variveis retirado da pilha. No exemplo acima se tivssemos uma pilha 3: 3 2: 2 (var1) 1: 1 (var2) var1 seria inicializada com o valor 2, e var2 com 1. Programas que utilizam variveis locais so mais simples e mais fceis de depurar, porm so mais lentos do que programas que manipulam a pilha diretamente. O ideal mesclarmos em um programa trechos que manipulam a pilha com trechos que utilizam variveis locais.
Calculadora HP48G/GX - Programador - Bsico ESTRUTURAS DE REPETICAO START ... NEXT incio fim START comandos NEXT A estrutura recebe dois nmeros da pilha, e executa comandos at que o valor recebido como incio seja igual ao valor recebido como fim. A cada execuo da srie de comandos, o valor de incio incrementado. n 1 10 START n 1 'n' STO+ NEXT O programa acima tem como sada n, n+1, n+2, ..., n+9. FOR ... NEXT incio fim FOR var comandos NEXT A estrutura recebe dois nmeros da pilha, inicializa a varivel var e executa comandos at que var seja igual ao valor recebido como fim. A cada execuo da srie de comandos, var incrementada. A principal diferena entre START ... NEXT e FOR ... NEXT que, usando FOR, temos acesso ao valor do contador: n n DUP 9 + FOR n n NEXT O programa acima tem a mesma sada do programa anterior. possvel tambm mudar o incremento do lao, utilizando STEP ao invs de NEXT em qualquer um das estruturas acima: n 10 1 START n 1 'n' STO-1 STEP Esse programa devolve a seqncia n, n-1, n-2, ..., n-9. n n 9 + n FOR n n -1 STEP O programas devolve a seqncia n+9, n+8, n+7, ..., n. 1999 Pablo Saldo
Calculadora HP48G/GX - Programador - Bsico DO ... UNTIL ... END DO comandos UNTIL condio END Nesta estrutura, comandos executado pelo menos uma vez, e seguir sendo executado at que condio seja verdadeiro. O programa abaixo devolve a soma dos nmeros pares de 100 a 200: 0 100 soma n DO 'soma' n STO+ 2 'n' STO+ UNTIL n 200 END soma WHILE ... REPEAT ... END WHILE teste REPEAT comandos END Nesta estrutura, comandos s executado se teste for verdadeiro, e repetir enquanto assim o for. O programa abaixo equivalente ao exemplo da estrutura DO ... UNTIL ... END: 0 100 soma n WHILE n 200 < REPEAT 'soma' n STO+ 2 'n' STO+ END soma
10
Calculadora HP48G/GX - Programador - Bsico ESTRUTURAS CONDICIONAIS TESTES A calculadora HP48G/GX no prov tipos lgicos, utilizando os nmeros reais. Qualquer valor diferente de 0 considerado como verdadeiro. Existem quatro operaes bsicas com valores lgicos: NOT, AND, OR e XOR. As tabelas-verdade esto demonstradas abaixo: NOT A F V AND A F F V V OR Sada A F F F F F V V V XOR Sada A F F V F V V V V
Sada V F
B F V F V
B F V F V
B F V F V
Sada F V V F
Existem ainda sete funes lgicas: == (igual), SAME (igual, mais rpido), M (diferente), < (menor), > (maior), K (menor ou igual) e L (maior ou igual). Temos ainda os flags, registradores especiais, utilizados como marcadores pelo usurio. So 64 flags disponveis ao usurio, numerados de 1 a 64 (valores negativos representam flags do sistema), e os primeiro cinco ficam sinalizados no visor. Manipulaes com os flags podem ser feitas utilizando-se os seguintes operadores: SF (Set Flag): Aciona o sinal do flag. CF (Clear Flag): Limpa o sinal do flag. FS? (Flag Set?): Testa se o sinal do flag est acionado. FC? (Flag Clear?): Testa se o sinal do flag est limpo. FS?C (Flag Set? Clear): Testa se o sinal do flag est acionado e limpa o flag. FC?C (Flag Clear? Clear): Testa se o sinal do flag est limpo e limpa o flag. IF ... THEN ... END IF teste THEN comandos END Se teste verdadeiro, ento comandos executado. X IF 'X0' THEN "Positivo" END IF ... THEN ... ELSE ... END IF teste THEN comandos1 ELSE comandos2 END Se teste verdadeiro, ento comandos1 executado, seno executado comandos2. X IF 'X0' THEN "Positivo" ELSE "Negativo" END
11
Calculadora HP48G/GX - Programador - Bsico IFT teste objeto IFT 'IFT( teste, objeto)' O mesmo que IF ... THEN ... END, mas em uma forma mais enxuta e rpida. Se objeto for um comando, ele deve ser encapsulado em uma lista. 0 "Positivo" IFT IFTE teste objetoV objetoF IFTE 'IFTE( teste, objetoV, objetoF)' A verso IFT de IF ... THEN ... ELSE ... END. Se teste verdadeiro, objetoV avaliado, seno objetoF avaliado. Segue as mesmas regras de IFT quanto aos uso de comandos. 0 "Positivo" "Negativo" IFTE CASE ... THEN ... END CASE teste1 THEN comandos1 END teste2 THEN comandos2 END ... testen THEN comandosn END comandos_seno END Utilizada para substituir IFs aninhados, para manter a clareza do cdigo, esta estrutura primeiro testa de teste1 verdadeiro; se for executar comandos1, descartando o restante da estrutura. Se teste1 falso, testa teste2 e, se este for verdadeiro, executa comandos2, descartando o resto da estrutura, e assim subseqentemente. Se nenhum dos teste for verdadeiro, executa comandos_seno (opcional). O programa abaixo diz se o objeto do nvel 1 menor, maior ou igual ao objeto do nvel 2 X Y CASE 'X>Y' THEN "Menor" END 'X<Y' THEN "Maior" END X Y SAME THEN "Igual" END
12
Recebe da pilha uma cadeia de caracteres e devolve uma mensagem de erro no alto do visor, com os caracteres da cadeia IFERR .. THEN ... END IFERR comandos1 THEN comandos2 END IFERR comandos1 THEN comandos2 ELSE comandos3 END Nestas duas estruturas, semelhantes s estruturas IF ... THEN ... END e IF ... THEN ... ELSE ... END, uma seqncia de comandos executada conforme o resultado de um teste. A diferena de que, neste caso, a condio que aciona a execuo do cdigo uma condio de erro durante a execuo de outro trecho de cdigo, isto se ocorrer um erro durante a execuo de comandos1, comandos2 executado, e na segunda estrutura, comandos3 executado se nenhum erro ocorrer. O programa abaixo d uma mensagem de erro personalizada caso no haja valores na pilha, caso contrrio, devolve uma cpia do objeto do nvel 1 avaliado: IFERR DUP THEN "ERRO: Pilha Vazia" DOERR ELSE EVAL END
13
Trava a execuo do programa e solicita uma entrada do usurio. O formato do comando "mensagem" "valor" INPUT ou "mensagem" {"valor" opes posio}. As opes podem ser ALG, que pe a calculadora no modo algbrico, , que liga o teclado alfanumrico`, ou V, que checar a sintaxe da entrada do usurio. A sada se d na forma de uma cadeia de caracteres. Dica: Aps INPUT, utilize o comando OBJ, que abrir o string, traduzindo a sada para o formato desejado. CHOOSE
Disponibiliza a escolha de um item. A entrada tem o formato "Ttulo" { itens } item_inicial. Se item_inicialfor 0, ento o formulrio serve como informativo, no permitindo nenhuma seleo. A sada pode ser { item } 1, se o usurio efetuou a seleo, ou 0, caso o usurio tenha pressionado CANCEL. INFORM
Cria um formulrio personalizado, semelhante aos das aplicaes imbutidas. A entrada tem o formato "Ttulo" { campos } formato {Valores_limpa} {valores_iniciais}, onde cada campo pode assumir uma dentre as quatro formas: "nome" { } { "nome" "Texto de Ajuda"} { "nome" "Texto de Ajuda" tipo1 tipo2 tipon} Onde tipon segue a correspondncia numrica do comando TYPE. Dessa forma s so aceitos valores de um dos tipos especificados.
14
Calculadora HP48G/GX - Programador - Bsico formato pode ter uma das quatro formas: { } colunas {colunas} {colunas distncia}, onde distncia a distncia entre o nome e o valor do campo. {valores_limpa} so os valores correspondentes dos campos quando se pressiona @. {valores_iniciais} no necessita demais explicaes SADA CLLCD ... DISP ... FREEZE ... HALT
A combinao CLLCD DISP FREEZE HALT mostra no visor uma mensagem at que &(seja pressionado. O formato de uso CLLCD "mensagem" linha DISP rea FREEZE HALT: CLLCD apenas limpa o visor DISP recebe como argumentos uma cadeia de caracteres e a linha de exibio (de 1, a linha superior, at 7, a linha inferior do visor) FREEZE congela uma parte do visor de acordo com o valor do nmero passado como argumento: NMERO REA DO VISOR 1 rea de status 2 Pilha 3 rea de status e Pilha 4 Menu 5 rea de status e Menu 6 Menu e Pilha 0 ou 7 Todo Visor MSGBOX
Produz uma bonita caixa de mensagem no centro do visor. Recebe como entrada uma cadeia de caracteres. Dica: Utilize CLLCD para dar um visual mais limpo. 1999 Pablo Saldo
15
ARC
ARRY ASIN ASINH ASN ASR ATAN ATANH ATTACH AUTO AXES BAR BARPLOT BAUD BEEP BESTFIT BIN BINS BLANK BOX BUFLEN BYTES BR CASE CEIL CENTR CF %CH CHR
Cria uma formao Arcosseno Arcosseno hiperblico Liga uma objeto a uma tecla do modo de usurio Rotao aritmtica para direita de 1 bit Arcotangente Arcotangente hiperblica Liga uma biblioteca ao diretrio atual Auto-escala o eixo y Fixa as coordenadas de interseco dos eixos Seleciona o traado bar Plota o diagrama de barra dos dados de sdat Fixa a taxa de transferncia Emite um beep Seleciona o modo de traado que produz o maior valor absoluto do coeficiente de correlao lr Fixa a base binria Ordena os elementos na coluna de variveis independentes de sdat em n+2 casas Cria um objeto grfico vazio Desenha um quadrado a partir de dois cantos opostos Devolve o nmero de caracteres no buffer da serial Devolve o checksum e o tamanho em bytes de um objeto Converte binrio para real Comea a estrutura case... then ... end ... end Devolve o nmero inteiro seguinte Fixa o centro da tela do plot no ponto Desativa um flag especfico Calcula o variao percentual Converte o cdigo de um caracter em uma cadeia de
x% "string"
16
ndias
17
Elimina dois objetos do stack Apaga todas as etiquetas do objeto Duplica o objeto do nvel 1 do stack
DUPN
DUP2 DR E ELSE END ENG EQ ERASE ERRM ERRN ERRO EVAL EXP EXPAN EXPFIT EXPM FC? FC?C FINISH FIX FLOOR FOR FP FREE FREEZE FS? FS?C FUNCTION GET GETI
Duplica os objetos dos nveis 1 e 2 do stack Converso de graus em radianos Constante simblica e (2.71828182846) Comea a estrutura else Acaba estruturas de programas Fixa o modo de engenharia Separa equaes nos lados direito e esquerdo Apaga pict Retorna a ltima mensagem de erro Devolve o nmero do ltimo erro Apaga o timo nmero da mensagem de erro Avalia um objeto Eleva a potncia exponencial o objeto do nvel 1 Expande o objeto algbrico Fixa o modelo de regresso para a curva exponencial Exponencial natural menos 1 Comprova se o flag especificado est desativado Comprova se o flag est desativado, se no o ativa Termina com o modo server do kermit Seleciona o modo fix Inteiro seguinte mais pequeno Comea a estrutura for ... next ou for ... step Devolve a parte fracionria de um nmero Libera a memria ligada Congela uma determinada rea do display Comprova se o flag especificado est ativo Comprova se o flag especificado est ativo, se no o ativa Seleciona o traado de grficos no modo function Obtem elementos de uma formao ou lista Obtem elementos de uma formao ou lista e incremente o ndice Sobrepe o grfico do nvel 1 sobre o do nvel 3 no ponto especificado Seleciona o modo radianos Ativa o modo grfico Converte uma cadeia de caracteres em um objeto grfico Usa um or-exclusivo para sobrepor dois grficos
ncasas 'symb1=symb2' 'symb1' 'symb2' "mensagem de erro" #n obj z 'symb1' e^z 'symb2'
x mflag mflag date ncasas x x {name/lid} nporta n mflag mflag [array] index [array] index1 grob1 point grob2
grob grob3
18
LIST LN LNP1 LOG MAX MEM MENU NEG NEWOB NOT NUM NUM OBJ OCT OFF OR ORDER
Separa uma lista {obj1...objn} Logartmo neperiano Logartmo neperiano de (x+1) Logartmo base 10 o maior nmero entre dois Memria disponvel ao usurio Cria um menu de usurio Negativo do argumento do nvel 1 Cria uma nova cpia do objeto Not lgico ou binrio Devolve o cdigo do primeiro caractere da string Avalia objetos no modo numrico Devolve os componentes do objeto na pilha Fixa a base octal Desliga a calculadora or lgico ou binrio Reordena os diretrios #n1 #n2 { name .... } { obj... } z obj #n1 "string" obj z x z x y
{ obj1...objn} obj1 ... objn n LN(z) LN(x+1) LOG(z) MAX(x,y) x -z obj NOT #n1 n
#n1 OR #n2
19
PUTI PVIEW PXC Q Q RAD RAND RCL RCLALARM RCLF RCLKEYS RCLMENU RCWS RDM RE RECN RECV REPL RESTORE
obj3
ROLL
ROLLD
ROT RB RC
Move o objeto do nvel 3 para o nvel 1 Converso de real para binrio Converso de real para complexo
obj1 ... objn obj1 objn obj1 ... objn-1 obj2 obj3 obj1 #n (x,y)
20
21
[x1 x2 x3] x1 x2
Emu48 1.04 - Copyrigth 1997 Sbastien Carlier. O autor utiliza o script Enhanced, de autoria de Casey Patterson, Sebastien Carlier e Eran Rivlis, com algumas alteraes de punho prprio.
ii
22