Programando un MULTIPLAN en BASIC

dancresp
Mensajes: 5641
Registrado: 13 Nov 2010 02:08
Agradecido : 320 veces
Agradecimiento recibido: 450 veces

Programando un MULTIPLAN en BASIC

Mensajepor dancresp » 27 Ene 2012 22:54

MULTIPLAN – Lite

Multiplan fue una de las primeras hojas de cálculo desarrollada por Microsoft. Se comercializó en 1982, en ordenadores con el sistema operativo CP/M, pero posteriormente se adaptó a otros sistemas operativos, y para equipos como el Apple II y el Commodore 64.

Multiplan fue la base sobre la que se desarrolló Microsoft Excel, después de ser más vendida que Lotus 1-2-3 durante varios años.


EL PROYECTO
EL CP/M y sus aplicaciones no está disponible en muchos de los equipos de 8 bits, y queda descartado en equipos que usan cintas de casete o no disponen del modo de 80 columnas o un microprocesador Z80, salvo excepciones o extrañas adaptaciones.

A partir de un hilo aparecido hace tiempo hablando sobre la posibilidad de hacer un CP/M botable de cinta de cassette, y otro del Coleco ADAM de ron, me planteé la posibilidad de que si no se podía adaptar el CP/M, como mínimo hacerlo con sus aplicaciones.

Para ello, he decidido hacer adaptaciones en Microsoft BASIC puro y duro, teniendo mucho cuidado que el código sea muy reducido, tenga un buen rendimiento y sobretodo, que sea fácilmente adaptable a cualquier otro sistema.

Así ha nacido el "Multiplan Lite", la segunda de una serie de aplicaciones CP/M adaptadas. La primera fue el "dBASE II - Lite", adaptado para PC y AMSTRAD CPC.

Tanto en el aspecto como en la funcionalidad disponible es casi idéntica al original en CP/M, pero se han reducido las funciones y se ha contemplado que tanto la cinta de casete como el disquete pueda ser usado como medio de almacenamiento externo.

Esta versión ha sido desarrollada para PC, y el fuente ocupa sólo menos de 250 líneas de código BASIC, pero en unos días presentaré una versión para ser usada en un AMSTRAD CPC 464/464+ con cinta y modo 80 columnas.

A partir de aquí, cualquiera lo puedo adaptar fácilmente a un DRAGON 32, SPECTRUM, BBC Micro, ALPHATRONIC o cualquier otro sistema.


COMANDOS DISPONIBLES
Para acceder a las distintas opciones del menú simplemente hay que pulsar sobre la primera letra mayúscula, y según la opción aparecerá otras opciones.

ALPHA
Introducir un texto en una celda. A diferencia del original, solo se admiten 10 caracteres por celda. Para textos más largos hay que usar varias celdas adjuntas.


BLANK
Esta opcion elimina el contenido de una o varias celdas.


DELETE
Nos permite eliminar el número indicado de filas o columnas a partir de la celda en la que estamos.


EDIT
Editamos el contenido de la celda, cambiando su tipo en función del nuevo contenido.


GOTO
Esta opción nos posiciona en la celda indicada por su fila/columna o por el nombre que le podamos haber asignado con NAME.


INSERT
Nos permite insertar el número indicado de filas o columnas a partir de la celda en la que estamos.


NAME
Podemos asignar un nombre a una celda y posteriormente situarnos en ella mediante GOTO.


QUIT
Sale de Multiplan y vuelve al sistema operativo.


TRANSFER
Esta opción nos permite grabar, recuperar o inicializar una hoja de cálculo.


VALUE
Sirve para introducir un valor numérico o una fórmula en una celda.

Ejemplos:
123.45
R3C4 (Hace referencia al valor de una única celda)
R3C4:R5C8 (Hace referencia a la suma de un rango de celdas. Es el equivalente del SUM(R3C4:R5C8) original)


CARACTERISTICAS ESPECIALES
La hoja de cálculo se ha limitado a unas dimensiones de 32 filas por 16 columnas. Modificando el código es fácilmente ampliable.

Una celda puede contener un valor númerico, un texto de hasta 10 caracteres o una fórmula de hasta 64 caracteres.

Esta versión incorpora 10 de las 20 opciones del Multiplan original. Son todos los necesarios para introducir datos en las celdas, gestionar la matriz y definir sencillas fórmulas. El resto de opciones se presentan en el menú para respetar el aspecto del original, o por si alguien quiere ampliar el programa.

Las fórmulas han sido simplificadas al máximo para que su ejecución sea lo más rápida posible, pensando en su traslado a una máquina de 8 bits. Por ello, se ha prescindido de funciones especiales o el uso de paréntesis. Las fórmulas se procesan como en una calculadora tradicional. Con una única rutina de 15 líneas en BASIC se ha conseguido procesar la suma de un grupo de celdas, sumas, restas, multiplicaciones o divisiones.

Modificar el contenido de una celda desencadena un recálculo de fórmulas en cascada. Una vez adaptado el código a 8 bits decidiré si permito el refresco automático o manual del contenido para no penalizar el rendimiento en caso de hojas complejas.


FUNCIONAMIENTO
Aquí está el fichero EXE, una hoja de cálculo de ejemplo y el código fuente en QBASIC: mplan.rar

A partir de aquí lo reprogramaré en un AMSTRAD CPC-464 con monitor en fósforo verde.


IMAGENES DISPONIBLES

Correspondientes a mi versión de PC.

Imagen
Imagen
Imagen
Buscando la IP de la W.O.P.R. he encontrado mi índice

Avatar de Usuario
ron
Mensajes: 18985
Registrado: 28 Oct 2010 14:20
Ubicación: retrocrypta
Agradecido : 2052 veces
Agradecimiento recibido: 1777 veces

Re: Programando un MULTIPLAN en BASIC

Mensajepor ron » 27 Ene 2012 22:59

Multiplan o Visicalc !! he ahí el dilema, pero mientras se resuelve yo aprovecho para volver a darle a Wally Dancresp la enhorabuena por enésima vez. Fantástico tio !! te estás saliendo

!plax

dancresp
Mensajes: 5641
Registrado: 13 Nov 2010 02:08
Agradecido : 320 veces
Agradecimiento recibido: 450 veces

Re: Programando un MULTIPLAN en BASIC

Mensajepor dancresp » 28 Ene 2012 00:17

Ya solo quedará el Word Star y tendremos un Office completo para 8 bits. Ahora esta claro que este es más chungo que el dBASE II. A ver como tira en 8 bits...

Despues tengo previsto hacer alguna cosilla con el ZX-81, y un FORTH para el BBC Micro, que le tengo ganas.
Buscando la IP de la W.O.P.R. he encontrado mi índice

dancresp
Mensajes: 5641
Registrado: 13 Nov 2010 02:08
Agradecido : 320 veces
Agradecimiento recibido: 450 veces

Re: Programando un MULTIPLAN en BASIC

Mensajepor dancresp » 09 Mar 2012 23:54

Subido el ejecutable, el código fuente en QBASIC y una hoja de cálculo de ejemplo.

LO tenía listo al 95% hace días, pero con el Dartmouth BASIC y el KENBAK-1 me he colgado.

En breve me pondré a adaptarlo al Amstrad CPC-464.
A ver que tal tira...
Buscando la IP de la W.O.P.R. he encontrado mi índice

afx
Mensajes: 652
Registrado: 25 Nov 2010 23:26
Agradecido : 34 veces
Agradecimiento recibido: 60 veces

Re: Programando un MULTIPLAN en BASIC

Mensajepor afx » 10 Mar 2012 19:32

Dacresp, ¡fantástico! Me encantan estos proyectos.


Avatar de Usuario
FloppySoftware
Mensajes: 224
Registrado: 21 Oct 2016 15:10
Agradecido : 36 veces
Agradecimiento recibido: 41 veces
Contactar:

Re: Programando un MULTIPLAN en BASIC

Mensajepor FloppySoftware » 23 Jul 2012 17:36

Esto es de hace unos meses, pero...

¿¡Es que ya nadie se acuerda de SUPERCALC!?

La v2 se suministraba con el PCW, y la de hojas
que he hecho con él...

Mi primera hipoteca la calculé con él, y no me
equivoqué ni en una peseta.

Saludos.
Developing software since 1987 - http://www.floppysoftware.es


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