COMUNICACIONES CON EL ORDENADOR DE BOLSILLO CASIO FX 850P / 880P
1. Introducción
Los ordenadores de bolsillo
FX 850P (hasta 40K RAM) y FX 880P (hasta 64K de RAM) de Casio pueden enviar
y recibir datos del extereior a través de dos puertos estándar:
un puerto serie duplex (envío y recepción simultánea)
asíncrono RS-232 y un puerto paralelo de salida a impresora.
El fabricante vende una unidad
(FA-6) que se conecta al ordenador a través de un pequeño conector
de 30 pines situado en un lateral de esta, y que suministra los puertos
serie RS-232 y paralelo (Centronics) mediante unos conectores estándar.
Sin embargo, el propio FX 850P incorpora en su interior la mayor parte del
hardware necesario para manejar esos puertos, además del software.
Así se puede acceder a esos puerto a través del conector del
lateral, sin emplear la unidad FA-6.
Los dos puertos estándar
hacen de este ordenador de bolsillo un equipo muy versatil, capaz de conectarse
con otros equipos como un PC, al igual que hacen otras agendas y equipos
de bolsillo. Además su interprete BASIC incorpora suficientes instrucciones
para sacar todo el provecho de dischos puertos de forma sencilla.
El puerto más utilizado
es el serie, y con el se puede, por ejemplo, enviar programas o datos del
banco de datos desde el FX 850P a un ordenador personal. También se
puede cargar programas o datos almacenados en un ordenador personal en el
FX 850P. Con ello podemos editar los programas en un editor de textos del
PC, lo que resulta normalmente más comodo, o mantener bibliotecas
o copias de seguridad de de programas y datos. Además se puede utilizar
el puerto para otro tipo de comunicaciones dentro de los programas BASIC.
Otra posible opción más sencilla es conectar dos ordenadores
de bolsillo directamente para intercambiar datos o programas.
Este documento pretende enseñar
los conocimientos básicos para empezar a sacar partido de los puertos
mencionados. En cualquier caso, siempre será conveniente repasar el
manual de usuario del ordenador, sobre todo los capítulos relativos
al manejo de archivos y a los comandos de entrada y salida. Tambíen
puede resultar muy interesante repasar lás páginas web listadas
en el apartado "Direcciones de interés".
IMPORTANTE: El autor no se responsabiliza
de los posibles daños que un lector pueda producir en su computadora
FX 850P / 880P. Si esto ocurre, probablemente será debido a un mal
uso de esta documentación, ya que todo lo aquí presentado ha
sido experimentado con éxito por el autor (desde los circuitos necesarios
a los programas). Se aconseja leer bien lo aquí presentado, así
como el manual de usuario, y comprender lo que se está haciendo antes
de proceder a realizar las conexiones a través de los puertos del
ordenador. No estarían de más algunos conocimeintos básicos
de eléctrónica.
2. Conector de periféricos

Pin |
Función |
TIPO |
Puerto |
Descripción |
1 |
Vcc |
Aliment. |
- |
+5V del ordenador. |
3 |
CD |
Entrada |
RS-232 |
Detección de portadora. A +5V cuando van a llegar datos al ordenador. |
5 |
- |
- |
- |
|
7 |
- |
- |
- |
|
9 |
RD |
Entrada |
RS-232 |
Recepción de datos. |
11 |
/STB |
Salida |
Paralelo |
Indica dato válido en el puerto paralelo cuando es +5V |
13 |
RTS |
Salida |
RS-232 |
Petición para enviar datos. A +5V cuando el ordenador quiere enviar datos. |
15 |
/PWR ON |
Salida |
- |
A 0V cuando el ordenadpor está encendido. |
17 |
D4 |
Sal./Ent. |
Paralelo |
Bit 4 del bus de datos interno. |
19 |
D5 |
Sal./Ent. |
Paralelo |
Bit 5 del bus de datos interno. |
21 |
D6 |
Sal./Ent. |
Paralelo |
Bit 6 del bus de datos interno. |
23 |
D7 |
Sal./Ent. |
Paralelo |
Bit 7 del bus de datos interno. |
25 |
AD1 |
Salida |
- |
Bit 1 del cursor? |
27 |
/OE |
Salida |
- |
Habilitar salida de datos. |
29 |
/CS |
Salida |
Paralelo |
Selección de chip para el puerto paralelo. Activa cuando es 0V. |
|
Pin |
Función |
TIPO |
Puerto |
Descripción |
2 |
DSR |
Entrada |
RS-232 |
Módem preparado. A +5V indica que el equipo al que se conecta está listo. |
4 |
CTS |
Salida |
RS-232 |
Listo para enviar. A +5V indica que el otro equipo puede recibir datos. |
6 |
BUSY |
Entrada |
Paralelo |
Impresora ocupada. A +5V indica que la impresora no puede recibir datos. |
8 |
- |
- |
- |
|
10 |
/INIT |
Salida |
Paralelo |
Iniciar impresora (0V). |
12 |
DTR |
Salida |
RS-232 |
Ordenador preparado. A +5V indica que el ordenador está listo. |
14 |
TD |
Salida |
RS-232 |
Transmisión de datos. |
16 |
D3 |
Sal./Ent. |
Paralelo |
Bit 3 del bus de datos interno. |
18 |
D2 |
Sal./Ent. |
Paralelo |
Bit 2 del bus de datos interno. |
20 |
D1 |
Sal./Ent. |
Paralelo |
Bit 1 del bus de datos interno. |
22 |
D0 |
Sal./Ent. |
Paralelo |
Bit 0 del bus de datos interno. |
24 |
AD0 |
Salida |
- |
Bit 0 del cursor? |
26 |
AD2 |
Salida |
- |
Bit 2 del cursor? |
28 |
RD/WR |
Salida |
Paralelo |
Indica una operación de lectura (a +5V) o escritura (+0V). |
30 |
GND |
Aliment. |
- |
Referencia, 0V. |
|
- Todas las señales
emplean niveles de 5V en lógica positiva, es decir, +5V para el '1'
y 0V para el '0'.
- La señal Vcc corresponde
a la alimentación del FX 850P, y no debe utilizarse para evitar
descargar las baterias de este.
- Tampoco es buena idea
conectar dispositivos de consumo considerable (del orden de mA o más)
en las lineas de salida.
- Cualquier conexión
debe hacerce con el FX 850P apagado, y siempre debería verificarse
antes de encender la unidad que se utilizan los pines correctos.
- La conexión
seríe se puede realizar utilizando solo tres señales: TD, RD
y GND. Las otras señales (CD, RTS, CTS, DTR y DSR) son prescindibles,
aunque pueden ser utiles para comunicarse con ciertos dispositivos como por
ejemplo, un módem telefónico.
El conector macho necesario para utilizar los puertos
del FX 850P no es fácil de encontrar. Normalmente se recurre a hacer
uno de forma "artesanal". Se pueden emplear también cables finos como
los de telefonía, con el cuidado de insertarlos en la línea correcta
cada vez que se realiza la conexión. Yo me he creado un conector a
partir de una pequeña placa de fibra de
vidreo de doble cara, a la que he soldado horizontalmente los pines
necesarios para una conexión serie; RD y dos más de apoyo para la
cara de arriba, y TD, GND y otro más de apoyo para la cara de abajo. El
conector se muestra en las siguientes figuras:
 |
Conector visto desde arriba |
|
 |
Conector visto desde abajo |
|
 |
Conector insertado en la FX850P |
|
 |
Conector junto con el circuito de interfaz serie y el DB-25 para el RS-232 del PC |
|
3. Conexión serie entre dos FX 850P
Esta conexión resulta muy sencilla, ya que no se requiere convertir niveles de tensión.
Para una transmisión básica por el puerto seríe con tres hilos se debe seguir este esquema:
4. Conexión serie con un PC u otro equipo
Las señales RS-232 presentes en el conector del FX
850P emplean niveles TTL de 5V que deben ser adaptados a los niveles
RS-232 estándar. En TTL el '1' se representa con +5V y el '0' con 0V.
En cambio, en RS-232 el '1' se representa con una tensión de -15V a -3V
y el 0 con +3V a +15V.
Un circuito como el mostrado a continuación
puede realizar dicha función para una transmisión básica con tres hilos
(TD, RD y GND). En este caso, se utilizan las señales DTR y RTS
procedentes del puerto RS-232 del PC (u otro equipo) para obtener una
tensión de alimentación para el circuito, y así no se requiere una
fuente de alimentación externa.
El ciruito integrado IC1 es el encargado de
transformar e invertir los niveles de tensión. Para alimentar dicho
circuito con 5V se requiere el regulador IC2, que se alimenta de la
tensión obtenida de las líneas RTS y DTR del puerto del PC con los
diodos rectificadores D1 y D2
5. Conexión por el puerto paralelo
Las líneas de datos del interfaz del FX 850P deben
pasar a través de un latch que se habilite cuando se realiza una
escritura en dicho puerto. Puede utilizarse un circuito como el
siguiente, que es una versión de uno expuesto en la revista Elektor
(Marzo 1994).
Es importante alimentar el circuito con 5V procedentes de una fuente exterior para evitar descargar las
baterias de la FX 850P. Por el mismo motivo deben usarse integrados CMOS de bajo consumo (como las series HC o HCT).
La señal de salida PSTROBE, activa cuando tiene 0V,
indica a la impresora (u otro dispositivo conectado al interfaz
paalelo) que el dato presente es válido. La linea PBSY (BYUSY) sirve
para que la impresora indique al
ordenador que no puede recibior datos, lo que ocurre cuando vale +5V.
El ordenador no enviará datos al puerto paralelo (las instrucciones
como
LPRINT o LLIST se bloquean) hasta que esa línea tenga 0V. La
linea PINIT (INIT) sirve para inicializar la impresora, cuando vale 0V.
Del
control de estas líneas se encarga el software del FX 850P cuando se
ejecutan los comandos que usan el puerto.
Podría pensarse en utilizar la señal STROBE también
para validar el almacenamiento del dato en el latch, junto con las
señales WR y CS, pero esto no es correcto porque esta señal se activa
con posteioridad a las otras DOS señales. Realmente, STROBE deberá
controla otro latch diferente en el dispositivo periférico conectado al
puerto.
NOTA: Personalmente he encontrado problemas con este
circuito, ya que el latch no almacena correctamente los datos que van
al puerto paralelo, al parecer
porque las señales Wr y CS no se activan (ponen a 0V) simultánemente.
Por eso empleo habitualmente la comunicación serie. Seguiré
investigando sobre el uso del puerto paralelo del FX 850P para
solucionar estos problemas y ofrecer en está página un circuito de
interface paralelo funcional. Hasta ahora he constatado que las señales
D0-D7, WE y OE del interface del FX 850P no son especificas del puerto
paralelo, y son señales internas
del ordenador. La señal CS si que se activa sólo al usar el puerto
paralelo. Sería interesante monitorizar estas líneas
mientras se emplea el puerto paralelo para ver sus tiempos.
6. Instrucciones del FX 850P relativas al puerto serie
Lo primero a conocer es el llamado descriptor de archivo. Este es una cadena de caracteres que
identifica un archivo, dispositivo o puerto y o otros parámetros necesarios y está compuesto de tres partes:
Nombre de dispositivo.
Identifica al tipo de dispositivo al que se accede. Puede ser CAS0:,
CAS1: o COM0:. Las dos primeros permiten acceder a ficheros grabados en cinta.
El que tiene interés ahora es el tercero, COM0:, que identifica al puerto serie.
- Parámetros.
Cadena que contiene los valores de ciertos parámetros requeridos
por el dispositivo. Para el puerto serie (COM0:) se emplea una cadena formada
por 9 valores separados por comas que definen el formato empleado para la transmisión
asícrona RS-232. Estos son:
Parámetro |
Posibles valores |
Función |
Velocidad |
1, 2, 3, 4, 5, 6 |
Velocidad de transmisión en bits por segundo (bps). 1 se refiere a 150bps, 2 a 300bps, 3
a 600bps, 4 a 1200bps, 5 a 2400bps y 6 a 4800bps. |
Paridad |
N, E, O |
Detección de error de paridad. N si no se usa detección, E para paridad
par y O para paridad impar. Al emplear detección el FX 850 genera un error de paridad (PO
error, cod 31) cuando detecta erroes en la recepción. |
Bits por carácter |
7, 8 |
Número de bits en cada dato transmitido. Normalmente se emplean 8. |
Bits de parada |
1, 2 |
Número de bits de paro o final tras el dato transmitido. Cuando se generan
erores con velocidades altas (4800) conviene emplear 2 bits. |
Usa CTS |
C, N |
Esta línea es empleada si el dispositivo en el otro extremo de la conexión requiere ser avisado antes
de tranmitir datos hacia el FX 850. Con C se activará la línea para dar el aviso. Con N no se utiliza. |
Usa DSR |
D, N |
Cuando se emplea estaopción (valor D) se requiere que la línea de entrada
DSR esté activa para poder enviar. |
Usa CD |
C, N |
Cuando se emplea (valor C) se requiere que la línea de entrada CD se
active antes de recibir datos. |
UsaXOn/XOff |
B, N |
El
protocolo XOn/XOff sirve para controlar el flujo de datos. Durante la
recepción, cuando se satura el buffer (en el FX 850P es de 64 bytes) se
envía un carácter especial llamado XOff. El emisor parará de enviar
cuando reciba un XOff, y volverá a transmitir al recibir un carácter
XOn. Con la opción B se activa el uso de este protocolo, lo que es
conveniente al tranmitir programas largos o grandes bloques de datos. |
Usa SI/SO |
S, N |
Cuando
se emplean tramisiones de 7 bits (ver valor de Bits por carácter), los
datos con valores superiores a 127 se pueden enviar precedidos de un
carácter especial llamado SO. Para volver a enviar datos menores
de 128 se envía antes el carácter especial SI. Este modo se activa con
la opción S. |
Por ejemplo, la cadena "2,E,8,1,N,N,N,B,N"
representa que se va a utilizar una transmisión a 300bps (2) con
paridad par (E) de 8 bits por caracter (8) y con dos bits de paro (2),
empleando además el protocolo XOn/XOff (B). No se emplea ninguna de las
señales de control del puerto serie (N). Estos son realmente los
valores por defecto empleados por el FX 850P, es decir, con la omisión
de uno de los valores se tomará el valor correspondiente indicado. Así,
la cadena "6,N" representará
una transmisión a 4800bps sin paridad, siendo el resto de parámetros los mismos de antes.
-
Nombre de archivo.
Solo se requiere al trabajar con ficheros grabados en cinta, por lo que no se hablará del ellos aquí.
Según lo anterior, se puede hacer referencia a una trasmisión por el puerto serie mediante
una cadena de descriptor como "COM0:2,E,8,1,N,N,N,B,N".
Los comandos del FX 850P que posibilitan las comunicaciones por el puerto serie son los siguientes:
OPEN descriptor AS #1. Se utiliza dentro de un programa para declarar que un archivo o
dispositivo, como puede ser el puerto serie, va a ser utilizado a continuación.
PRINT #1, expresión {, ;} expresión...
Se utiliza dentro de un programa y funciona como el comando PRINT
habitual, solo que escribe los datos en el archivo abierto previamente
con OPEN. En el caso del puerto serie, los datos son enviados por las
líneas de este. Cuando no se especifica el punto y coma al final del
PRINT, se envía la pareja de códigos 0Dh y 0Ah (retorno de carro y
avance de línea).
INPUT #1, variable, variable...
Se utiliza dentro de un programa y permite leer datos de un archivo
abierto con OPEN, de igual manera que el comando habitual INPUT. Usado
sobre el puerto serie permite leer los datos ya recibidos y guardados
en un buffer interno de la unidad.
INPUT$ (expresión, #1). Devuelve una cadena con el número de carácteres
especificado por expresión procedentes del archivo abierto anteriormente con OPEN. Funciona como INPUT$(expresión) lo hace
sobre el teclado de la FX 850P.
EOF (1).
Permite detectar el final de un archivo. La función devuelve 0 (FALSE)
mientras queden datos en un archivo o en el buffer donde se almacenan
los datos recibidos por el puerto serie, y -1 (TRUE) cuando se alcanza
el final del archivo o ya no quedan datos en el buffer de recepción.
CLOSE. Concluye la utilización del archivo declarado con OPEN dentro de un programa.
LOAD descriptor. Lee o recibe un programa desde un archivo o del puerto serie. Al recibir
el programa, éste se recibe como un archivo ASCII. El comando debe ejecutarse manualmente dentro del modo BASIC.
SAVE descriptor. Escribe o envía un programa hacia un archivo o el puerto serie.
Al enviar por el puerto serie, se envía como un archivo ASCII. El comando debe ejecutarse manualmente dentro del modo BASIC.
LOAD# descriptor. Igual que LOAD, pero para cargar o recibir el contenido del banco de datos.
SAVE# descriptor. Igual que SAVE, pero para guardar o enviar el contenido del banco de datos.
Para obtener más información sobre los comandos anteriores se debería consultar el manual de usuario.
7. Intercambiar programas y datos entre dos FX 850P
Considerando que se ha efectuado una conexión como la mostrada en el apartado "Conexión
serie entre dos FX 850P", a continuación se expone la secuencia de acciones
para enviar un programa de una FX 850P a otra:
- Encender ambos ordenadores y pasar al modo BASIC (modo 1).
- En el ordenador origen situarse en el área del programa que se desea enviar. En el ordenador
destino situarse en el área de programa donde se desea cargar lo recibido.
- En el ordenador origen introducir el comando SAVE "COM0:descriptor" donde descritor
es una cadena según lo descrito en el apartado "Instrucciones del FX 850P relativas al puerto serie" y
pulsar EXE. Por ejemplo SAVE "COM0:6,N,8,1,N,N,N,B,N".
- En el ordenador destino introducir el comando LOAD "COM0:descriptor" y pulsar EXE. Por ejemplo LOAD "COM0:6,N,8,1,N,N,N,B,N".
- Si
en el ordenador destino no acaba la ejecución del comando LOAD en unos
segundos pulsar BREAK (en este caso, se puede averiguar cuando finaliza
la recepción viendo si ha dejado de parpadear la pantalla del ordenador
receptor, ya que en las operaciones con los puertos el refresco de la
pantalla es peor).
- Comprobar que en el destino se ha recibido el programa entero. Si no es así se debe probar la
transmisión con parámetros más restrictivos: menor velocidad, 2 bits de parada...
Para intercambiar el contenido del banco de datos se procede igual, pero empleando los comandos SAVE# descriptor
y LOAD# descriptor. En este caso no importa el área de programa actual, aunque si es necesario estar en modo 1.
Normalmnete no resulta necesario emplear los tres hilos del esquema del apartado "Conexión serie entre dos FX 850P".
Puede bastar con dos: la línea de refrencia o GND, y la línea de datos
que va del equipo origen al destino (TxD origen a RxD destino). Esto es
así porque ambos equipos emplean los mismos parámetros y tienen el
mismo tamaño de buffers internos, con lo que probablemente no se
requiera un control de flujo XOn/XOff (aunque se haya especificado
-opción B-) y en ese caso solo existe transmisión en el sentido de los
datos.
8. Guardar y cargar programas desde un PC u otro ordenador personal
Para intercambiar programas BASIC entre el FX 850P y el ordenador personal se emplea una conexión serie RS-232. Se requiere
para ello un circuito conversor de niveles como el mostrado en el aparado "Conexión serie con un PC u otro equipo".
Además, se requiere disponer de un programa de
terminal o consola en el PC, como puede ser el Hiperterminal de MS.
Windows. No es dificil encontrar otros programas de terminal gratuitos.
Aunque en Internet se pueden encontrar programas dedicados expresamente
a cargar y leer programas de la FX 850, normalmente para MS DOS, con
disponer de un programa de terminal es más que suficiente.
Antes de ver los pasos a seguir hay que tener claro
que los programas BASIC del FX 850P se transmiten y
reciben como archivos de texto ASCII, y en el ordenador personal
también se editarán y almacenaran como tales. El FX 850P emplea un
juego de
carácteres variante del ASCII estándar, y todos los carácteres
alfanuméricos y los carácteres de control más importantes coinciden con
los empleados en un ordenador personal.
Sin embargo, el FX 850 también tiene otros muchos
caracteres propios (que normalmente ocupan posiciones altas de la
tabla), y al recibir y editar un archivo de texto con un programa BASIC
en el ordenador personal estos carácteres se verán como otros
distintos. En cualquier caso, si dichos carácteres no se alteran, al
enviar de nuevo el programa al FX 850P, los carácteres se verán
correctamente en esta.
Para editar un nuevo programa BASIC en el ordenador
personal se debe utilizar un editor de textos simple, como el Notepad
de Windows, el Wordpad o Word guardando lo escrito como texto simple, o
el Edit de MS-DOS. En esos archivos de texto un programa se BASIC
del FX 850P se escribe como siempre: una serie de líneas de comandos
numeradas y acabadas con un retorno de carrro. Es importante tener
claro
que toda una misma línea de un programa debe estar estar en una misma
línea del archivo de texto, con un único retorno de carro
al final. No hay que olvidar el retorno de carro al final de la última
línea, antes del final del archivo.
En el archivo de texto con el programa BASIC se pueden escribir carácteres propios del FX 850P
conociendo su código. Este código lo podemos determinar con la funcion ASC("carácter")
en el FX 850P, o mediante una de las tablas que vienen al final del
manual de usuario. Dichos carácteres se escriben en el editor con el
teclado numérrico; pulsando ALT y teclenado el códido.
Para enviar un programa del FX 850P al ordenador personal hay que seguir estos pasos:
- Conectar al puerto serie del PC el cable serie RS-232 y el adaptador de niveles (apartado
"Conexión serie con un PC u otro equipo").
Arrancar el programa de terminal deseado en el PC.
- Configurar
el programa de terminal con los parámetros de comunicaciones deseados
(puerto serie del PC utilizado, velocidad, paridad, bits de parada y
tipo de control de flujo), como por ejemplo puerto COM2, 4800Bps, No
paridad, 1 Bit de parada y control de flujo XOn XOff (ver el
apartado "Instrucciones del
FX 850P relativas al puerto serie").
En el Hiperterminal esto se puede hacer en los diálogos que aparecen
tras ejecutar el programa, o en la opción "Propiedades-Número de
teléfono-Configurar" del menú de "Archivo". Ambos programas dan opción
de guardar la configuración con la opción "Guardar" del menú "Archivo".
- Con la FX 850P apagada realizar la conexión de esta con el circuito adaptador.
- Encender la FX 850P y pasar a modo BASIC (modo 1).
- En la FX 850P, pasar al área del programa a enviar.
- Introducir el comando SAVE descriptor (ver el apartado "Instrucciones del FX 850P relativas al puerto serie")
en el FX 850 y pulsar EXE. El descriptor debe especificar los mismos
parámetros que los indicados al programa de terminal del PC. Siguiendo
con el ejemplo, teclerar SAVE "COM0:6,N,8,1,N,N,N,B,N" y pulsar EXE.
- En
la pantalla del programa de terminal del PC debe aparecer el texto del
programa. Si se está trabajando en Windows se podrá seleccionar y
copiar ese texto al Portapapeles para luego pegarlo dentro del editor
de texto (por ejmplo Notepad) para editarlo o guardarlo. Otra opción
mejor es escoger una opción tipo "recibir archivo de texto" del
programa de terminal, si está disponible, y dar un nombre de archivo en
donde guardar el programa recibido. Esto debe realizarse antes del paso
5.
Con el programa BASIC en un archivo del PC ya se puede hacer una una copia de seguridad en disco, editar
el programa, imprimirlo...
Para realizar el proceso inverso, enviar un programa del ordenador personal al FX 850P hay que seguir estos pasos:
- Pasos 1 a 4 del procedimiento anterior.
- Pasar en la FX 850 al área de programa donde se desea cargar el archivo BASIC a recibir.
- Introducir el comando LOAD descriptor (ver apartado "Instrucciones del
FX 850P relativas al puerto serie" en la FX 850 y pulsar EXE. El descriptor debe especificar los mismos parámetros que los indicados
al programa de terminal del PC. Siguiendo con el ejemplo, teclerar LOAD "COM0:6,N,8,1,N,N,N,B,N" y pulsar EXE.
- En
la opción para enviar archivo de texto del programa de rerminal del PC
(en el Terminal de Windows 3.11 esto está menú "Transferencias" en la
opción "Enviar archivo de texto") especificar el archivo con el
programa BASIC a enviar y proceder.
- Si la FX 850 no acaba la
ejecución del comando LOAD en unos segundos pulsar BREAK (se puede
averiguar cuando finaliza la recepción viendo si ha dejado de parpadear
la pantalla de la FX 850P, ya que en las operaciones con los puertos el
refresco de la pantalla es peor). No hay que pulsar BREAK muy pronto,
ya que se puede cortar la carga del programa antes de su final.
- Comprobar que en el FX 850P se ha recibido el programa entero. Si no es así se debe probar
la transmisión con parámetros más restrictivos: menor velocidad, 2 bits de parada...
También se puede enviar
y recibir el contenido completo del banco de datos del FX 850P con los procedimientos
anteriores, solo que utilizando los comandos LOAD# y SAVE#.
Los datos del banco de datos se envían y reciben también como
ficheros de texto ASCII, con un registro del banco de datos (línea)
por cada línea del archivo separada por un retorno.
9. Usando el puerto serie desde BASIC en el FX 850P
Se pueden crear programas que usen el puerto serie para enviar o recibir datos, como por ejemplo, el
programa de terminal de prueba o el de agenda expuestos en el apartado "Utilización del puerto paralelo". Para ello están
disponibles los comandos comentados en el apartado "Instrucciones de la FX 850P relativas al puerto serie".
Una forma sencilla de enviar datos puede ser la mostrada en este programa de ejemplo:
10 CLEAR
20 RESTORE 100
30 desc$="COM0:6,N,8,1,N,N,N,B,N"
40 OPEN desc$ AS #1
50 READ dato$
60 IF dato$="$" THEN 90
70 PRINT #1,a$
80 GOTO 50
90 PRINT #1
95 CLOSE: END
100 "Hola.","Como estas?","$"
El programa enviaría los datos como varias líneas de
texto separadas por retornos de carro y avance de línea, más un retorno
y avance de línea final. Si comunicasemos el ordenador FX 850P con un
PC que tubiese un programa de terminal configurado con los mismos
parámetros especifcados en el descriptor desc$, en la pantalla del PC aparecería el texto
siguiente:
Hola.
Como estás?
_
Un programa para el FX 850 que fuese capaz de recibir y mostrar esas líneas podría ser como este:
10 CLEAR:CLS
20 desc$="COM0:6,N,8,1,N,N,N,B,N"
30 OPEN desc$ AS #1
40 INPUT #1,a$
60 IF LEN(a$)=0 THEN 90
70 PRINT a$
80 GOTO 40
90 CLOSE
Para enviar datos numéricos se pueden convertir estos a cadenas de carácteres formateadas, o sacar
mejor partido de las opciones de los comandos PRINT e INPUT (ver manual de usuario).
El anterior programa de recepción queda a la espera de recibir datos. Pero se puede crear un programa que reciba
datos si los hay, a la vez que realiza otras operaciones. Por ejemplo:
10 CLEAR
20 desc$="COM0:6,N,8,1,N,N,N,B,N"
30 OPEN desc$ AS #1
40 buf$=""
50 IF EOF(1) THEN 90
60 a$=INPUT(1,#1)
65 IF ASC(a$)=13 OR ASC(a$)=10 THEN 200
70 buf$=buf$+a$
80 GOTO 50
90 PRINT buf$;
100 'Otras operaciones
190 GOTO 40
200 CLOSE
Este programa lee los carácteres recibidos uno a uno,
y si la transmisión es lo suficientemente lenta (por ejemplo los
carácteres están siendo introducidos por teclado en un terminal en el
otro extremo) el bucle de recepción del programa
(lineas 50 a 80) saltará a la línea 100 cuando se vacíe el buffer de
recepción interno del FX 850P. En las líneas
100 y sucesivas se pueden realizar otras tareas cortas, tras las cuales
se regresa de nuevo al bucle de recepción. El programa acaba al recibir
un final de línea.
En el apartado "Programas para la FX 850P" se exponen programas más complejos.
10. Utilización del puerto paralelo
Para acceder al puerto paralelo no se requiere un descritor de archivo, ni declarar el uso de un dispositivo
o archivo. Directamente se pueden emplear los siguientes comandos para enviar datos:
LPRINT expresión {, ;} expresión... Otra variante del comando PRINT, que en este
caso permite enviar datos a la impresora conectada al puerto paralelo desde un programa.
También puede ser utilizado para enviar datos a otros dispositivos conectados al puerto paralelo
que no sean precisamente para la impresión. Para ello los datos deben enviarse como carácteres. Por ejemplo, LPRINT 100
generaría los sigientes datos o carácteres ASCII de 8 bits en el puerto
paralelo: '1' o 31h, ''0' o 30h, '0' o 30h, LF o 0Ah, y CR o 0Dh. Si
realmente se quiere enviar solo el dato de valor 100 (o 64h) debe
utilizarse LPRINT CHR$(100); (no olvidar el punto y coma final). Además es necesario desactivar la línea de entrada BUSY que
sirve para indicar al ordenador que la impresora está ocupada y no puede recibir datos.
LLIST [rango de líneas]. Envía el listado del programa del área actual a la impresora
conectada al puerto paralelo. Este comando debe ejecutarse manualmente en modo BASIC.
LLIST#. Envía todos los datos del banco de datos a la impresora conectada al puerto paralelo.
Este comando debe ejecutarse manualmente en modo BASIC.
11. Programas para la FX 850P
En los siguientes enlaces puedes descargar algunos programas BASIC que he escrito para la FX 850P.
- Agenda. Agenda que emplea el banco de datos
para mantener unos listados de teléfonos, E-mails u otro tipo de
datos. Permite listar, buscar añadir y quitar entradas. Cada entrada
mantiene una descripción y un valor (Por ejemplo, perosna y teléfono).
Además permite enviar o cargar datos desde otro equipo por el puerto
serie. También permite generar un listado formateado de los datos por el puerto serie.
- Terminal para comunicación serie.
Programa de prueba del puerto de comunicaciones sereie que permite el envío
y recepción simultádea de carácteres. Mientras en un
línea de la pantalla se muestran los carácteres recibidos,
en la otra se pueden escribir carácteres para ser enviados.
- Exploración de la tabla de carácteres.
Permite ver todos los carácteres de FX 850P (incluidos los de control)
así como sus códigos de forma interactiva.
- Conversión de base. Obtiene la expresión
de un número en base 10 según otra base especificada.
- Conversión Binario-Decimal de números
con parte fraccioanaria. Util para trabajar con números en coma flotante.
- Cálculo de una expresión de sumatorio. Acepta
una función de la variable i, y cálcula su valor para un rango de i, sumando todos los resultados.
- Información sobre la memoria. Información
sobre la memoria libre y ocupada.
- Expresión de spin de los electrones
de un átomo según el número atómico.
- Convertir un número racional en una fracción.
Busca un número tipo a/b que se aproxime según un error
máximo especificado a un número racional o con parte fraccionaria.
- Juego de ruleta tragaperras. Trata de conseguir
obtener una línea con tres figuras idénticas.
- Tabla de razones trigonométricas.
También puedes descargar estos otros programas desarrollados por Ryszard. Estos programas tienen un código muy optimizado, y muchos están escritos en castellano.
- NMat2000.
Programa muy completo que incluye muchas herramientas matemáticas
accesibles mediante menús: conversion de un valor racional a una
fracción, fraciones parciales, calendario universal, conversión a base
10, conversor automático de unidades, interpolaciones con polinomios y
funciones definidas por el usuario, circuitos RLC...
- Bioritmo. Estima tu estado de ánimo según tu bioritmo personal.
- Excel25. Hoja de cálculo con diversas utilidades.
- Games1. Programa con diversos juegos sencillos: ahorcado, piedras, test y adivinar.
- Química. Programa de química inorgánica.
- Submarin. Juego de hundir barcos, jugando contra el FX850.
- Sysinfo. Muestra información de la calculadora, tanto general como avanzada. También permite acceder a ciertas funciones internas.
12. Enlaces de interés
He aquí algunos enlaces a webs sobre el tema.
- http://jave.aussi-net.com/: "Página de Josep
A. Avellaneda". Página personal con información sobre como
comunicar el FX 850P/880P con el PC y con varios programas.
- http://home.t-online.de/home/milan.urosevic/homepage.htm:
"Data Link - Cables for CASIO Devices". Página dedicada a cables de
conexión para agendas y calculadoras Casio. Tiene un apartado sobre el
interfaz del FX-850P, con artículos de la revista Elecktor sobre la
creación de los interfaces serie o paralelo para este ordenador, y que
también muestran las señales del conector.
- http://pocket.free.fr/index.html: "The Pocket Computer Museum". Página con información y fotografias
de gran cantidad de computadoras de bolsillo, incluyendo las casio.
- http://pocketcomputerworld.free.fr/: "The Geoffroy's Pocket computer collection".
- http://www.silrun.de/:
"Silrun Systems - The home of programmable Casio pocket calculators".
En estas páginas se puede encontrar el manual de la 850P, además de los
manuales de otras computadoras de bolsillo y colecciones de programas.
- http://www.casio.co.jp/edu_e/support/faq/faq_pcom.html.
Una simple página de soporte de Casio para la FX-880P donde se indica
los pasos para configurar y establecer una conexión con un PC.
- http://inicia.es/de/alkimia/secciones/Casioteca/casioteca.htm.
Página dentro del Web de Alkimi@ que ofrece programas, trucos, conexión
al PC por el puerto paralelo, y un curso introductorio al BASIC.
13. Tablas de funciones y comandos
En los siguientes enlaces puedes decargar las tablas
de funciones y comandos BASIC en forma de imágenes JPEG con alta
resolución:
14. Contactar con el autor
Si tienes alguna duda o pregunta interesante sobre el tema tratado en este documento envíamela a:
fcandela@dfists.ua.es
Trataré de contestarte en medida a mis conocimientos.
Francisco A. Candelas Herías.
|