¿Cómo saber desde SuperBASIC la plataforma de ejecución?

Subforo oficial del Sinclair QL: realiza aquí las consultas relativas a tu QL.

Moderador: Sir Cilve Sinclair

Responder
Avatar de Usuario
programandala.net
Manic Miner
Mensajes: 210
Registrado: Mié Ago 04, 2010 9:20 pm
Ubicación: España
Contactar:

¿Cómo saber desde SuperBASIC la plataforma de ejecución?

Mensaje por programandala.net » Jue Ago 05, 2010 2:09 pm

Estoy reescribiendo mi antiguo fichero boot que usaba hace años en la QXL. Mi objetivo es que un solo boot me sirva para arrancar mi sistema independientemente de la plataforma, es decir: que pueda arrancar mi entorno de trabajo, contenido en un fichero qxl.win, tanto si arranco Q-emuLator (con JS, MGE o Minerva), como si arranco la demo de QPC2 (con SMSQ/E), como si arranco uQLx (con JS, MGE o Minerva); como si me da un día por volver a arrancar con la QXL (con SMSQ).

Para lograrlo necesito saber desde SuperBASIC no sólo la versión del sistema operativo (con la función VER$) sino también el emulador o máquina bajo el que está funcionando, puesto que las versiones del sistema pueden coincidir (por ejemplo, tanto el SMSQ de la QXL como el SMSQ/E de QPC2 devuelven "HBA" con la función VER$). La única solución que se me ha ocurrido hasta ahora es utilizar el comando EXTRAS de Toolkit 2, mandar su salida a un fichero, volver a leer ese fichero en una matriz y comprobar si contiene ciertos comandos propios de cada emulador. Por ejemplo, uQLx y QPC2 tienen comandos o funciones propios y exclusivos en SuperBASIC.

¿Alguien sabe un método más sencillo?
Marcos Cruz (programandala.net)

afx
Sabreman
Mensajes: 396
Registrado: Dom Feb 24, 2008 10:56 pm

Re: ¿Cómo saber desde SuperBASIC la plataforma de ejecución?

Mensaje por afx » Vie Ago 06, 2010 12:35 pm

En el sitio Web de Dilwyn Jones hay una pequeña utilidad en SuperBASIC para detectar las características del hardware y el sistema operativo sobre el que se está ejecutando nuestros programas. Se corresponde a un artículo llamado "What Hardware" de J.D.Mitchell (seguramente publicado en algún número de QL Today).

La referencia que te comento está aquí:
http://www.dilwyn.me.uk/docs/articles/index.html

El pequeño programa en SuperBASIC está aquí:
http://www.dilwyn.me.uk/docs/articles/what_hw.zip

Avatar de Usuario
programandala.net
Manic Miner
Mensajes: 210
Registrado: Mié Ago 04, 2010 9:20 pm
Ubicación: España
Contactar:

Re: ¿Cómo saber desde SuperBASIC la plataforma de ejecución?

Mensaje por programandala.net » Vie Ago 06, 2010 1:16 pm

afx escribió:En el sitio Web de Dilwyn Jones hay una pequeña utilidad en SuperBASIC para detectar las características del hardware y el sistema operativo sobre el que se está ejecutando nuestros programas.


Muchas gracias. Terminé mi pequeño programa con el método que comenté, y funciona para distinguir los casos que me interesan de momento: emuladores Q-emuLator, uQLx y QPC2 con sistemas QDOS (JS o MGE), Minerva y SMSQ/E. Pero ese programa de J.D.Mitchell es mucho más completo y potente, lo usaré. Ya había visto que en la página de Dilwin Jones hay muchos tesoros, pero aún no la he examinado con detalle.
Última edición por programandala.net el Vie Ago 06, 2010 5:15 pm, editado 1 vez en total.
Marcos Cruz (programandala.net)

Avatar de Usuario
programandala.net
Manic Miner
Mensajes: 210
Registrado: Mié Ago 04, 2010 9:20 pm
Ubicación: España
Contactar:

Re: ¿Cómo saber desde SuperBASIC la plataforma de ejecución?

Mensaje por programandala.net » Vie Ago 06, 2010 3:53 pm

programandala.net escribió:ese programa de J.D.Mitchel es mucho más completo y potente.


Pero por lo que veo no distingue entre Q-emuLator y uQLx. Ambos son "Standard QL". Es lógico.

Mi método sin embargo sí permite saber si se trata de uQLx, gracias a que este emulador tiene comandos propios, como "Kill_UQLX". Q-emuLator sin embargo no parece tener ningún comando propio.
Marcos Cruz (programandala.net)

Avatar de Usuario
programandala.net
Manic Miner
Mensajes: 210
Registrado: Mié Ago 04, 2010 9:20 pm
Ubicación: España
Contactar:

Re: ¿Cómo saber desde SuperBASIC la plataforma de ejecución?

Mensaje por programandala.net » Lun Ago 09, 2010 9:49 pm

programandala.net escribió:Mi método...


...es de lo más simple, como he dicho, pero por si alguien quiere echar un vistazo aquí está: where_am_i.
Marcos Cruz (programandala.net)

afx
Sabreman
Mensajes: 396
Registrado: Dom Feb 24, 2008 10:56 pm

Re: ¿Cómo saber desde SuperBASIC la plataforma de ejecución?

Mensaje por afx » Mar Ago 10, 2010 6:05 pm

programandala.net escribió: ... por si alguien quiere echar un vistazo aquí está: where_am_i.


Ingenioso. Desconocía también ese truco de usar AUTO para cargar programas sin números de líneas.

Avatar de Usuario
programandala.net
Manic Miner
Mensajes: 210
Registrado: Mié Ago 04, 2010 9:20 pm
Ubicación: España
Contactar:

Re: ¿Cómo saber desde SuperBASIC la plataforma de ejecución?

Mensaje por programandala.net » Mar Ago 10, 2010 8:53 pm

afx escribió:Desconocía también ese truco de usar AUTO para cargar programas sin números de líneas.


Es útil, ¿verdad? Yo lo aprendí muy recientemente. Me parece recordar que lo leí en el libro de Jan Jones, pero no estoy seguro.

Hay una gran diferencia entre escribir un programa en un editor de textos que a uno le guste, sin el engorro de los números de línea, que escribirlo con el editor de S*BASIC, que no permite hacer búsquedas ni sustituciones ni nada.

Y lo de que no funciona con SMSQ/E pues me ha sorprendido (lo he probado con la demo del emulador QPC2). Me parece raro que hayan cambiado el comando AUTO para que haga lo mismo que ED. No se me ocurre cuál puede ser el motivo.

Por cierto, poco después encontré que Timothy Swenson había escrito hace muchos años un programa llamado "Structured SuperBASIC", un preprocesador de SuperBASIC que permite usar etiquetas en lugar de números de línea, nuevos signos para los comentarios, "compilación" condicional e inclusión de fuentes secundarias. (Es muy parecido a lo que hace el programa nOPL+ para ampliar el lenguaje OPL de la Psion 5mx).

Aquí está Structured SuperBASIC:

http://www.reocities.com/SiliconValley/ ... yfree.html

Muchos de los ejemplos de su publicación QL Hacker's Journal estaban escritos en Structured SuperBASIC:

http://www.reocities.com/SiliconValley/ ... 5/qhj.html
Marcos Cruz (programandala.net)

afx
Sabreman
Mensajes: 396
Registrado: Dom Feb 24, 2008 10:56 pm

Re: ¿Cómo saber desde SuperBASIC la plataforma de ejecución?

Mensaje por afx » Mié Ago 11, 2010 6:09 pm

programandala.net escribió:Por cierto, poco después encontré que Timothy Swenson había escrito hace muchos años un programa llamado "Structured SuperBASIC", un preprocesador de SuperBASIC que permite usar etiquetas en lugar de números de línea, nuevos signos para los comentarios, "compilación" condicional


También he leído algo sobre ese "Structured SuperBASIC" (lo tengo en la lista de "temas pendientes" para mirarlo con más detenimiento). Por lo visto incluye la posibilidad de compilar con QLiberator e incorpora una especie de especificaciones para hacer un fichero Make y compilar de forma cómoda. Esto junto a la posibiliad de hacer referencias a (o incluir) módulos de código externo puede ser de muchísima utilidad.

Responder

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 11 invitados