Minerva MultiBASIC

¿Alguna vez soñaste con tener varios programas SuperBASIC ejecutándose a la vez como si fuesen programas compilados en multitarea? Pues con la ROM Minerva, que sustituye a tu ROM original de QL, es posible. Con ella se entrega un manual y un disco de utilidades que incluye los ficheros multib_asm y multib_obj, que permiten hacer esto.

Cuando ejecutamos (EXEC) multib_obj, se abre una nueva ventana en la que se unen los canales 0 y 1. ¡Cada instancia tiene sus propios canales 0, 1… por separado!

minerva_multibasic

Seis intérpretes SuperBASIC funcionando a la vez

Actualización 11-04-2009: Según se indica en el documento updates_doc que se incluye en el disco de utilidades Minerva, las últimas versiones de la ROM no necesitan cargar el fichero externo, pues MultiBASIC viene integrado. Es suficiente con ejecutar

EXEC PIPEP

para disponer de nuevas instancias SuperBASIC.

Los programas se cargan y corren de la misma forma, y funcionan todos los comandos del SuperBASIC, pues MultiBASIC lo que hace es lanzar nuevas instancias del intérprete SuperBASIC. Para cambiar entre los distintos intérpretes que lanzemos sólo tenemos que usar CTRL-C como siempre que trabajamos en multitarea.

Si ejecutamos el comando JOBS (TK2) vemos que nos lista una nueva tarea llamada SB.n con prioridad 8. Dentro de cada nueva instancia del intérprete SuperBASIC podemos lanzar nuevas instancias como se ve en la imagen. El límite está en la memoria disponible.

Si queremos disponer de canal 2 para listados deberemos abrirlo desde su instancia correspondiente. Podemos dejar el tamaño de los canales de este nuevo intérprete a las medidas a las que estamos acostumbrados mediante el siguiente programa (requiere TK2):

100 OPEN #0;con: OPEN #1;con: OPEN #2;con
110 WMON

Muchas veces, por la proliferación de ventanas que se crean en la pantalla, no sabremos en que instancia del SuperBASIC nos encontramos. Siempre podemos recurrir al comando JOBS o a la siguiente instrucción para saber cual es el ID del job que estamos utilizando:

PRINT VER$(-1)

Una instacia en MultiBASIC puede borrarse a si misma si encuentra un error. En el manual indican que esta es la forma adecuada de borrar una instacia. Proponen por ejemplo usar CLOSE #0 para salir.

Estas características de MultiBASIC posteriormente fueron implenentadas y mejoradas en el interprete de comandos del sistema operativo SMSQ llamado SBASIC, pero aunque lo que hace MultiBASIC es una cualidad del QDOS, si ejecutamos el programa multib_obj en un sistema con otra versión de ROM, este no funcionará. Asi que si vas a usar un emulador para probarlo no te olvides de cargar la ROM Minerva.

Enlaces para descarga:

downloadiconROM Minerva
Manual de la ROM Minerva
Disco de utilidades de la ROM Minerva

Anuncios
4 comentarios
  1. afx dijo:

    Fantásico, en mi emulador funciona todo tal como comentas (con EXEC pipep). Nunca había probado esta cualidad de Minerva.
    (Gracias por la info).

    • badaman dijo:

      Fenomenal. Recientemente le he puesto esa ROM a uno de mis QL (bueno, ha sido Zerover quien la ha conectado en el QL, pues yo soy un manazas) y ahora es cuando estoy aprendiendo a sacarle partido. Hay muchos nuevos comandos en esta ROM que luego formaron parte del TK2 y de SMSQ, por lo que hoy día ya no parece tan impresionate, pero sabiendo que corrige muchos bugs de las ROMs originales, con lo ya visto y lo que me queda por averiguar, seguro que no me arrepentiré de la inversión, mas bien todo lo contrario. Me alegro que te sirvan mis averiguaciones. A ver si me hago una idea de que demonios es eso del PIPEP y os lo cuento. 😉

  2. afx dijo:

    ¡Qué suerte tienes de tener “a tiro” un manitas que te instale esa ROM!. Yo y la electrónica nos llevamos muy mal, y ni me planteo intentar montar esa ROM en mi QL. Por eso al final he optado por comprarme el SMSQ/E (la versión para la Gold Card). Así, cuando nos cuentes más cosas sobre Minerva ya te contestaré yo de cómo hacer lo mismo con SMSQ/E …. En cuanto tenga algo de tiempo ya te pongo la réplica de cómo disparar varias instancias de SBASIC con SMSQ/E (¡es muchos más limpio que con Minerva!) (:-) …

    • badaman dijo:

      Pues has hecho muy bien. Hoy día SMSQ/E es la mejor opción para un QL, y teniendo una Gold Card tampoco le quitas mucha memoria. Yo tengo por ahí una versión de SMSQ (sin la E) para GC, pero curiosamente no funciona con la Minerva enchufada. Me da que se compiló sin soporte para esta ROM.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s