Historia y evolución del Casio BASIC.

Este artículo está dedicado al Casio BASIC, específico de las calculadoras científicas y gráficas de Casio. Este lenguaje de programación no tiene nada que ver con el BASIC más o menor estándar, que incorporaban desde el inicio de los años 80, los llamados "Ordenadores de Bolsillo" o "Pocket PC" de Casio, entre los que pueden encontrarse las series FX-702P, la Serie 100 (PB-100), la Serie 700 (PB-100), y tantas otras.

Con Casio BASIC nos referimos específicamente al lenguaje de programación que nació con la FX-4000P, y se incorporó posteriormente a las calculadoras gráficas de Casio, cuya primera maquina es la FX-7000G. Sigue vivo en la actualidad, ya que se ha mantenido durante todos estos años en las diferentes versiones que han ido saliendo al mercado en las todas las calculadoras gráficas.

Hay que decir que una de las principales caracterísicas de este lenguaje es su excesiva austeridad en comandos disponibles. Nace con un corto número de comandos, y este problema no se soluciona en las diferentes versiones de máquinas, cada vez más avanzadas que van surgiendo a lo largo de los años. Tan limitado es el número de comandos, que hace inviable la programación de textos, caracteres o sprites animados, la adecuado presentación de varios datos en la pantalla, o incluso el poder presentar datos de manera secuencial sin que se detenga el programa. A modo simple de ejemplo, durante muchos años, un programa que contara números del 1 al 100 automáticamente en pantalla no era posible.

Esto no quiere decir que fuera un lenguaje inútil, porque sí permitía, por ejemplo, la ejecución de complejos cálculos matemáticos que permitían resolver problemas científicos, de ingeniería o de finanzas. Pero a los ojos de los programadores puros, quedaba bastante limitado. En la tabla de abajo se puede observar el mismo programa, el que usamos para ver el rendimiento de las calculadoras, en tres etapas. El código de la izquierda corresponde a la calculadora FX-4000P, cuando se inicia el Casio BASIC y tiene la extraña característica de tener que introducirse todo el programa en una sóla línea. El código central puede pertener a cualquier calculadora gráfica desde el año 1985, hasta la aparición de la 2ª generación de este lenguaje 11 años más tarde. Finalmente, el código de la derecha, es el válido para las calculadoras que ya implementaban el Casio Basic de 2ª generación en 1996 con la FX-9750G. Puede observarse que el código es básicamente el mismo con mínimas modificaciones. Esto es debido a que no se emplean las características gráficas ni de lectura del teclado disponibles a partir de 1996.

Casio BASIC de 1ª Generación en una FX-4000P de una sóla línea.
----------------------------
50→N:Lbl 2:10→L:Lbl 1:L→X:X+1→X:X-4.567E-4→X:X+70→X:X-69→X:X*7→X:X/11→X:L-1→L:L≠0⇒Goto 1:ln X→X:sin X→X:√X→X:√X→X:N-1→N:N≠0⇒Goto 2:X

Casio Basic 2ª generación Classpad 300 y simil.
----------------------------
ClrText
50→N
Lbl a2
10→L
Lbl a1
L→X
X+1→X
X-4.567E-4→X
X+70→X:X-69→X:X*7→X:X/11→X
L-1→L
if L≠0
Then
Goto a1
IfEnd
ln (X)→X
sin (X)→X
√(X)→X
√(X)→X
N-1→N
if N≠0
Then
Goto a2
IfEnd
Locate 1,1,X
Código para la FC-200. Máquina prácticamente igual que la FX-4000P, pero al ser financiera no tiene funciones como el seno, o notación científica. Calculamos el seno con una serie de Taylor de 3 términos y el 4.567E-4 lo escribimos como 0.0004567.
----------------------------
50→N:Lbl 2:10→L:Lbl 1:L→X:X+1→X:X-0.0004567→X:X+70→X:X-69→X:X*7→X:X/11→X:L-1→L:L≠0⇒Goto 1:ln X→X:X-X^3/6+x^5/120→X:√X→X:√X→X:N-1→N:N≠0⇒Goto 2:X

Casio BASIC de 1ª Generación en una máquina de la Serie FX-7000G.
----------------------------
500→N
Lbl 2
10→L
Lbl 1
L→X
X+1→X
X-4.567E-4→X
X+70→X
X-69→X
X*7→X
X/11→X
L-1→L
L≠0⇒Goto 1
ln X→X
sin X→X
√X→X
√X→X
N-1→N
N≠0⇒Goto 2
X
Casio BASIC de 2ª Generación ejecutable a partir de la Serie FX-9850G.
----------------------------
ClrText
500→N
Lbl 2
10→L
Lbl 1
L→X
X+1→X
X-4.567E-4→X
X+70→X
X-69→X
X*7→X
X/11→X
L-1→L
L≠0⇒Goto 1
ln X→X
sin X→X
√X→X
√X→X
N-1→N
N≠0⇒Goto 2
Locate 1,1,X

"Extraño" Casio BASIC de la FX-4800P. ---------------------------- N=100 Lbl 2 L=10 Lbl 1 X=L X=X+1 X=X-4.567E-4 X=X+70 X=X-69 X=X*7 X=X÷11 L=L-1 L≠0⇒Goto 1◺ *Ver "◺" para que no pare X=ln X X=sin X X=√X X=√X N=N-1 N≠0⇒Goto 2◺ *Ver "◺" para que no pare X

Tras especificar a qué nos referimos con Casio BASIC, pasemos a ver su historia, a través de las grandes mejoras introducidas en las máquinas que lo portaban.

Nacimiento. Casio FX-4000P.
La calculadora Casio FX-4000P es la primera calculadora programable que introduce el Casio BASIC. Se caracteriza por ser una máquina de aspecto muy similar a cualquier calculadora científica de la época, con una pantalla de cuarzo líquido que incorpora caracteres formados por matrices de puntos de 7x5, en lugar de los típicos formados con segmentos. Tiene una única línea de 12 caracteres. Dispone de una memoria de 550 bytes o pasos.
  • Se pueden introducir 10 programas en 10 áreas de programas, numeradas de P0 a P10 (típico sistema Casio).
  • Los programas sólo pueden contener una línea. Es posible realizar saltos y bucles dentro del programa mediante la inclusión de etiquetas.
  • Dispone de los operadores aritméticos (+,-,/ y *) y lógicos (>, <, =, ≤, ≥ y ≠) normales.
  • Se pueden utilizar en programación las funciones matemáticas propias de una calculadora científica, y que aumentan en número según van saliendo al mercado modelos más modernos (sin, cos, tan, log, ln, e, √, etc).
  • Implementa subrutinas mediante saltos entre áreas de programa con el comando Prg.
  • Dispone de 26 variables, nombradas de la A a la Z, que pueden ser utilizadas como una matriz unidimensionl (A[n]). Se puede ampliar el número de variables mediante Mode "." (Defm) hasta un máximo de 94, consumiento 8 bytes de programa por cada variable ampliada.
  • Dispone de comandos auxiliares, como el cambio de sistema de medición de ángulos Rad, Deg, Gra, en modo de programa.
  • Puede imprimir textos en pantalla, mediante su delimitación entre comillas. "TEXTO", "X=", "INTRODUZCA COSTE=".
  • Comandos BASIC: Lbl, Goto, (asignación de variables), (salto condicional), ? (solicitud datos al usuario), : (separación de comandos), (presentación de datos), Isz, Dsz y Prg.
La primera calculadora gráfica de la historia. Serie FX-7000G.
La Casio FX-7000G tiene el honor de ser la primera calculadora gráfica de la historia, cuyo concepto sería copiado por casi todas las demás marcas. Tiene una pantalla gráfica de cuarzo líquido de 96x64 puntos que se distribuye en modo texto en 8 líneas de 16 caracteres, y que será la pantalla de las calculadoras gráficas en adelante, a excepción de los modelos 6XXX, que montan una pantalla con la mitad de puntos (96x32). Las pantallas de modo GRÁFICO y TEXTO son independientes. Dispone de una memoria de 422 bytes o pasos. La pantalla de la derecha corresponde a una FX-8000P de esta misma serie, que tiene 1442 bytes disponibles para el usuario.

No dispone de ninguna mejora en comandos BASIC, siendo las mejoras que añade respecto a los modelos anteriores:
  • Los programas pueden contener varias líneas, disponiendo de un editor que aprovecha la pantalla de 8 líneas x 16 caracteres.
  • Dispone de comandos específicos para el tratamiento de gráficos matemáticos/estadísticos: Plot, Line, Graph, Factor, Trace, Range, Cls, etc.
  • Comandos BASIC nuevos: Ninguno.
Versión reducida y modificada de Casio BASIC. FX-4500P.
Es difícil clasificar esta versión del lenguaje incluso hasta dentro de Casio BASIC, ya que tiene ciertas particularidades que la diferencia de la línea que sigue la propia evolución del lenguaje. Modifica el comando de introducción de datos, y otros que reflejamos a continuación; y al mismo tiempo mantiene el resto de comandos, aunque de manera reducida. Cabe destacar también la adición como mejora del comando PAUSE. Dispone de 1103 bytes para la programación y la posibilidad de ejecutar 10 subrutinas. En cuanto a potencia de procesado, nos encontramos ante una máquina lenta.
  • La introducción de datos se realiza poniendo entre llaves las variables {A}, en vez de con el signo de interrogación ?A.
  • La asignación de variables es como en el BASIC estándar A=1, en vez de como hasta ahora 1→A.
  • Se incluye a nuestro juicio un comando potente: PAUSE. Muestra en pantalla el resultado del último cálculo y se para 0,5 segundos por cada valor (0=0s, 1=0,5s, 2=1seg, etc). Es potente, ya que permite visualizar datos sin detener la ejecución del programa como hasta ahora.
  • La multiplicación de dos variables no exige el símbolo * o x como en A=B*T, basta con escribir A=BT.
  • No existe límite en el número de programas, dependiendo de la capacidad de la memoria.
  • En los saltos condicionales, introduce los comandos y El primero para delimitar donde terminan los comandos a ejecutar y el segundo para la ejecución del código que deseemos en caso de que no dé la condición. La secuencia completa para un salto incondicional es: “A=0 ? [Código a ejecutar en caso de que la sentencia lógica sea cierta] [Código a ejecutar si es falsa]”.
  • No dispone de los comandos de control de bucles ISZ y DSZ.
Calculadora Casio BASIC con una versión de pantalla de texto y Casio BASIC de la FX-4500P. FX-4800P.
La FX-4800P, junto con su predecesora la FX-4500P, tiene una versión particular de Casio BASIC. Se caracteriza por tener una pantalla grande, únicamente de texto de 4 líneas x 16 caracteres. Mantiene el comando PAUSE introducido por la FX-4500P, que le la potencia de poder ejecutar programas sin tener que parar cada vez que se presenta un resultado. No obstante no dispone de un comando que posicione el cursor en una determinada posición de la pantalla, con lo que la presentación de datos con PAUSE es saltando a la siguiente línea y haciendo scroll cuando ésta se llena. Dispone de 4500 bytes y 10 subrutinas.
  • Mantiene la introducción de datos mediante {A}, la asignación de variables como en el BASIC estándar A=1 y los comandos para el salto condicional y ., como introdujo la FX-4500P. Estos comandos son específicos y exclusivos de estas dos calculadoras.
  • Vuelve a incorporar los comandos de control de bucles ISZ y DSZ que no tiene la 4500P.
Hemos puesto un ejemplo del programa de cálculo de rendimiento al principio de esta página.

Matrices en programación. Casio Icon Menu Power Graphic series.
Tienen que pasar 8 años para poder ver un pequeño cambio significativo, aunque desgraciadamente no siquiera es en la programación BASIC; sino en la inclusión de la gestión de matrices en los programas.

No dispone de ninguna mejora en comandos BASIC, siendo las mejoras que añade respecto a los modelos anteriores:
  • Permite realizar cálculos simples con patrices: Swap, cálculos escalares de multiplicación y suma, y suma de filas.
  • Comandos BASIC nuevos: Ninguno.
EL gran salto, Casio BASIC de segunda generación. Serie 9850G.
Finalmente, en 1996 se produce el gran salto adelante, con el Casio BASIC de segunda generación, el cual ya incorpora prácticamente todos los comandos necesarios de una versión completa de lenguaje de programación. A partir de aquí ya se pueden prgramar juegos, complejas presentaciones de datos en pantalla, aplicaciones más visuales, y aplicaciones que necesiten movimiento. Hasta la aparición del comando LOCATE, cualquier presentación de datos en pantalla detenía el programa. Y no se podía leer el teclado, más allá de de la solicitud de datos que se realizaba con el comando ?. Ahora ya se dispone del comando GETKEY, para monitorizar el teclado, y detectar qué tecla ha sido pulsada.

Las mejoras que añade respecto a los modelos anteriores:
  • Renovado sistema de ficheros, donde ya no hay la limitación del número de programas, y estos se identifican por un nombre.
  • Se modifica el sistema de subrutinas. Los programas se llaman igual con el comando PROG, y se vuelve al programa que la llamó con el comando RETURN.
  • Se permite la asignación a varias variables a la vez. "1→A~E" asigna 1 a las variables A, B, C, D y E.
  • Se incorporan nuevos comandos de tratamientos de Listas, Tablas, y Gráficos.
  • Con la llegada de las Listas, el empleo de variable matriz se hace mediante listas.
  • Comandos BASIC nuevos: IF-THEN-ELSE-IfEND, FOR-TO-STEP-NEXT, WHILE-WEND, DO-LpWHILE, RETURN, BREAK, STOP, ClrTEXT, ClrGRAPH, LOCATE, GETKEY, SEND, RECEIVE.
Pequeñas científicas con capacidad de programación. FX-3650P/3950P.
Casio crea una línea de calculadoras pequeñas y planas, que son prácticamente calculadoras científicas normales, con una capacidad básica de programación, limitada, pero que ciertamente puede apoyar a estudiantes y profesionales al permitirles introducir pequeños programas en Casio Basic. En los programas, se pueden utilizar todas las funciones de la calculadora, incluidas las complejas, como por ejemplo las integrales, funciones estadísticas, etc. A pesar del reducido número de comandos (7), se puede programar en estas máquinas el test de rendimiento nº 1, sin problema, tal cual está incluido en esta misma página relativo a la FX-4000P.

Son modelos de capacidades reducidas, por lo que no suponen ninguna mejora para el lenguaje.
  • Sólo puede almacenar 4 programas, disponiendo de unos escasos 360 bytes.
  • Sólo dispone de 7 variables. A, B, C, D, X, Y y M.
  • Comandos BASIC: Únicamente dispone de los siguientes- Lbl, Goto, , , ?, : y .
Avanzada calculadora CAS con pantalla grande. Classpad 300.
Área de programas de la Classpad
con programa contador
(lo incorporarán posteriormente también las 300+, 330, 330+, 400)

Aunque no es la primera calculadora CAS de Casio (fue la CFX-9970G), sí que puede decirse que las Classpad despliegan esta característica en todo su explendor debido a dos razones: disponer de un potente procesador (SH3) y una pantalla con una muy buena resolución (160x240). Desgraciadamente el intérprete BASIC es muy, muy lento para el hardware de esta máquina, lo que lo hace un aspecto muy negativo.
Como aspecto positivo, recalacar que el editor de programas es muy avanzado y completo, con funciones de copiar, pegar, etc (ver imagen de la derecha).

Conserva los comandos Lbl ( aunque las etiquetas deben seguir la regla de nombres de variables. No vale ya 1, 2 ó 3; sino que deben nombrarse por ejemplo a1, a2, etc.), Goto y (asignación de variables).
Pierde los comandos (salto condicional, sustituido por if-then-else-endif), ? (solicitud datos al usuario, sustituido por input) , (presentación de datos, sustituido por múltiples comandos: print, locate, text, message, etc.), Isz, Dsz y Prg (sustuido por llamadas a subrutinas que son otros programas o funciones definidas).
  • Puede almacenar múltiples programas, hasta el límite de la memoria principal, que es 512Kbs.
  • Es difícil numerar los comandos nuevos, ya que dispone de un catálogo muy extenso; aunque se enumeran los genéricos más importantes.
  • Comandos BASIC nuevos: Switch-Case-Default-SwitchEnd, Skip, Pause, Wait, Input, InputStr, Print, Print Natural, Message y gran cantidad de nuevos comando gráficos, estadísticos, misceláneos, gráficos 3D, Gráficos_y_Tablas, etc.
Serie 9860G.
En el año 2005 se lanzan al mercado las calculadoras de la Serie 9860G. Tienen un aspecto renovado y una pantalla más nítida.

Las mejoras que añade respecto a los modelos anteriores:
  • Incluye un puerto USB, además del SERIE, para comunicación con el ordenador.
  • En el modelo SD se puede introducir una tarjeta SD para almacenamiento de programas, e intercambio con el PC.
  • Amplia comandos de comunicaciones: RECEIVE38K, SEND38K, OPENCOMPORT38K, CLOSECOMPORT38K.
  • Introduce algunos comandos nuevos Gráficos.
  • Comandos BASIC nuevos: Ninguno digno de destacar, excepto los ya comentados de comunicaciones, o alguno gráfico.
La excelencia de Casio BASIC, pero sin comandos gráficos. FX-5800P.
Esta calculadora, de aspecto muy similar a la FX-4800P, no tiene nada que ver con ella; a pesar del aspecto exterior muy parecido. Pudiera parecer una simple evolución, pero no lo es. Dispone de toda la potencia del Casio BASIC que introdujo la 9850G casi 9 años atrás, en una pantalla que no es gráfica, pero de gran formato, con caracteres grandes muy fáciles de leer, y pantalla muy nítida.

Desgraciadamente, y pesar de tener un Casio BASIC más potente, la velocidad de procesado respecto a la 4800P es un 10% menor.

Tratamiento de cadenas. Serie 9860GII.
En el año 2009 se renueva la Serie 9860 con unas máquinas de similares características, las GII, pero con algunas mejoras en cuanto al Casio BASIC se refiere, fundamentalmente con la inclusión de un completo juego de tratamiento de cadenas. No obstante, no se considera suficiente mejora en el lenguaje, como para considerarlo la Tercera Generación.

Las mejoras que añade respecto a los modelos anteriores:
  • Introduce un buen número de comandos de tratamiento de cadenas de caracteres.
  • Introduce algunos comandos nuevos Gráficos.
  • Introduce un comando para el tratamiento de menús.
    Comandos BASIC nuevos: MENU, StrCMP, StrINV, StrJOIN, StrLEFT, StrLEN, StrLWR, StrMID, StrRIGHT, StrROTATE, StrSHIFT, StrSRC, StrUPR.
Bloque de las máquinas "singulares" que utilizan Casio BASIC:

La programable de cálculos financieros. FC-200.
Es casi misma máquina que la Casio FX-4000P con un firmware diferente; adaptado al cálculo financiero. Por esta razón dispone de funciones financieras, y le faltan algunas básicas científicas, como por ejemplo las trigonométricas. Tampoco dispone de notación científica. No obstante, como se puede ver en los ejemplos de programas del inicio de esta página, hemos calculado la función seno con una serie de Taylor, y la notación científica 4.567E-4 la hemos salvado con un simple 0.0004567. Esto será algo más difícil con potencias mayores, pero no imposible.
Desgraciadamente, esta calculadora tiene muy poca memoria disponible para el usuario. Es una pena que una máquina tan potente disponga de sólo 262 Bytes libres para la programación.

XX. FC-1000.
Posiblemente el mismo hardware, o casi el mismo que la Casio FX-4500G.

XX. Casio FX-FD10 Pro.