En busca del santo grial de la Hp...

martes, 8 de marzo de 2011

CANCIR

Aquí contestare consultas sobre el programa CANCIR.


Espero sus comentarios :)

martes, 7 de octubre de 2008

Buenas nuevas!!

Me compre una calculadora 50g y ahora si podremos continuar con el proyecto. :D ya estare colgando nuevas publicaciones.

viernes, 21 de marzo de 2008

Entorno Hpgcc

Manejo del entorno de programación Hpgcc

El manejo del entorno Hpgcc es muy fácil, solo debemos entender bien lo que queremos hacer ya sea crear, o abrir un proyecto.


Abrir un proyecto, seguimos la siguiente ruta: File\ Open (para abrir un archivo cualquiera) , o en su caso File\ Open Project(s) (para abrir un proyecto existente).
Crear un nuevo proyecto.- Seguimos la siguiente ruta: File\ new \ Project. Veamos nuestro primer ejemplo, vamos a crear nuestro primer proyecto para el blog, su nombre sera Hpgcc
En donde marcamos el icono de Empty Project (proyecto vacio).
En Name introducimos el nombre del proyecto que vamos a crear, en nuestro caso Hpgcc.
En Folder introducimos la carpeta donde estará nuestro archivo que se creara por defecto, en nuestro caso se mostrara el siguiente icono: Hpgcc.pnproj
Luego en nuestra ventana de proyectos se abra activado un nuevo menu debajo de New Project Group:Hpgcc, que como es de esperar es nuestro proyecto cargado automaticamente.
Si es que no se cargo automaticamente, simplemente hacemos click derecho y nos mostrara un menú: podremos darnos cuenta de que hay una nueva manera de introducir un proyecto (Add New Project), pero lo que nos interesa es agregar un proyecto ya existente que no esta cargado (Add Existing Project…), hacemos click sobre el respectivo menú y nos mandara a un navergador en donde nos dirigimos a la carpeta donde creamos el proyecto y lo abrimos, como era de esperar se abra cargado nuestro proyecto.
Crear un nuevo archivo fuente, Ahora lo siguiente será crear un archivo fuente.
Lo que hacemos es hacer click en el icono de la hoja blanca que hay en la barra de herramientas.
Y se creara una nueva ventana de nombre , que lo guardaremos bajo el nombre Ejem1.c (ojo con la extensión “.c”), en la misma carpeta en la que hemos creado el proyecto.
Como podremos ver la ventana que tenia el nombre , ahora tiene el nombre .
Ahora lo que debemos hacer es incluir este archivo fuente al proyecto para eso hacemos click derecho en el proyecto que vamos trabajando (en este caso Hpgcc), y elegimos el menú Add Files, que nos mandara a un explorador, en donde debemos buscar el archivo Ejem1.c, que deberíamos haber guardado en la misma carpeta que el proyecto
Luego de haber cargado el programa en la ventana de proyectos se vera que en el arbol del proyecto se abra creado una rama llamada Ejem1.c, que quiere decir que se ha cargado el archivo fuente al proyecto.
Compilar y ejecutar un archivo fuente.- Bueno ahora que hemos aprendido a Crear un nuevo proyecto y un nuevo archivo fuente, vamos a compilar nuestro primer programa.Para ello vamos podemos hacer uso del ejemplo que viene en los documentos “Hello world”.
Lo que vamos hacer es copiar el siguiente código en el archivo fuente:
#include

int main(void)
{
clear_screen();
printf("Hola mundo");
while(!keyb_isON());
}
Apretamos F7 y luego F8, o en su caso seguimos la siguiente ruta: Tools\Make this y Tools\Make this .hp
Seguro también que emergerá una ventana que nos indica como nos fue en la compilación, en este caso como fue un ejemplo sencillo no hubo problemas y nos mostrara la siguiente línea: “elf2hp.exe -d5 -s10000 -V Ejem1.exe Ejem1.hp”,que nos indica que todo fue correcto, de lo contrario nos hubiera enviado unos mensajes de error o “warnings”
A continuación lo que sigue es hacer compilar en la calculadora, para ello hay dos maneras. Primero observemos que después de la compilación del programa, en la carpeta en la que están guardados el proyecto y el archivo fuente, se ha creado un icono Ejem1.hp. Pero también hay un archivo Ejem1.o ¿Por qué?.
La primera forma de hacer correr el programa es pasarlo a la calculadora vía tarjeta SD o cable USB, una vez en la calculadora veremos que dicho archivo no es nada mas que un “string” (cadena), para que corra debemos tener instalado el programa ARMToolBox, ejecutarlo y elegir el menú PrRUN para hacer correr el programa, o S->EXE, para convertirlo en ejecutable. Como ya lo he indicado antes, los emuladores actuales (Marzo 2008) no pueden hacer correr los programas de Hpgcc, por lo tanto no puse las capturas de pantalla correspondiente.
La segunda manera es convertir en ejecutable el “string”, en el emulador y directamente enviarlo a la calculadora. Los pasos a seguir son los siguientes:
-Cargar en el emulador el string creado en la compilación.
-Iniciar la librería ARMToolBox
-Presionar el menú S->EXE, para poder convertirlo en ejecutable
-Enviar a la calculadora vía tarjeta SD, o cable USB.Como podemos ver, ambos métodos se parecen solo que el primero se lo realiza en la calculadora y el segundo en el emulador. Yo personalmente prefiero el segundo método, debido a que envió a la calculadora directamente el ejecutable sin tener ese molesto string en la pila.
Vale la pena indicar que el comando E->EXE , no puede funcionar en caso de que el string sea demasiado grande (como por ejemplo el programa Sec+ de Edwin Cordoba), en ese caso solo nos queda tener el string en una variable y teclear PrRUN cada vez que vayamos a usar, pero eso no es un problema, o si??
Bueno eso es todo por hoy, el siguiente tema es ingreso y salida de datos.

jueves, 21 de febrero de 2008

Prefacio - El porque de programar con HPGCC ?

Primeramente antes de empezar nuestra busqueda del santo grial de la hp, debemos comenzar entendiendo de que es lo que estamos buscando.

La programacion nativa de la Hp, en el caso nuestro el RPL del usuario (User RPL), es un lenguaje de programación básico de alto nivel, en donde se tiene una estructura facil de seguir, y es completamente imposible que produzcas un daño en la calculadora (claro siempre programando totalmente en User RPL), ademas que todos los comandos estan disponibles en la misma calculadora, y la misma calculadora sirve de compilador a la hora de programar.Pero al ser un lenguaje de alto nivel, el tiempo de ejecución se hace mas lento debido a que tiene que hacer una verificación de errores para comprobar de que no ha existido error en la ejecución del programa y no dañar el CPU, es algo parecido al Visual Basic, que cuando se realiza un programa mas o menos extenso, se puede notar sensiblemente alguna demora, a comparación de haber programado en otro lenguaje de mas bajo nivel, por ejemplo el C. Por otro lado, al programar en el RPL del Usuario solo tenemos acceso a un limitado conjunto de comandos, como quien diria solo los mas necesarios en las aplicaciones matemáticas y de ingeniería.

Para solucionar este problema (realmente problema) del tiempo de ejecución, los programadores eventuales de la hp, se decidieron por realizar programas en el RPL del sistema (System RPL), que es un lenguaje de mas bajo nivel que el User RPL, debido a que este lenguaje NO HACE VERIFICACIÓN DE ERRORES EN LA COMPILACIÓN, por lo tanto si haces un programa que sume dos números almacenados en la pila, y que al ejecutarlo no existan esos dos números en la pila, la calculadora, se puede decir que entrara en "shock" ya que le pediste que haga un trabajo y no habia con que hacer ese trabajo, y como no tiene detector de errores u otras instrucciones en caso de suceda ese problema no sabra que hacer, lo mandara todo al diablo, y reseteara en frio la calculadora, pudiendo perder los datos almacenados en el directorio HOME y los puertos no protegidos de la calculadora. Pero a cambio de este riesgo que supone programar en el RPL del sistema, obtenemos mas velocidad de lo que significaria programar en el RPL del usuario, y ademas un alcance mas amplio de los comandos que tiene la calculadora para programar, ya que el RPL del Usuario es un subconjunto del RPL del sistema, se prodria decir en un 25%. Ademas para poder programar en el sistema es necesario que tengas instalado un compilador extra, ya que la calculadora no compila los programas de manera natural como lo hace con el RPL del usuario, en este caso necesita un ayudita, como ser la libreria Jazz, o el EMACS (este es mi preferido) o en ultimo caso del debug4x, ademas de tener instalada la biblioteca de fuentes universales UFL.

Otro lenguaje de mas bajo nivel que los dos anteriores mencionados es el ML o lenguaje de máquina, programar en este lenguaje significa programar en el cerebro mismo de la calculadora, es como si quisieras adentrarte hasta la misma medula que controla todos los movimientos de la calculadora, evidentemente programar en este lenguaje significa, un dominio total de todo lo que significa el CPU interno, y una velocidad maxima a la que se podria aspirar con la calculadora, pero al mismo tiempo un sin fin de posibilidades de dañar la calculadora, ya que programar en ML es como si hicieras un transplante a corazon abierto, un mal pulso o mala punteria, chau paciente. También se necesita un compilador para poder hacer correr los programas.

Bueno hasta aqui todo lo que hemos hablado se aplica a todas las calculadoras de la serie Hp, pero con un pequeño pero decisivo detalle: Las calculadoras de la serie 48, y la calculadora 49g, tienen un chip procesador SATURNO, en cambio las calculadoras 49g+ y 50g, tienen un procesador ARM samsung S3C2410X-ARM9 (ARM920T),
( que para el que le interese, a mi no jejejeje, puede descargar su manual de aqui: http://www.mculand.com/sub1/mcu/arm9_device/pdf/um_s3c2410x.pdf )

Por lo tanto programar en ML Saturno, no tienen ningun sentido porque este es un chip ARM.

Entonces porque funcionan las calculadoras 49g+ y 50g como las demas anteriores?

La respuesta a esta interrogante es que hp hizo que el chip ARM simule ser un Saturno, dicho de otras palabras solo esta EMULANDO!!!, es como si tuvieramos un emulador de la calculadora en nuestro ordenador, pareciera que estubieramos manejando una calculadora de verdad, pero sabemos de antemano que solo es la emulación de una calculadora, que hagamos lo que hamos con esa calculadora nunca podremos arruinarla, porque el procesador con que funciona la calculadora emulada es el CPU del ordenador que solo emula ser una calculadora. Del mismo modo las calculadoras 49g+ y 50g, solo emulan ser un saturno que por lo expuesto anteriormente (que a mi juicio es solo flojera y tacañerio de la compañia Hp) no escribio un nuevo lenguaje para las nuevas calculadoras en el chip ARM.

Vaya entonces si con la emulación no tenemos ningun problema, porque querer programar en ARM?

-Una simple respuesta: La tecnología. Los Chip Saturno corren a 4 Mhz, y los modernos ARM son cronometreados por hp a 75 Mhz, osea mucho mas rapido, pero la velocidad real del procesador es mucho mas que 75 Mhz!!!!, ademas de ser tecnología de punta, porque no utilizarla al máximo?

Entonces como podemos programar en el chip ARM?, ya que emulando Saturno no podemos "tocar la medula" de estas nuevas calculadoras

-Pues la respuesta se da, gracias a Claudio Lapilli que logro que ahora podamos programar en el chip ARM, mediante HPGCC, que es un entorno de programación en donde podemos programar directamente en el chip ARM, utilizando para ello el lenguaje comercial para programacíon mas aceptado por todos en el mundo: EL LENGUAJE C. No entrare en detalles de como se logra ejecutar un programa hecho para el ARM, desde la emulación del Saturno, ese no es nuestro objetivo. Eso es un tema prohibido para nosotros, guerreros de la verdad!, solo debemos aceptar que eso se puede, y punto...

La ventaja de programar en C, es que en el internet se puede encontrar miles de documentos relacionados a como programar en este lenguaje, siempre teniendo cuidado de saber por adelantado que las librerias que son utilizadas por hpgcc NO PERTENECEN AL ANSI C, asi que si insertan comandos como conio.h, stdlib.h, stdio.h, etc, lo unico que lograremos es que nos produzca un error en la compilación (como en mis primeros dias, bueno aun considero que sigo en los primeros dias, pero un poquitin mas adelantado y pretendo llevar esta mi experiencia al que le sirva de algo). Ni que decir de los comandos relacionados con estas librerias, aunque algunos son los mismos que ANSI C, asi que a tener cuidado.

El proposito de esta entrada de blog, es poder proporcionar la experiencia que yo vaya adquiriendo en la programación en C de esta magnifica calculadora, para quien lo necesite de manera alguna, claro que hare algunos programas en User para poder comparar los resultados, las similitudes y diferencias en la forma de programar en ambos lenguajes, ademas la mayoria de los programas o todos, estaran orientados a la ingenieria civil.

Por ultimo decirles que yo no soy ningun programador de carrera, solo soy un eventual estudiante de Ingeniería Civil, que por azares del destino, un dia encontro la señal de que otro mundo si es posible... esa señal fue la calculadora Hp.

Saludos, es todo por hoy.

viernes, 18 de enero de 2008

La oracion de los fieles...

Este es una oracion que encontre entre los libros perdidos del pagano mundo del internet..
Esta sera la oracion de cada dia en mi lucha del santo grial de la hp:

El Credo del Programador

Creo en un solo lenguaje de programación, "C" Todopoderoso
Creador de UNIX y de Windows
Creo en un solo "C++",hijo único de "C" Nacido de "C" antes de "Visual C++
""C" de "C", Compilador de Compilador,
"C"(c) copyrighted, Compilado, no interpretado,
de los mismos programadores que el Padre
por quien todo es programado,
que por nosotros los hombres y nuestros servidores
fue desarrollado
y por obra del Lenguaje Binario se encarnó en
ensamblador y se hizo Lenguaje
y por nuestra causa
es ampliamente aceptado en tiempos de Bill Gates.
Decayó y fue olvidado y se renovó al tercer día,
según los usuarios.
Y subieron las ventas, y esta ubicado dentro de todo UNIX
Por quien todo es programado
Y de nuevo vendrá mejorado para juzgar a virus y programas
Y su dominio no tendrá fin.
Creo en el lenguaje binario, código y base del sistema
Que precede al padre y al hijo. Que con el padre y el hijo
recibe una misma aplicación y memoria
y que habló por los procesadores...
Creo en la arquitectura IBM, que es una, sólida, compacta y compatible.
Confieso que no hay ni un solo "undo" para la corrección de los errores
Espero la resurrección de las Macs y la vida en un mundo con
Internet...Enter
AMEN!!!!

Introduccion

Bueno ahora empezaremos con nuestra busqueda del santo grial de la hp, esta sera mi bitacora en la que desarrollare programas en su mayoria en el entorno de hpgcc, como tb en el rpl del usuario, y si la salvacion divina lo permite abarcare el hereje inframundo del system y el ML .

Por demas esta que mi busqueda del santo grial de la hp, es para conseguir la bendicion divina de mi reina: La ingenieria civil.

Muchos caballeros reales ya han partido con excelentes resultados y que ahora son una leyenda entre los libros de los luchadores de ese santo grial:
Edwin Cordova con el Secc+ y su espada gloriosa... VIGAG (aqui todos agachamos la cabeza y decimos Amen).
Oscar Fuentes con su exelenticimo Hica49, la luz entre los profetas que fueron a dominar el liquido elemento: el agua... Como olvidar sus traducciones que me servieron para aprender este camino que ahora pretendo seguir adelante..
Andres Garcia, con su libro de programacion orientada a la ingenieria civil, un verdadero libro de la fe que me enseño a creer en ese mundo sublime y que esta al alcance de la imagimacion.
A Roger Broncano por su HpUserEdit una verdadera arma que sirve para empezar a introducirnos al sagrado mundo de la creacion.
A Claudio Lapilli un guerrero semidios que logro comunicarse con el mundo paralelo del ARM.
Al creador del FEM, al creador del Openfire, al creador del XCELL48..etc, etc
En fin a todos los usuarios y cooperantes de http://www.adictoshp.org/ y http://www.hpcalc.org/ que son dos templos sagrados de este mundo de numeros y algoritmos...

Ahora les invito acompañarme en esta mi travesia por los bosques perdidos de la encantada tierra de la programacion, en busca de ese santo grial, que me ilumine y dirija mi destino (en la programacion de la hp, por supuesto! jejejejeje)......