RECORDANDO LOS VIEJOS TIEMPOS ( II )

Salvador Merino
Fuengirola, 6 de Enero 2004

Hace mucho tiempo escribí un macro programa para el Sinclair QL. Bueno, en realidad era un lenguaje de programación que fue bautizado con mi primer apellido, y además se hizo una segunda versión para el sistema operativo MS-DOS (IBM PC y compatibles) usando el emulador PC Conqueror para Sinclair QL, pues el objetivo original era un lenguaje cuyo código fuente pudiese correr en ordenadores con arquitecturas muy diferentes (su desarrollo fue un éxito, pero tenia la pega de que las posibilidades del lenguaje para mantener la compatibilidad en diferentes ordenadores/plataformas se veía reducida a solamente poder utilizar recursos disponibles en ambas plataformas).

El proyecto del Lenguaje MERINO TIL nació por el año 1990. En un principio era solamente una calculadora programable escrita en 'C', y el código fuente inicial se había tomado prestado del libro "WRITE YOUR OWN PROGRAMMING LANGUAGE using C++" suministrado por el Club FORTH INTEREST GROUP de California (yo fui socio de ese club desde 1987 a 1994). Luego más tarde, y quizás atraído por el proyecto de Pedro Reina de crear un librería llamada OLIMPO con el objetivo de crear código fuente en C compilable sin ninguna modificación en QL (compilador C68) y PC (compilador TURBO C para MS-DOS), me decidí a crear mi propio lenguaje añadiendo todas las palabras de la librería OLIMPO al diccionario, y también añadiendo todas las palabras necesarias para que mi lenguaje se pareciera a un sistema mínimo FORTH.

La librería OLIMPO (todas las versiones, e incluso rutinas sueltas de antes de que fuese un proyecto) de Pedro Reina, y su código fuente, podéis encontrarla en las revistas en disco CUQ/QLIPER y en su página web http://pedroreina.org. Obtuvo un premio en un concurso de programación de la revista PC ACTUAL.

El desarrollo paso a paso de MERINO TIL podéis leerlo en las revistas CUQ/QLIPER.

Para ejecutar MERINO TIL en un QL, lo primero es activar el TOOLKIT II, y ademas configurado con:

TK2_EXT <ENTER>

PROG_USE win1_ <ENTER>

DATA_USE win1_ <ENTER>

Luego, solamente hay que escribir:

EXEC win1_til_merino_exe <ENTER>

Existe la posibilidad de poder compilar directamente un fichero fuente:

EX win1_til_merino_exe;"win1_demo_til" <ENTER>

El comando EX del Toolkit II permite ejecutar un programa con parámetros. En el caso del lenguaje MERINO TIL, existe la opción de un sólo parámetro que es un fichero fuente Merino Til que se compila directamente.

El fichero "demo_til" contiene el código fuente en MERINO TIL del programa "Demo". Se compila tecleando:

LOAD_FILE win1_demo_til <ENTER>

Si salimos del programa "Demo" con la opción del menú "Salida", y deseamos volver a ejecutar el programa "Demo", no es necesario volver a compilarlo, porque continua estando compilado en memoria. Solamente tenemos que teclear:

demo <ENTER>

El programa demo escrito en Merino Til es casi idéntico a una de las versiones de programa Demo escrito en 'C' suministrado con la librería OLIMPO de Pedro Reina. De hecho todas la palabras previamente compiladas en el diccionario del Lenguaje Merino Til corresponden a la librería OLIMPO. Eso si, el lenguaje Merino Til utiliza anotación polaca inversa, pues Merino Til está basado en el lenguaje FORTH.

El fichero fuente wipeout_til contiene el código fuente de un juego arcade. Es una nave espacial que debe derribar naves koryons pasando por encima de ellas en un tiempo limite, y teniendo mucho cuidado de no chocar con las minas. Es una demo de las posibilidades para crear juegos de Merino Til.

Originalmente mi primera versión del programa "wipeout" fue escrita en 'C'' (publicada en revistas disco CUQ/QLIPER), y era una adaptación al QL (QDOS) de un juego demostración publicado en el libro "La Biblia del TURBO C" de Anaya Multimedia (PC para MS-DOS). La mayor modificación del código fuente fue adaptarlo a C68, y escribir nuevas rutinas gráficas (sprites) para poder trabajar en la pantalla de un QL en modo 4 colores (512x256 pixels) u 8 colores (256x256 pixels).

El fichero foto_dbase_til contiene el código fuente de una sencilla base de datos con foto. Bueno, en realidad en una agenda con la fotografía de cada individuo. Su opción "impresora" permite imprimir registros (foto digitalizada y sus campos ASCII) en una impresora compatible EPSON de 8-9 agujas o 24 agujas.

Existe una versión antigua de "foto_dbase" escrita en 'C' para QL publicada en las revistas disco CUQ/QLIPER (También varias versiones en Blanco y Negro, o a 256 colores para PC MS-DOS), y fue concebida inicialmente para darle alguna utilidad extra a mis digitalizadores de vídeo para Sinclair QL.

En resumen, no conozco a nadie que haya escrito un programita en el lenguaje Merino Til (a excepción de yo mismo). Ambos, el lenguaje Merino Til (Salvador Merino) y la librería Olimpo multiplaforma (Pedro Reina) se escribieron en una época en la que era muy importante para nosotros escribir código que pudiese correr en plataformas diferentes sin ninguna modificación.

TIL significa Lenguaje Interpretado Entrelazado. En realidad, existen unas palabras en el diccionario que son primitivas (normalmente escritas en código máquina, pero en nuestro caso particular en 'C'), y con esas rutinas primitivas creamos nuevas definiciones de palabras secundarias (que son listas de direcciones que apuntan a rutinas primitivas que ejecutan el código máquina). En otras palabras, un buen compilador normalmente crea código máquina, pero un TIL (compilador e intérprete a la vez) lo que crea son listas de direcciones (es un Pseudo compilador). Los parámetros de entrada y salida de datos entre las diferentes palabras del diccionario se realiza utilizando una pila de datos (en nuestro caso, varias pilas de datos).


Sinclair QL Recursos en Castellano Alojado en / Hosted at:
Sinclair QL Recursos en Castellano
Sinclair QL Spanish Resources