APPLICATIONSBUREAUTIQUE ★ FIRMBASE (AMSTRAD PERSONAL) ★

Firmbase (Amstrad Personal)Applications Bureautique
★ Ce texte vous est présenté dans sa version originale ★ 
 ★ This text is presented to you in its original version ★ 
 ★ Este texto se presenta en su versión original ★ 
 ★ Dieser Text wird in seiner Originalfassung präsentiert ★ 

El sistema operativo hecho Basic

Los programadores en ensamblador siempre se encuentran ávidos de herramientas de ayuda que simplifiquen su ingrata tarea. Creemos que Firmbase se va a constituir en una imprescindible ayuda para el manufacturador de programas en el ingrato código binario. En efecto, un programa que nos permite consultar al Sistema Operativo, definir nuestras propias etiquetas y, además, es capaz de generar ficheros formados por estas etiquetas incluibles en los ensambladores (el Gena los entiende), va a ser el directo responsable de un enorme ahorro de tiempo y esfuerzo. Sólo se requiere un poco de planificación.

El sistema operativo es bastante complejo, ya que tiene más de 250 entradas diferentes. Para acceder a cada una de ellas, no sólo hay que conocer qué hacen y dónde están ubicadas, sino que también tenemos que saber qué condiciones de entrada necesita y qué condiciones de salida nos devuelve, es decir, cómo afecta cada llamada a los registros y a los flags. Si la rutina nos devuelve información necesitamos saber dónde podemos encontrarla. Conocer todos estos datos es casi imposible, y a menudo hay que consultar el manual del Firmware, donde se describen todas las rutinas. Esto puede ser terrible, ya que al principio dedicamos más tiempo a consultar el manual que a programar.

Para facilitar el uso del sistema operativo, hemos desarrollado una base de datos para introducir la descripción completa de cada llamada y darle un nombre o etiqueta, mediante la cual la conoceremos. Con las opciones Consultar y Crear fichero lograremos que el firmware se convierta en Basic o en cualquier otro lenguaje que nosotros queramos.

La primera vez que utilicemos el programa será para introducir el mayor número posible de llamadas, describiéndolas de la siguiente forma: la dirección de la llamada en hexadecimal, la descripción de lo que hace, la etiqueta por la que la conoceremos de ahora en adelante, que debe ser el nombre que nos sugiera lo que hace la rutina (ei. BB5A - Imprime un carácter = Print, BB75 - posiciona el cursor de textos = Lócate), las condiciones de entrada y las condiciones de salida. Una vez que tengamos las llamadas más frecuentes podremos empezar a utilizarlo.

La forma de empleo es muy sencilla. Sólo tenemos que entrar en la opción Seleccionar Etiqueta, darle un nombre al fichero a crear, e ir introduciendo una a una, todas las etiquetas que necesitemos utilizar para crear la rutina. Si hace falta alguna que no tengamos en el fichero, regresamos al menú principal, la introducimos y continuamos con las que nos falten. Al acabar, seleccionamos la opción Terminar, y si hubiéramos hecho modificaciones o introducido alguna nueva llamada, se grabaría, actualizando el fichero. Después nos preguntará Grabar fichero de etiquetas, y contestamos sí, con lo que se grabará un fichero en disco con el nombre que le hayamos dado, más la extensión “.ETI”. Por último, se nos preguntará si queremos sacar la descripción de las etiquetas seleccionadas por impresora, obteniendo un listado de todas las seleccionadas.

Una vez tengamos el fichero de etiquetas creado, entramos en el ensamblador y cargamos el fichero con la opción 9„nombre fichero.ETI. El fichero cargado constará de las etiquetas seleccionadas con su directivo de compilación EQU y su dirección de entrada. No sólo tenemos la ventaja de llamar al sistema operativo por su etiqueta, sino que, además, tendremos un listado de toda su descripción.

No obstante la mejor forma de utilizar Firmbase es entrar primero en la opción de Consultar Llamadas y desarrollar la rutina en papel, consultando todas las descripciones de las etiquetas que utilicemos.
Cuando terminemos la rutina en papel, salir del programa, creando el fichero de etiquetas a utilizar.

Algunas sugerencias: crear ficheros específicos para rutinas concretas o librerías de ficheros, agrupando las etiquetas por sus distintas funciones (de dibujo, de sonido, de texto, gráficas, de disco, etc.).
Las restantes opciones son las normales en un programa de Base de Datos, por ello no las describiremos.

Lo más importante a destacar en la técnica de programación es la utilización de códigos de control, como son el chr$(31), que hace la función de lócate, el uso del “Control ( )”, que se ha utilizado para poner en inverso el nombre de los campos que componen cada pantalla. Print#9, para grabar el fichero de etiquetas en lugar de Write#9, de manera que el ensamblador nos acepte el fichero.

La técnica utilizada para realizar un Input, controlando su longitud y los caracteres permitidos, es la que se emplea a la hora de programar en CPM, ya que consiste en una rutina de propósito general, la cual necesita de las condiciones de entrada para funcionar y que dependiendo de estas condiciones se puede utilizar para cualquier cosa. Se le da la longitud máxima de caracteres a aceptar en el input (nc), el canal por el que saldrá (k), las coordenadas de texto (x,y) el mínimo y máximo valor del código ASCII permitido (ci y cf), etc. Y nos devuelve en la variable t$ el texto introducido. Esta rutina se encuentra entre las líneas 990 y 1340.

En la línea 2190 hemos asignado a la variable tl$ el código de la impresora para activar la letra negrita y en t0$ para desactivarla. En la línea 2210, el chr$ (14) activa los caracteres de doble ancho hasta fin de línea.

Cómo utilizar Firmbase

La forma de usar el programa es muy sencilla. La primera vez que lo utilicemos será para introducir los datos de las rutinas del Sistema Operativo. El programa nos pedirá lo siguiente:

Dirección: Un número en hexadecimal, el cual es el punto de entrada a la rutina.

Descripción: Una síntesis diciendo lo que hace la rutina.

Etiqueta: Es el nombre con el que vamos a bautizar a la rutina. La longitud máxima es de seis caracteres, que son los que puede diferenciar el ensamblador. Tenemos que tener en cuenta que el ensamblador, así como nuestro programa, diferencia entre minúsculas y mayúsculas. Esta etiqueta será de ahora en adelante el nombre por el que llamaremos a la rutina. Es muy importante que la etiqueta nos sugiera lo que hace la rutina.

Condiciones de entrada: Son las condiciones o datos que tenemos que preparar para la rutina, antes de llamarla, a fin de que funcione correctamente.

Condiciones de salida: Aquí se nos informa del estado de los registros y flags después de regresar de la rutina, y si nos devuelve alguna información donde se encuentra. Ej.: una rutina muy utilizada es la &BC26 que nos halla la dirección de memoria del byte situado una línea por debajo. Para que funcione correctamente necesita una condición de entrada que es la dirección actual contenida en HL, después se llama a la rutina y a su regreso se modificará el contenido de AF y nos devolverá, también en HL, la dirección del byte.

Un ejemplo práctico: Supongamos que necesitamos una pantalla de información que diga “Ordenando datos”, en el centro de la pantalla, y que en el registro doble HL tenemos un dato que necesitaremos más tarde.

Entraremos en el programa mediante RUN “CALL”, seleccionaremos la opción “Consultar llamadas”, tomaremos papel y lápiz y empezaremos a programar de la siguiente manera: la primera línea de la rutina será una etiqueta de acceso (Info—1:) para poder llamarla. Luego tenemos que poner la pantalla en Modo 2, para ello introduciremos, en el campo “Etiqueta”, el nombre por el que conocemos a dicha rutina “Mode” (suponiendo que cuando introducimos las llamadas a esta rutina la bautizamos con el nombre de Mode) y aparecerá en pantalla toda su descripción. Comprobamos que la rutina hace lo que necesitamos consultando su descripción y las condiciones de entrada, que nos dicen que el registro A tiene que contener en número del modo seleccionado. Antes de escribir, leeremos las condiciones de salida. Como podemos ver, todos los registros quedan alterados y como nosotros necesitamos mantener HL intacto, la primera instrucción será “PUSH HL”. Luego preparamos las condiciones de entrada cargando el A con el 2 “LD A,2” y ya podremos llamar a la rutina, ya que hemos preservado los registros que nos hacen falta. Escribiremos “CALL Mode”. Ahora queremos poner el cursor de textos en las coordenadas X = 32 e Y = 12. A esta rutina la bautizamos como “Lócate”, introducimos su etiqueta, y nos saldrá toda la descripción. Si al introducir alguna etiqueta a la hora de consultar, se borra, esto es síntoma de que no está almacenada. Lo único que tenemos que hacer es regresar al menú, escoger la opción de “Introducir llamadas”, buscar su descripción en algún libro del Sistema Operativo o Firmware e introducir los datos. Una vez que tengamos su descripción veremos que al llamarla nos modificará los registros AF y HL. Como HL ya lo hemos preservado y AF no nos importa que se pierda, no tomaremos ninguna medida y consultaremos las condiciones de entrada. En H tendremos que introducir la columna “LD H,32” y en L la fila “LD L, 12” y llamaremos a la rutina “CALL Lócate”. Recordemos que todo este proceso lo estamos haciendo en papel y utilizamos el ordenador para consultar el Sistema Operativo. Ya tenemos la pantalla en modo 2 y el cursor de texto en las coordenadas que necesitamos. Ahora lo que tenemos que hacer es imprimir el mensaje, para ello sólo necesitaremos una llamada que nos imprima los caracteres, bautizados por nosotros con la etiqueta “Print” (el Sistema Operativo convertido en Basic). Esta rutina lo único que requiere es tener en A el código ASCI del carácter a imprimir, para ello tendremos que tener un puntero que nos indique qué leira se debe imprimir (LD HL, Txt—1), el número de veces que hay que imprimir (LD B,15) y pasar el contenido de donde apunta HL al acumulador (A) escribiendo la línea “BUC: LD A, < HL)” y una instrucción que haga señalar a HL, que es nuestro puntero, al siguiente carácter (INC HL). Haciendo que esta operación se repita B veces (DJNZ BUC) se terminará de imprimir el texto, que debe de estar en una línea de la siguiente forma: “Txt—1: DEFM “Ordenando fichas”” y antes que se nos olvide deberemos recuperar el contenido de HL que está en la pila “POP HL” y regresar al punto de la llamada de esta rutina “RET”

Info-1: PUSH HL
LD A,2
CALL Mode
LD H,32
LD L, 12
CALL Lócate
LD HL,Txt-1
LD B, 15
BUC: LD A,(HL)
INC HL
DJNZ BUC
POP HL
RET
Tex-1: DEFM “Ordenando fichas”

Acabamos de confeccionar la rutina, saldremos de la opción de consultas y entraremos en “Seleccionar etiquetas”. Lo primero será dar el nombre del fichero que vamos a crear, le daremos el nombre de “TEXTO”. Sólo se permitirá ocho caracteres, sin extensión porque se grabará el nombre más la extensión “.ETI" Seleccionaremos todas las etiquetas que hemos utilizado (Print, Mode y Lócate), saldremos al menú y pulsaremos la «T» para terminar con lo que nos actualizará el fichero de datos si hemos introducido algún dato nuevo o hemos hecho modificaciones. Nos preguntará si queremos grabar el fichero de etiquetas y si queremos su descripción por impresora, diciendo si obtendremos un fichero llamado “TEXTO.ETI”.

A continuación entraremos en el ensamblador, cogeremos las etiquetas mediante “g„ TEXTO.ETI”. Si hacemos un listado veremos que las etiquetas ya han sido declaradas mediante el directivo del ensamblador “EQU” y, por tanto, son utilizables, y copiaremos la rutina del papel.

También podríamos haber previsto las etiquetas que fuéramos a utilizar, seleccionado, grabar el fichero y sacar la descripción por la impresora, pudiendo desarrollar la rutina en el propio ensamblador.

Amstrad Personal

★ PUBLISHER: Amstrad Personal
★ YEAR: 1988
★ CONFIG: 64K + AMSDOS
★ LANGUAGE:
★ LiCENCE: LISTING
★ COLLECTION: AMSTRAD PERSONAL 1988
★ AUTHOR: Félix Aranda
 

★ AMSTRAD CPC ★ DOWNLOAD ★

Type-in/Listing:
» Firmbase    (Amstrad  Personal)    LISTING    SPANISHDATE: 2022-09-22
DL: 99
TYPE: PDF
SiZE: 1346Ko
NOTE: 2 pages/PDFlib v1.6

★ AMSTRAD CPC ★ A voir aussi sur CPCrulez , les sujets suivants pourront vous intéresser...

Lien(s):
» Applications » Random Accesss Database
» Applications » Label-Base v5
» Applications » DBase II générateur d'application
» Applications » Chibase v3
» Applications » Amsbases - Conversions de Bases (Amstrad Magazine)
» Applications » RAMbase v5
Je participe au site:
» Pour ce titre nous ne disposons de fichier executable sur CPC (Dump, Saisie du listing) , alors si vous avez ça dans vos cartons ou vous désirez usé vos petit doigts boudinés sur votre clavier faites le nous savoir.
» Vous avez des infos personnel ?
» Vous avez remarqué une erreur dans ce texte ?
» Aidez-nous à améliorer cette page : en nous contactant via le forum ou par email.

CPCrulez[Content Management System] v8.7-desktop/c
Page créée en 727 millisecondes et consultée 442 fois

L'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent  du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko.