Más THINGS - parte 2

Jochen Merz
Alemania
Artículo aparecido en la revista QL Today volumen 4 número 3

Traducción:
Afx
Mayo de 2009

Viene del artículo anterior

En la primera parte de esta serie, espero haberte dado una idea de lo que son los Things. Ahora, ¿cómo podemos acceder a ellos, cómo crearlos, cómo funciona el sistema de control para poderlos manejar? QDOS y Minerva no tienen llamadas del sistema operativo para añadir o eliminar Things, así que debernos encontrar alguna manera diferente para hacerlo.

Permíteme que empiece el artículo de una forma un poco técnica, en breve relajaremos los tecnicismos. Prometo que mantendré la sección técnica lo más corta posible. Las llamadas al sistema operativo como la reserva de memoria, la vinculación en los drivers, etc. se agrupan todos bajo el “Trap #1″. Éste es el método usado para hacer una llamada al sistema operativo en código máquina. Un registro (D0) contiene el “código de función”. La llamada a los Thing pertenece al mismo grupo, pero hay que tener en cuenta que el sistema operativo del QL está en ROM, no se puede modificar. Además, la lista en ROM no puede ser extendida, no hay un mecanismo para "engarzar", etc. Cuando un programador intenta llamar al Trap #1 con un código de función de una llamada a un Thing, el sistema operativo retorna “not implemented” (no implementado). (Sólo para los curiosos: algunas implementaciones de SMS, principalmente SMS2, contienen llamadas a Things como una llamada real Trap#1). Cuando el programador intenta ejecutar una llamada a un Thing y obtiene un “not implemented”, entonces debe usar un método alternativo de hacerlo -que debería funcionar siempre-. La extensión del sistema “HOTKEY System II” no solo añade mejoras en las facilidades HOTKEY de los sistemas QDOS y Minerva, sino que también añade llamadas a los Thing de una forma ligeramente diferente. No voy a entrar en los detalles ahora, pero un programador puede fácilmente encontrar las llamadas de los Things y ejecutar dicha llamada con los mismos parámetros y códigos de función en D0 de forma que se puede trabajar con ellos de la misma manera que con otras llamadas al sistema. Y aquí acaban los tecnicismos.

Así que, para que haya Things, necesitas tener cargado el HOTKEY System II. Éste está integrado dentro de SMSQ/E, pero si usas QDOS o Minerva entonces necesitas cargarlo separadamente. Además, si deseas mostrar una lista de Things cargados en tu sistema para verlos en acción deberías también cargar QPAC2. QPAC2 está formado por un conjunto de Things y además te permite listarlos, así que tiene una doble utilidad.

…………
Nota del traductor: A continuación un recorte de código para tu boot, de esta manera puedes cargar HOTKEY y QPAC (se presupone que estás usando Toolkit 2).

100 REMark --- Cargar PE, HOTKEY System II y QPCA2
110 LRESPR "flp1_ptr_gen"
120 LRESPR "flp1_wman"
130 LRESPR "flp1_hot_rext"
140 LRESPR "flp1_qpac2"

Puedes encontrar varias de estas utilidades en los siguientes sitios:
http://www.bytemaniacos.com/sinclairql/
http://www.dilwyn.me.uk/
…………

Bueno, teclea ahora la siguiente instrucción desde el BASIC

EXEP "Things"

Aparecerá una ventana mostrando una lista con los Things de tu sistema. Y… ¡tú ya habrás usado un Thing llamado “Things”!. Éste último es un Thing ejecutable instalado por QPAC2 el cual te proporciona un job que lista los Things de tu sistema. Así que ahora puedes iniciar programas sin acceder al sistema de ficheros para cargarlos. Si ahora estás un poco confuso, entonces por favor lee otra vez la parte 1 de estas entregas – tal vez lo hayas leído hace algún tiempo por lo que habrás olvidado la teoría que explicamos allí-.

Lista de Things

Si nos fijamos en los Things disponibles, encontraremos Things como “Button”, “Exec”, “Jobs”, “HOTKEY”, y más abajo al final de la lista ordenada alfabéticamente, “Things”. ¡¡ Esto es todo !!

Intenta otra cosa, por ejemplo

EXEP "Pick"

y otra ventana aparece dándote la lista de todos los jobs con CONsolas1 abiertas que pueden ser seleccionadas (”picked”) en la parte superior de la pila de ventanas.

Intenta ahora

EXEP "Button Frame"

… no ocurre nada. Seguramente habrás notado que el sistema ha intentado acceder al disco floppy y/o al disco duro. “Button Frame” no es un Thing ejecutable, por lo que el comando EXEP intenta abrir entonces un fichero llamado “Button Frame” en el dispositivo predefinido de programas (el cual se puede configurar con PROG_USE).

Bien, regresemos al menú “Things” anterior y hagamos clic en la palabra “Things” de la lista. La ventana cambiará y podrás ver que hay (al menos) un job registrado como usuario de este Thing, que es (qué sorpresa) “Things”. ¿Confuso?, presiona ESC para volver a la lista y selecciona Pick. Esto debería ser menos confuso.

Si tú tienes botones en la zona de botones de QPAC2, entonces puedes ver qué job están registrados como usuarios – vuelve hacia atrás, a la lista de Things y selecciona “Button Frame”, podrás comprobar entonces los distintos jobs que hacen uso de este último Thing.

Jobs que usan un Thing

QPAC2 viene con muchos Things pero hay un problema: muchos Things tienen el mismo nombre en diferentes idiomas, pero otros no. Nosotros, los traductores2, decidimos independientemente el uno del otro que “Button_Sleep” no era muy significativo para los usuarios en Alemán o en Francés y lo tradujimos. ¡Gran problema! A partir de entonces no fue posible reemplazar una versión Inglesa por una Alemana y viceversa. Pero supongo que ahora es demasiado tarde para cambiar las cosas (o los Things !!). La solución es probablemente tener ambos nombres de Things en Inglés y Alemán (o Francés) para el mismo job… pero eso es una cuestión diferente.

Vamos ahora a crear un nuevo Thing. ¿Deseas convertir XCHANGE en un Thing como por ejemplo el menú “Pick”? Fácil, el HOTKEY System te ayudará a hacerlo:

ERT HOT_CHP ("X","XCHANGE")

Debes tener XCHANGE disponible en el dispositivo por defecto para los programas. Mediante esta sencilla instrucción convertimos un ejecutable en un Thing llamado XCHANGE. Comprueba ahora el menú “Things”, XCHANGE estará ahí.

Y, aún mejor, si ahora tecleas

EXEP "XCHANGE"

¡el programa se iniciará sin ningún acceso al disco duro! Por supuesto, se puede iniciar también usando el HOTKEY System II (pulsando ALT X, pero recuerda que el job HOTKEY se activa tecleando HOT_GO primero).

Cuando tú liberas de la memoria la definición HOTKEY, el Thing también será liberado.

El HOTKEY System II ofrece otras funciones que permiten que HOTKEYs sean asignados a Things existentes sin que ellos sean eliminados de la memoria cuando el HOTKEY es eliminado, pero esto lo explicaremos en la siguiente entrega de esta serie. También, los Things que están integrados en QPAC2 son más avanzados que los que tu puedes crear manualmente, pero esto también es material para otro artículo.

Continúa en el siguiente artículo

1.- Las consolas (CON) son canales de salida, parecidos en cierto modo a las ventanas.
2.- Wolfgang Lenerz para la versión en francés y el autor original para el alemán.

Artículo original: http://www.dilwyn.me.uk/docs/articles/thingtxt.zip
Sinclair QL Recursos en Castellano Alojado en / Hosted at:
Sinclair QL Recursos en Castellano
Sinclair QL Spanish Resources