SINTAC G3
(c)2000 Login:

jsj666@hotmail.com
http://pagina.de/jsj
===================================================

G3.30
-----

Se ha eliminado un molesto fallo que afectaba a las tablas de mensajes. Al 
cargar una partida grabada el intrprete no recuperaba correctamente los 
punteros a las tablas de mensajes provocando la aparicin de mensajes 
aleatorios.

Se han cambiado las teclas de cortar, copiar y pegar bloques de texto
en el editor para hacerlo compatible con sistemas operativos actuales.

G3.25
-----
Esta revisin afecta a las banderas de objeto en relacin a las opciones de 
disco (RAMSAVE, RAMLOAD, SAVE y LOAD), y actualiza la utilizacin de los 
condactos de reinicializacin (RESTART, END, EXIT).

Hasta la versin G3.21, no exista en SINTAC un verdadero RESTART, ya que este
condacto reinicializaba variables, banderas y posicin de los objetos, pero NO
sus banderas. Es decir, si el estado de una propiedad cambiaba durante una
partida (por ejemplo, la fuente de luz deja de serlo), al recomenzar una nueva
partida, dicha propiedad no era seteada a su estado original de fuente de luz,
con las implicaciones lgicas (todas las rutinas de control daban error a partir
de la segunda partida). Las acciones de disco, por su parte, tampoco tenan en
cuenta las banderas de objeto, por lo que, al continuar con una partida salvada
en disco, el estado de las banderas tampoco era recuperado. Esta til
herramienta del sistema quedaba muy limitada y reduca las posibilidades de
desarrollo con SINTAC.

En la nueva versin G3.25, se han modificado todos los condactos para las
operaciones de disco, que ahora, automticamente, graban a fichero/RAM:
banderas, variables, y la tabla completa de objetos (tanto su posicin como sus
banderas). El condacto RESTART tambin se ha modificado, y ahora reinicia la
tabla completa de objetos, por lo que siempre se recupera la situacin inicial
de los mismos.

Las opciones para programar un RESTART a partir de ahora son 2 (aunque slo la
primera es la correcta):

1) Utilizar RESTART normalmente

2) Utilizar una combinacin de los nuevos comandos (como se intentaba hacer
   hasta la versin G3.21):

En el Proceso de Inicializaciones:

\PRO el que sea
; Inicializaciones

_   _   NOTZERO
        DONE

_   _   SET 3

_   _   RAMSAVE 0   ; graba en el banco cero de RAM la situacin inicial de
                    ; variables, banderas, y la tabla COMPLETA de objetos.

_   _   RAMLOAD 0 255 255   ; este RAMLOAD recupera la situacin inicial

_   _   ABILITY 10
        etc.

En la tabla de respuestas se pondrn las siguientes entradas para un RESTART:

FIN _   QUIT        ; si respondemos que SI
        END         ; provoca el RESTART

FIN _   DONE         

El RAMLOAD 0 255 255 es necesario (?) para que se recupere la RAM si hacemos un
RESTART (Lo intentas de nuevo? SI) a partir de la segunda partida.

Alternativamente, puedes utilizar EXIT 0 en lugar de END si lo que necesitas es
un RESTART DIRECTO sin que se imprima el mensaje del sistema 31 (o EXIT 1 si lo
que quieres es una salida inmediata al sistema operativo sin previo aviso).

Seguir este sistema implica la necesidad de reservar, por ejemplo, el banco CERO
de RAM exclusivamente para reinicializaciones, y el banco UNO para DESHACER/OOPS
(con un RAM SAVE automtico por cada turno) o para RAM SAVE del jugador.

Con esta versin, se duplica la funcionalidad a la hora de programar, pero
siempre es mejor tener ms de una posibilidad para obtener el efecto deseado. En
realidad, esta segunda opcin era la que se intentaba utilizar hasta la versin
anterior 3.21 para conseguir un RESTART, aunque en realidad no funcionaba. Ahora
es suficiente con insertar en RESTART/EXIT/END en el lugar adecuado de la tabla
de RESPUESTAS.
