El ratón que era un escarabajo pelotero

Marcos Cruz
Madrid, julio 1988

La primera vez que conocí algo sobre el Star Mouse fue en la desaparecida revista Todospectrum, dedicada, como es fácil deducir, al Spectrum, en unas páginas que reservaba de vez en cuando al por entonces novedoso QL. Aquello fue en Diciembre de 1985 y el Star Mouse aparecía como novedad en el SIMO del mismo año. Desarrollado por la empresa española PURICORP y apoyado por Investrónica, se describía al paquete como una utilidad de dibujo muy interesante, si bien no se hacía un estudio serio del mismo ni se comentaban en profundidad sus características más notables. De todo eso ya hace algún tiempo y "todavía" el QL era para mí algo muy cercano... a través de los artículos sobre él en las publicaciones de informática que abundaron en aquella época.

Bien, nos situamos de un golpe a comienzos del presente año. Recibo una carta de una conocida tienda madrileña entre los usuarios del QL. En ella se me hace saber de una oferta entre la que veo la venta del Star Mouse al precio de 1500 pesetas. ¿Será una errata? ¡En el último catálogo de la misma tienda aparecían los Star Mouse a 7500! Llamo por teléfono y, confirmado el precio, les encargo uno contra reembolso. Al fin y al cabo, sabía que no iba a encontrarme con ninguna maravilla, dada la antigüedad del programa, pero si por ese precio obtenía un programa de dibujo con ratón, aunque no fuera excepcional, pues no había mucho que perder... o eso pensaba yo.

Recibo el ratón (en su embalaje original y todo) y me apresuro a sacarlo de la caja. Iba solitariamente acompañado, en el interior de la caja de poliestireno blanco, por un microdrive. El ratón en sí tiene un aspecto algo famélico (tipo MADE IN SPAIN, claro) y hace mirar con sana envidia al que viene con el PC1512, ¡que ya es decir!. El ratón se conecta al ordenador mediante el puerto de ROM y uno de los puertos de joystick, y esto último sí que no lo sospechaba. Inocentemente me preguntaba: ¿será que el ratón simula por hardware las teclas del cursor, correspondientes a uno de los puertos de joystick, y por consiguiente puede emplearse en cualquier programa? Mi sospecha se hizo ilusión cuando comprobé que el único fin por el que había que conectar el ratón al conector de ROM es tomar la alimentación eléctrica de éste, nada más. No faltaba mucho para que mi sueño se desintegrase en mil pedazos, pero eso lo averigüé más tarde, claro.

La curiosidad me llevó a abrirlo todo: microdrive y ratón, y dos cosas me llamaron la atención: el microdrive que se incluye no tiene ningún tipo de etiquetado relativo al programa, sino simplemente un diminuto papel adhesivo cuadrado en la parte posterior y un número escrito a mano, y por otra parte la bola metálica del ratón parece sacada de una excavación arqueológica de un campamento celta, o mejor se parece a una luna llena que en vez de tener su color habitual estuviese teñida de color óxido y tuviese manchas aisladas de color gris metálico apagado... No sé si estas dos cosas son normales o bien es que yo soy algo ingenuo, pero antes que detenerme a averiguarlo me dirijo raudo al QL, le enchufo el ratón, lo despierto y le hago engullir el microdrive...

¡Oh, sorpresa! Al cabo de unos segundos surge un dibujo bastante bien realizado de un enorme ratón que desaparece en un momento y es sustituido por un menú de dos lineas (sobre una pantalla completamente en blanco) para elegir entre las instrucciones o el programa en sí. ¿Es que por aquel entonces los programadores no sabían hacer presentaciones más profesionales? Como poco se podía esperar que el menú se integrase en el dibujo inicial, pero nada de eso: aquél se borra y aparecen en las dos primeras lineas ,"a pelo", las opciones ya mencionadas. Empiezo a ponerme nervioso, ante tamaña chapuza, y elijo la opción de dibujar, en lugar de leer primero las instrucciones. Este atrevimiento me costó caro, pues había conectado el ratón al puerto de joystick equivocado y aquello no funcionaba. Bueno, tras un par de reseteos y una lectura a las instrucciones por medio (que, aunque son un avance respecto al simple fichero de texto, la interacción con el ratón que permiten es muy rudimentaria y para colmo se hacen insoportablemente lentas) entro al fin en la opción de dibujo. Llegado este momento, doy gracias a los dioses de que no se me cruzasen hace meses un par de cables y comprase el ratón a 7500 pesetas, porque de haberlo hecho así, y tras contemplar el penoso espectáculo que mi cerebro estaba a punto de soportar, hubiese tomado el cable del ratón y me lo hubiese puesto alrededor del cuello, colgándolo seguidamente de la lámpara del techo y dejándome caer con dulzura, observando mi QL por última vez...

...pero afortunadamente aquella cosa que se llamaba Star Mouse sólo me había costado 1500 pesetas más gastos de envío (¡1500 pesetas más gastos de envío...! snif, snif...) y aquello me ayudó a contenerme de realizar tan dramático acto. No sigamos por el final, sino que volvamos al momento en que, con la inocencia de un ser humano que no conoce el Star Mouse, me encuentro ratón en mano presto a trabajar con mi nuevo y flamante programa de dibujo.

En cuanto hago los primeros movimientos me doy cuenta de que los autores no se quisieron o no pudieron romperse demasiado la cabeza, hecho bastante frecuente por aquí hasta hace muy poco, y no me voy a meter más en ese tema porque sería un atrevimiento hacerlo sin un mayor conocimiento de las causas. Antes de pasar a relatar todas y cada una de las excelencias observadas por mí en el programa, hay que volver a recordar que éste apareció en el mercado hace casi tres años, y que quizá ello nos pueda hacer ser más comprensivos en nuestros juicios. No obstante el Star Mouse tiene algunas limitaciones tan grandes que la fecha de su aparición no le supone excusa alguna. Hay fallos tan garrafales, que lo son en el año 1988 tanto como en el 1985 o en el 1588, aunque por entonces los antecesores de Clive estuviesen dispersando a la Armada Invencible a bordo del barco de Drake, y los únicos ratones que había eran de los que se dedicaban a zamparse las galletas de la bodega... que época tan feliz, sin Star Mouse ni nada parecido.

Como introducción, baste decir que el programa principal está escrito en SuperBASIC, y que sólo llama a algunas rutinas en Código Máquina para mover el cursor en respuesta al ratón o para realizar los rellenos de figuras. No lo he examinado linea a linea, luego puede que emplee el Código Máquina para algo más que yo no haya advertido. Hay un detalle curioso, y es que la dirección del Código Máquina parece no ser reubicable, pero el SuperBASIC no se encarga de comprobarla. Esto quiere decir que, si bien la dirección de ubicación del código se haya con un RESPR, el programa supone que siempre será la misma. De este modo, si tienes algún tipo de ampliación de memoria puedes ir quitándola o anulándola con el comando correspondiente. Lógicamente, he intentado modificar el listado BASIC de modo que valga cualquier localización del código añadiendo una variable offset a todos los parámetros de los CALL, PEEK o POKE, pero se conoce que las rutinas no son reubicables ¡Arg...! En fin, al final desistí y me limité a modificar el boot de modo que hiciese un RES_128 para anular la ampliación de memoria de la Trump Card si la dirección devuelta por el RESPR no es la esperada, que creo recordar que es 219136. ¿Alguien sabe otra solución más elegante? Si es así, le ruego que me la comunique... por curiosidad solamente, claro, pues no creo que vuelva a cargar el Star Mouse jamás.

Nos hemos desviado del tema, de modo que allá vamos... a relatar de una vez las muchas "excelencias" del programa. Los que sufran del corazón y no tengan el Star Mouse (porque los que, sufriendo del corazón, hayan visto alguna vez eso, me temo que sería lo último que hiciesen) les ruego que no sigan leyendo, por bien de su salud.

La primera decepción que me produjo el programa (aunque ya me lo temía) es el hecho de que no permite trabajar en el modo 4. No es esta una limitación muy grave y no me voy a detener más en ella. Baste sólo decir que para cierto tipo de dibujo hubiera sido interesante disponer de dicha facilidad.

La segunda gran decepción (y esta si que es gravísima) es que no permite trabajar con la pantalla completa. Una vez pasada la impresión de ver los iconos (que por otro lado son bastante simplones) y una pantalla tipo Apple Macintosh (salvando las distancias), uno cae en la cuenta de que no hay ningún icono que permita cambiar los iconos de lugar o desplazar el área de dibujo (como si fuese una ventana), sino que "esto es lo que hay". Es decir, que sólo se puede dibujar en un recuadro de la pantalla, donde no hay iconos, un rectángulo que en horizontal es el 0.83 del ancho total de la pantalla y en vertical el 0.72 del alto total. Quizá los autores pensaron que la principal utilidad del programa sería el diseño de postales.

Hay que alabar, aunque poquito, el honrado intento por crear un entorno tipo GEM. Digo poquito porque el resultado es algo deprimente que le hace a uno preguntarse a viva voz: ¡¿Para qué diablos se necesita un ratón en un programa como este?! Con esto quiero decir que el ratoncito lo único que hace es estorbar y complicar, habiendo muchas operaciones de selección de opciones que serían mucho más rápidas de hacer pulsando una tecla. Para lo único que sirve el ratón es para el dibujo a mano alzada, donde, por muy malo que sea el trasto (como es el caso), siempre es algo más cómodo que emplear el teclado. Además, el caprichoso ratón parece dotado de un peculiar tic nervioso o hipo electrónico pues, bien por el hardware en sí o por la rutina en Código Máquina que lo lee, el movimiento del cursor es a veces desesperantemente impreciso e irregular, y no precisamente a causa de la superficie en que lo emplees.

Para aquellos escasos afortunados que no hayan tenido la desdicha de toparse con el Star Mouse, les describiré por encima cómo está distribuida la pantalla en el programa: la "extensa" zona de dibujo de la que hemos hablado se encuentra situada desplazada arriba y a la derecha. La columna que queda a la izquierda de la pantalla está ocupada por varios iconos, así como ocho recuadros correspondientes a los colores disponibles. La zona inferior de la pantalla incluye 26 recuadros con diferentes tramas, incluidos los ochos colores también (lo cual hace sospechar que las tramas "reales" no pueden cambiar de color, como luego veremos). Por último, el recuadro que queda en la esquina inferior izquierda está ocupada por muestras de cuatro lineas con diferentes grosores y un indicador de qué trazo está seleccionado.

La principal chapuza a destacar es que para cambiar de función o modo hay que salir antes del modo en el estemos, en lugar de poder ir directamente al icono correspondiente al nuevo modo en que queramos entrar y pulsar el botón. Para salir de un modo hay que situarse sobre una DIMINUTA BARRITA que está sobre el resto de los iconos, en la zona superior izquierda de la pantalla, y pulsar el botón, operación que por sí misma hace el uso del programa una auténtica tortura capaz de volver loco al más templado o cuando menos provocar deseos de emplear el ratón como unas boleadoras de gaucho de la Pampa argentina y arrojarlo contra el monitor una y otra vez hasta destrozarlo.

La segunda principal chapuza es que en todos los modos es necesario salir de éstos para elegir un nuevo color. El tener que ir a localizar la odiosa barrita, pulsar el botón, elegir un nuevo color situándonos sobre el recuadro correspondiente, volver a entrar en el modo en que estábamos... el hacer esto, repito, unas cuantas veces, ¡y todo para cambiar simplemente de color!, es como para agarrar el QL y emplearlo como un ariete de mano para cargarte la pantalla del monitor con tal de hacer desaparecer de tu vista el programa de marras. Existe una honrosa excepción a esto: en el modo de rellenos se puede cambiar de tipo de relleno sin salir del modo ¡Aleluya!... honrosa excepción que se desluce por otro motivos de los que me ocuparé más tarde.

En el modo en el que entramos al iniciarse el programa podemos pintar puntos a cada pulsación de botón, allí donde se halle el cursor. Esto será de utilidad para realizar circunferencias, elipses o lineas. Si entramos en el modo de dibujo a mano alzada (el icono "brocha") podremos hacer que el cursor vaya dejando su rastro allá por donde pase tras haber pulsado el botón. Para que el cursor no deje rastro podemos pulsar de nuevo el botón. El trazo será en el grueso y color seleccionados... pero si el color es el blanco el trazo será multicolor! Eso al principio puede parecer interesante, pero hace sospechar que no se puede pintar de blanco sobre otro color, claro. No solamente eso, sino que uno se da con un canto en los dientes cuando comprueba que apenas hay nada que pueda hacerse sobre un fondo pintado de otro color...! Más que para el diseño de postales en general, los autores debieron escribir el programa para el diseño de postales de estaciones de esquí, que creo es una aplicación muy extendida entre los usuarios de QL que viven en Transilvania.

Me decido a hacer una figurita a base de lineas (¡Hay un icono para hacer lineas rectas!, ¿Cómo no hay otro para hacer pixeles redondos?) o bien a base de circunferencias y me atrevo a rellenarlo: salgo de modo, entro en el modo de rellenar (icono estilo "rodillo"), me dirijo al centro de la figura y aprieto el botón... ¡Pardiez, pero si funciona! Cambio de tipo de relleno y me dirijo a otra zona... ¡Funciona! Un merecido paréntesis para dejar constancia de que la rutina de rellenar funciona a la perfección... por ahora. Cerrado el paréntesis, continúo: en primer lugar, me dediqué malsanamente a buscar como un desesperado los fallos posibles y en segundo lugar me dediqué a anotarlos. He aquí los fallos más destacables y chapuceros:

No se pueden rellenar superficies que no sean blancas. Cualquier intento de hacer esto pinta una linea horizontal dentro de la figura o, en el mejor de los casos, dos o tres. ¿A quién se le ocurre recolorear un círculo amarillo de azul? No se pueden rellenar figuras que no sean negras o azules ¿A qué ingrato ser se le ocurriría querer colorear una circunferencia verde de color verde para hacer un círculo verde? Si dibujamos una circunferencia o cualquier polígono cerrado de negro o azul oscuro no habrá problema en rellenarlos con cualquier color, excepto blanco (¡¿Para qué existe la posibilidad de rellenar de blanco, si sólo se pueden rellenar cosas blancas?!) Pero si la figura está dibujada con trazos de color rojo o magenta, entonces cualquier intento por rellenarla se parará antes de acabar, dejándonos con una sola franja coloreada. Si rellenamos las zonas que quedan en blanco pasará lo mismo, de modo que rellenar algo en esas condiciones es desesperante (¿será una utilidad oculta del programa, o será otra chapuza?) Si tenemos la desgracia de querer colorear una figura que tiene sus lineas o curvas de color verde, cyan, o amarillo (¿para qué vamos a hablar del blanco, verdad?) entonces se te coloreará TODA la pantalla, a menos que haya algo negro o azul que sirva de límite. ¿Original, no es cierto? Para colmo, de entre las diferentes tramas disponibles podemos escoger la que queramos, pero siempre se realizará el relleno con dicha trama en color negro, tengamos la tinta que tengamos. Hay una trama, por ejemplo, que da el aspecto de una pared de ladrillos... ¿a qué idiota se le ocurriría tratar de usarla con tinta roja para rellenar una fachada? Claro, queda mejor en color negro sobre blanco, por supuesto.

En los programas de dibujo DE VERDAD el relleno de zonas permite elegir el color o colores del límite de la zona, o bien rellena toda la zona circundante que esté en el mismo color que el pixel sobre el cual hemos activado el relleno... but Spain is still different.

Otra solemne chapuza del programa: no se puede borrar la última operación. De hecho, ¿quién iba a querer borrar la última operación si a las dos cosas que haces apagas el ordenador desesperado? En serio, ¿es que el QL no dispone de 32 Kbytes para guardar una copia de la pantalla a cada paso que se efectúa en el dibujo? El programa BASIC ocupa 8 Kbytes. El Código Máquina ocupa la sorprendente cifra de 43 Kbytes, por lo que me permito sospechar que en ese mismo espacio se encuentra la zona de almacenamiento de datos de los FILLS (rellenos de zonas), que supongo ocupan bastante. Mi impresión es que no es imposible tener una copia de la pantalla en memoria, y por ello he de concluir en que los programadores no creyeron necesario dotarnos de tal facilidad porque supusieron que nunca nos equivocaríamos al dibujar postales de estaciones de esquí, que las dibujaríamos de un tirón. Existe un icono en forma de cubo de basura que lo que hace es BORRAR TODO, dejándonos con una flamante pantalla en blanco, como recién cargado el programa. Muy útil, ¿no es así?

Tenemos otra opción de borrar, el icono en forma de presunta goma de borrar, que es para partirse de risa: cuando lo activamos el cursor se convierte en un par de lineas paralelas y al mover el ratón VAMOS PINTANDO DE BLANCO por donde pasamos. No podía ser de otra forma, pero, ¿no hubiera sido mejor poder pintar de blanco con la opción de pintar de blanco?

Otra chapuza: el movimiento de la zona de dibujo. Tras entrar en el modo de "scroll", y pulsando el botón sobre las flechas, podremos desplazar el dibujo dentro de la zona de dibujo, pero, como era de esperar, al mover el dibujo se va perdiendo por los bordes, de modo que al moverlo en sentido opuesto recuperamos una hermosa zona de fondo blanco. Esto es así porque el movimiento se ha hecho desde BASIC.

Una deficiencia bastante notable, aunque dado el nivel del programa no se echa en falta, es el tratamiento de ventanas. No se pueden definir ventanas o recuadros para moverlos, rotarlos, ampliarlos... No se pueden pedir peras al olmo. Ya digo que esto no es muy significativo, y es más: ¿a quién no le hubiera dado un soponcio si después de tanta chapuza se pudiesen hacer esas cosas?

Hay un detalle en el dibujo a mano alzada que no he comentado, pero que más de uno lo habrá dado por supuesto a estas alturas: no se puede cambiar el grosor del tramo mientras estamos dibujando, ¿alguien esperaba otra cosa? Todavía hay más: el cambio de grosor no afectará a las circunferencias o elipses, claro. ¿Quién puede tener interés en dibujar una circunferencia con un trazo grueso, es más, quién puede tener interés en dibujar una circunferencia con este programa?

Como detalle curioso, existen, dentro de la zona de dibujo, en la parte superior de ésta, unas rayitas horizontales y un rectangulito muy fardones ambos, estilo ventana de entorno GEM, que aparentemente no sirven para nada. De hecho no se puede desplazar el cursor sobre ellos para dibujar... PERO PUEDEN RELLENARSE AL COLOREAR CON UNA TRAMA UNA ZONA QUE LIMITE CON LA PARTE SUPERIOR DEL AREA DE DIBUJO. Esto da una idea del grado de "chapucería" en el que estamos inmersos.

Otro aspecto destacable, por chapucero, del programa, es el almacenamiento y recuperación de pantallas. A menos que uno modifique el BASIC (y puedo asegurar que yo no malgastaré esfuerzo alguno en ello) sólo se puede grabar un fichero de pantalla, con un nombre fijo, en cada microdrive. Vergonzoso. ¿Tan complejo es incluir un INPUT para pedir el nombre con que se quiere grabar la pantalla? ¿Es que en cada microdrive sólo caben 32 Kbytes? (A lo peor en los de 1985 pasaba eso). Para colmo, si se produce un error de lectura o grabación el programa se queda colgado, como si se intenta detener la ejecución en cualquier punto con CTRL y la barra espaciadora.

Existe una opción de copia por impresora, que lógicamente se hace en Código Máquina, pero que carece de posibilidad alguna de modificación o adaptación así como documentación en las instrucciones. Vamos, como si todos tuviésemos la misma impresora, que por otra parte no sé cual se supone que es. Así que, si la impresión no sale, o sale a franjas, o cualquier otra cosa, mejor abandona e imprime con algún otro programa más "serio".

Otro detalle bastante decepcionante es el hecho de que no existe indicador de la posición en coordenadas del cursor, lo cual imposibilita cualquier intento de hacer dibujo lineal (y más dada la caprichosa forma en que hay que dibujar las rectas)

Hay un sólo punto que cabe la pena destacar por su calidad. SI, ES CIERTO, AUNQUE PAREZCA INCREIBLE, HAY ALGO INTERESANTE. Se trata de la creación de elipses, que, por medio de los iconos en forma de flechas, se hace muy cómoda: se puede alterar el tamaño de ambos ejes y la orientación, hasta dejarla como queramos. DE MODO QUE NO LO DUDEIS: SI ALGUIEN SIENTE UNA NECESIDAD REPENTINA DE DIBUJAR UNA ELIPSE, QUE CARGUE EL STAR MOUSE Y LO HAGA, SE SENTIRA MUCHO MEJOR. (No se puede decir entonces que el programa sea totalmente inútil, pues sería una injusticia)

A los pocos que no tengáis el programa y el escarabajo pelotero que lo acompaña, os doy mi enhorabuena más efusiva porque no sabéis de lo que os habéis librado; espero que continúe tan buena racha. A los demás, seres desafortunados y abandonados por el destino, no os desaniméis. Cuando recibáis una visita inoportuna acompañada de sobrinito y todo, poned a éste frente al QL y dejadle haciendo garabatos ante la pantalla para tenerle ocupado un buen rato y así evitar que os destroce el resto de la casa. Ahora bien, es importante que el niño no sobrepase la edad de tres años, pues si tiene al menos tres años se sentirá tan decepcionado, por el hecho de que el programa no le permite dibujar como él sabe hacerlo, que posiblemente le corte el cable al ratón con unas tijeras y lo arroje contra la pantalla tras haber arrancado a mordiscos las teclas del QL o, lo que es más grave, que no os vuelva a dirigir la palabra de por vida.

Tengo una de las baterías "semi-caseras" que vende VALENTE para mantener el reloj del QL. En algunas ocasiones (más de las que serían normales) se resetea el reloj en el encendido o apagado del ordenador. Sin embargo, con el escarabajo pelotero conectado lo más probable es encontrarse con que la flecha no se mantiene en la mayoría de los casos. Lo aviso por si alguien se encuentra en el mismo caso y porque antes de desatornillar el QL para abrirlo y comprobar si la batería se ha desoldado (como casi estuve a punto de hacer) es preferible probar a desconectar lo que todos sabemos... y de paso guardarlo en el fondo de un cajón, cerrarlo con llave y tirar ésta por la ventana.

¿Alguien sabría cómo modificar el escarabajo pelotero para hacerle simular las teclas del cursor? Quizá así sirva de algo y me anime a volver a conectarlo alguna vez. De ese modo incluso, cableando por aquí y por allá, podría conectarlo a un Spectrum; el requisito es que el ratón actué a modo de interruptor, según gira la bola, entre la patilla común del conector de joystick y las otras cinco patillas. No sé si sería sencillo de hacer, de modo que aquí dejo el guante por si alguien más ducho en hard que yo lo recoge.


Sinclair QL Recursos en Castellano Alojado en / Hosted at:
Sinclair QL Recursos en Castellano
Sinclair QL Spanish Resources