SMSQmulator como plataforma de SMSQ/E

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

Moderador: Sir Cilve Sinclair

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

SMSQmulator como plataforma de SMSQ/E

Mensaje por programandala.net » Mié Feb 03, 2016 5:02 pm

El último mes he estado colaborando con Wolfgang Lenerz, con sugerencias, informes de error y una traducción nueva para SMSQmulator. Gracias a este emulador he podido volver a usar mi entorno QL, que tenía aparcado desde que migré a Raspberry Pi hace unos tres años, pues nunca he logrado ejecutar o compilar uQLx salvo en Intel, ni siquiera la versión específica para Raspberry Pi, que a otros sí les funciona.

SMSQmulator tiene varias ventajas respecto a QPC2 y Q-emuLator: no necesita instalación, es multiplataforma, usa un fichero de texto como configuración (que por defecto puede estar en el directorio del ejecutable)... Y su único requisito, facil de cumplir, es tener instalada una máquina virtual de Java.

Me estoy dando cuenta de que estas características hacen de SMSQmulator la plataforma ideal para desarrollar para SMSQ/E. pues es posible distribuirlo junto con el programa. El usuario solo tiene que descomprimir el archivo ZIP o TAR.GZ o lo que sea, y arrancar con un doble clic o un comando. El emulador leerá su fichero de configuración y arrancará desde un WIN, por ejemplo.

Para mejorar la experiencia, y que el emulador en sí sea invisible al usuario, es útil que el programa pueda tener algún control del emulador y conocimiento del entorno anfitrión. Por ejemplo, echaba en falta que desde SBASIC se pudiera leer el estado de la barra de menú del emulador, y Wolfang lo implementó tras sugerírselo. Entre las próximas sugerencias pendientes de enviar tengo que se pueda leer la resolución de pantalla del sistema anfitrión, con `host_xlim` y `host_ylim`, por ejemplo; y que si el tamaño de pantalla en el fichero de configuración es 0x0, se use el máximo disponible; con ello, el programa podrá saber el máximo tamaño real que pueden tener sus propias ventanas. Otra sugerencia pendiente es que el dispositivo de arranque sea configurable (un disquete IMG, o un directorio montado como NFA o SFA). El caso es que nuestro programa (aplicación, juego o lo que sea) tenga control completo y el usuario no necesite tener ningún contacto con el emulador ni con su configuración.

Cuando escribí la adaptación de la aventura de texto Asalto y castigo para QL, y a pesar de haber incluido instrucciones de uso que me parecían claras y detalladas, tuve que solucionar varias dudas en el foro de CAAD sobre cómo usar el juego. Y finalmente preferí escribir una guía que sirviera para otros casos: Comó arrancar un programa de QL. Para quien no sabe nada de QL, usar QPC2 o Q-emuLator no es fácil porque hay muchos conceptos nuevos con los que familiarizarse, aparte de la barrera que supone la instalación y configuración del emulador. Pero con SMSQmulator se podrían eliminar esas barreras y usarlo como una máquina virtual de SMSQ/E para distribuir programas que funcionen en cualquier plataforma moderna, lo cual es un gran aliciente para desarrollar.

Por supuesto, todo esto supone programar para SMSQ/E dejando atrás QDOS... algo para lo que, por otra parte, ya va siendo hora, si es que queremos que SMSQ/E siga siendo atractivo. Intentar desarrollar de forma compatible con todos los muchos emuladores de sistemas QL y todos los sistemas operativos (QDOS, Minerva y SMSQ/E principalmente, aunque olvidando Argos, SMS2, SMSQ...) y todas las ROM y todas las resoluciones de pantalla y de color es una locura y un lastre. En algún punto hay que poner la frontera. El mismo caso de Asalto y castigo ya comentado me sirve también de ejemplo: lo hice para que funcionara tanto en Q-emuLator como en QPC2, y que estuviera disponible en varios formatos para ambos emuladores... El trabajo adicional que supone eso no merece la pena, salvo por la satisfacción de aprender. Por ejemplo, por una parte parece una lástima escribir un programa en SBASIC y no hacerle unos retoques para que funcione también en el antiguo SuperBASIC... Pero al final los retoques no se pueden limitar solo a elegir el modo, tamaño y colores de pantalla, sino que obligan a renunciar a muchas ventajas de SBASIC o, peor, a duplicar código para hacer dos versiones.

Me gustaría saber qué opináis sobre todo esto, si lo veis interesante y, si es así, qué ideas se os ocurren para posibles proyectos o colaboraciones. Yo tengo varios proyectos en marcha para S*BASIC, que progresan lentamente y terminarán siendo solo para SBASIC; la librería Sfera para SuperForth; un derivado modernizado del eForth que portó Salvador Merino en 1992 desde x86; y algunos otros proyectos más. Pero en todo caso el objetivo es el mismo: desarrollar para SMSQ/E, usando SMSQmulator como plataforma.
Marcos Cruz (programandala.net)

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

Re: SMSQmulator como plataforma de SMSQ/E

Mensaje por afx » Lun Feb 08, 2016 6:37 pm

Cualquier iniciativa para mantener vivo al mundo QL (QDOS, SMSQE, ...) me parece estupenda.

Yo había probado SMSQemulator en sus primeras versiones, pero a raíz de tus recientes posts en el foro me he traído la última versión y la verdad es que me han gustado algunos detalles que creo no haber visto en la primera versión (por ejemplo, el doblar el tamaño de la ventana para ver el texto más claro, ...).

Lo de "descatalogar" el desarrollo en QDOS yo no lo veo muy claro. Creo que hay una porción importante de usuarios o entusiastas del QL amantes de la máquina original y esta vía exclusiva del SBasic dejaría fuera a este conjunto de usuarios. También entiendo tu postura. A veces es una auténtica pesadilla el lidiar con la compatibilidad hacia atrás del QDOS y es una pena no aprovechar las posibilidades del SMQQE (mayor resolución de pantalla, más colores, mejor Basic, ...).

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

Re: SMSQmulator como plataforma de SMSQ/E

Mensaje por programandala.net » Mar Feb 09, 2016 1:57 pm

afx escribió: me he traído la última versión y la verdad es que me han gustado algunos detalles que creo no haber visto en la primera versión (por ejemplo, el doblar el tamaño de la ventana para ver el texto más claro, ...).
SMSQmulator está progresando de forma continua. Wolfgang está trabajando ahora en cómo hacerlo más rápido, entre otras mejoras.
afx escribió: Lo de "descatalogar" el desarrollo en QDOS yo no lo veo muy claro. Creo que hay una porción importante de usuarios o entusiastas del QL amantes de la máquina original y esta vía exclusiva del SBasic dejaría fuera a este conjunto de usuarios.
No propongo que no se desarrolle ya para QDOS. Cada cual puede desarrollar para la plataforma que prefiera. A lo que me refería es a que, para que un programa escrito para QL sea fácil de usar por cualquiera (sin conocimientos de QL) en cualquier plataforma moderna, SMSQmulator me parece la solución, porque te permite hacer el emulador transparente al usuario. Y usar SMSQmulator para desarrollar y como plataforma para distribuir el programa implica usar solo SMSQ/E. El hecho de que un programa sea más accesible y tenga mucha mayor difusión, por pequeña que esta sea en términos absolutos, es una motivación adicional para desarrollar, y por tanto hace la plataforma más atractiva. Eso es lo que quería decir.

En otras palabras: Si escribes un juego en SuperBASIC para QDOS o Minerva, solo lo podrá usar un puñado de usuarios que ya están familiarizados con el entorno QL y con los emuladores de QL, es decir, casi exclusivamente usuarios de la máquina original. Pero si escribes ese mismo juego en SBASIC para SMSQ/E (que además en conjunto es más fácil porque tanto el lenguaje como el sistema son más potentes y cómodos) y lo distribuyes en un archivo zip que incluya SMSQmulator, cualquiera podrá usarlo, aunque ni siquiera sepa qué es un QL ni haya visto uno en su vida, e incluso sin tener conciencia de que en realidad está usando un emulador de otro sistema operativo. Eso es una gran ventaja de SMSQmulator sobre QPC2 y Q-emuLator, con los cuales no es posible hacer eso mismo.

¿Qué os parece?
Marcos Cruz (programandala.net)

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

Re: SMSQmulator como plataforma de SMSQ/E

Mensaje por afx » Jue Feb 11, 2016 11:26 am

programdala escribió: Pero si escribes ese mismo juego en SBASIC para SMSQ/E (que además en conjunto es más fácil porque tanto el lenguaje como el sistema son más potentes y cómodos) y lo distribuyes en un archivo zip que incluya SMSQmulator, cualquiera podrá usarlo, aunque ni siquiera sepa qué es un QL ni haya visto uno en su vida, e incluso sin tener conciencia de que en realidad está usando un emulador de otro sistema operativo.
Eso estaría bien. ¿Tienes alguna prueba de concepto, una especie de "hola mundo" para ver cómo quedaría el asunto?

Otra cosa que estaría bien en SMSQemulator es la simplificación del tema de las unidades de almacenamiento virtuales. El tema de los nfa, sfa, win, ... es algo confuso de entrada para los usuarios alejados de sistemas QL. Creo que habría que hacer transparente para el usuario el tema de las cabeceras de lo binarios QDOS/SMSQE. En este sentido creo que QemuLator lo resuelve mejor.

A mi me gustaría también tener una especie de "consola" SBASIC, al estilo de Python por ejemplo. Una consola lista para ejecutar programas (o scripts) SBasic leyendo archivos directamente del sistema anfitrión. Incluso, que se pudiera extender el SBASIC para "llamar" a binarios del sistema anfitrión. Creo que Wolfgang podría tener esto al alcance de la mano.

La pega supongo que sería la velocidad, estaríamos ejecutando una máquina virtual (smsqe) sobre otra máquina virtual (java vm).

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

Re: SMSQmulator como plataforma de SMSQ/E

Mensaje por programandala.net » Jue Feb 11, 2016 2:02 pm

afx escribió: ¿Tienes alguna prueba de concepto, una especie de "hola mundo" para ver cómo quedaría el asunto?
Aún no he hecho una prueba, pero no le veo dificultad. Bastaría tomar el paquete de SMSQmulator, añadirle un WIN con el programa y un fichero de configuración a medida. Una característica que tengo en la lista de propuestas pendientes para Wolfgang es que el emulador pueda arrancar desde un dispositivo configurable, no solo desde WIN1_; así podría arrancar desde un directorio.
afx escribió: Otra cosa que estaría bien en SMSQemulator es la simplificación del tema de las unidades de almacenamiento virtuales. El tema de los nfa, sfa, win, ... es algo confuso de entrada para los usuarios alejados de sistemas QL. Creo que habría que hacer transparente para el usuario el tema de las cabeceras de lo binarios QDOS/SMSQE. En este sentido creo que QemuLator lo resuelve mejor.
El inconveniente de SMSQmulator es que para montar directorios del sistema anfitrión obliga a distinguir entre unidades NFA (para ficheros ordinarios) y unidades SFA (para ejecutables). Sería más cómodo poder tener cualquier tipo de fichero en un mismo directorio. Supongo que para el emulador sería algo más lento de manipular. Por lo demás, las cabeceras que SMSQmulator añade a los ejecutables son las mismas que usa Q-emuLator, pero este sí permite tener en un mismo directorio del sistema anfitrión ejecutables y no ejecutables. Eso facilita las cosas. Esto también se lo voy a sugerir a Wolfgang.

De todas maneras, son dos cosas diferentes: las cabeceras de los ejecutables y las unidades de almacenamiento de QL. El usuario del programa final no tiene por qué tener contacto con las unidades de QL. Por ejemplo, si el programa necesita saber en dónde quiere el usuario guardar los datos, puede pedirle la ruta a un directorio del sistema anfitrión y montarlo en una unidad QL.
afx escribió: A mi me gustaría también tener una especie de "consola" SBASIC, al estilo de Python por ejemplo. Una consola lista para ejecutar programas (o scripts) SBasic leyendo archivos directamente del sistema anfitrión. Incluso, que se pudiera extender el SBASIC para "llamar" a binarios del sistema anfitrión. Creo que Wolfgang podría tener esto al alcance de la mano.
En realidad ya la tienes. Basta que arranques SMSQmulator con un fichero de configuración que arranque desde un WIN que tenga un boot que te ponga las ventanas como quieras. Lo de llamar a binarios del anfitrión no se puede aún. QPC2 sí puede hacerlo, con `qpc_exec`. Quizá algo similar para SMSQmulator sería un poco más delicado, porque es un sistema multiplataforma.

Aunque no uso Python, su ejemplo me vino a la cabeza cuando empecé a pensar en usar SMSQmulator para distribuir programas. Sería algo parecido. Para ejecutar un programa en Python, tan solo necesitas tener instalado su intérprete. Para ejecutar un programa para SMSQ/E, tan solo necesitas tener instalado Java.
afx escribió: La pega supongo que sería la velocidad, estaríamos ejecutando una máquina virtual (smsqe) sobre otra máquina virtual (java vm).
No va a ser tan rápido como un emulador compilado para una plataforma específica, pero a partir de cierto punto la diferencia no es importante. Depende de la máquina. En una máquina moderna la velocidad sobra para cualquier tipo de aplicación. En una modesta Raspeberry Pi 2 SMSQmulator corre como una Super Gold Card. ¿Qué juego o aplicación necesita ir más rápido que eso? Los juegos clásicos, por ejemplo, escritos en ensamblador, había que frenarlos en la Gold Card y en la Super Gold Card.
Marcos Cruz (programandala.net)

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

Re: SMSQmulator como plataforma de SMSQ/E

Mensaje por afx » Mar Feb 16, 2016 7:55 pm

programandala.net escribió:De todas maneras, son dos cosas diferentes: las cabeceras de los ejecutables y las unidades de almacenamiento de QL. El usuario del programa final no tiene por qué tener contacto con las unidades de QL. Por ejemplo, si el programa necesita saber en dónde quiere el usuario guardar los datos, puede pedirle la ruta a un directorio del sistema anfitrión y montarlo en una unidad QL.
afx escribió: A mi me gustaría también tener una especie de "consola" SBASIC, al estilo de Python por ejemplo. Una consola lista para ejecutar programas (o scripts) SBasic leyendo archivos directamente del sistema anfitrión. Incluso, que se pudiera extender el SBASIC para "llamar" a binarios del sistema anfitrión. Creo que Wolfgang podría tener esto al alcance de la mano.
En realidad ya la tienes. Basta que arranques SMSQmulator con un fichero de configuración que arranque desde un WIN que tenga un boot que te ponga las ventanas como quieras. Lo de llamar a binarios del anfitrión no se puede aún. QPC2 sí puede hacerlo, con `qpc_exec`. Quizá algo similar para SMSQmulator sería un poco más delicado, porque es un sistema multiplataforma.
En esta línea, mi "lista de deseos" para Wolfgang y su SMSQmulator:

1) Que se simplifique la gestión de las unidades virtuales QDOS (el tema de los nfa y sfa).

2) Que directamente desde SMSQmulator se pueda acceder a archivos nativos del sistema anfitrión. Por ejemplo, supongamos que estamos en SMSQmulator en Windows, desde la consola SBasic las siguientes líneas deberían ejecutar un programa SBasic y un programa QDOS respectivamente:

Código: Seleccionar todo

 lrun c:\miCarpeta\miPrograma.bas
 exec c:\miCarpeta\miProgramaQDOS.exe
3) Que desde SBasic se puedan montar unidades virtuales QDOS. Por ejemplo, para montar una unidad QDOS win1_ mapeada a un directorio del sistema anfitrión, podríamos hacerlos así:

Código: Seleccionar todo

mount win1_ c:\misProgramasQL
4) Acortar el nombre de SMSQmulator (por ejemplo 'smsq'). Principalmente por comodidad y por hacer algo así desde la línea de comandos del sistema anfitrión (con Linux y Windows):

Código: Seleccionar todo

    smsq miProgramaBasic.bas 
(La anterior línea debería arrancar el emulador y ejecutar miProgramaBasic.bas; smsq podría ser una especie de comando del sistema anfitrión para poder ejecutar programas SBasic y binarios QDOS. Algo similar a nodejs, pero en lugar de ejecutar JavaScript se ejecutaría programas SBasic).

Con todo esto, SMSQmulator aportaría un "plus" que no tiene el resto de emuladores QL marcando la diferencia con respecto a los demás.

:D

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

Re: SMSQmulator como plataforma de SMSQ/E

Mensaje por programandala.net » Mié Feb 24, 2016 5:19 pm

afx escribió: 1) Que se simplifique la gestión de las unidades virtuales QDOS (el tema de los nfa y sfa).
Estoy de acuerdo. Eso haría algunas cosas más fáciles. Si fuera más lento, se podría usar un tercer dispositivo para ello. Así además se mantendrían los dispositivos actuales sin cambios, para no causar ninguna incompatibilidad.
afx escribió: 2) Que directamente desde SMSQmulator se pueda acceder a archivos nativos del sistema anfitrión. Por ejemplo, supongamos que estamos en SMSQmulator en Windows, desde la consola SBasic las siguientes líneas deberían ejecutar un programa SBasic y un programa QDOS respectivamente:

Código: Seleccionar todo

 lrun c:miCarpetamiPrograma.bas
 exec c:miCarpetamiProgramaQDOS.exe
Eso es interesante para usar SBASIC como consola del sistema, pero quizá en SMSQmulator sea más delicado, porque es multiplataforma. Lo anoto.
afx escribió: 3) Que desde SBasic se puedan montar unidades virtuales QDOS. Por ejemplo, para montar una unidad QDOS win1_ mapeada a un directorio del sistema anfitrión, podríamos hacerlos así:

Código: Seleccionar todo

mount win1_ c:misProgramasQL
Eso ya puedes hacerlo. Se usa el mismo comando `win_use` o el que corresponda al dispositivo, pues tienen dos sintaxis. La excepción es que debe usarse `flp_drive` en vez de `flp_use`.

Esta es la tabla que compara los comandos de montaje entre QPC y SMSQmulator, que preparé para sugerirle a Wolfgang una posible unificación de comandos:

Código: Seleccionar todo

  QPC                     SMSQmulator
  ------------------------------------------------
  dos_use name            nfa_use name
                          sfa_use name
  dos_drive n,"path"      nfa_use n,"path"       ?
                          sfa_use n,"path"       ?
  dos_drive$(n)           nfa_use$(n)            ?
                          sfa_use$(n)            ?
  ------------------------------------------------
  flp_use name            flp_use name
  flp_drive n,"path"      flp_drive n,"path"
  flp_drive$(n)           flp_drive$(n)
  ------------------------------------------------
                          mem_use name
                          mem_use n,"path"       ?
                          mem_use$(n)            ?
  ------------------------------------------------
  win_use name            win_use name
  win_drive n,"path"      win_use n,"path"       ?
  win_drive$(n)           win_use$(n)            ?
  ------------------------------------------------
Las interrogaciones indican los casos que me sorprendió que no estuvieran implementados con `_drive`, como `flp_drive`.

Y esta es la sugerencia que le envié:

Código: Seleccionar todo

  QPC                     SMSQmulator          Note
  --------------------------------------------------------------------
  dos_use name            nfa_use name
                          sfa_use name
  dos_drive n,"path"      nfa_use n,"path"
                          nfa_drive n,"path"   NEW -- QPC-like
                          sfa_use n,"path"
                          sfa_drive n,"path"   NEW -- QPC-like
  dos_drive$(n)           nfa_use$(n)
                          nfa_drive$(n)        NEW -- QPC-like
                          sfa_use$(n)
                          nfa_drive$(n)        NEW -- QPC-like
  --------------------------------------------------------------------
  flp_use name            flp_use name
  flp_drive n,"path"      flp_drive n,"path"
                          flp_use n,"path"     NEW -- SMSQmulator-like
  flp_drive$(n)           flp_drive$(n)
                          flp_use$(n)          NEW -- SMSQmulator-like
  --------------------------------------------------------------------
                          mem_use name
                          mem_use n,"path"
                          mem_drive n,"path"   NEW -- QPC-like
                          mem_use$(n)
                          mem_drive$(n)        NEW -- QPC-like
  --------------------------------------------------------------------
  win_use name            win_use name
  win_drive n,"path"      win_use n,"path"
                          win_drive n,"path"   NEW -- QPC-like
  win_drive$(n)           win_use$(n)
                          win_drive$(n)        NEW -- QPC-like
  --------------------------------------------------------------------
El objetivo es que no haya excepciones en el montaje de dispositivos, y a la vez conservando ambos métodos de hacerlo.
afx escribió: 4) Acortar el nombre de SMSQmulator (por ejemplo 'smsq'). Principalmente por comodidad y por hacer algo así desde la línea de comandos del sistema anfitrión (con Linux y Windows):

Código: Seleccionar todo

    smsq miProgramaBasic.bas 
(La anterior línea debería arrancar el emulador y ejecutar miProgramaBasic.bas; smsq podría ser una especie de comando del sistema anfitrión para poder ejecutar programas SBasic y binarios QDOS. Algo similar a nodejs, pero en lugar de ejecutar JavaScript se ejecutaría programas SBasic).
Puedes usar el nombre que quieras con las herramientas del SO anfitrión. En Linux puedes crear enlaces simbólicos o enlaces duros, que forman parte del sistema de ficheros ext, que es el habitual. En Windows no sé; recuerdo que antes había unos ficheros enlace que eran una abstracción del escritorio y tenían la extensión lnk, pero no eran una característica del sistema de ficheros, sino algo más sencillo, parecido a los .desktop de los escritorios de Linux. También se podía hacer un BAT que estuviera en la ruta de ejecutables de la consola de DOS.

En cuanto a interpretar un programa de SBASIC desde el arranque, es algo que también me parece muy útil, para poder usar el lenguaje como una opción más integrada en el SO anfitrión. Para ello haría falta además un pequeño detalle: un comando de SBASIC para salir del emulador, como tiene QPC. Todo esto también está en la lista de sugerencias para Wolfgang.
afx escribió: Con todo esto, SMSQmulator aportaría un "plus" que no tiene el resto de emuladores QL marcando la diferencia con respecto a los demás.
Actualmente las ventajas ya lo hacen una opción muy interesante para ciertos usos. Lo que más me interesa es la posibilidad de distribuir un programa para SMSQ/E sin que el usuario tenga que instalar nada, y que funcione en varias plataformas.
Marcos Cruz (programandala.net)

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

Re: SMSQmulator como plataforma de SMSQ/E

Mensaje por afx » Vie Feb 26, 2016 10:14 pm

programandala.net escribió:Eso ya puedes hacerlo. Se usa el mismo comando `win_use` o el que corresponda al dispositivo, pues tienen dos sintaxis. La excepción es que debe usarse `flp_drive` en vez de `flp_use`.
No consigo que esto me funcione bien del todo.

En mi sistema Windows, esto va bien:
sfa_use 1,"D:\Tmp\"

Pero cualquier otro comando xxx_use no me funciona (win_use, nfa_use), el error es siempre "not found". Por ejemplo:
nfa_use 2,"D:\Tmp2\"

Con flp_drive (por ejemplo: flp_drive 1,"D:\Tmp2\") el error es "invalid parameter".

No se qué estoy haciendo mal.

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

Re: SMSQmulator como plataforma de SMSQ/E

Mensaje por programandala.net » Lun Feb 29, 2016 2:37 pm

afx escribió: En mi sistema Windows, esto va bien:
sfa_use 1,"D:\Tmp\"

Pero cualquier otro comando xxx_use no me funciona (win_use, nfa_use), el error es siempre "not found". Por ejemplo:
nfa_use 2,"D:\Tmp2\"

Con flp_drive (por ejemplo: flp_drive 1,"D:\Tmp2\") el error es "invalid parameter".
La causa es que `flp_drive` monta imágenes de disquete, no directorios. Puedes montar un fichero inexistente y el comando no dará error. Después debes formatear el disquete de la forma habitual. Así creas una imagen de disquete en blanco.

En cuanto a `nfa_use`, ¿existe el directorio que quieres montar? Pero veo que hace algo extraño, que no recordaba: me deja montar un directorio inexistente, pero al intentar usarlo dice que está lleno. Comprobaré si eso es lo que debe hacer, o es un fallo.

En el caso de `win_use` puedes montar una imagen de disco duro inexistente y el emulador dará error, pero después te dejará formatearla. Esto es lo que debe hacer, según el manual.

Para obtener el fichero o directorio de montaje de las unidades, usa las funciones `nfa_use$()`, `flp_drive$()`, etc.

Échale un vistazo al manual, en él está todo esto explicado.

De todas formas, creo que el emulador debería tratar de igual manera todos los dispositivos nuevos. Ahora da error en unos casos y en otros no. Lo miraré más despacio, comparando cada caso con lo que dice el manual.
Marcos Cruz (programandala.net)

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

Re: SMSQmulator como plataforma de SMSQ/E

Mensaje por afx » Lun Feb 29, 2016 11:27 pm

programandala.net escribió:La causa es que `flp_drive` monta imágenes de disquete, no directorios. Puedes montar un fichero inexistente y el comando no dará error. Después debes formatear el disquete de la forma habitual. Así creas una imagen de disquete en blanco.
A mi no me funciona tal cual me dices. No veo que se cree un fichero cuando sigo esos pasos. (Parece que todo lo crea en "memoria"). Luego al formatear esa unidad me da un error (format failed) y cuando intento grabar un programa basic a flp1_ no da errores, pero graba el programa con otro nombre (por ejemplo al grabar un programa basic como flp1_pr_bas , parece que el fichero guardado al final está en flp1_basic_flp1_pr_bas).

Avatar de Usuario
badaman
Sabreman
Mensajes: 499
Registrado: Mar Ene 29, 2008 10:58 am
Contactar:

Re: SMSQmulator como plataforma de SMSQ/E

Mensaje por badaman » Jue Mar 24, 2016 5:21 pm

Muy interesante el tema, y la propuesta.

No había probado aún SMSQmulator, y estoy gratamente sorprendido. Mi uQLx ya no tira en Linux Mint, y no me apetece nada averiguar por qué y luego intentar recompilar.

El único "pero" que le pondría, a parte de lo que ya se ha dicho, es justamente el origen de suser o sentido de existencia. No se trata de un emulador de QL, sino de un emulador de SMSQ.

¿Y en que se diferencia? en que las características clásicas de emulación basadas en ROM desaparecen. Aquí no podemos correr una MGE o una minerva. Tiene sentiedo que esto sea así, pero es algo que echaré en falta con este emulador.
Sinclair QL, la respuesta profesional de los 80

Avatar de Usuario
badaman
Sabreman
Mensajes: 499
Registrado: Mar Ene 29, 2008 10:58 am
Contactar:

Re: SMSQmulator como plataforma de SMSQ/E

Mensaje por badaman » Vie Mar 25, 2016 1:56 pm

Siguiendo con el hilo, y la propuesta, creo que entre todos tenemos algunos juegos en SuperBASIC que merecen la pena para un recopilatorio en español, por ejemplo:

OSUSQ - Afx
Juego de barcos - Programandala
Tenis plus - Programandala
Snake - Zerover
Qletris - Badaman (tendría que revisar como está el estado de este tetris para QL)
Torres - Badaman (Torres de Hanoi, misma cosa con la revisión)
...

Aporto además el menú de arranque con selector para hacerlo más intuitiva la carga, e incluir alguna explicación de cada juego en la pantalla:

https://github.com/JavGuerra/Sinclair-QL-menu

Todo esto, junto con el emulador, creo que sería una forma de relanzar aquellos programas.

Respecto a las aventuras conversacionales, en su momento preparé una recopilación que va con el intérprete de aventuras Z (llamado zip en el QL), esta recopilación era sobre aventuras españolas

http://sinclairql.speccy.org/utilidades/aventuras.zip
http://sinclairql.speccy.org/utilidades/aventuras.txt

Imagen

Siempre me quedó la espinita de que la máquina z está en inglés y los caracteres como los acentuados y las ñ no salen bien en las aventuras.

Debe ser posible de alguna forma modificar el juego de caracteres altertando la máquina z, cosa que supone un reto para mi.

Si esto se consigue, puede ser otra forma más de promocion del QL, vía emulador con arranque automático.
Sinclair QL, la respuesta profesional de los 80

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

Re: SMSQmulator como plataforma de SMSQ/E

Mensaje por afx » Vie Mar 25, 2016 10:21 pm

badaman escribió:Siguiendo con el hilo, y la propuesta, creo que entre todos tenemos algunos juegos en SuperBASIC que merecen la pena para un recopilatorio en español,
¡Me parece una idea estupenda! Y efectivamente, siendo programas SuperBasic sería viable "enhebrarlos" de forma elegante vía tu utilidad "Menu" y darle un toque uniforme al conjunto. (Hummmm ... sería una especie de "distro" de jugos SuperBasic ..., ¡me gusta la idea!). :D

Propongo incluso:
- Hacer una versión de esa "distro QL de juegos SuperBasic" para la máquina real y para Q-emuLator. (Con Q-emuLator se puede conseguir el timing de la máquina original, cosa que tal vez sea importante en algunos juegos).
- Incluir en la lista más juegos en SuperBasic traducidos al español, por ejemplo los juegos del libro "El genio del los juegos" (creo que ese era el título, o algo parecido).

Avatar de Usuario
badaman
Sabreman
Mensajes: 499
Registrado: Mar Ene 29, 2008 10:58 am
Contactar:

Re: SMSQmulator como plataforma de SMSQ/E

Mensaje por badaman » Sab Mar 26, 2016 1:21 am

afx escribió:Hacer una versión de esa "distro QL de juegos SuperBasic" para la máquina real y para Q-emuLator. (Con Q-emuLator se puede conseguir el timing de la máquina original, cosa que tal vez sea importante en algunos juegos).
Sería fácil, me parece muy bien. Ya tenemos tema ara hablar en la KDD.
afx escribió:- Incluir en la lista más juegos en SuperBasic traducidos al español, por ejemplo los juegos del libro "El genio del los juegos" (creo que ese era el título, o algo parecido).
En esos libros había algunos juegos interesantes. Estaban pésimamente programados desde el punto de vista de la compatibilidad con un lenguaje de procedimientos, pero funcionaban. Claro que podemos hacerlo. Lo vamos viendo.
Sinclair QL, la respuesta profesional de los 80

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

Re: SMSQmulator como plataforma de SMSQ/E

Mensaje por programandala.net » Sab Mar 26, 2016 4:41 pm

badaman escribió:Siguiendo con el hilo, y la propuesta, creo que entre todos tenemos algunos juegos en SuperBASIC que merecen la pena para un recopilatorio en español, por ejemplo:

...

Aporto además el menú de arranque con selector para hacerlo más intuitiva la carga, e incluir alguna explicación de cada juego en la pantalla:

https://github.com/JavGuerra/Sinclair-QL-menu

---

Siempre me quedó la espinita de que la máquina z está en inglés y los caracteres como los acentuados y las ñ no salen bien en las aventuras.
Aporto la conversión de Asalto y castigo. Para aceptar e imprimir vocales acentuadas (también mayúsculas) tuve que usar un juego de caracteres ISO en lugar del original de QL, y escribir una rutina de entrada de texto a medida. El juego de caracteres de QL siempre me pareció un engorro, pero al menos siempre se puede hacer algo para usar uno estándar. Con la máquina Z ya sería otra cosa, como dices.

La idea de ese menú es estupenda.
Marcos Cruz (programandala.net)

Responder

¿Quién está conectado?

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