archivo

Archivos Mensuales: enero 2012

Recientemente he adquirido el SerUSB de MemoryLane (http://www.memorylanecomputing.com/), el primer desarrollo hardware “comercial” significativo para el QL en los últimos 15 años. Mi motivación, más que por necesidad es por el apoyo a este tipo de proyectos.

Ser-USB es un dispositivo que se conecta al QL a través del puerto serie (SER1 o SER2) y provee el acceso a medios de almacenamiento modernos como tarjetas SD, pendrives, o discos duros USB. En su interior contiene el popular modulo USBWiz con alguna circuitería extra para la traducción RS232 a TTL y el manejo de un par de LEDs.

SerUSB se suministra con una pequeña fuente de alimentación de 5V y el correspondiente cable para la conexión con el QL. Existe una versión del cable para conectar el dispositivo a un PC y poder usar el módulo con los emuladores QL. En mi caso he pedido el cable para conectar Ser-USB con el QL a través del puerto SER1 (el cable para la conexión con SER2 varía y es diferente) y otro cable para la conexión con Q-emuLator. El módulo viene acompañado de un disquete con el software, un manual muy completo y una tarjeta SD. También es posible adquirir el driver en ROM.

El uso primario de Ser-USB es el de un sistema portable de transferencia de ficheros, en ningún caso pretende ser un sustituto de disquetes o discos duros en un sistema QDOS. Esta limitación es debida a la escasa velocidad de transferencia conseguida con los puertos serie. En un QL estándar la velocidad está limitada a los 4800 baudios. En QLs con Hermes (un sustituto del chip 8049 que gobierna entre otras cosas las comunicaciones RS232 del QL) podríamos alcanzar los 19200 baudios, y con SuperHermes los 57600. Aún así, esta velocidad es insuficiente para poder competir con la velocidad de una simple disquetera.

Para completar mi sistema he comprado también el chip Hermes en “Sell My Retro” http://www.sellmyretro.com/.

SerUSB se puede usar tanto en QLs estándar como en sistemas clónicos QL y emuladores corriendo en PCs o MACs que tengan puertos serie. Yo he probado mi SerUSB con Q-emuLator sobre Win7 y funciona a la perfección.

Hay dos “modos” de usar Ser-USB. El primer modo es mediante un driver QDOS que nos permite montar volúmenes de almacenamiento QDOS. Con este driver podemos montar dispositivos con el nombre usb (desde usb1_ a usb8_) el cual puede mapearse a distintas particiones QDOS en la tarjeta SD o pendrive conectado a cualquiera de los dos puertos USB. Una vez montado el dispositivo, lo podemos usar como cualquier otra unidad QDOS (microdrive, disquetera, …).

El segundo modo es mediante la carga de unas extensiones de SuperBASIC que permiten manejar tarjetas SD o unidades USB en formato FAT.

El software que acompaña al dispositivo está muy completo y bien documentado. Además de los drivers se incluyen utilidades para el formateo de unidades de almacenamiento y creación de particiones QDOS (hasta 32 particiones por unidad de almacenamiento -tarjeta SD o pendrive-). Además se incluyen utilidades adicionales para la transferencia de ficheros y manejo de unidades FAT.

La información detallada se puede encontrar en la Web (http://www.memorylanecomputing.com/) del fabricante desde donde se pueden obtener los manuales y documentación variada.

Una sesión de ejemplo en mi sistema (con Toolkit II):

lrespr flp1_ser_usb_ql_bin  
lrespr flp1_drv_dcm_bin
lrespr flp1_qm_bin

La primera instrucción carga el driver nativo pre-configurado para un QL estándar. La segunda instrucción carga el Driver Command Manager para la gestión remota del driver (opcional). La tercera instrucción carga un gestor de colas para el manejar de las operaciones de E/S en segundo plano (en emuladores y en SMSQE esta última instrucción no es necesaria).

driver_speed 19200 

Establece 19200 baudios como velocidad de transferencia, esta instrucción necesita Hermes. En un QL estándar la velocidad está limitada a 4800 baudios.

qm_start

Inicia el Queue Manager (el gestor de cola para operaciones asíncronas de E/S). Este gestor de colas por lo visto desaparecerá en la versión 2.0 del driver serusb. (He probado una versión beta y parece que el desarrollo va por buen camino).

Cuando cargamos el driver, si en el dispositivo se encuentra insertada la tarjeta SD (dispositivo 1), el driver intentará montar en la unidad usb1_ la primera partición de la tarjeta SD.

Las siguientes instrucciones son ejemplos de cómo montar nuevas unidades, copiar y ejecutar programas.

mount 2,1,2 
dir usb2_  
exec usb2_miprograma_exe 
wcopy usb1_mines_exe to flp1_mines_exe 

(La primera instrucción monta en usb2_ la segunda partición de la tarjeta SD).

Como hemos mencionado, además del driver nativo QDOS, SerUSB viene acompañado de una pseudo-driver en forma de extensiones del SuperBASIC que nos permiten manejar unidades en formato FAT.

Un ejemplo de sesión donde uso un pendrive con formato FAT desde el QL es la siguiente:

lrespr flp1_usbwiz_bin
uzc_start
uz_mnt 2
uz_dir
uz_ex ":chess.exe"
uz_copy ":chess.exe flp1_chess_exe"

La primera instrucción carga el driver, la segunda inicia el gestor de comados del driver. La tercera instrucción monta la unidad conectada en el primer conector USB (1 identifica a la tarjeta SD, 2 al primer conector USB y 3 al segundo conector USB). Uz_dir muestra el contenido de la unidad FAT, ux_ex ejecuta el programa, uz_copy copia el fichero desde la unidad FAT a la unidad QDOS flp1_.

El producto en general está muy cuidado, el software de soporte está muy elaborado y como herramienta de transferencia de ficheros resulta bastante práctico. MemoryLane tiene en marcha nuevos proyectos, tales como una nueva versión más depurada del driver y un nuevo interfaz (QBUS) para poder conectar SerUSB vía el puerto ROM del QL.

Anuncios