archivo

Archivos Mensuales: septiembre 2009

Rich Mellor de RWAP Software, está incorporando información muy interesante en su proyecto Sinclair QL Wiki. Estos días ha incluído surtida información acerca de los juegos comerciales editados para QL, y en su blog muestra una lista de ellos de forma accesible.

alienhijack_screenshotCaptura de pantalla del juego Alien Hijack

Dada la corta vida comercial del QL, la calidad de los juegos es acorde a los tiempos en los que fueron puestos a la venta, y en general, pocos aprovechan las posibilidades de la máquina, aunque gran parte de ellos han sido escritos en código máquina.

Puedes encontrar en la lista las típicas conversiones, como las de asteroids, comecocos… Entre las categorías de juego disponibles no faltan los arcade, los de tablero, o las aventuras conversacionales.

Si eres de los que creías que el QL era un ordenador aburrido, no te peirdas el siguiente enlace.

Lista de información de juegos.

Anuncios

web20Parafraseando la famosa frase publicitaria de El Corte Inglés de “La vuelta al cole” (es sorprendente la de palabras que se pueden formar con las letras Q y L), este año presentamos más novedades post-vacacionales.

Si hace 2 años ampliábamos nuestro alcance informativo a los usuarios mediante la incorporación de un feed RSS (feed) a nuestra web, pudiendo entonces ser leídas nuestras noticias por los interesados en el momento que se producen con la ayuda de un agregador, evitando así el paseo periódico por nuestras páginas para ver si hay novedades, y a principios de año nacía QBlog (nuestro blog sobre QL) que permite la colaboración directa de nuestros colaboradores, hoy vamos a dar un paso más en post de la diversificación de la información.

Durante el verano he estado estudiando la mejor manera de entrar en el mundo de las redes sociales de tal forma que nuestra información pueda llegar al mayor número de gente posible y a su vez no nos suponga un esfuerzo suplementario de actualizaciones y mantenimiento.

Así hoy puedo anunciar que Sinclair QL Recursos en castellano está ya en las redes Twitter, Facebook, Friendfeed e Identi.ca, y en breve empezaremos a estudiar otras redes sociales a las que incorporarnos que sean del interés de los usuarios.

La información que se mostrará en estas redes no se limitará a la elaborada desde SinclairQL.es, sino que se abre a la información recopilada por Internet para que sea un servicio para toda la comunidad QL sea cual sea su idioma.

Igualmente, estos servicios están abiertos a la participación pública mediante comentarios de las noticias y aportaciones personales, como es norma en nuestro modo de trabajo.

Así que, elije tu red social, y allí nos encontrarás:

https://twitter.com/sinclairql
http://www.facebook.com/pages/Sinclair-QL/119040595488
http://friendfeed.com/sinclairql
http://identi.ca/sinclairql

Z2-RGbw1mLa página de QUANTA recoge un interesante artículo de ejemplo de los contenidos que pueden verse en su publicación QUANTA Magazine.

El tema es la Robótica en el QL, y mediante la narración de sus experiencias, el autor nos introduce en los avances que ha ido realizando en este campo y nos muestra, mediante capturas de pantalla, el funcionamiento de su programa para manejar robots con el QL.

Z2QLhelp11Captura del programa de gestión de robots.

Sin duda, una lectura interesante para los amantes de los ordenadores retro y de la robótica retro en particular.

Leer el artículo  aquí (en inglés)

Es de sobra conocido que el Sinclair QL no fue muy prolífico en el desarrollo de juegos, tanto en cantidad como en calidad. Aún así, y pese a la corta duración comercial del QL, hoy en día existe una buena biblioteca de programas disponible en varios sitios Web.

Un aspecto llamativo en es la gran cantidad de leguajes de programación que se fueron adaptando para el QL a lo largo de los primeros años de vida de la máquina. Hubo incluso una época en la que se bromeaba sobre esto, así en esos primeros años se hizo célebre la frase de que para el Sinclair QL se implementaba un nuevo lenguaje cada semana.

Como curiosidad detallo una lista de los lenguajes de programación disponibles para el QL extraído de varias fuentes tales como QL Hacker’s Journal, Web de Dilwyn Jones, anuncios de QL World, …


   BASIC
      SuperBASIC  (Lenguaje nativo del QL)
      SBasic  (Lenguaje nativo de SMSQ/E)
      Structured SuperBASIC

   Compiladores SuperBASIC
      QLiberator 
      Turbo 
      Supercharge

   C
      C68 
      Small-C 
      Metacomco Lattice 
      Digital Precision 
      DP C Special Edition
      
   Pascal
      Metacomco Pascal
      Computer One Pascal
      Pro Pascal
      
   Perl 
      Peros4QDos
            
   Scheme
      Scheme Intepreter for QDOS
      
   Forth
      Forth-79
      e-Forth
      Digital SuperForth
      Brouhabouha Forth for QL
      Mini-Forh de Laurence Reeves
      Basic Forth Engine (escrito en SuperBASIC)
      
   BCPL
      Metacomco BCPL
      
   Fortran
      Pro Fortran 77
      
   Lisp
      Metacomco Lisp
      WS-Lisp
      Xlisp
      
   Prolog
      QL-Prolog for QDOS
      
   APL
      Metacomco APL
      Apl 11
      
   LOGO
      Logo
      
   AWK
      GNU AWK
      
   J
      Lenguaje J para QDOS
      
   REXX
      Intéprete Rexx para QDOS

   Otros
      Merino TIL 

   Utilidades y frameworks de desarrollo
      Olimpo   (framework de desarrollo para QDOS/MSDOS)
      EasyPtr  (librería y framework de desarrollo para PE)
      TurboPtr    "  
      CPtr        "  
      SuperB  (depurador SuperBASIC)


Fuentes:
Web de Dilwyn Jones
QL Hacker’s Journal
QL World
sinclairql.es

NOTA:
– Actualizada la entrada con nuevos lenguajes y frameworks de desarrollo.

En los años 80, Andrew Pennell fue autor de varios libros para el Sinclair QL y autor de herramientas de desarrollo, entre ellas un depurador. Actualmente Andy Pennell es un desarrollador en Microsoft que trabaja en tecnologías móviles. Anteriormente trabajó durante años en el depurador de Visual Studio, buque insignia de las herramientas de programación de Microsoft.

A continuación, transcribimos una breve reseña publicada en su blog como homenaje al 25 aniversario del QL.

25 años del Sinclair QL …

Lo más probable es que tu nunca hayas oído hablar del Sinclair QL. Sin embargo, si eres tan viejo como yo y además europeo es posible que tengas un “punto débil” para con esta máquina basada en el 68k (Motorola 68000) presentada doce días antes que otro equipo 68k de la “compañía frutera”. Fue mi primera máquina de 32-bits y con un sistema operativo multitarea real (lástima el teclado y los dispositivos de almacenamiento).

Tuve una máquina 68K de la empresa frutera, no mucho después del QL, como un adelanto de mis editores que utilice (ejecutando MacWrite 1,0) para redactar mis dos libros sobre el QL (¡uno de los cuales se cita en la página de Wikipedia!) y para escribir código en lenguaje ensamblador para ambas plataformas. Mi proyecto de tercer año de Universidad fue un depurador para el QL que escribí también en ensamblador, y que eventualmente se convirtió en HiSoft Devpac para el QL, Atari ST y el Commodore Amiga una vez que obtuve un buen trabajo. Así que supongo que tengo que agradecer al QL mis décadas de trabajo en el campo de las herramientas de desarrollo.

En el ático de mis padres aún debe estar el desensamblado de una de las versiones del sistema operativos del QL (creo que el FB), aunque sé que me gustaría disponer de él junto con otros recuerdos de mi pasado, como mi hardware QL que según recuerdo se quedó en Hisoft. Creo que todavía debo tener algunos cartuchos Microdrive en alguna parte

Como vemos, junto a Linus Torvald, hay otra serie de personalidades relevantes en el mundo de la programación en las que el QL también jugó un papel importante en sus vidas.


Enlaces relacionados:
http://blogs.msdn.com/andypennell/archive/2009/01/12/the-sinclair-ql-is-25-yrs-old-today.aspx
http://blogs.msdn.com/andypennell/default.aspx

.

The Sinclair QDOS Companion (Andrew Pennell)

The Sinclair QDOS Companion (Andrew Pennell)

.

El concepto de Variables de Entorno viene del mundo UNIX. Se utilizan también en MS-DOS pero de forma más limitada y no en la misma medida. Para el mundo QDOS, el archivo ENV_BIN proporciona una serie de extensiones que permiten el uso de Variables de Entorno en el Sinclair QL.

Si queremos disponer de estas facilidades debemos cargar previamente dicha extensión en nuestra sistema. Para ello basta con añadir en nuestro boot una línea similar a la siguiente:

100 LRESPR flp1_env_bin

(Notas:
– LRESPR requiere Toolkit 2.
– La extensión ENV_BIN se puede obtener en la sección de Toolkits del sitio de Dilwyn Jones).

En esencia, una variable de entorno es una variable que puede ser “vista” por los programas ejecutables. En SuperBASIC podemos crear todo tipo de variables, pero si ejecutamos un programa desde SuperBASIC, estos programas no pueden “ver” dichas variables ni obtener datos de ellas.

El objetivo de las variables de entorno suele ser el cambiar la configuración de un programa. Estas variables funcionan como los “Bloques de Configuración” en QDOS, pero no requieren de la ejecución de un programa externo para hacer cualquier cambio en sus valores.

Echemos un vistazo a cómo podemos cambiar el comportamiento de los programas. Hay cinco maneras diferentes de hacer esto:

1] Intervención del usuario. Mediante esta estrategia, el usuario utiliza un menú o responde a las preguntas del programa.

2] Bloques de Configuración (Config Blocks). Esta característica es peculiar del QDOS y permite al usuario cambiar las opciones por defecto sin tener que saber cómo editar un archivo binario.

3] Fichero de Configuración. Este es un archivo separado que el programa lee para determinar cómo establecer los valores predeterminados para su ejecución.

4] Argumentos por la Línea de Comandos. En lugar de que el programa pregunte la de información al usuario, el usuario escribe dichos valores cuando ejecuta el programa desde la consola utilizando parámetros adicionales.

5] Variables de Entorno. El usuario establece una variable que luego es leída por el programa para cambiar su configuración predeterminada.

Cada una de las opciones tiene su propio lugar, sus ventajas y sus defectos. Algunas son más permanentes, como los Bloques de Configuración y los Archivos de Configuración, mientras que las otras opciones son más volátiles, como la “Intervención del Usuario” y de los “Argumentos por la Línea de Comandos”. Las “Variables de Entorno” se encuentran entre las opciones que se pueden establecer en el BOOT (arranque del sistema), o en un programa cargador, pero se pueden cambiar con solo teclear en un nuevo comando.

El fichero ENV_BIN viene con 4 extensiones. Éstas son:

SETENV     - Define una variable de entorno.
ENV_LIST   - Lista todas las variables de entorno definidas.
ENV_DEL    - Elimina una variable de entorno. 
GETENV$    - Obtiene el valor de una variable de entorno. 

Los dos comandos más relevantes son SETENV y GETENV$. SETENV se usa de esta forma:

SETENV "VARIABLE=valor" 

SETENV toma un argumento de cadena del tipo “XXXXX=YYYYY”, donde XXXXX y YYYYY son dos cadenas separadas por un signo igual. Cualquier espacio antes del signo igual es tratada como una parte de XXXXX y un espacio después del signo igual es tratada como una parte de YYYYY. El nombre de la variable es sensible a mayúsculas y minúsculas, así “VARIABLE” es diferente de “variable”. Por convenio, las mayúsculas se utiliza como nombre de las variables de entono.

El comando SETENV se puede ejecutar en el programa de inicio del sistema -BOOT- (el cual podría ser alterado por un programa instalador), o bien directamente por el usuario. El comando para que un ejecutable obtenga el contenido de una variable de entorno es GETENV$. El comando se usa así:

a$ = GETENV$("VARIABLE")

En este caso, a$ se le asignará el valor de “valor” establecido en nuestro ejemplo por la instrucción SETENV anterior. Si la variable de entorno “VARIABLE” no está definida (no existe), entonces la función GETENV$ devolvería una cadena vacía (“”).

Hemos dicho que los ejecutables usan GETENV$ y no los programas SuperBASIC. Como las variables se utilizan ya de forma ordinaria en el entorno SuperBASIC, no ganaríamos mucho en el uso de variables de entorno (a no ser que pretendamos obtener algún valor preestablecido de forma personalizada en nuestro sistema). Por esto hemos destacado que el uso mayor de estos comandos es en los programas SuperBASIC compilados, que son ejecutables.

Vemos que el propósito de utilizar Variables de Entorno es la adición de flexibilidad para los programas que utilizan bloques de configuración. Ambos, Bloques de Configuración (Config Blocks) y Variables de Entorno se han diseñado realmente para cambiar la configuración predeterminada de los programas. La “Intervención del Usuario” y los “Argumentos por la Línea de Comandos” están diseñados para indicar al programa algunos datos adicionales. El uso de Variables de Entorno permite al usuario la posibilidad de hacer un cambio temporal en las opciones por defecto de un programa, sin tener que pasar por la molestia de usar “config”. Las variables de entorno se utilizan para cambiar una configuración para una sola sesión y ya está.

No es difícil el uso de los “Bloques de Configuración” y las “Variables de Entorno” en conjunción de tal forma que sean complementarias. El programa obtendría primeramente su configuración por defecto del Bloque de Configuración (Config Block). A continuación, se comprueba si hay variables de entorno establecidas. Si hay, entonces los valores de configuración de las Variables de Entorno reemplazan los valores de configuración definidos en los Bloque de Configuración.


Fuente:
ENVIRONMENT VARIABLES
(Timothy Swenson)
QL Hacker’s Journal