Professional Documents
Culture Documents
(1,-1)
STOSTOSTO+
STO+
END
END
END
END
(0,0)
nosotros, en la lnea
manera :
3:
2:
1:
(0,0)
0
0
'A>6'
'B>3'
'A<-5.5'
'B<-3'
THEN
THEN
THEN
THEN
{
{
{
{
XJ3
XJ3
XJ3
XJ3
}
}
}
}
(1,0)
(0,1)
(1,0)
(0,1)
STOSTOSTO+
STO+
END
END
END
END
{ XJ3 PPAR Q1 Q2 }
PURGE
Ahora, bueno, disculpen por salirme del tema, lo que bamos a hacer
era una investigacin sobre el cdigo fuente de la PELOTA que salta por
toda la pantalla, usando el comando ANIMATE. Bueno, si vamos a hacer
esto, hagmoslo sin la proteccin, ya que no viene al caso......
<< GROB 1 1 10 WQ STO
GROB 1 1 00 WQ2 STO
<<
{ XJ32 PPAR KK1 KK2 WQ WQ2 } PURGE (0.5,0.5) XJ32 STO
ERASE PICT RCL (0,0)
WQ GOR { 1 { #0h #0h } 0 1 } ANIMATE (0,0) KK2 >>
KK1 STO
<<
DUP C->R -> T A B << SWAP T WQ2 REPL
IF 'A>5.8' THEN { XJ32 } (1,0) STO- END
IF 'B>2.5' THEN { XJ32 } (0,1) STO- END
IF 'A<-5.7' THEN { XJ32 } (1,0) STO+ END
IF 'B<-2.8' THEN { XJ32 } (0,1) STO+ END
T XJ32 + WQ GOR SWAP KEY
IF 0 == THEN ANIMATE T XJ32 + KK2
ELSE { PPAR XJ32 KK1 KK2 WQ WQ2 } PURGE CLEAR
"by xj35u5x" MSGBOX END >> >> KK2 STO
KK1 >>
Bueno, la idea es muy parecida al programa anterior. Solo que ahora
en vez de usar puntos, usaremos pequeos dibujos que simularan puntos.
Las lneas
GROB 1 1 10 WQ STO
GROB 1 1 00 WQ2 STO
Lo que hacen es crear dos grobs de 1*1 pixeles. Unos de ellos esta
pintado y el otro no. El que no esta pintado ser usado como "goma de
borrar". Esto debido a que es ms rpido que usar el ERASE, el cual borra
toda la pantalla de grficos.
Ahora, la sintaxis del comando ANIMATE es un poco distinta a la del
comando PVIEW. El comando ANIMATE requiere que en el nivel 2 de la pila
se encuentre el grob a visualizar, y en el nivel 1 de la pila se debe
encontrar una lista que contenga los siguientes parmetros :
a - Numero de grobs a mostrar
b - Coordenada "x" en formato {} de donde se quiere mostrar el
grob.
c - Coordenada "y" en formato {} de donde se quiere mostrar el
grob.
d - Tiempo que se mostrar cada grob en segundos.
e - Numero de veces a mostrar la animacin.
Con las siguientes salvedades.
<<<<<-
es el punto
la goma de borrar, o sea un punto vaco.
sumador
modulo que empieza el programa
modulo principal
Ahora continuemos.....
El programa sigue con :
(0,0) WQ GOR
grob_actual
{ 1 { #0h #0h } 0 1 }
'A>5.8'
'B>2.5'
'A<-5.7'
'B<-2.8'
THEN
THEN
THEN
THEN
{
{
{
{
XJ32
XJ32
XJ32
XJ32
}
}
}
}
(1,0)
(0,1)
(1,0)
(0,1)
STOSTOSTO+
STO+
END
END
END
END
--------|-----------------------------------------|
-- 21 --|-- REAL EXTENDIDO -----------------------|
--------|-----------------------------------------|
-- 22 --|-- COMPLEJO EXTENDIDO -------------------|
--------|-----------------------------------------|
-- 23 --|-- SISTEMA RELACIONADO ------------------|
--------|-----------------------------------------|
-- 24 --|-- CARACTER -----------------------------|
--------|-----------------------------------------|
-- 25 --|-- OBJETO DE CDIGO ---------------------|
--------|-----------------------------------------|
-- 20 --|-- DATOS DE BIBLIOTECA ------------------|
--------|-----------------------------------------|
-- 21 --|-- OBJETO EXTERNO -----------------------|
--------|-----------------------------------------|
________|_________________________________________|
SE DARAN CUENTA QUE EL QUE NOS SIRVE ES EL 8.
Hago esta aclaracin por que necesitaremos detectar las variables
que contengan programas para modificarlos segn nosotros queramos. Pero
lograr esto viene mucho Despus, luego de unos buenos razonamientos.
Comando: TVARS
Lo que hace este comando, es, dado un nmero cardinal en la pila,
nos entrega una lista conteniendo los nombres de todas las variables del
directorio actual, cuyo tipo sea el que representa el numero dado.
Bien, veamos al asunto de inmediato. Lo que haremos en sntesis
ser detectar todas las variables que sean programas user-rpl y sus
respectivos nombres. Luego, transformamos todos esos programas a cadenas
de texto. Despus, le concatenamos el texto que nosotros queramos :-), y
Despus, volvemos a transformar la cadena en programa, y le ponemos sus
respectivos nombres.
Claro que todo esto no es nada fcil, ni me lo imagino como lo
haremos, pero s que es posible.... Trataremos de hacer algo bonito. :-)
Que hace el siguiente cdigo:
<<
CLEAR
8 TVARS
>>
Lo nico que hace es mostrarnos una lista con los nombres de las
variables que son programas en el directorio actual.
Esa ser la base sobre la que trabajaremos.
Ahora me voy, por que tengo mucho sueo. chau.....
<< "MAANA NOS VEMOS" MSGBOX >>
Bueno, estoy de vuelta como una semana Despus de que me "fui",
jaja , bien, ahora, vamos viendo....Ahhh, el virus, una vez lo hice,
recuerdo que funcionaba bien, pero era un poco lento, sobre todo si en el
directorio actual se encontraban muchos programas, los cuales deba
infectar uno por uno.... Esto tambin ocurra en caso de que los
programas presentes fueran de gran tamao.
Otro tipo de virus, ntegramente creado por mi, lo pueden estudiar
y entender en :
http://www.geocities.com/xj35u5x/xvir.html
Aunque este es menos inteligente que el que analizamos aqu,
es mucho ms destructivo.
Es parte de mi pgina, en la cual encontraras informacin sobre la
hp-48.
La direccin raz de mi pgina es
http://www.geocities.com/xj35u5x
La verdad de las cosas, es que en este momento no puedo programar
nada, ya que tengo la calculadora sin pilas.... Alguien en mi casa me las
ocup para el control remoto, as que cuando compre pilas continuar con
la programacin del virus.
Recuerdo que en la primera versin del virus, lo que se pegaba al
final de cada programa user del directorio era :
180599 DROP >>
Eso se concatenaba al final del cdigo.... Y a estas alturas
supongo que sabrs que lo nico que hace es poner el nmero 180599 en la
pila y borrarlo automticamente sin que el usuario se de cuenta.... O
sea, era un virus "Inofensivo", en otras palabras, que no hace gran dao
al usuario.... De hecho no le hace nada a nadie, a parte de la memoria
que se usa para aumentar el archivo.
Por que 180599 ?
Es la fecha de nacimiento de alguien especial....
Y por eso, bautic a este tipo de virus con ese nombre...
simplemente << 180599 >>.
Que pasara si en vez del anterior cdigo hubiera puesto :
0 PVARS HEAD DUP DETACH PURGE >>
Eso sera algo as como que cada vez que se ejecutara el programa
infectado se borrara una librera. Se pueden hacer tantas cosas con esta
maquinita.....
{ nombre1
<< cdigo
<< cdigo
<< cdigo
nombre2 nombre3 }
1 >>
2 >>
3 >>
NEXT
>>
>>
>>
>>
->STR
DUP
SIZE
" 180599 DROP >>"
REPL
OBJ->
+
SWAP
NEXT
@virus 180599
DUP
@creado por Sebastian Rivas.
PURGE
@milun@starmedia.com
SWAP
@www.geocities.com/xj35u5x
REVLIST
SWAP
STO
>>
>>
Ahora, Despus de haber programado un virus, me voy a acostar,
pues son las 3.46 de la madrugada, saludos a todos quienes lean esto.
Nos vemos.......
Antes de irme os planteo un desafo, arreglar el programa, para
que no produzca ningn error en caso de que en el directorio actual no
hayan programas user-rpl o haya solo 1.
FIN DEL CAPITULO 2
---------------------------------------------------------------------
4567
despus :
3:
2:
1:
# 51187d
10.5
propio nmero en el nivel 2:. Bastaba con que fueran diferentes dos
objetos para que automticamente sus nmeros del nivel 2: tambin lo
fueran.
Esto me llev al siguiente razonamiento..... Que pasara si ?
luego de haber programado nuestro programa, haberlo guardado en una
variable, le aplicsemos el comando BYTES. De esta manera obtendramos
ese nmero nico, el cual deberamos usar para modificar el programa, de
manera que se haga un ciclo IF THEN ELSE en el cual
ese nmero se compare con el verdadero, y en este caso, CUALQUIER
modificacin al cdigo hara que el programa no funcionase. Pero hay que
tener en cuenta que al haber modificado el programa para introducirle el
nmero secreto, se habr cambiado este nmero nuevamente, por lo que ser
necesario volverle a aplicar el comando y de esta manera, se producira
un ciclo infinito en el cual nunca podramos ponerle el nmero al
programa. Es importante entender este razonamiento.... Para verlo ms
claro, tomemos en cuenta el siguiente cdigo, el cual no hace nada, pero
ilustraremos que no se puede insertar el nmero secreto ese.....
Por ejemplo , tengamos el cdigo :
<< "HOLA" MSGBOX >>
Ahora, si le aplicamos BYTES a eso, supongamos que nos da como
resultado el nmero # 28462d Entonces ahora tratemos de ingresarle este
nmero al programa....
<< "HOLA" MSGBOX # 28462d >>
Hay lo tenemos, pero si nos damos cuenta, ahora ese nmero no nos
sirve, ya que como lo modificamos su nmero secreto habr cambiado....
*********************************************************************
Nota del autor : Me encuentro un poco ridculo diciendo "nmero
secreto", as que de ahora en adelante dir "suma de verificacin"
*********************************************************************
Entonces, aplicndole nuevamente el comando BYTES nos dar otro
valor distinto, y de nuevo, al modificar el programa para insertar esa
nueva suma de verificacin, esta habr cambiado.... De esta manera
sacamos una conclusin importante, un solo mdulo de un programa no se
puede defender a si mismo de esta manera.....
Pero sin embargo, usando un poco el crneo, se nos podra ocurrir
hacer algo inteligente para que un modulo se pudiera defender a si mismo,
esto, lo haremos utilizando una pequea "inmersin".
O sea, meteremos el modulo dentro de otro, y este decidir si
se ejecuta el cdigo o n.
Por ejemplo, para nuestro pequeo programa anterior:
<< "HOLA" MSGBOX >>
Su suma de verificacin era # 28462d
Sera muy positivo si los ejemplos que voy dando en el manual los
vayas probando al mismo tiempo. En caso de encontrar errores en algn
cdigo, o tu crees que se puede mejorar de alguna forma, mndamelo a
milun@starmedia.com y yo lo publicar en la pgina.
Ahora analizaremos los defectos de esta proteccin.
Bueno, debemos aclarar que este es una proteccin que debera
funcionar, pero recordemos contra quien estamos luchando, nuestro enemigo
en este momento es un cracker-de-plstico, el cual no tiene idea de
programacin. Debe quedar en claro para los que an no saben esta regla
universal de los crackers.... TODO PROGRAMA SE PUEDE CRACKEAR. Esto es
una ley inquebrantable. Entonces, la proteccin de programas que
enseamos aqu es en contra de gente con nulos conocimientos de
programacin, o muy pocos.
Por lo tanto, lo que quiero decir, es que un cracker de plstico,
no tiene idea de lo que significa la palabra DROP por ejemplo, o BYTES,
pero en cambio, si que puede modificar las cadenas de texto a su gusto, y
esperar que el programa corra como si nada, con las modificaciones que l
hizo. Entonces, es de esto que nos estamos protegiendo, que el modificar
un programa en cualquier forma, luego este no se pueda ejecutar
correctamente.
Y como estamos en esto, les hablar un poco sobre mis ideas. La
mayora de la gente solo dispone de 1 hp-48, y en este hecho se basa lo
que estoy a punto de deciros. Por ejemplo, en el programa anterior, si el
atacante modificaba el programa, este simplemente no corra. Pero esto le
da mucho tiempo al atacante para probar otras cosas. Pues bien, yo creo
que lo mejor es que en caso de que se trate de modificar el cdigo de
nuestro programa, el efecto no debe ser algo tan suave como "no hacer
nada", en mi caso personal, el efecto de defensa que produzco al tratar
de modificar mis programas, es simplemente hacerle dao al atacante, por
ejemplo, borrando todo lo que hay en la calculadora.
Por supuesto que cada uno hace lo que quiere con los atacantes, yo
solo cumplo con decirles lo que YO hara. Adems, sera como un castigo
al atacante, y por otro lado, automticamente, le quita la posibilidad
inmediata de seguir tratando de hacer cosas con nuestro programa, ya que
antes deber conseguirlo y todo eso.
Bueno, sigamos la discusin de los defectos de la proteccin que
dimos recin. Su cdigo era:
<<
Con respecto a esto, debemos decir que lo que vamos a hacer con las
cadenas, tambin podemos hacerlo con grficos (grobs).
Por ejemplo, consideremos un pequeo programa, que lo que haga sea
decir el nombre del dueo de la calculadora....
<< OFF "ESTA CALCULADORA PERTENECE A SEBASTIAN RIVAS" MSGBOX >>
Ese programa sera til para apagar la calculadora, ya que Despus
cuando la prendieramos, aparecera el mensaje del nombre del dueo, en el
cual podra especificar la direccin de correo electrnico, la direccino
el telfono etc etc...
Pero lo que el cracker-peo hara con nuestra gran creacin ...
<< OFF "ESTA CALCULADORA PERTENECE A JUAN JORGE" MSGBOX >>
Y todo se ha podrido....
Entonces, mejor hacemos un programa que conste de dos mdulos, uno
de los cuales no haga nada, y no sea un programa, sino una simple
variable que contiene la cadena que se quiere mostrar.....
Modulo : CHAO
<< CADENA BYTES DROP
IF # 36267d ==
THEN CADENA OFF MSGBOX
ELSE CLEAR >>
Mdulo : CADENA
"ESTA CALCULADORA PERTENECE A SEBASTIAN RIVAS"
Si nos damos cuenta, el mdulo CADENA
simple cadena de texto.
Code
"A"
Luego de encriptarla, voy a recibr otro caracter, del cual debo
sacar su cdigo ascii mediante el comando NUM. Este nmero ascii
lo disminuyo en 65, que es el cdigo de la "A", y obtengo el nmero
secreto.
Facil eh..!!!
Referencia :
Aqu dar algnos nmero ascii de algunos caracteres importantes:
"A"
"Z"
"a"
"z"
->
->
->
->
65
90
97
122
"0"
"1"
"9"
" "
->
->
->
->
48
49
57
32
(espacio en blanco)
"O"
79
"L"
76
"A"
65
" "
32
"A"
65
" "
32
"T"
84
"O"
79
"D"
68
"O"
79
"S"
83
"O"
79
4
"L"
76
3
"A"
65
2
" "
32
1
"A"
65
5
" "
32
4
"T"
84
3
"O"
79
2
"D"
68
1
"O"
79
5
"S"
83
4
y el criptograma :
"MSOC!F$WQETW"
Veamos algunas cosillas....
Toma en cuenta, por ejemplo, que en el texto original, la letra O
se repite 3 veces, pero si te fijas en el criptograma, sus equivalentes
en las tres ubicacin serian S Q y T,................. las tres distintas
!!!!
Interesante no????...
Bueno, ahora basta decir que para reventar esto hay que trabajar
mucho ms, yo no soy capaz de decirles como hacerlo, pero se que tiene
que ver con tcnicas estadisticas y paciencia !!!!:..
Digamos para su cultura general, que este metodo de encripcin es
Ridculo comparado con los que se usan en firmas digitales y encripcion
actual....
El ltimo mtodo que comentaremos, es asignarle a cada letra del
abecedario otro signo, y para encriptar, cambiar cada caracter del texto
original por su equivalente.....
Para romper este mtodo hay varias formas... algunas muy fciles...
Recuerdo que una vez que estaba en Temuco-Chile junto a mi novia, ella me
escribio un criptograma con este mtodo, el cual sala en su agenda con
los smbolos correspondientes a cada caracter del abecedario. El mensaje
que me escriba, estaba compuesto ms o menos por 4 lneas. Y todos los
signos del abecedario cambiados... Como no me quiso decir lo que
significaba, me propuse la tarea de reventar su mtodo, jajajaja, me rio,
por que en ese tiempo, yo an ni siquiera tena interes en la
criptografa y me plantie el reto de descifrar(reventar) el mensaje.....
Demor como 1 y 1/2 horas en descifrar todo. Lo que hice fu buscar
palabras comunes del castellano, estas fueron "por" "que" "de" busqu
trios y duetos de letras que se repitieran en el texto, y de poco a poco,
lo logr.
Despus, mucho Despus, hace solo como 2 meses supe que esta era la
forma de la cual se reventaban este tipo de criptogramas. Lo que a m me
falt saber fueron las letras ms comunes del lenguaje espaol, o sea, la
"e", la "a" y la "l".
Bueno, con esto termino este pequeo captulo, el cual se sali un
poco de lo puramente referente a programacin, pero consider que estos
conocimientos son muy vlidos....
Piense como aplicar la criptografa para defender sus programas de
ataques de poto-crackers.
En este momento son las 18:38, mi hijo se toma una mamadera de
jugo, y me mira, y se rie. A l est dedicado este trabajo.
*******************************************************************
Tambin se debe tener muy en cuenta cuando est todo listo para armar la
librera, borrar todas las variables del sistema, tales como PPAR(aparece
cuando graficamos algo, o utilizamos PICTURE).
Comenzemos.
Al hacer un programa, medianamente grande, se necesita de varios
mdulos(programacin estructurada), los cuales entre todos, hacen el
trabajo. En mis propias creaciones, cas siempre, hay algunos mdulos que
contienen programas, grficos, textos, crditos, etc. Entonces, al
terminar el programa, vemos un monton de variables, de las cuales la
mayora de las veces para ocupar el programa se necesita ejecutar solo
algunas, y son estas las que llaman a las dems para que hagan su
trabajo.
Hablemos un poco sobre la teora de las libreras en la hp-48.
Primero que nada, la definicin... Una librera, es un conjunto de
objetos, que se agrupan como uno solo e inseparable, el cual nos brinda
mucha comodidad para transportar los programas. Programas que muchas
veces pueden constar de hasta 50 variables(mdulos) o ms. De esta
manera, sera muy incmodo tener que entregar 50 variables o ms a cada
persona que quisiera tener nuestro programa. Entonces las libreras nos
solucionan esto. Adems, la ventaja es que el cdigo de la programacin
no es visible a travez de la hp-48. A menos que se cuente con
herramientas con las que la gente comn no cuenta.
Para entender la idea, pensemos en una librera como si su
directorio de trabajo(-en el cual se encontraban las variables que
conforman su trabajo-), lo transformara en un solo objeto, con un nombre,
y en el cual, se tiene acceso a SOLO DETERMINADAS VARIABLES. En nuestro
caso, se supone que debemos dar acceso solo a lo que el usuario necesita.
Pongamos por ejemplo que usted tiene un programa que consta de los
siguientes mdulos :
INICIO
GRAFC
cual es
UTIL
CALCULO
INICIO
Entonces, si nos damos cuenta, el usuario solo debera tener acceso
a la variable(mdulo) INICIO.
Otra caracteristica muy a tener en cuenta en la creacin de
nuestras libreras, es que cada librera, contiene un nmero, que la
caracterza, y que supuestamente debe ser UNICO. Bueno, en realidad lo
importante es que en una hp-48 si se encuentran instaladas dos libreras
con el mismo nmero, puede causar concecuencias desastrozas(reset).
Ahora, que ya conocemos un poco ms las libreras, vamos a ver,
utilizando la librera HACK como crearlas.
Bien. Primero que nada, veamos los requisitos que nos pide la HACK
para poder armar una librera.
Primero que nada, un directorio diferente a HOME, en el cual se
encuentren todas las variables o mdulos que conforman el programa.
Una variable que se deve llamar $ROMID en la cual debemos tener el
nmero de identificacin de la variable, pero de la forma # numero. Ese
nmero debe ser de 4 cifras.
Por ejemplo, si el nmero de identificacin de mi variable fuera
1234, entonces, debo crear en el directorio de trabajo, una variable
llamada $ROMID cuyo contenido se simplemente :
# 1234d
Si se estuviera en modo hexadecimal la calculadora, entonces, el #
1234d nos aparecera como # 4D2h
Entonces, para evitar confuciones, antes de crear esta variable,
ponga la calculadora en modo decimal, esto dandole el comando DEC.
Ya tenemos una de las cuatro variables requeridas por HACK para
ensamblar nuestra librera.
Segundo : Necesitamos crear una variable llamada $TITLE en la cual
deber ir primero que nada, el nombre de nuestra librera, y luego
algunas palabras tales como su nombre, o su e-mail, etc...
La variable $TITLE debe contener UNA CADENA DE TEXTO, o sea, un
ejemplo vlido sera :
"TETRIS, DESARROLLADO POR JEUX FRANCAISE JEUX@FR.EUTLE.AHX"
Eso sera algo vlido. Ojal no sea muy larga esta cadena.
Si usted ha tenido oportunidad de visualizar una librera en la
pila, recordar que tienen esta forma :
3:
2:
1: Library 1234: TETRIS, DESARROLLADO
POR......
<1234d> External
<1234d>
External
<1234d> External
<1234d>
1234
:&: 1234
<1234d>
1234
<1234d> External
pila, de la
2:
1: Library 5555 : Matematicas por Sebastian Rivas
Luego de eso, usando la librera HACK, utilizamos el comando
OB-> Entonces, nos encontraremos con que en la hp-48 ha aparecido un
nuevo directorio, el cual contiene la librera desensamblada.
<XXXXd> External
<XXXXd> External
<XXXXd> External
<XXXXd>
External
2
<XXXXd>
External
_Tercero : SWAP
3:
2:
1:
External
<XXXXd>
_Cuarto
2:
1:
External
_Quinto
<1234d>
3:
2:
1:
: SWAP
<1234d>
External
_Septimo
4:
3:
2:
1:
External
<1234d>
_Sexto
3:
2:
1:
: DROP
: Ingrese el nmero 2
<1234d>
External
2
<1234d> External
LISTO !!!!!!!!!!!
Ahora, eso lo guardamos con el nombre que ustedes recordarn.....
$CONFIG
Luego, si es que el nmero <1234d> lo habamos guardado en una
variable temporal, borramos esa variable.
AHORA, ABRA LA HACK, Y DE EL COMANDO D->LIB
Ha creado su primera librera.
Tenga muy en cuenta este cosejo que le doy, las libreras que usted
cree, pongales nmeros entre 1200 y 5000. Para mayor seguridad.
Y recuerde siempre que en una misma hp-48 no deben haber dos libreras
con el mismo nmero de identificacin.
Que titulo para este captulo eh!. Bueno, en este ltimo captulo de
esta tercera parte del manual de programacin en lenguaje User-Rpl para
la calculadora hp-48, ensearemos "algunos" usos de dos comandos muy
especiales.
Estos dos comandos especiales se llaman LIBEVAL y SYSEVAL.
Primero que nada, tenga en cuenta que en los proximos das, le aseguro,
que si se mete con ellos de forma irresponsable, resetear su hp-48
varias veces.
Esto es devido a que estos dos comandos, son los comandos del infierno,
es el lmite en el cual cruzan sus caminos los lenguajes User-Rpl y
System-Rpl. A travez de ellos, y ms del SYSEVAL, tenemos acceso a
funciones que nunca habiamos imaginado. O sea, por ejemplo, funciones del
SYSTEM-RPL.
*********************************************************************
Nota del autor : Trate de buscar estos comandos en los menus de
la hp-48. Es imposible, ya que no
aparecen. por que?
*********************************************************************
Hablemos de algunas cosillas.
En el lenguaje User-Rpl, o sea, el que estamos usando, cada vez que
nos equivocamos en algo, simplemente el programa se detiene y se nos
comunica nuestro error con un pitido o un mensaje. Esto es debido a que
el lenguaje User-Rpl, hace comprobaciones de cada comando, o sea, nos
protege de situaciones dolorosas.
Tomemos por ejemplo, tratar de realizar una animacin, sin tener
todos los parmetros necesarios en la pila. En ese caso, se nos dir
mediante un mensaje nuestro error.
En cambio, el System-Rpl no realiza ningn tipo de comprobacin, en
este lenguaje, es el programador o desarrollador el encargado de que sus
programas no contengan errores. Por ejemplo si se hace una operacin que
# numero
O sea, con #
Pero recuerde que es su responsabilidad si resetea su hp-48 con
nmeros que no corresponden o la informacin que aqu se entrega. En todo
caso, siempre es bueno probar emociones fuertes :-)
Aqu entrego una lista con algunos importantes usos de LIVEVAL,
junto con el nmero que corresponda, para que los uses en tus creaciones.
Funcin LIBEVAL
Men de Solve polynomial
Men de sistema de ecuaciones
La ventana de CMD
# B402Ch
# B4033h
# B2000h
Entrada a Chars
Men de MODOS
Men CHOOSE de los Flags (Modos)
Entrada directa a MEMORY
Entrada directa a SOLVE
Men de Solve Equation
Men de Solve difeq Equation
Men de TVM
Men de PLOT
Men de SYMBOLIC
Men de Integrales
Men de diferenciales
Men de STAT
Men de SINGLE-VAR STADISTIC
Men de Frecuencias
Men de entrada de datos (FIT DATA)
Men de SUMARY STADISTICS
Men de I/O
Men de Send to HP-48
Men de Impresin
Men de transferencia (TRANSFER)
Men de recepcin de HP-HP
Men de TAYLOR
Men de ISOLATE VAR
Men de ecuacin Cuadratica
Men de manipulacin de expresiones
Men de la Aplicacin TIME
Entrada de las alarmas
Set time and Date
Catalogo de alarmas
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
B2001h
B41C1h
B41CFh
B41D7h
B4000h
B4001h
B4017h
B4038h
B4045h
B4113h
B4114h
B4122h
B4175h
B4176h
B417Dh
B417Fh
B418Fh
B4192h
B4193h
B4197h
B41A8h
B50FFh
B412Bh
B412Dh
B4130h
B4131h
B4137h
B4138h
B415Bh
B416Eh
http://www.geocities.com/xj35u5x
http://www.geocities.com/xj35u5x/xhp48.html
Para no parecer tan hermtico con este comando, dar un ejemplo:
Esto es para que usted compruebe el PODER del SYSEVAL.
Si usted aplica SYSEVAL con el nmero # 9d en la pila, resetea su
calculadora inmediatamente, sin preguntas. Simplemente ....
Memory Clear.
Ese es un ejemplo.
Ahora, en caso de que usted, haya quedado enamorado del comando
SYSEVAL, en mi pgina, en la seccin Herramientas, puede encontrar una
lista completa con los comandos de SYSTEM-RPL y su descripcin y su
nmero de SYSEVAL. Est en ingls :-)
http://www.geocities.com/xj35u5x
Aqu hay una pequeita lista :
30794
3A328
3A3EC
3A38A
3A44E
3A1FC
05F42
41F65
353AB
40D25
40D39
3AA0A
44C31
44FE7
1314D
13135
39531
130AC
4E347
05B15
05BE9
3A1E8
39BAD
VERSTRING
MakeStdLabel
MakeDirLabel
MakeBoxLabel
MakeInvLabel
DispMenu.1
GARBAGE
WaitForKey
SYMB> IDS
LockAlpha
UnlockAlpha
1A/ LockA
DoNewMatrix
DoOldMatrix
TOADISP
TOGDISP
ClrDA1IsStat
RECLAIMDISP
TURNMENUON
$> ID
ID>
DispMenu
DispStack
Los nmeros, como se podrn dar cuenta por las letras, estn en
hexadecimal.
De estos, yo no puedo darles informacin, ya que yo programo y
enseo User, pero creo que algunos que les podran ser tiles seran:
40D25
LockAlpha
40D39
41F65
05F42
UnlockAlpha
WaitForKey
GARBAGE
''
UserKeys
UserKeys.CRC
Ahora, lo ms importante,
como acceder al directorio oculto ?
Con el siguiente nmero de SYSEVAL : # 15777h
O en decimal : # 87927d
Y luego de hacer SYSEVAL nos aparecer esto :
2:
1:
FIN
SALUDOS Y AGRADECIMIENTOS
Este trabajo est dedicado a mi hijo, Sebastian Jesus Rivas Bravo.
Saludos a :
Vanessa, my love.
Mi familia.
Mis amigos del mundo real :
Igor Araneda.
Carlos Quezada.
Danilo Saez.
Andres Jofr.
J.R.
Daniel--NewDanC.
Fernando "Fea" Aburto.....
AnOrMaL nunca morir !!!!!!!!
Cristian Campos.
Felipe Campos.
Felipe Rabanal.
Alejandro Nuez.
Galn.
Gok.
Marioly.
ZongO.
Lucho.
Burgos.
Cartagena(calle).
Familia Bravo.
Toln.
A todo el liceo Enrique Molina de Concepcin,
especialmente al 4to-C de 1999
Mis amigos del mundo electrnico :
Dirck.
Haomaru.
EviL.
y otros que no puedo nombrar.
;-)
conalepz
jrlopez
omarfpr
solisb
ele2k
cacl007
gojeta4
arcas23
jleal003
Jos L Tirado
No conozco a ninguno, pero GRACIAS.
********************************************
Sebastian Rivas Godoy
xj35u5x
milun@starmedia.com
http://www.geocities.com/xj35u5x
Concepcin - Chile
********************************************
dedcado a Sebastian Jesus Rivas Bravo,
mi hijo.
Firma :
Sebastian Rivas.
Milun@starmedia.com
******************* fin del documento **********************