martes, 1 de marzo de 2022

Commodore 64C: Datassette 1530 C2N-B Modelo 2

El ordenador Commodore 64C a diferencia de ordenadores similares no tiene conexiones de entrada y salida de audio para conectar cualquier grabadora de casetes. En su lugar dispone de un puerto para grabadoras al que solo se pueden conectar grabadoras creadas para funcionar con este puerto. Dichas grabadoras reciben el nombre de "Datassette" y están especialmente diseñadas para grabar y leer datos. Junto con mi ordenador Commodore 64C compré el datassette 1530 C2N-B Modelo 2.


El datassette tiene una pletina donde introducir la casete y los botones comunes en cualquier grabadora de casetes: grabación (RECORD), reproducción (PLAY), retroceso (REWIND), avance rápido (F. FWD), parada (STOP) y apertura de la pletina/expulsión de la casete (EJECT). Al presionar el botón de grabación también queda presionado el de reproducción. El botón de expulsión hace que se levante la tapa de la pletina para introducir o extraer una casete.






Por la parte de abajo del datassette se encuentra una etiqueta con información del aparato y cuatro tornillos que es necesario quitar para acceder a su interior.

Después de quitar los tornillos es posible levantar la tapa inferior del dispositivo para ver su interior. Arriba a la izquierda se encuentra el motor. Conectada al motor hay una correa que transmite su giro a varios componentes del aparato. A la derecha se encuentra la placa del circuito electrónico controlador del datassette. Está cubierta por un cartón forrado de metal para evitar la emisión de ondas electromagnéticas que causen interferencias en otros aparatos.

Quitando los dos tornillos de la placa del circuito controlador podemos levantarla. Hay que tener cuidado de no tirar demasiado de los cables que tiene conectados o pasan a través de la placa. En la placa podemos ver un chip 7414 con seis inversores con disparador Schmitt. A su derecha hay dos amplificadores operacionales duales 6562. Abajo se encuentra un interruptor que es accionado por el botón de grabación.


Los tornillos que sujetan la tapa inferior también fijan a la parte superior de la carcasa el mecanismo del datassette. Una vez quitados los tornillos podemos extraer todo el interior del aparato y darle la vuelta para ver los componentes encargados de leer y escribir en la casete.


Las casetes se componen principalmente de una cinta magnética enrollada en dos carretes. Por la parte de abajo la cinta sale al exterior para que el aparato reproductor/grabador pueda acceder a ella. El datassette tiene dos ejes que se encargan de enrollar la cinta en los carretes. En el centro del datassette se encuentra el cabezal de lectura/escritura. Antes de llegar la cinta a este cabezal pasa por el cabezal de borrado, que se encarga de borrar el contenido de la cinta antes de escribir en ella.

Para leer y escribir en la cinta esta debe pasar por los cabezales a una velocidad constante. Esta velocidad no puede estar marcada por el movimiento de los ejes porque cuanta más cinta hay enrollada en los carretes mayor es la cantidad de cinta que arrastran en cada giro. Por este motivo la cinta es arrastrada a velocidad constante por un cabrestante y un rodillo situados después del cabezal de lectura/escritura. Cuando se retrocede o avanza rápido la cinta solo actúan los ejes y la cinta no pasa por el resto de componentes.

Al introducirse la casete los ejes quedan dentro de las ruedas dentadas de los carretes para poder girarlos. Cuando se presionan los botones de reproducción o grabación los cabezales y el rodillo entran dentro de la casete. De esta forma la cinta queda próxima a los cabezales para ser leída/escrita y es sujetada entre el cabrestante y el rodillo para tirar de ella. Los cabezales y el rodillo se mantienen fuera cuando se retrocede o avanza rápido la cinta.




A la derecha se encuentra un contador mecánico conectado mediante una correa al eje derecho del datassette. De este modo el contador aumenta o disminuye su valor según avanza o retrocede la casete. Antes de realizar una grabación podemos anotar el número que indica el contador para saber la posición de la casete donde se va a realizar la grabación. Cuando queramos acceder a esa grabación podemos retroceder o avanzar la casete hasta la posición anotada, por lo que no es necesario leer toda la casete hasta llegar a la grabación. Para que el contador indique correctamente la posición de la casete es necesario retroceder completamente y poner a cero el contador presionando el botón que hay a su derecha. Debajo del contador hay una luz que se enciende cuando el dispositivo está grabando.


El datassette se conecta al puerto de grabadoras del ordenador mediante un conector con seis contactos. A través de esta conexión el ordenador alimenta el datassette con 5 V, enciende/apaga el motor con una corriente de aproximadamente 6 V, lee/escribe datos y detecta las pulsaciones de los botones. De un lado del conector sale un cable de conexión a tierra que solo se utiliza con los ordenadores Commodore PET, que tienen un lugar donde atornillar el cable.


La comunicación de datos entre el ordenador y el datassette se realiza mediante pulsos de 5 V. El datassette convierte los pulsos que recibe del ordenador en ondas que se graban en la casete. Al leer la casete realiza la operación inversa, convierte las ondas grabadas en pulsos de 5 V para enviar al ordenador. La grabación se realiza con pulsos de tres duraciones: largo, mediano y corto. Los bits se graban en grupos de 8 y el principio de un grupo lo marcan un pulso largo seguido de uno mediano. Los bits se codifican con dos pulsos, uno corto y uno mediano para el 0 y al revés para el 1.

Al final del grupo de bits se añade un bit de chequeo de paridad impar, su valor es 0 o 1 para que el número total de unos sea impar. Por ejemplo si el grupo de bits tiene dos unos el bit de paridad debe ser 1 para que el número total de unos sea tres, número impar. Si al leer un grupo de bits el número de unos es par esto indica que hubo error en la grabación o lectura de algún bit y donde tendría que haber un 0 hay un 1 o viceversa.

El conjunto de datos se graba por duplicado y en caso de encontrar un error en un grupo de bits de la primera grabación se intenta leer ese grupo de la segunda grabación. Para ver como se realiza la grabación en la casete, convirtiendo los pulsos en ondas, podemos pasar su contenido a un archivo de audio utilizando un reproductor de casetes normal y un programa de audio como Audacity.

Este sistema de grabación es muy robusto para poder detectar y corregir errores pero es muy lento. Por eso se crearon otros sistemas de grabación y lectura más simples. Por ejemplo TurboTape graba los datos solo una vez y utiliza unicamente un pulso por bit con diferente duración para ceros y unos.

Después de conectar el datassette y empezar a usarlo pude ver que el ordenador detectaba las pulsaciones de los botones pero no era capaz de accionar el motor. El problema lo causaba un fusible de 250 V/1,5 A fundido en el ordenador. Una vez reemplazado el fusible el ordenador ya pudo suministrar a la grabadora los 6 V necesarios para hacer funcionar el motor.


El datassette permite grabar programas y archivos de datos. Primero podemos probar a escribir un pequeño programa en BASIC y ejecutarlo con el comando RUN. Al igual que en otros ordenadores similares, si escribimos un número de línea y a continuación comandos, esta línea pasa a formar parte del programa en memoria. Si por el contrario escribimos un comando sin número de línea el comando es ejecutado directamente.

10 A=10
20 PRINT A

RUN
 10

READY.

Cuando tengamos el programa listo lo podemos grabar con el comando SAVE. Se puede pasar como parámetro un nombre para el programa, lo que nos facilitará posteriormente encontrarlo si grabamos varios programas en la misma casete. Al ejecutar el comando SAVE el ordenador nos pedirá que presionemos los botones RECORD y PLAY en el datassette. Cuando el ordenador detecta la pulsación de los botones acciona el motor y comienza la grabación.

SAVE "PROGRAMA"
PRESS RECORD & PLAY ON TAPE
OK

SAVING PROGRAMA
READY.

Si pasamos la grabación de la cinta a un archivo de audio podremos ver el formato de la grabación. Antes del programa o archivo se incluye una cabecera con información sobre este como el nombre o tipo de grabación. Como vimos anteriormente los datos se graban por duplicado, se repite la cabecera y el programa. Previamente a la cabecera y el programa se graba un tono de sincronización. Como el programa grabado es muy pequeño la cabecera es de mayor tamaño, normalmente el programa ocuparía mucho más espacio que la cabecera.

Podemos comprobar que la grabación de un programa ha sido correcta retrocediendo la casete al principio de la grabación y ejecutando el comando VERIFY. Este comando compara el programa en memoria con el programa grabado en la casete.

VERIFY "PROGRAMA"

PRESS PLAY ON TAPE
OK

SEARCHING FOR PROGRAMA
FOUND PROGRAMA
VERIFYING
OK

READY.

Para leer el programa que hemos grabado es necesario retroceder la casete hasta el inicio de la grabación del programa y ejecutar el comando LOAD. Podemos pasar como parámetro el nombre del programa que queremos leer. Si no indicamos el nombre se leerá el siguiente programa que se encuentre en la casete. Después de ejecutar el comando el ordenador nos pide que presionemos el botón PLAY y cuando detecta la pulsación del botón hace funcionar el motor, busca el programa indicado y lo carga en memoria.

LOAD "PROGRAMA"

PRESS PLAY ON TAPE
OK

SEARCHING FOR PROGRAMA
FOUND PROGRAMA
LOADING
READY.

Para grabar y leer archivos de datos se utiliza el comando OPEN, que sirve para abrir un archivo. A este comando se le pasan cuatro parámetros:

  • Número de referencia del archivo desde 1 a 255.
  • Código de dispositivo. El código del datassette es 1.
  • Lectura o escritura. 0 = lectura, 1 = escritura con marca de final de archivo y 2 = escritura con marca de final de casete.
  • Nombre del archivo.

En el archivo podemos escribir el contenido de variables utilizando el comando PRINT#. Se le pasan como parámetros el número de referencia del archivo y la variable a escribir. Para finalizar la escritura de datos es necesario cerrar el archivo con el comando CLOSE, pasándole como parámetro el número de referencia del archivo. Las variables de cadenas de texto deben terminar con el carácter "$".

10 A=10
20 B$="CADENA DE TEXTO"
30 OPEN 1,1,1,"DATOS"
40 PRINT# 1,A
50 PRINT# 1,B$
60 CLOSE 1

RUN
PRESS RECORD & PLAY ON TAPE
OK

READY.

Para leer los datos grabados se debe retroceder la casete hasta el inicio de la grabación y ejecutar OPEN con el parámetro de lectura/escritura a 0. Para leer las variables escritas anteriormente se utiliza el comando INPUT#, al que se le pasan como parámetros el número de referencia del archivo y una variable a la que asignar el valor leído. El comando INPUT# no se puede utilizar directamente, es necesario ejecutarlo desde un programa. También es posible utilizar el comando GET#, que lee un solo carácter en cada ejecución y permite leer caracteres que INPUT# no permite como comas y dos puntos.

10 OPEN 1,1,0,"DATOS"
20 INPUT# 1,A
30 INPUT# 1,B$
40 CLOSE 1
50 PRINT A
60 PRINT B$

RUN

PRESS PLAY ON TAPE
OK
 10
CADENA DE TEXTO

READY.

Con lo explicado en este artículo podemos conocer un poco más la historia de los medios de almacenamiento de información digital. Si tenemos un datassette también nos servirá para hacerlo funcionar y reparar algunos de los problemas que puede tener. En el siguiente artículo conecto al ordenador una disquetera Commodore 1541 de 5,25".

No hay comentarios:

Publicar un comentario