@Sentencias y estructuras de control
:// (Comentario)
     // <cualquier cosa>

         las dos barras inclinadas // se usan como comienzo de un comentario.
         Todo lo que haya entre ellas y el final de la lnea se considerar
         un comentario y ser ignorado. Los comentarios pueden aparecer en
         cualquier lugar del programa fuente en el que se permita un espacio
         o salto de lnea.

         En esencia, se usan de igual forma que los comentarios en C++.
         
%    Ej: coger(LLAVE);  // El jugador coge la llave del suelo

:color
     color(nmero)

         cambia el color actual del texto.


         Ver tambin: ~fondo~  ~Cdigos especiales~
:fondo
     fondo(nmero)

         cambia el color de fondo del texto.


         Ver tambin: ~color~  ~Cdigos especiales~
:coger
%    coger(objeto)

         si el objeto est presente en la localidad actual, entonces
         pasa el objeto "objeto" al inventario, emitiendo el mensaje
         del sistema n 36 ("Ahora tengo <el objeto>"). En otro caso,
         emite un mensaje de error apropiado.

%    Ej: coger(LLAVE);


         Ver tambin: ~dejar~  ~poner~  ~quitar~  ~crear~  ~destruir~
                      ~intercambiar~  ~colocar~  ~meter~  ~sacar~
                      ~Sentencias~
:dejar
%    dejar(objeto)

         si el objeto est siendo llevado, entonces pasa el objeto
         "objeto" a la localidad actual, emitiendo el mensaje del
         sistema n 39 ("He dejado caer <el objeto>"). En otro caso,
         emite un mensaje de error apropiado.

%    Ej: dejar(LLAVE);


         Ver tambin: ~coger~  ~poner~  ~quitar~  ~crear~  ~destruir~
                      ~intercambiar~  ~colocar~  ~meter~  ~sacar~
                      ~Sentencias~
:poner
%    poner(objeto)

         si el objeto est siendo llevado en el inventario del
         jugador, entonces el objeto pasa al estado de puesto, y se
         emite el mensaje del sistema n 37 ("Ahora llevo puesto
         <el objeto>"). Si el objeto no es ropa, o no se puede
         realizar la operacin por otros motivos, se emite un mensaje
         de error.

%    Ej: poner(CAMISA);


         Ver tambin: ~coger~  ~dejar~  ~quitar~  ~crear~  ~destruir~
                      ~intercambiar~  ~colocar~  ~meter~  ~sacar~
                      ~Sentencias~
:quitar
%    quitar(objeto)

         si el objeto est siendo llevado puesto encima, entonces el
         objeto pasa a ser llevado a secas, emitindose el mensaje
         del sistema n 38 ("Me he quitado <el objeto>"). En otro
         caso, se emite un mensaje de error apropiado.

%    Ej: quitar(CAMISA);


         Ver tambin: ~coger~  ~dejar~  ~poner~  ~crear~  ~destruir~
                      ~intercambiar~  ~colocar~  ~meter~  ~sacar~
                      ~Sentencias~
:crear
%    crear(objeto)

         el objeto "objeto" pasa a la localidad actual, y la ~bandera 1~
         se decrementar si el jugador lo estaba llevando.

%    Ej: crear(AGUJERO);


         Ver tambin: ~coger~  ~dejar~  ~poner~  ~quitar~  ~destruir~
                      ~intercambiar~  ~colocar~  ~meter~  ~sacar~
                      ~Sentencias~
:destruir
%    destruir(objeto)

         el objeto pasa a la localidad "no_creado", y la ~bandera 1~ se
         decrementa si el jugador lo estaba llevando.

%    Ej: destruir(LIBRO);


         Ver tambin: ~coger~  ~dejar~  ~poner~  ~quitar~  ~crear~
                      ~intercambiar~  ~colocar~  ~meter~  ~sacar~
                      ~Sentencias~
:intercambiar
%    intercambiar(objeto, objeto)

         se intercambian las posiciones de los objetos indicados.

%    Ej: intercambiar(LINTERNA ENCENDIDA, LINTERNA APAGADA);


         Ver tambin: ~coger~  ~dejar~  ~poner~  ~quitar~  ~crear~
                      ~destruir~  ~colocar~  ~meter~  ~sacar~
                      ~Sentencias~
:colocar
%    colocar(objeto, localidad)

         el objeto "objeto" se lleva a la localidad localidad. La
         bandera 1 se decrementa si estaba siendo llevado, y se
         incrementa si ahora pasa a ser llevado (localidad = "llevado").

%    Ej: colocar(LLAVE, b38)     // Coloca la llave en la localidad actual


         Ver tambin: ~coger~  ~dejar~  ~poner~  ~quitar~  ~crear~
                      ~destruir~  ~intercambiar~  ~meter~  ~sacar~
                      ~Sentencias~  ~Banderas~  ~Bandera 38~
:meter
%    meter(objeto, contenedor)

         mete el objeto "objeto" en el contenedor "contenedor". Se
         emite un mensaje de error si el segundo argumento no resulta
         ser un contenedor en tiempo de ejecucin.

%    Ej: meter(MONEDA, MONEDERO);


         Ver tambin: ~coger~  ~dejar~  ~poner~  ~quitar~  ~crear~
                      ~destruir~  ~intercambiar~  ~colocar~  ~sacar~
                      ~Sentencias~
:sacar
%    sacar(objeto, contenedor)

         saca el objeto "objeto" del contenedor "contenedor". Se emite
         un mensaje de error si el segundo argumento no resulta ser un
         contenedor en tiempo de ejecucin.

%    Ej: sacar(MONEDA, MONEDERO);


         Ver tambin: ~coger~  ~dejar~  ~poner~  ~quitar~  ~crear~
                      ~destruir~  ~intercambiar~  ~colocar~  ~meter~
                      ~Sentencias~
:autoc
%    autoc

         el nombre y el adjetivo de la sentencia actual se usan para
         buscar un objeto con dicho nombre. Si existe, se efecta una
         accin "coger" automtica con dicho objeto. Sirve para poder
         coger cualquier objeto.

%    Ej: COGER * {
%            autoc;
%        }


         Ver tambin: ~autod~  ~autop~  ~autoq~  ~autom~  ~autos~
                      ~Sentencias~  ~Respuestas~
:autod
%    autod

         el nombre y el adjetivo de la sentencia actual se usan para
         buscar un objeto con dicho nombre. Si existe, se efecta una
         accin "dejar" automtica con dicho objeto. Sirve para poder
         dejar cualquier objeto.

%    Ej: DEJAR * {
%            autod;
%        }


         Ver tambin: ~autoc~  ~autop~  ~autoq~  ~autom~  ~autos~
                      ~Sentencias~  ~Respuestas~
:autop
%    autop

         el nombre y el adjetivo de la sentencia actual se usan para
         buscar un objeto con dicho nombre. Si existe, se efecta una
         accin "poner" automtica con dicho objeto. Sirve para poder
         poner cualquier objeto.

%    Ej: PON * {
%            autop;
%        }


         Ver tambin: ~autoc~  ~autod~  ~autoq~  ~autom~  ~autos~
                      ~Sentencias~  ~Respuestas~
:autoq
%    autoq

         el nombre y el adjetivo de la sentencia actual se usan para
         buscar un objeto con dicho nombre. Si existe, se efecta una
         accin "quitar" automtica con dicho objeto. Sirve para poder
         quitar cualquier objeto.

%    Ej: QUITATE * {
%            autoq;
%        }


         Ver tambin: ~autoc~  ~autod~  ~autop~  ~autom~  ~autos~
                      ~Sentencias~  ~Respuestas~
:autom
%    autom(contenedor)

         el nombre y el adjetivo de la sentencia actual se usan para
         buscar un objeto con dicho nombre. Si existe, se efecta una
         accin "meter" automtica con dicho objeto, usando como
         contenedor el argumento "contenedor". Sirve para poder meter
         cualquier objeto en un cierto contenedor.

%    Ej: METE * {
%            si (nombre2?(MONEDERO))
%               autom(MONEDERO);
%        }


         Ver tambin: ~autoc~  ~autod~  ~autop~  ~autoq~  ~autos~
                      ~Sentencias~
:autos
%    autos(contenedor)

         el nombre y el adjetivo de la sentencia actual se usan para
         buscar un objeto con dicho nombre. Si existe, se efecta una
         accin "sacar" automtica con dicho objeto, usando como
         contenedor el argumento "contenedor". Sirve para poder sacar
         cualquier objeto de un cierto contenedor.

%    Ej: SACA * {
%            si (nombre2?(MONEDERO))
%               autos(MONEDERO);
%        }


         Ver tambin: ~autoc~  ~autod~  ~autop~  ~autoq~  ~autom~
                      ~Sentencias~
:listaobj
%    listaobj

         si hay algn objeto presente en la localidad actual, entonces se
         imprime el mensaje del sistema n 1 ("Adems puedo ver "),
         seguido de una lista de los objetos presentes en dicha
         localidad.


         Ver tambin: ~listade~  ~listacont~  ~inven~  ~Sentencias~
:listade
%    listade(localidad)

         si hay algn objeto presente en la localidad "localidad", entonces se
         imprime el mensaje del sistema n 1 ("Adems puedo ver "),
         seguido de una lista de los objetos presentes en dicha
         localidad.


         Ver tambin: ~listaobj~  ~listacont~  ~inven~  ~Sentencias~

:listacont
%    listacont(contenedor)

         se imprime una lista de los objetos includos dentro del
         contenedor "contenedor". No se imprime el mensaje del sistema
         n 1, al contrario que con "listaobj", con lo que se deber
         preceder esta accin con un mensaje del tipo de
         "En la bolsa hay:".

%    Ej: MIRA BOLSA {
%            listacont(BOLSA);
%        }


         Ver tambin: ~listaobj~  ~listade~  ~inven~  ~Sentencias~
:inven
%    inven

         se imprime el mensaje del sistema n 9 ("Tengo: "), seguido
         de una lista de los objetos que se llevan o se tienen puesto
         encima. Si un objeto se lleva puesto, su texto ir seguido
         del mensaje del sistema n 10 ("encima" o "puesto"). Sirve
         para describir el inventario del jugador.

%    Ej: INVENTARIO * {
%            inven;
%        }


         Ver tambin: ~listaobj~  ~listade~  ~Sentencias~
:"mensaje"
%    "mensaje"

         emite el mensaje del usuario de nmero dado por mensaje, sin hacer
         un salto de lnea. Aunque parece una simple cadena de caracteres,
         cuando se termina con un punto y coma ";", se transforma en una
         sentencia que escribe el mensaje en pantalla.

%    Ej: ABRE PUERTA {
%            "Abres la puerta";
%        }


         Ver tambin: ~mensis~  ~Sentencias~
:mensis
%    mensis(mensaje)

         emite el mensaje del sistema dado por mensaje. No hace salto
         de lnea.

%    Ej: mensis(2);


         Ver tambin: ~"mensaje"~  ~Sentencias~
:imprime
%    imprime(nmero)

         emite el valor de nmero. Sirve para imprimir el valor de una cierta
         bandera, por ejemplo.

%    Ej: "El valor de la bandera 35 es ";
%        imprime(b35);


         Ver tambin: ~Sentencias~  ~"mensaje"~
:describe
%    describe

         describe la localidad actual, es decir, emite su descripcin.

%    Ej: MIRAR * {
%            describe;
%        }


         Ver tambin: ~Sentencias~  ~Bandera 40~ 
                      ~Subrutinas~ Process1 y Process2
:saltolinea
%    saltolinea

         efecta un salto de lnea.


         Ver tambin: ~Sentencias~
:retorno
%    retorno

         retorna el control a la instruccin que sigue a la llamada a
         la subrutina actual. Si se incluye en una respuesta en lugar
         de en una subrutina, se provoca un salto a la bsqueda de
         otra entrada en la tabla de respuestas. Al final de cada
         respuesta y cada subrutina hay un retorno implcito; por tanto,
         terminar una respuesta o subrutina con una accin retorno supone
         aadir una instruccin ms sin necesidad alguna.

%    Ej: COGE LLAVE {
%            si (local(LLAVE) <> b38)
%                retorno;
%            sino
%                "Has cogido la llave";
%        }   // Aqu hay un retorno implcito


         Ver tambin: ~hecho~  ~no_hecho~  ~Subrutinas~  ~Sentencias~
:hecho
%    hecho

         provoca un salto incondicional al intrprete. Similar al
         "retorno", pero ms traumtico, ya que deja sin ejecutar las
         instrucciones siguientes a la llamada de la subrutina actual.
         Si se incluye en una respuesta, se usa para evitar que se
         busquen ms respuestas que cuadren con la sentencia actual.
         Es una forma fcil de indicar que no se consideran ms
         entradas y que contine la ejecucin.

%    Ej: COGE LLAVE {
%            si (local(LLAVE) <> b38)
%                retorno;
%            sino
%                "Has cogido la llave";
%        }


         Ver tambin: ~retorno~  ~no_hecho~  ~Subrutinas~  ~Sentencias~
:no_hecho
%    no_hecho

         exactamente igual que "hecho", slo que imprime el mensaje
         del sistema n 8 ("No puedo hacer eso"). Se usa para indicar
         que la sentencia del jugador no puede ser realizada por
         alguna razn.

%    Ej: COGE LLAVE {
%            si (local(LLAVE) <> b38)
%                no_hecho;
%            sino
%                "Has cogido la llave";
%        }


         Ver tambin: ~retorno~  ~hecho~  ~Subrutinas~  ~Sentencias~
:Secuencia
%    '{' sentencia; {sentencia;} '}'

         es la estructura secuencial del lenguaje de GAC. Determina un
         bloque formado por varias sentencias encerradas entre llaves.
         Los bloques de sentencias pueden usarse en cualquier contexto
         en el que se necesite una sentencia -son un caso particular
         de sentencia.

%    Ej: b60 := 0;
%        mientras (b60 < 50) {
%            imprime(b60);
%            b60 := b60 + 1;
%        }


         Ver tambin: ~Sentencias~
:si:sino
%    si (expresin) sentencia-then [sino sentencia-else]

         es la estructura alternativa. Si "expresin" es distinto de
         cero, se ejecuta la sentencia-then. En otro caso, si se
         incluye la clusula "sino", se ejecuta la sentencia-else.

%    Ej: si (b30 < 0)
%            "Menor";
%        sino
%            "Mayor";


         Ver tambin: ~Sentencias~  ~"mensaje"~
:mientras
%    mientras (expresin) sentencia

         es la estructura iterativa del lenguaje. Mientras "expresin"
         sea distinto de cero, se ejecutar la sentencia "sentencia".

%    Ej: b60 := 0;
%        mientras (b60 < 50) {
%            imprime(b60);
%            b60 := b60 + 1;
%        }


         Ver tambin: ~Sentencias~
:evaluar:caso
%    evaluar (expresin) '{'
%        caso valor1: sentencia1;
%        [{caso valorN: sentenciaN;}]
%        [defecto: sentencia_defecto;]
%    '}'

         la estructura alternativa mltiple. El valor de "expresin" se
         compara con cada uno de los valores de los "casos". Cuando se en-
         cuentra una igualdad, se ejecuta la sentencia correspondiente,
         saliendo despus de la estructura. Es necesario que haya al menos
         un caso, y el caso por defecto es opcional.

%    Ej: evaluar (b60) {
%            caso 0:  "La bandera 60 vale 0";
%            caso 1:  "La bandera 60 vale 1";
%            defecto: "La bandera 60 es mayor o igual que 2, o menor que 0";
%        }


         Ver tambin: ~Sentencias~  ~"mensaje"~
:diag
%    diag

         activa el diagnstico de la aventura. Se pide el nmero de
         una cierta bandera y se imprime su valor actual, dando la
         posibilidad de cambiarlo. Este proceso se repite hasta que se
         pulsa [ENTER] cuando se pide el nmero de la bandera.

%    Ej: DIAG * {
%            diag;
%        }


         Ver tambin: ~Sentencias~
:tecla
%    tecla

         imprime el mensaje del sistema n 16 ("Pulsa una tecla para
         continuar..."), y espera hasta que el jugador apriete
         cualquier tecla.

%    Ej: b60 := 0;
%        while (b60 < 50) {
%            imprime(b60);
%            tecla;
%            b60 := b60 + 1;
%        }


         Ver tambin: ~pausa~  ~Sentencias~  ~Mensajes sistema~
:pausa
%    pausa(tiempo)

         detiene la ejecucin de la aventura durante "tiempo"
         milisegundos.


         Ver tambin: ~tecla~  ~Sentencias~
:mueve
%    mueve(localidad)

         mueve al jugador a la localidad "localidad". En realidad, lo
         que hace es cambiar la bandera 38 al valor "localidad".

%    Ej: ABRE PUERTA {
%            "Abres la puerta y sta te absorbe...\n";
%            "Ahora te encuentras en otro lugar.";
%            mueve(34);
%        }


         Ver tambin: ~Bandera 38~  ~Sentencias~
:turnos
%    turnos

         emite los mensajes del sistema del 17 al 20, que son del tipo
         de "Has dado X rden(es)". Aqu X es el contenido de la
         bandera 31 (la que almacena el n de turnos del jugador).

%    Ej: DIME TURNOS {
%            turnos;
%        }


         Ver tambin: ~Bandera 31~  ~Sentencias~
:acabar
%    acabar

         emite el mensaje del sistema n 13 ("Quieres jugar otra
         vez?"), tras lo cual se llama a la rutina del intrprete. Si
         la respuesta no empieza con el primer carcter que lleve el
         mensaje del sistema 31, se hace un salto a la rutina de
         inicializacin; si no, se devuelve el control al sistema
         operativo. Es el comando que permite finalizar la aventura y
         salir de ella.

%    Ej: FIN * {
%            si (acabar?)
%                acabar;
%        }


         Ver tambin: ~Sentencias~
:(asignacion)
%    bandera := expresin    (asignacin)

         cambia el valor de una cierta bandera por el de "expresin".
         Al igual que ocurre con los lenguajes del paradigma
         imperativo, la asignacin es casi la instruccin ms
         importante de todo el conjunto de instrucciones. En nuestro
         caso, permite cambiar el estado de la aventura.

%    Ej: b60 := 1;


         Ver tambin: ~Banderas~  ~Sentencias~
:imagen
%    imagen(fichero)

         presenta en pantalla la animacin o imagen contenida en el fichero
         "fichero" (caso de que el fichero exista). Slo reproduce el fichero
         una sola vez. La animacin se para con la pulsacin de una tecla.

%    Ej: MOSTRAR GRAFICO {
%            imagen("PEPITO.FLI");
%        }


         Ver tambin: ~Sentencias~  ~imagen_ciclo~
:imagen_ciclo
%    imagen_ciclo(fichero)

         presenta en pantalla la animacin o imagen contenida en el fichero
         "fichero" ininterrumpidamente (caso de que el fichero exista). La
         animacin se para con la pulsacin de una tecla.

%    Ej: MOSTRAR GRAFICO {
%            imagen_ciclo("CONTINUO.FLI");
%        }


         Ver tambin: ~Sentencias~  ~imagen~

:sonido
%    sonido(sonido)

         emite el sonido "sonido" por la tarjeta de sonido una sola vez.
         El sonido debe estar en la librera de sonidos que previamente hemos
         tenido que crear con la utilidad ~SNDLIB.EXE~.

%    Ej: ABRE PUERTA {
%            "Abres la puerta, y la oyes chirriar...";
%            sonido("CHIRRIDO");
%        }

         Nota: PROMETEO slo detecta tarjetas compatibles Sound Blaster.


         Ver tambin: ~sonido_ciclo~  ~silencio~  ~Sentencias~
:sonido_ciclo
%    sonido_ciclo(sonido)

         emite el sonido "sonido" por la tarjeta de sonido ininterrumpida-
         mente. Slo se para con la orden ~silencio~. El sonido debe estar
         en la librera de sonidos que previamente hemos tenido que crear con
         la utilidad SNDLIB.EXE.

%    Ej: ABRE PUERTA {
%            "Oyes pasos...";
%            sonido_ciclo("PASOS");
%        }

         Nota: PROMETEO slo detecta tarjetas compatibles Sound Blaster.


         Ver tambin: ~sonido~  ~silencio~  ~"mensaje"~  ~Sentencias~
:silencio
%    silencio(sonido)

         deja de emitir el sonido "sonido" por la tarjeta de sonido.

%    Ej: silencio("PASOS");


         Ver tambin: ~sonido~  ~sonido_ciclo~  ~Sentencias~
:cursor
%    cursor(posX, posY)

         coloca el cursor de texto en la columna posX de la fila posY.

%    Ej: b60 := posx(); b61 := posy();
%        cursor(20, 12);
%        "HOLA A TODOS";
%        cursor(b60, b61);


         Ver tambin: ~posx~  ~posy~  ~"mensaje"~  ~Sentencias~
:borrar
%    borrar

         limpia la pantalla y coloca el cursor en la posicin (1,1),
         restituyendo la ventana de texto y haciendo que sts sea toda la
         pantalla.


         Ver tambin: ~Sentencias~
:cargar
%    cargar

         carga una situacin previa desde un fichero. Se pide el nombre
         del fichero en el que se encuentra grabada la situacin.

%    Ej: LOAD * {
%            cargar;
%        }


         Ver tambin: ~salvar~  ~Sentencias~
                      mensaje del sistema n 15.
:salvar
%    salvar

         salva la situacin actual de la aventura en un fichero. Se pide
         el nombre del fichero destino.

%    Ej: SAVE * {
%            salvar;
%        }


         Ver tambin: ~cargar~  ~Sentencias~
                      mensaje del sistema n 14.
:llama
%    llama(subrutina)

         transfiere el flujo de control al punto de entrada de la subrutina
         "subrutina".

%    Ej: llama(pepito);
%        // ...
%        subrutina pepito {
%        // ...


         Ver tambin: ~Sentencias~  ~Subrutinas~
:salidas
%    salidas

         se usa para presentar las conexiones o salidas posibles a otras
         localidades. Si no hay ninguna salida (no existen conexiones con
         otras localidades), se imprime el mensaje del sistema n 20 ("No
         hay ninguna salida"). En caso contrario, se imprime el mensaje
         del sistema n 18 ("Las salidas son:") o 19 ("Unicamente:"),
         dependiendo de si hay ms de una salida o nicamente una salida.
         Por ltimo se hace una lista con las salidas posibles.

%    Ej: DIME SALIDAS {
%            salidas;
%        }


         Ver tambin: ~Sentencias~  ~Mensajes sistema~  ~Localidades~
:sistema
%    sistema

         cambia un mensaje del sistema.


     Ver ~Mensajes~  ~Mensajes sistema~  ~mensis~

:subrutina
%    subrutina

         declara una subrutina.


     Ver ~Subrutinas~
:verbo
%    verbo

         declara una palabra con el tipo "verbo".


     Ver ~Vocabulario~  ~Intrprete~
:adverbio
%    adverbio

         declara una palabra con el tipo "adverbio".


     Ver ~Vocabulario~  ~Intrprete~
:nombre
%    nombre

         declara una palabra con el tipo "nombre".


     Ver ~Vocabulario~  ~Intrprete~
:pronombre
%    pronombre

         declara una palabra con el tipo "pronombre".


     Ver ~Vocabulario~  ~Intrprete~
:preposicion
%    preposicion

         declara una palabra con el tipo "preposicin".


     Ver ~Vocabulario~  ~Intrprete~
:conjuncion
%    conjuncion

         declara una palabra con el tipo "conjuncin".


     Ver ~Vocabulario~  ~Intrprete~
:adjetivo
%    adjetivo

         declara una palabra con el tipo "adjetivo".


     Ver ~Vocabulario~  ~Intrprete~
:nombre_verbo
%    nombre_verbo

         declara una palabra con el tipo "nombre convertible en verbo".


     Ver ~Vocabulario~  ~Intrprete~
:direccion
%    direccion

         declara una palabra con el tipo "direccion" (especialmente indicadas
         para las conexiones entre localidades).


     Ver ~Vocabulario~  ~Intrprete~
:contenedor
%    contenedor

         especifica que un objeto es de tipo "contenedor".


     Ver ~Objetos~
:ropa
%    ropa

         especifica que un objeto es de tipo "ropa".


     Ver ~Objetos~
:ventana
%    ventana(fila_superior, fila_inferior)

         crea un recinto cerrado dentro de la pantalla, limitado por dos
         filas de texto. Desde el momento en que se ejecute esta accin, todos
         los mensajes aparecern entre las filas "fila_superior" y
         "fila_inferior" (hacindose un "scroll" dentro de ellas si fuese
         necesario) y cualquier sentencia o funcin que cambie el estado de
         la pantalla de algn modo tambin afectar nicamente a dicha ventana.
         La excepcin a sto es la sentencia ~borrar~, que restituye la
         ventana por la pantalla completa y luego limpia la pantalla.

         El efecto es el de reducir las acciones posteriores a una zona de
         la pantalla, sin borrar lo que antes haba en ella.

         Los valores lmite aceptables son 1 para "fila_superior" y 24 para
         "fila_inferior". Adems, "fila_superior" siempre debe ser menor o
         igual a "fila_inferior".

%    Ej: borrar;
%        describe;
%        listaobj;
%        ventana(posy() + 1, 24);
%
         Este ejemplo "protege" la descripcin de la localidad actual, hacien-
         do que siempre se encuentre en la parte de arriba de la pantalla sin
         que le afecten para nada la aparicin de mensajes o el "scroll".


         Ver tambin: ~cursor~  ~borrar~  ~posx~  ~posy~

:fuente
%    fuente(fichero)

         carga una fuente de caracteres a partir del fichero dado como su
         argumento. Tras ejecutar esta accin, todos los caracteres que ya
         haban en pantalla, y los que aparezcan posteriormente, tendrn la
         forma indicada por el fichero que contiene la fuente.

         El fichero ocupar 4096 bytes exactamente, correspondiendo 16 bytes
         por cada carcter de los 256 del cdigo ASCII.

%    Ej: fuente("THIN.FNT");

         NOTAS: En el directorio FUENTES de la distribucin estndar de
                PROMETEO se encuentran varios ejemplos de ficheros de fuentes
                de caracteres.

                Accin slo disponible a partir de la versin 2.2.

