Tutorial: Entorno de desarrollo para InPAWS con SciTE y FUSE

Inpaws es una herramienta de línea de comando, y como tal no ofrece posibilidades de edición ni testeo de los desarrollos que hagas con ella. Esto se solventa, como ocurre con el resto de herramientas de su tipo, utilizando uno de los muchos editores, la mayoría libres, que circulan por ahí, y que más o menos tienen las mismas posibilidades: edición, ejecutar comandos, capturar salida, etc. Está claro que cada uno tiene sus gustos, y en tema de editores de código, más que gusto yo lo llamaría dependencia. Por si a alguien le es de utilidad comento el entorno que tengo montado para desarrollar en Inpaws, un entorno que te permite fácilmente seguir el ciclo edición-compilación-pruebas con el mínimo esfuerzo.

Herramientas necesarias

  • SciTE: un editor de texto basado en el componente Scintilla, especialmente diseñado para edición de código. La última versión es la 1.77 (descargar)
  • Fuse: creo que no necesita presentación. El emulador "de oficio" en los sistemas Unix, y desde hace un tiempo, también disponible para Windows. La última versión es la 0.10.0.2. (descargar)
  • PAWS de Gilsoft para Spectrum. Depende de para qué versión te gusta más programar, si para la inglesa (a17c), o para la española (b02c).
  • Sistema operativo Windows o Linux

El proceso que voy a explicar a continuación lo he realizado bajo un entorno Windows, pero supongo que en Linux funcionará exactamente igual.

Configurando SciTE

La configuración de un lenguaje nuevo en SciTE no es trivial, como suele ocurrir con los editores que ofrecen cierta flexibilidad al usuario. En nuestro caso, nos vamos a limitar a indicarle que existen ficheros Inpaws, que tienen extensión .paw, y a definir un par de comandos invocables desde el editor para Compilar y Ejecutar, respectivamente. Comenzamos ejecutando SciTE, donde editamos el fichero de configuración general: nos vamos a Options -> Open Global Options File, que nos abrirá el fichero de definiciones globales de la aplicación donde le explicaremos que leches son los ficheros de inpaws:

En el archivo que nos abre buscamos (Ctr+F) el comentario de inicio del bloque de importación de propiedades ("# Import all the language specific properties files") de los diferentes lenguajes. Dentro de ese bloque, en el sitio que queramos (recomiendo seguir un orden alfabético) le cascamos una linea "import inpaws". Esto es para que el fichero de definiciones global "lea" las definiciones que vamos a realizar para los ficheros específicos de inpaws. Como estamos en Windows, hacemos lo que nos sale de las pelotas y vamos a crear este inpaws.properties en el mismo directorio que el fichero global (C:/Archivos de programa/Scintilla Editor). En Linux desconozco como se hace pero entiendo que será colocarlo en algún directorio que cuelgue del home.

Pero antes nos vamos a la propiedad menu.language, en el mismo fichero, y en el sitio adecuado dentro de la lista le cascamos: "Inpawspaw\" (sin la comillas). Y también, en la propiedad source.files, deberemos añadir tras la última, nuestra extensión: *.paw Grabamos el fichero y lo cerramos, ya que no lo vamos a volver a necesitar.

Creamos ahora el inpaws.properties. File->New y luego File->Save As... Lo llamamos inpaws.properties. Recuerda que como buenos usuarios de Windows lo vamos a cascar en el directorio de la aplicación, que es el C:/Archivos de programa/Scintilla Editor, o como se llame donde te lo haya copiado el instalador. El contenido de este fichero será el siguiente:

Descárgate el fichero de aquí y copialo donde indiqué antes. Como es natural, debes sustituir los path que hay dentro del fichero por los tuyos. Sobre el snap .szx, explicaré lo que es en el siguiente apartado.

Configurando FUSE

Para configurar FUSE de modo que pueda ejecutar nuestras pruebas, primero lo ponemos en modo 128k y cargamos el PAW que hayamos elegido.

Una vez cargado, le decimos que "saque la cinta", o lo que es lo mismo F1 -> Media -> Tape -> Clear. Luego elegimos la opción J - Load Database. En el nombre del archivo introducimos INPAWS (tal cual), y le damos a ENTER. Se quedará esperando la cinta, y ese es el momento en que vamos a grabar un snapshot de lo que será nuestro motor de pruebas. F1 -> File -> Save snapshot..., y en el directorio que elijamos, lo grabamos con el nombre: PAW-b02c-spa-load.szx, o cualquier otro que se os ocurra, pero acordaos por que es el que tendrá que figurar en el fichero inpaws.properties de SciTE.

Por parte de FUSE también está todo hecho. Podemos cerrarlo.

Probando nuestro entorno

Llegó el momento de probar el tinglado. Lanzamos SciTE y cargamos una aventura, por ejemplo, la demo que se proporciona con Inpaws:

Compilamos con Tools->Compilar Inpaws. Abajo nos mostrará una ventana con el resultado del comando, sea este exitoso, como en el ejemplo:

O fallido, como en este otro:

En cuyo caso podremos ir repasando los errores con F4 (Shift+F4 nos lleva al anterior). SciTE es muy listo y sabe descomponer el mensaje de error para llevarnos a la línea y archivo donde se produce el error. Solucionamos los errores y llega la hora de probar la aventura. Simplemente Tools->Ejecutar InPAWS. SciTE llamará a FUSE con los parámetros adecuados para que nos lo devuelva con nuestra aventura ya cargada y lista para probar:

Conclusión

Espero que este pequeño tutorial te haya sido de ayuda para ponerte más fácil el "aventurarte" con Inpaws. Yo lo utilizo y agiliza bastante la creación de una aventura (si lo comparamos con crearla en el PAW Original ni te cuento).

Hasta otra