Más THINGS… (parte 2)


Artículo reproducido en “The Dilwyn Jones Sinclair QL Pages” con permiso de QL Today Volúmen 4, número 3.
Autor: Jochen Merz.
Traducción y adaptación: afx.

En la primera parte de esta serie, yo espero haberte dado una idea de lo que son los Things. Pero ahora, ¿cómo podemos acceder a ellos, cómo crearlos, cómo funciona el sistema de control para poderlos manejar? QDOS y Minerva no tiene 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 “ganchos” (hooks), 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 él 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 DO de forma que se puede trabajar con ellos de la misma manera que otras llamadas al sistema. Ahora ya acabamos con los tecnicismos.

Así, con el fin de obtener Things, tú 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 ver 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 tú 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

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 CONsolas 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” en la lista. La ventana cambiará y tú podrás ver que hay (al menos) un job registrado como usuario de este Thing, que es (poco sorprendente) “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

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 traductores, (Wolfgang Lenerz para la versión en francés y yo para el alemán) decidimos independientemente uno de 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")

Tú 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 permite 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.

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s