Lunar Lander MKII para Casio FX-180P

dancresp
Mensajes: 5992
Registrado: 13 Nov 2010 02:08
Ubicación: Barcelona
Agradecido : 517 veces
Agradecimiento recibido: 773 veces

Lunar Lander MKII para Casio FX-180P

Mensajepor dancresp » 16 Nov 2023 12:30

LunarLander_FX-180P.jpg
LunarLander_FX-180P.jpg (100.16 KiB) Visto 505 veces

EL PROGRAMA
Debemos alunizar con nuestra nave en la superficie de la luna Algol controlando los distintos indicadores del módulo lunar.

El ordenador de abordo nos muestra los siguientes valores:
1º - Distancia de la superficie.
2º - Velocidad del módulo lunar.
3º - Cantidad de combustible.

Para controlar la velocidad debemos ir activando los motores de frenado con inyecciones de cierta cantidad de combustible, lo que afectarán a la velocidad del descenso.

Si al aterrizar la velocidad es superior a 5 o durante el proceso de descenso el combustible tiene valores negativos, la misión habrá fracasado.

Si conseguimos aterrizar con una velocidad inferior a 5, misión cumplida...
...debiendo pronunciar la frase:
"Un pequeño paso para el hombre pero un gran salto para la Casio FX-180P".
(38 para ser más exactos)


COMO FUNCIONA
El programa ocupa 38 pasos de programación y usa cuatro registros.

En el registro K-1 se guarda la cantidad de combustible.
En el registro K-2 se guarda la velocidad.
En el registro K-3 se guarda la distancia.
En el registro K-4 se usa para guardar un resultado temporal.

El programa se ha dividido en dos partes:
P1 – Inicializa los valores de los registros.
P2 – Proceso de alunizaje.

El programa se divide en 4 bloques, que he dividido en franjas de colores:
1º - Se inicializan la partida, ejecutando el programa P1.
2º - Se muestran los valores del módulo.
3º - Se introduce el combustible y se realizan los cálculos necesarios.
4º - Comprueba si hay contacto con la superficie para finalizar la partida.


LISTADO LEARN
Listado_LunarLander.png
Listado_LunarLander.png (15.86 KiB) Visto 505 veces


EJEMPLO
Para jugar hay que hacer lo siguiente:

P1 (Se inicializa los valores del juego)
P2
500 (Se muestra la distancia)
RUN
50 (Se muestra la velocidad)
RUN
120 (Se muestra el combustible)
10 (Se introduce el combustible para frenar)
RUN

452.5 (Se muestra la distancia)
RUN
45 (Se muestra la velocidad)
RUN
110 (Se muestra el combustible)
15 (Se introduce el combustible para frenar)
RUN

412.5 (Se muestra la distancia)
RUN
35 (Se muestra la velocidad)
RUN
95 (Se muestra el combustible)
18 (Se introduce el combustible para frenar)
RUN

…Repetir los pasos hasta el aterrizaje, y comprobar el resultado.

Para volver a jugar, repetir todo el proceso otra vez.


APUNTES FINALES
Hace mucho, mucho tiempo, apareció en mi casa un amigo de mi hermano mayor con un estuche, que contenía una calculadora un poco rara. Era "diferente" a las que había visto hasta entonces, o la que tenía en casa con dígitos rojos.

La sacó del estuche y por un pequeño orificio le introdujo una tira de cartón desde donde parece ser que cargó un programa en la calculadora. Curioso, porque la mía no permitía hacer esas cosas. A continuación estuvieron un buen rato introduciendo números para intentar "alunizar" con la calculadora. Bastantes años más tarde pensaba que esa calculadora era una HP-41c. Pero al escribir este post he descubierto que realmente era una Texas Instruments TI-59, que es programable y carga los programas de la misma forma.

Pero mucho antes, ahora hace 40 años, conseguí mi primer dispositivo programable: mi querida Casio FX-180P. No era una HP-41c o una TI-59, pero se podían hacer pequeños programas. Es lo que había, y gracias.

En esta calculadora programé unos cuantos programas, bastante cutrecillos, y siempre me había quedado con las ganas de programar algo parecido a ese primer juego que vi cuando no sabía ni que existían los ordenadores personales.

Como resultado del post de ron relativo al CP/M-68K en el Atari ST, me decidí a hacer una recopilación "bestia" de todo el software CP/M que podía funcionar correctamente en un Amstrad CPC-6128. Con el programa “CPCDiskXP.exe” introducía los ficheros en una imagen DSK, la montaba en un emulador y lo probaba. Configuraba el terminal y si todo funcionaba correctamente, a la colección.

El objetivo final es poder usar todos estos ficheros DSK en un simple ZX-UNO con el core del Amstrad CPC-6128, o en un emulador. Me he sorprendido de la cantidad de software conseguido, que he agrupado en cuatro categorías: Desarrollo, Ofimática, Utilidades y Juegos.

Pero... entre todo este software encontré un compilador de lenguaje Algol, y entre los códigos fuente que encontré había uno llamado "LANDER.ALG", que compilé y probé.

Eureka!!! Eso es lo que quería para mi Casio FX-180P.

Aquí la imagen DSK en CP/M del Algol-M para el Amstrad CPC-6128:
Algol-M - Amstrad CPC-6128.dsk
(190.25 KiB) Descargado 10 veces


Es la primera vez que adapto el código fuente de un programa para ordenador a mi FX-180P y la verdad es que, con alguna pequeña limitación, el programa funciona igual en Algol que en la Casio. Dicho de otra forma, si introduces los mismos valores, el resultado es igual en los dos sistemas. La diferencia es que al aterrizar en Algol nos muestra un texto con el resultado de la misión, y en la Casio debemos interpretar el resultado en función de la cantidad de combustible y la velocidad al aterrizar. 38 pasos no dan para más.

Listados.png
Listados.png (54.85 KiB) Visto 505 veces


Algo de Algol para alguien no iniciado
Algol, Algorithmic Language ('lenguaje algorítmico') fue un lenguaje muy popular en las universidades durante los años 1960, pero no llegó a cuajar como lenguaje de utilización comercial. Sin embargo, Algol influyó profundamente en varios lenguajes posteriores que sí alcanzaron gran difusión, como Pascal, C y Ada.

Probando el programa, lo primero que me sorprendió es que si introduces un "10", el programa lo interpreta como "0.10", haciendo los cálculos con este valor. Pero si quieres que realmente sea "10", has de introducir un "10.0".

La siguiente curiosidad es como procesa el resultado de la fórmula " D:=D-V+C/2.0". En principio debería calcular la división, y a continuación procesar la fórmula de izquierda a derecha, pero no. Aparentemente lo hace de derecha a izquierda, y en la Casio he tenido que rehacer la fórmula para que dé el mismo resultado que en Algol.

Por el resto, el programa es muy simple, cosa que me ha permitido hacer la adaptación a la Casio FX-180P, y posteriormente a otras calculadoras.

Listado_Algol.png
Listado_Algol.png (16.53 KiB) Visto 505 veces


Pues nada más, me voy a alucinar alunizando !!!

Os invito a probarlo


Inicio del descenso
Screen_1.jpg
Screen_1.jpg (57.02 KiB) Visto 505 veces


Aterrizaje fatal: Demasiado rápido !!!
Screen_2.jpg
Screen_2.jpg (49.48 KiB) Visto 505 veces
Buscando la IP de la W.O.P.R. he encontrado mi índice

zxpope2
Mensajes: 9
Registrado: 26 Oct 2023 14:35
Agradecido : 5 veces
Agradecimiento recibido: 5 veces

Re: Lunar Lander MKII para Casio FX-180P

Mensajepor zxpope2 » 16 Nov 2023 13:34

hola

muy interesante este trabajo
creo que tuve la misma calculadora y nunca supe hacer nada
¿donde se describe de forma amigable el lenguaje de programación?
recuerdo un libro enano gordo lleno de dibujos :-)

sobre el lector de tira de papel, me ha extrañado
he visto maquinas-herramienta que se programan con tiras de 5 orificios, y el lector era del tamaño de un brick de leche :-)
parece que era algo mas sofisticado:
https://en.wikipedia.org/wiki/HP-41C#82104A_card_reader

lunar lander
aquí esta el mio!
https://bunsen.itch.io/minimum-lunar-lander-by-zxpope
como tengo el poder y la potencia de un ZX81, he podido plotear el resultado en pantalla

algol,
madre mía

saludos
zxpope

dancresp
Mensajes: 5992
Registrado: 13 Nov 2010 02:08
Ubicación: Barcelona
Agradecido : 517 veces
Agradecimiento recibido: 773 veces

Re: Lunar Lander MKII para Casio FX-180P

Mensajepor dancresp » 16 Nov 2023 15:23

zxpope2 escribió:muy interesante este trabajo
creo que tuve la misma calculadora y nunca supe hacer nada
¿donde se describe de forma amigable el lenguaje de programación?
recuerdo un libro enano gordo lleno de dibujos :-)

Aquí lo tienes, listo para descargar en PDF:
https://es.usersmanualguide.com/casio/c ... astellano/

Como verás, su programación es extremadamente simple, al igual que su memoria.
Pero bueno, se pueden hacer cosas.

zxpope2 escribió:sobre el lector de tira de papel, me ha extrañado
he visto maquinas-herramienta que se programan con tiras de 5 orificios, y el lector era del tamaño de un brick de leche :-)
parece que era algo mas sofisticado:
https://en.wikipedia.org/wiki/HP-41C#82104A_card_reader

Cuando lo vi, flipe.
Era realmente curioso, y encima funcionaba.

zxpope2 escribió:lunar lander
aquí esta el mio!
https://bunsen.itch.io/minimum-lunar-lander-by-zxpope
como tengo el poder y la potencia de un ZX81, he podido plotear el resultado en pantalla

Pues se tendrá que probar.

En principio mi intención era hacer el juego jugando con la velocidad y con el desplazamiento horizontal, pero era imposible encajarlo en los 38 pasos de memoria que tiene, así que "aplace" el proyecto unos 40 añitos de nada. -thumbup
Buscando la IP de la W.O.P.R. he encontrado mi índice

Avatar de Usuario
Luis
Mensajes: 1938
Registrado: 03 Nov 2010 19:00
Ubicación: Villaquijada del Tuerto
Agradecido : 1343 veces
Agradecimiento recibido: 636 veces

Re: Lunar Lander MKII para Casio FX-180P

Mensajepor Luis » 16 Nov 2023 20:13

Esta noche lo pruebo. Excelente artículo, y más con los extras del Algol. Me ha encantado -drinks
AHA! YOU GOT THE WUMPUS!
HEE HEE HEE - THE WUMPUS'LL GET YOU NEXT TIME!!

jltursan
Mensajes: 5448
Registrado: 20 Sep 2011 13:59
Ubicación: Madrid
Agradecido : 927 veces
Agradecimiento recibido: 1955 veces
Contactar:

Re: Lunar Lander MKII para Casio FX-180P

Mensajepor jltursan » 17 Nov 2023 11:37

¡Genial, que recuerdos!

Vale que era otra calculadora, mi antigua HP; pero básicamente el mecanismo era muy parecido.

No me olvido, tengo ya escaneados los listados de mi HP que conservaba, incluyendo el alunizaje :-). En cuanto los maquete un poco los cuelgo en el foro -thumbup

dancresp
Mensajes: 5992
Registrado: 13 Nov 2010 02:08
Ubicación: Barcelona
Agradecido : 517 veces
Agradecimiento recibido: 773 veces

Re: Lunar Lander MKII para Casio FX-180P

Mensajepor dancresp » 17 Nov 2023 12:42

jltursan escribió:No me olvido, tengo ya escaneados los listados de mi HP que conservaba, incluyendo el alunizaje :-). En cuanto los maquete un poco los cuelgo en el foro -thumbup

Los espero en candeletas !!! -drinks
Buscando la IP de la W.O.P.R. he encontrado mi índice

Avatar de Usuario
centurix
Mensajes: 219
Registrado: 18 Ago 2020 17:19
Ubicación: Madrid
Agradecido : 3 veces
Agradecimiento recibido: 60 veces

Re: Lunar Lander MKII para Casio FX-180P

Mensajepor centurix » 17 Nov 2023 16:25

dancresp escribió:LunarLander_FX-180P.jpg
La sacó del estuche y por un pequeño orificio le introdujo una tira de cartón desde donde parece ser que cargó un programa en la calculadora. Curioso, porque la mía no permitía hacer esas cosas. A continuación estuvieron un buen rato introduciendo números para intentar "alunizar" con la calculadora. Bastantes años más tarde descubrí que esa calculadora era una HP-41c, y entendí como cargaba los programas.


La HP-41C tenía memoria no volátil y guardaba los programas una vez programados pero carecía de lector de tarjetas magneticas de serie como la Ti-59.
Imagen
El lector de tarjetas magnéticas era un módulo que se añadía en la parte trasera

Era mucho más alucinante el lápiz óptico y sus programas en cartón mediante líneas de códigos de barras.
Adjuntos
Lector_optico.jpg
Lápiz óptico
Lector_optico.jpg (147.84 KiB) Visto 322 veces
Lector_tarjetas.jpg
Lector de tarjetas magnéticas
Lector_tarjetas.jpg (109.74 KiB) Visto 322 veces
-m4c IIcx -j4tar1 800XL 65XE 130XE 520ST -c4510 FX-802P -coam1 1100RW

zxpope2
Mensajes: 9
Registrado: 26 Oct 2023 14:35
Agradecido : 5 veces
Agradecimiento recibido: 5 veces

Re: Lunar Lander MKII para Casio FX-180P

Mensajepor zxpope2 » 18 Nov 2023 07:45

hola
retrowiki es un foro que reflota cosas olvidadas!

nunca tuve la fx180, en el instituto tuve la fx82 que no era programable,
aunque de aspecto era similar

llevo un tiempo mirando cosas de CASIO
creo que es un caso raro raro de segmentación de producto,
o de no entender que supone la fabricacion en masa (de 100millones para arriba)
de un bien de consumo

porque no todas las calculadoras cientificas son pogramables?
cuantos flip-flops (mm2) en cmos se han ahorrado?

==
los modelos que hay a la venta hoy FX991 (creo) no parece que
implementen esta forma de programar.
eso significa que no ha soportado el paso del tiempo.

=====
buen ejercicio
hacer el lunar lander en 38 pasos de programa es muy chulo!!
veo que la fx180 tiene tres bifurcaciones, goto x, if(x>0) gotox if(x<0) goto x


===
mi lunar lander lo hice en el metro, y tenia como cosa curiosa trabajar con enteros
para ser compatible con el basic del zx80. Son ecuaciones en diferencias
que verifiqué en matlab para ver si los valores que aparecian eran
del mismo orden que la resolucion en pantalla del sinclair zx80..

==
lapiz óptico y codigo de barras
no conocia el truco pero me ha parecido a*lu*cinan*te
no descarto usar esa idea en el futuro para codificar programas o informacion
imagino un led colocado en la entrada EAR del spectrum/zx81


==
otro proyecto que tengo en la cabeza es
la ecuacion logistica como fractal de mandelbrot
parece un ejercicio ideal para una calculadora programable (de verdad) :-)
https://youtu.be/EOvLhZPevm0?si=SQ8G4pLSgcHPyogh

salud
zxpope

dancresp
Mensajes: 5992
Registrado: 13 Nov 2010 02:08
Ubicación: Barcelona
Agradecido : 517 veces
Agradecimiento recibido: 773 veces

Re: Lunar Lander MKII para Casio FX-180P

Mensajepor dancresp » 18 Nov 2023 12:59

centurix escribió:La HP-41C tenía memoria no volátil y guardaba los programas una vez programados pero carecía de lector de tarjetas magneticas de serie como la Ti-59.

Tu mensaje me ha hecho estallar la cabeza, retro-pensando en algo que viví hace más de 40 años.
Unos cuantos antes de que tuviera, en 1983, mi Casio FX-180P.

Y pensando, pensando... tienes razón. -shock

El aspecto de la TI-59 y la HP-41c (sin el overlay gris del teclado) es muy parecido, y lo que más me llamó la atención era el hecho de cargar programas desde esas tiras de lo que fueran. Incluso tenía un estuchito con varias tiras. La HP-41c la tengo desde hace unos 10 años más o menos, pero la TI-59 no la tengo. Al ver que la HP-41c cargaba desde esas tiras, lo relacioné con la calculadora que trajo el amigo de mi hermano, pero al ver la foto que has puesto... pues no, la que trajeron a mi casa era la TI-59.

Que fuerte !!! -drinks

(Con tu permiso, corrijo mi post)
Buscando la IP de la W.O.P.R. he encontrado mi índice

Avatar de Usuario
centurix
Mensajes: 219
Registrado: 18 Ago 2020 17:19
Ubicación: Madrid
Agradecido : 3 veces
Agradecimiento recibido: 60 veces

Re: Lunar Lander MKII para Casio FX-180P

Mensajepor centurix » 18 Nov 2023 13:40

La relación precio prestaciones, en mi opinión (que tuve ambas), de la TI-59 era muy superior a la HP-41C (lo que no quita que ésta fuese mejor por el teclado y la RPN y el display alfanumérico). Las carencias de la TI-59 se solventaban con la impresora alfnumérica, un módulo con programas (recuerdo uno de navegación marítima) y el lector de tarjetas magnéticas integradas. Y recuerdo un problemilla con la precisión numérica de la 41 que siempre salía a relucir cuando querían dar envidia. Yo vendí mi HP-41C pero todavía tengo la Ti-59 con su impresora alfanumérica, una Ti voyage y cuatro o cinco HP-12C (alguna la cambiaría por una 11).
Un saludo
-m4c IIcx -j4tar1 800XL 65XE 130XE 520ST -c4510 FX-802P -coam1 1100RW

dancresp
Mensajes: 5992
Registrado: 13 Nov 2010 02:08
Ubicación: Barcelona
Agradecido : 517 veces
Agradecimiento recibido: 773 veces

Re: Lunar Lander MKII para Casio FX-180P

Mensajepor dancresp » 18 Nov 2023 18:59

centurix escribió:La relación precio prestaciones, en mi opinión (que tuve ambas), de la TI-59 era muy superior a la HP-41C (lo que no quita que ésta fuese mejor por el teclado y la RPN y el display alfanumérico).

¿Por qué es muy superior?
¿Qué tiene que no tenga la HP-41c?

Es curioso que en los tiempos de la revista El Ordenador Personal había un apartado para la HP-41c, pero no recuerdo nada para la TI-59.

centurix escribió:Yo vendí mi HP-41C pero todavía tengo la Ti-59 con su impresora alfanumérica, una Ti voyage y cuatro o cinco HP-12C (alguna la cambiaría por una 11).

Yo tengo una HP-41c, una HP-11c y una HP-12c.

La HP-41c es una asignatura pendiente, y a la HP-11c le he ido dando de comer. La verdad es que me encanta.

La HP-12c es la más floja a nivel de programación, pero era la deseada por los financieros.
El problema para los juegos es que no genera números aleatorios, aunque para este Lunar Lander no se necesitan.
Buscando la IP de la W.O.P.R. he encontrado mi índice

zxpope2
Mensajes: 9
Registrado: 26 Oct 2023 14:35
Agradecido : 5 veces
Agradecimiento recibido: 5 veces

Re: Lunar Lander MKII para Casio FX-180P

Mensajepor zxpope2 » 18 Nov 2023 20:21

Sir Clive, era matemático

pero no esta claro si conocia el algoritmo CORDIC que aplicó en sus calculadoras
http://ece-research.unm.edu/pollard/classes/walther.pdf

os pego este comentario de una excelente pagina web que sin duda ya conocereis
http://files.righto.com/calculator/sinc ... lator.html

no viví esta época, pero si recuerdo el reloj rojo de mi abuelo, con los digitos de la TI59 :-)

==

Reversing Sinclair's amazing 1974 calculator hack - half the ROM of the HP-35

In a hotel room in Texas, Clive Sinclair had a big problem. He wanted to sell a cheap scientific calculator that would grab the market from expensive calculators such as the popular HP-35. Hewlett-Packard had taken two years, 20 engineers, and a million dollars to design the HP-35, which used 5 complex chips and sold for $395. Sinclair's partnership with calculator manufacturer Bowmar had gone nowhere. Now Texas Instruments offered him an inexpensive calculator chip that could barely do four-function math. Could he use this chip to build a $100 scientific calculator?

Texas Instruments' engineers said this was impossible - their chip only had 3 storage registers, no subroutine calls, and no storage for constants such as π. The ROM storage in the calculator held only 320 instructions, just enough for basic arithmetic. How could they possibly squeeze any scientific functions into this chip?

Fortunately Clive Sinclair, head of Sinclair Radionics, had a secret weapon - programming whiz and math PhD Nigel Searle. In a few days in Texas, they came up with new algorithms and wrote the code for the world's first single-chip scientific calculator, somehow programming sine, cosine, tangent, arcsine, arccos, arctan, log, and exponentiation into the chip. The engineers at Texas Instruments were amazed.

How did they do it? Up until now it's been a mystery. But through reverse engineering, I've determined the exact algorithms and implemented a simulator that runs the calculator's actual code. The reverse-engineered code along with my detailed comments is in the window below.

dancresp
Mensajes: 5992
Registrado: 13 Nov 2010 02:08
Ubicación: Barcelona
Agradecido : 517 veces
Agradecimiento recibido: 773 veces

Re: Lunar Lander MKII para Casio FX-180P

Mensajepor dancresp » 18 Nov 2023 21:30

zxpope2 escribió:os pego este comentario de una excelente pagina web que sin duda ya conocereis
http://files.righto.com/calculator/sinc ... lator.html

Hombre, conocer conocer, como que no, pero es realmente interesante.

El señor Sir Clive era un auténtico genio.
Buscando la IP de la W.O.P.R. he encontrado mi índice


Volver a “Lenguajes de Programación y herramientas Dev”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado