Conversion from ISO-8859-15 to UTF-8 for *.c and *.h files

This commit is contained in:
Víctor Román Archidona 2014-07-24 10:00:07 +02:00
parent 3c828e13cf
commit b77270c2a4
65 changed files with 1199 additions and 1199 deletions

View file

@ -4,7 +4,7 @@
/*
* POR HACER: eDIV debe controlar todas las peticiones de memoria dinámica
* POR HACER: eDIV debe controlar todas las peticiones de memoria dinámica
* es decir, si hacemos un free() donde no debemos, debe producirse un
* fp->Runtime_Error
*/

View file

@ -20,8 +20,8 @@
/*
*EDIVSTD.DLL
* Esta librería contiene los datos más básicos que puede requerir un programa
* DIV, tal como las opciones de compilación, estructura reserved, etc.
* Esta librería contiene los datos más básicos que puede requerir un programa
* DIV, tal como las opciones de compilación, estructura reserved, etc.
*/
#ifdef _WIN32
@ -30,7 +30,7 @@
unsigned int tiempo;
unsigned int ultimo_tiempo;
#else
#error ¡adapta las rutinas de timer a Linux! (edivstd no debe usar SDL)
#error ¡adapta las rutinas de timer a Linux! (edivstd no debe usar SDL)
#endif
#include <limits.h>
#include <assert.h>
@ -65,7 +65,7 @@ int ExportaFuncs(EXPORTAFUNCS_PARAMS)
/* CONSTANTES PREDEFINIDAS */
/* Opciones de compilación */
/* Opciones de compilación */
CONST("_max_process",0);
CONST("_extended_conditions",1);
CONST("_simple_conditions",2);
@ -99,7 +99,7 @@ int ExportaFuncs(EXPORTAFUNCS_PARAMS)
CONST("max_int",INT_MAX);
CONST("min_int",INT_MIN);
/* Señales entre procesos */
/* Señales entre procesos */
CONST("s_kill",0);
CONST("s_wakeup",1);
CONST("s_sleep",2);
@ -115,18 +115,18 @@ int ExportaFuncs(EXPORTAFUNCS_PARAMS)
/* Contadores de tiempo */
GLOBAL_ARRAY("timer",9);
/* Tiempo máximo de ejecución para un proceso */
/* Tiempo máximo de ejecución para un proceso */
GLOBAL("max_process_time",500);
/* Argumentos de línea de comando */
/* Argumentos de línea de comando */
GLOBAL("argc",0);
GLOBAL_ARRAY("argv",9);
/* DATOS LOCALES PREDEFINIDOS */
/* Estructura reserved - POR HACER: ¿preservar compatibilidad con DIV? -> si
* pero ¿Qué hacer con distance_1 y distance_2 (sinónimos de m8_object y old_ctype,
/* Estructura reserved - POR HACER: ¿preservar compatibilidad con DIV? -> si
* pero ¿Qué hacer con distance_1 y distance_2 (sinónimos de m8_object y old_ctype,
* respectivamente)? ya nos toparemos con ellas cuando hagamos el modo7.
*/
@ -153,7 +153,7 @@ int ExportaFuncs(EXPORTAFUNCS_PARAMS)
_INT("caller_id",0);
END_STRUCT;
/* Jerarquía de procesos */
/* Jerarquía de procesos */
LOCAL("father",0);
LOCAL("son",0);
LOCAL("smallbro",0);
@ -190,7 +190,7 @@ int eDIV_Exit(FUNCTION_PARAMS)
char* mensaje=getstrparm();
/*
* FIXME: ¿Qué hacemos con el mensaje? ¿Lo mostramos en un msgbox si no es ""?
* FIXME: ¿Qué hacemos con el mensaje? ¿Lo mostramos en un msgbox si no es ""?
*/
if(*mensaje) {
#ifdef _WIN32
@ -200,7 +200,7 @@ int eDIV_Exit(FUNCTION_PARAMS)
#endif
}
#ifdef _DEBUG
printf("dbg:\texit(): código de retorno: %d\n",codigo);
printf("dbg:\texit(): código de retorno: %d\n",codigo);
#endif
fp->Stub_Quit(codigo);

View file

@ -50,7 +50,7 @@ int eDiv_Fopen(FUNCTION_PARAMS)
for (i=0;i<strlen(modo);i++)
if (modo[i]!='r' && modo[i]!='w' && modo[i]!='a' && modo[i]!='+') break;
if (i<strlen(modo)) {
fp->Runtime_Error(166); /* modo de acceso al archivo no válido */
fp->Runtime_Error(166); /* modo de acceso al archivo no válido */
return 0;
}
strcat(modo,"b");
@ -83,7 +83,7 @@ int eDiv_Fwrite(FUNCTION_PARAMS)
offset = getparm() ;
if ( !existe[handle] ) {
fp->Runtime_Error(170); /* handle no válido */
fp->Runtime_Error(170); /* handle no válido */
return 0;
}
@ -119,7 +119,7 @@ int eDiv_Ftell(FUNCTION_PARAMS)
int handle=getparm();
if ( !existe[handle] ) {
fp->Runtime_Error(170); /* handle no válido */
fp->Runtime_Error(170); /* handle no válido */
return -1 ; /* En caso de error, DIV2 devuelve handle, pero no me parece muy correcto... */
}
@ -134,7 +134,7 @@ int eDiv_Fseek(FUNCTION_PARAMS)
handle = getparm() ;
if ( !existe[handle] ) {
fp->Runtime_Error(170); /* handle no válido */
fp->Runtime_Error(170); /* handle no válido */
return -1 ; /* ocurre lo mismo que con ftell... */
}

View file

@ -10,7 +10,7 @@
#include "export.h"
#include "graphics.h"
/*! \brief Avanza 'a' unidades según el ángulo del proceso.
/*! \brief Avanza 'a' unidades según el ángulo del proceso.
* @param a Distancia que se quiere avanzar
* @return 1
* @see eDIV_XADVANCE()
@ -28,8 +28,8 @@ int eDIV_ADVANCE(FUNCTION_PARAMS)
return 1 ;
}
/*! \brief Avanza 'b' unidades según el ángulo 'a'
* @param a Ángulo
/*! \brief Avanza 'b' unidades según el ángulo 'a'
* @param a Ángulo
* @param b Distancia que se quiere avanzar
* @return 1
* @see eDIV_ADVANCE()

View file

@ -1,6 +1,6 @@
/*
** carga.c
** Incluye las funciones de carga y descarga de recursos gráficos
** Incluye las funciones de carga y descarga de recursos gráficos
** (bmp, fpg, map, pcx, pal, png...)
*/

View file

@ -1,6 +1,6 @@
/*
** collision.c
** Incluye las rutinas de detección de colisiones entre sprites
** Incluye las rutinas de detección de colisiones entre sprites
*/
#include <SDL/SDL.h>
@ -10,11 +10,11 @@
/*
** int IntersectionRR(int rc1left,int rc1top,int rc1right,int rc1bottom,int rc2left,int rc2top,int rc2right,int rc2bottom)
** Comprueba si hay colisión entre dos regiones rectangulares.
** Comprueba si hay colisión entre dos regiones rectangulares.
**
** Devuelve:
** 0 - No hay colisión
** 1 - Hay colisión
** 0 - No hay colisión
** 1 - Hay colisión
*/
int IntersectionRR(int rc1left,int rc1top,int rc1right,int rc1bottom,int rc2left,int rc2top,int rc2right,int rc2bottom)
{
@ -30,14 +30,14 @@ int IntersectionRR(int rc1left,int rc1top,int rc1right,int rc1bottom,int rc2left
/*
** eDIV_COLLISION (id)
**
** Detecta si el proceso actual está colisionando con el del id indicado, o, si
** se le indica un type, si colisiona con algún proceso de ese tipo
** Detecta si el proceso actual está colisionando con el del id indicado, o, si
** se le indica un type, si colisiona con algún proceso de ese tipo
**
** Devuelve: - el ID del proceso con el que se está colisionando (si se indica
** un type y se está colisionando a la vez con varios procesos de
** ese type, en sucesivas llamadas se irán devolviendo sus respec-
** tivos IDs, hasta devolver 0 cuando ya no queden más).
** - 0 si no se colisiona con ningún proceso del ID o type indicado.
** Devuelve: - el ID del proceso con el que se está colisionando (si se indica
** un type y se está colisionando a la vez con varios procesos de
** ese type, en sucesivas llamadas se irán devolviendo sus respec-
** tivos IDs, hasta devolver 0 cuando ya no queden más).
** - 0 si no se colisiona con ningún proceso del ID o type indicado.
*/
int eDIV_COLLISION(FUNCTION_PARAMS)
{

View file

@ -1,8 +1,8 @@
/*! \file default_palette.h
* \brief Contiene la definición de la paleta por defecto
* \brief Contiene la definición de la paleta por defecto
*
* Este fichero contiene la definición de #default_palette, que es un array
* de bytes que contienen la información RGBA de los colores de la paleta que
* Este fichero contiene la definición de #default_palette, que es un array
* de bytes que contienen la información RGBA de los colores de la paleta que
* se inicializa por defecto (ya que el modo por defecto es de 8 bits).
*/

View file

@ -8,11 +8,11 @@
#include "graphics.h"
/*! \brief Crea un nuevo draw
* \todo Permitir más tipos de figuras, y hacer que se dibujen en tiempo real, para que sean más rápidos y no consuman memoria
* @param t Tipo de figura (1=línea, 2=rectángulo, 3=rectángulo relleno, 4=elipse, 5=elipse rellena)
* \todo Permitir más tipos de figuras, y hacer que se dibujen en tiempo real, para que sean más rápidos y no consuman memoria
* @param t Tipo de figura (1=línea, 2=rectángulo, 3=rectángulo relleno, 4=elipse, 5=elipse rellena)
* @param c Color
* @param o Opacidad (0..15)
* @param r Región
* @param r Región
* @param x0 Coordenada X inicial
* @param y0 Coordenada Y inicial
* @param x1 Coordenada X final

View file

@ -1,9 +1,9 @@
/*! \file graphics.c
* \brief DLL principal del motor gráfico 2D de eDIV
* \brief DLL principal del motor gráfico 2D de eDIV
*
* En esta DLL se encuentran las principales funciones relacionadas con el
* manejo de gráficos. Tiene prioridad P_SIEMPRE ya que se supone que la
* mayoría de los programas hechos con eDIV requerirán tratamiento de gráficos.
* manejo de gráficos. Tiene prioridad P_SIEMPRE ya que se supone que la
* mayoría de los programas hechos con eDIV requerirán tratamiento de gráficos.
*/
#include <stdio.h>
@ -25,12 +25,12 @@
#include "SDL_rotozoom.h"
#include "default_palette.h"
/*! \brief Función de exportación de símbolos de la DLL
/*! \brief Función de exportación de símbolos de la DLL
* @return TRUE si la DLL da su permiso para ser cargada, en caso contrario, FALSE
*/
int ExportaFuncs(EXPORTAFUNCS_PARAMS)
{
/* Modos predefinidos para set_mode (sólo 8 bpp, compatibilidad DIV2) */
/* Modos predefinidos para set_mode (sólo 8 bpp, compatibilidad DIV2) */
CONST("m320x200",320200);
CONST("m320x240",320240);
CONST("m320x400",320400);
@ -88,7 +88,7 @@ int ExportaFuncs(EXPORTAFUNCS_PARAMS)
GLOBAL("num_video_modes",0);
GLOBAL("vsync",0);
GLOBAL("draw_z",-255);
GLOBAL("smooth",smooth); /* > Atención una nueva variable que indica si se activa o no el SMOOTH al ZOOMEAR. */
GLOBAL("smooth",smooth); /* > Atención una nueva variable que indica si se activa o no el SMOOTH al ZOOMEAR. */
/* variables locales */
LOCAL("x",0);
@ -170,9 +170,9 @@ FILE * memo ;
/*! \brief Guarda una captura de la pantalla en un .bmp
*
* Esta función es llamada cuando se pulsa ALT+P. Primero busca un nombre de
* fichero válido del tipo nombre_programa####.bmp, donde #### es el primer
* número que haya disponible, para ir numerando las capturas automáticamente.
* Esta función es llamada cuando se pulsa ALT+P. Primero busca un nombre de
* fichero válido del tipo nombre_programa####.bmp, donde #### es el primer
* número que haya disponible, para ir numerando las capturas automáticamente.
* Luego simplemente usa SDL_SaveBMP() para guardar el backbuffer con ese
* nombre.
* @param nombre_program Nombre del programa, obtenido de fp->nombre_program
@ -194,14 +194,14 @@ void guarda_pantallazo(char* nombre_program)
SDL_SaveBMP(screen,capturef);
}
/*! \brief Función para usar con qsort() para ordenar los blits por su Z
/*! \brief Función para usar con qsort() para ordenar los blits por su Z
*
* Esta función se pasa a qsort() para que la graphics (en el entrypoint frame)
* ordene los blits (del tipo struct _blits) según su Z, para que se dibujen
* Esta función se pasa a qsort() para que la graphics (en el entrypoint frame)
* ordene los blits (del tipo struct _blits) según su Z, para que se dibujen
* en el backbuffer en el orden correcto.
* @param a Primer blit a ordenar
* @param b Segundo blit a ordenar
* @return -1 si a está detrás de b, 1 si a está delante de b, 0 si tienen la misma Z
* @return -1 si a está detrás de b, 1 si a está delante de b, 0 si tienen la misma Z
* @see frame(), struct _blits
*/
int ordena_por_z(const void* a, const void* b)
@ -218,8 +218,8 @@ int ordena_por_z(const void* a, const void* b)
/*! \brief Entrypoint frame
*
* Este entrypoint se ejecuta una vez todos los procesos han ejecutado su código
* correspondiente al frame actual. Se encarga de procesar todos los gráficos
* Este entrypoint se ejecuta una vez todos los procesos han ejecutado su código
* correspondiente al frame actual. Se encarga de procesar todos los gráficos
* en pantalla (fondo, draws, procesos y los creados por otras DLL's mediante
* fp->Dibuja()), blitearlos en el backbuffer y actualizar la pantalla.
* @see Dibuja(), draw.c
@ -245,7 +245,7 @@ void frame(FUNCTION_PARAMS)
primer_frame=FALSE;
/*
* TODO: Añadir comprobacion de errores en los 2 if siguientes (Daijo)
* TODO: Añadir comprobacion de errores en los 2 if siguientes (Daijo)
*/
if (SDL_Init(SDL_INIT_VIDEO)) {
fp->Critical_Error(7); /* No se pudo inicializar SDL */
@ -478,9 +478,9 @@ void frame(FUNCTION_PARAMS)
/*! \brief Entrypoint first_load
*
* Este entrypoint se ejecuta cuando la DLL se carga en el comienzo de la ejecución
* Este entrypoint se ejecuta cuando la DLL se carga en el comienzo de la ejecución
* del programa. Se usa para inicializar todos los datos internos de la DLL y
* realizar alguna operación inicial si es preciso.
* realizar alguna operación inicial si es preciso.
*/
void first_load(FUNCTION_PARAMS)
{
@ -566,28 +566,28 @@ void first_load(FUNCTION_PARAMS)
* Funciones Internas de la DLL
*/
/*! \brief Agrega un gráfico a la lista de blits
/*! \brief Agrega un gráfico a la lista de blits
*
* Esta función puede usarse desde cualquier DLL (se exporta en la estructura fp)
* Esta función puede usarse desde cualquier DLL (se exporta en la estructura fp)
* y se encarga de meter un registro en la pila de bliteos, permitiendo especificar
* ciertos parámetros describiendo cómo debe dibujarse el gráfico, incluyendo Z,
* ciertos parámetros describiendo cómo debe dibujarse el gráfico, incluyendo Z,
* transparencia, etc.
* La función hace "clipping" al gráfico automáticamente según la región que se le
* La función hace "clipping" al gráfico automáticamente según la región que se le
* indique.
* \todo Hacer que no obligue a la DLL que la llama a usar SDL. Puede convertirse
* esta función o usar una alternativa, esta se usaría de forma interna y la otra se
* almacenaría en fp->Dibuja para que la usen las demás DLL's.
* @param src Superficie donde se encuentra el gráfico a dibujar
* esta función o usar una alternativa, esta se usaría de forma interna y la otra se
* almacenaría en fp->Dibuja para que la usen las demás DLL's.
* @param src Superficie donde se encuentra el gráfico a dibujar
* @param x Coordenada X destino
* @param y Coordenada Y destino
* @param cx Y del centro del gráfico (relativo al mismo)
* @param cy X del centro del gráfico
* @param region Región de pantalla en la que se dibujará
* @param z Profundidad del gráfico, permite que pueda dibujarse delante o detrás de otros gráficos
* @param flags Flags de espejado horizontal(1)/vertical(2) (sólo se tendrán en cuenta estos dos bits)
* @param trans Transparencia del gráfico (0..255)
* @param size Tamaño (en porcentaje) al que debe escalarse el gráfico, 100% es el tamaño original
* @param angle Ángulo (en milésimas de grado) para rotar el gráfico. (0 = sin rotación)
* @param cx Y del centro del gráfico (relativo al mismo)
* @param cy X del centro del gráfico
* @param region Región de pantalla en la que se dibujará
* @param z Profundidad del gráfico, permite que pueda dibujarse delante o detrás de otros gráficos
* @param flags Flags de espejado horizontal(1)/vertical(2) (sólo se tendrán en cuenta estos dos bits)
* @param trans Transparencia del gráfico (0..255)
* @param size Tamaño (en porcentaje) al que debe escalarse el gráfico, 100% es el tamaño original
* @param angle Ángulo (en milésimas de grado) para rotar el gráfico. (0 = sin rotación)
* @return 1
* @see frame(), xput(), ordena_por_z(), #blits
*/
@ -615,9 +615,9 @@ int Dibuja(SDL_Surface *src,int x,int y,int cx,int cy,int region,int z,int flags
if(angle<0) angle+=360000;
angulo=angle/1000;
/*! Ahora siempre se crea una copia de la surface, lo he puesto así porque
/*! Ahora siempre se crea una copia de la surface, lo he puesto así porque
* tiene la ventaja de que con el smooth no kedan bordes negros y hace un
* perfecto antialiasing, pero vamos, esto hay ke optimizarlo bastante (habrá
* perfecto antialiasing, pero vamos, esto hay ke optimizarlo bastante (habrá
* que guarrear bastante en el SDL_rotozoomer.c)
*/
@ -625,7 +625,7 @@ int Dibuja(SDL_Surface *src,int x,int y,int cx,int cy,int region,int z,int flags
SDL_SetColorKey(temp,src->flags,color_transparente);
if(flags&3) {
/* el volteado vertical es más rápido */
/* el volteado vertical es más rápido */
if((flags&3)==2) {
for(i=0;i<src->h;i++)
memcpy((byte*)temp->pixels+i*temp->pitch,(byte*)src->pixels+(src->h-i-1)*src->pitch,src->pitch);
@ -657,8 +657,8 @@ int Dibuja(SDL_Surface *src,int x,int y,int cx,int cy,int region,int z,int flags
blits[last_blit].src = xput(temp,zoom,angulo);
/*!
* Pequeño hack para arreglar transparency
* \todo Debería limpiarse y revisarse un poco :P
* Pequeño hack para arreglar transparency
* \todo Debería limpiarse y revisarse un poco :P
*/
@ -720,14 +720,14 @@ int Dibuja(SDL_Surface *src,int x,int y,int cx,int cy,int region,int z,int flags
return 1 ;
}
/*! \brief Escala y rota un gráfico
/*! \brief Escala y rota un gráfico
*
* Esta función recibe una superficie y la rota y escala según los valores deseados,
* y devuelve una nueva superficie que contiene el gráfico transformado.
* @param src La superficie con el gráfico que se desea transformar
* @param size Tamaño al que se desea escalar el gráfico (1.0 es el tamaño original)
* @param angle Ángulo (en grados) al que se desea rotar el gráfico (0.0 = sin rotación)
* @return Una nueva superficie con el gráfico transformado
* Esta función recibe una superficie y la rota y escala según los valores deseados,
* y devuelve una nueva superficie que contiene el gráfico transformado.
* @param src La superficie con el gráfico que se desea transformar
* @param size Tamaño al que se desea escalar el gráfico (1.0 es el tamaño original)
* @param angle Ángulo (en grados) al que se desea rotar el gráfico (0.0 = sin rotación)
* @return Una nueva superficie con el gráfico transformado
* @see Dibuja(), SDL_rotozoom.c
*/
SDL_Surface *xput(SDL_Surface *src,double size,double angle)

View file

@ -1,5 +1,5 @@
/*! \file graphics.h
* \brief Cabecera principal de la librería
* \brief Cabecera principal de la librería
*
* Este fichero, aparte de otras cosas, contiene los prototipos de todos los .c
* (excepto de SDL_rotozoom.c).
@ -20,12 +20,12 @@
#define ERR_INVALIDFPGHEADER 106
#define ERR_INVALIDMAPCODE 110
#define MAX_DRAWS 1024 /*!< Número máximo de objetos que soporta draw() (en el DIV2 eran 256) */
#define MAX_REGIONS 32 /*!< Número máximo de regiones de pantalla (en el DIV2 eran 32) */
#define MAX_DRAWS 1024 /*!< Número máximo de objetos que soporta draw() (en el DIV2 eran 256) */
#define MAX_REGIONS 32 /*!< Número máximo de regiones de pantalla (en el DIV2 eran 32) */
/* Macros */
/*! Se usa para la colisión por bounding-box */
/*! Se usa para la colisión por bounding-box */
#define Miedzy(x,a,b) (((x) >= (a)) && ((x) <= (b)))
/*! Asigna a una superficie la paleta de otra superficie */
@ -116,7 +116,7 @@ int last_blit ;
int _gamma[3] ;
int smooth; /*!< Indica si se desea suavizar los gráficos @see xput() */
int smooth; /*!< Indica si se desea suavizar los gráficos @see xput() */
struct _graphics* graphics; /*!< Para que todas las funciones puedan acceder a fp->graphics */

View file

@ -2,9 +2,9 @@
* \brief Funciones de operaciones con mapas
*
* Este fichero contiene las funciones para las operaciones con mapas
* (modificación, obtención de información, bliteos, etc).
* (modificación, obtención de información, bliteos, etc).
*
* \todo Falta respetar el centro del gráfico, y soporte para FLAGS 1 y 2
* \todo Falta respetar el centro del gráfico, y soporte para FLAGS 1 y 2
*/
#include <SDL/SDL.h>
@ -14,13 +14,13 @@
/*! \brief Copia un trozo de mapa y lo pega en otro mapa
*
* Esta función sólo permite operaciones en el mismo FPG.
* \todo ¿sobrecargar para permitir operaciones entre FPG's?
* Esta función sólo permite operaciones en el mismo FPG.
* \todo ¿sobrecargar para permitir operaciones entre FPG's?
* @param f FPG donde se encuentran los dos mapas
* @param g2 Gráfico de destino
* @param g2 Gráfico de destino
* @param x2 Coordenada X destino
* @param y2 Coordenada Y destino
* @param g1 Gráfico de origen
* @param g1 Gráfico de origen
* @param x1 Coordenada X origen
* @param y1 Coordenada Y origen
* @param w Anchura del bloque a copiar
@ -63,10 +63,10 @@ int eDIV_MAP_BLOCK_COPY(FUNCTION_PARAMS)
/*! \brief Obtiene el color del pixel, en las coordenadas (x,y), de un mapa.
* @param f Fichero (FPG) donde se encuentra el mapa
* @param g Código del gráfico dentro del FPG.
* @param g Código del gráfico dentro del FPG.
* @param x Coordenada X del pixel
* @param y Coordenada Y del pixel
* @return El color del píxel.
* @return El color del píxel.
* @see eDIV_MAP_PUT_PIXEL(), eDIV_PUT_PIXEL(), eDIV_GET_PIXEL()
*/
int eDIV_MAP_GET_PIXEL(FUNCTION_PARAMS)
@ -110,11 +110,11 @@ int eDIV_MAP_GET_PIXEL(FUNCTION_PARAMS)
/*! \brief Blitea un mapa dentro de otro mapa
*
* Esta función sólo permite operaciones en el mismo FPG.
* \todo ¿sobrecargar para permitir operaciones entre FPG's?
* Esta función sólo permite operaciones en el mismo FPG.
* \todo ¿sobrecargar para permitir operaciones entre FPG's?
* @param f Fichero (FPG) donde se encuentran los dos mapas.
* @param g2 Gráfico de destino
* @param g1 Gráfico de origen
* @param g2 Gráfico de destino
* @param g1 Gráfico de origen
* @param x Coordenada X
* @param y Coordenada Y
* @return 1
@ -144,11 +144,11 @@ int eDIV_MAP_PUT(FUNCTION_PARAMS)
}
/*! \brief Cambia el color de un píxel determinado de un mapa
/*! \brief Cambia el color de un píxel determinado de un mapa
* @param fichero Fichero (FPG) donde se encuentra el mapa
* @param grafico Código del mapa dentro del FPG
* @param x Coordenada X del píxel
* @param y Coordenada y del píxel
* @param grafico Código del mapa dentro del FPG
* @param x Coordenada X del píxel
* @param y Coordenada y del píxel
* @param color Color
* @return 1
* @see eDIV_MAP_GET_PIXEL(), eDIV_PUT_PIXEL(), eDIV_GET_PIXEL()
@ -218,8 +218,8 @@ int eDIV_MAP_PUT_PIXEL(FUNCTION_PARAMS)
/*! \brief Blitea un mapa sobre el buffer del fondo
* @param fichero Fichero (FPG) donde se encuentra el gráfico
* @param grafico Código del mapa dentro del FPG
* @param fichero Fichero (FPG) donde se encuentra el gráfico
* @param grafico Código del mapa dentro del FPG
* @param x Coordenada X destino
* @param y Coordenada Y destino
* @return 1
@ -250,14 +250,14 @@ int eDIV_PUT(FUNCTION_PARAMS)
}
/*! \brief Como eDIV_PUT() pero permitiendo indicar ángulo, tamaño y flags.
* \todo Falta soporte para flags. Revisar y añadir fp->Runtime_Error()
* @param fichero Fichero (FPG) donde se encuentra el gráfico
* @param grafico Código del mapa dentro del FPG
/*! \brief Como eDIV_PUT() pero permitiendo indicar ángulo, tamaño y flags.
* \todo Falta soporte para flags. Revisar y añadir fp->Runtime_Error()
* @param fichero Fichero (FPG) donde se encuentra el gráfico
* @param grafico Código del mapa dentro del FPG
* @param x Coordenada X destino
* @param y Coordenada Y destino
* @param angle Ángulo (en milésimas de grado)
* @param zoom Tamaño (en porcentaje)
* @param angle Ángulo (en milésimas de grado)
* @param zoom Tamaño (en porcentaje)
* @return 1 si se ha colocado correctamente, -1 si el mapa no existe.
* @see eDIV_PUT(), eDIV_MAP_XPUT(), eDIV_MAP_PUT()
*/
@ -294,8 +294,8 @@ int eDIV_XPUT(FUNCTION_PARAMS)
/*! \brief Blitea un mapa sobre el buffer del fondo en la ESQUINA SUPERIOR IZQUIERDA de la pantalla
* @param fichero Fichero (FPG) donde se encuentra el gráfico
* @param grafico Código del mapa dentro del FPG
* @param fichero Fichero (FPG) donde se encuentra el gráfico
* @param grafico Código del mapa dentro del FPG
* @return 1
* @see eDIV_PUT(), eDIV_LOAD_SCREEN()
*/
@ -394,7 +394,7 @@ int eDIV_CLEAR_SCREEN(FUNCTION_PARAMS)
/*! \brief Obtiene el color del pixel, en las coordenadas (x,y), del buffer del fondo.
* @param x Coordenada X del pixel
* @param y Coordenada Y del pixel
* @return El color del píxel.
* @return El color del píxel.
* @see eDIV_PUT_PIXEL(), eDIV_MAP_GET_PIXEL()
*/
int eDIV_GET_PIXEL(FUNCTION_PARAMS)
@ -431,16 +431,16 @@ int eDIV_GET_PIXEL(FUNCTION_PARAMS)
}
/*! \brief Crea un nuevo mapa con las características indicadas.
/*! \brief Crea un nuevo mapa con las características indicadas.
*
* El nuevo mapa se creará en el fichero 0, como si se hubiera cargado con
* El nuevo mapa se creará en el fichero 0, como si se hubiera cargado con
* \link eDIV_LOAD_MAP() load_map() \endlink.
* @param w Anchura del mapa
* @param h Altura del mapa
* @param cx Coordenada X del centro del mapa
* @param cy Coordenada Y del centro del mapa
* @param c Color con el que se rellenará el nuevo mapa
* @return El código del nuevo gráfico, o -1 si ocurrió un error
* @param c Color con el que se rellenará el nuevo mapa
* @return El código del nuevo gráfico, o -1 si ocurrió un error
* @see eDIV_LOAD_MAP(), eDIV_UNLOAD_MAP()
*/
int eDIV_NEW_MAP(FUNCTION_PARAMS)
@ -474,15 +474,15 @@ int eDIV_NEW_MAP(FUNCTION_PARAMS)
}
/*! \brief Copia una región de la pantalla en un mapa
* \todo La región copiada debe ESTIRARSE para adaptarse a la región destino
* @param r Región de la pantalla
/*! \brief Copia una región de la pantalla en un mapa
* \todo La región copiada debe ESTIRARSE para adaptarse a la región destino
* @param r Región de la pantalla
* @param f Fichero del mapa destino
* @param g Gráfico destino
* @param g Gráfico destino
* @param x Coordenada X destino
* @param y Coordenada Y destino
* @param w Ancho de la región destino dentro del mapa
* @param h Alto de la región destino dentro del mapa
* @param w Ancho de la región destino dentro del mapa
* @param h Alto de la región destino dentro del mapa
* @return 1
* @see eDIV_DEFINE_REGION(), eDIV_MAP_BLOCK_COPY()
*/
@ -517,8 +517,8 @@ int eDIV_SCREEN_COPY(FUNCTION_PARAMS)
/*! \brief Obtiene las coordenadas de un punto de control de un mapa
* @param f Fichero en el que se encuentra el mapa
* @param g Código del mapa dentro del FPG
* @param n Número del punto de control
* @param g Código del mapa dentro del FPG
* @param n Número del punto de control
* @param offset_x Offset de la variable donde guardar la coordenada X
* @param offset_y Offset de la variable donde guardar la coordenada Y
* @return 0 si todo va bien, -1 si el mapa no existe
@ -544,7 +544,7 @@ int eDIV_GET_POINT(FUNCTION_PARAMS)
/*! \brief Obtiene las coordenadas en pantalla de un punto de control del proceso actual
* \todo Tener en cuenta angle, size, etc
* @param n Número del punto de control
* @param n Número del punto de control
* @param offset_x Offset de la variable donde guardar la coordenada X
* @param offset_y Offset de la variable donde guardar la coordenada Y
* @return 0 si todo va bien, -1 si el mapa no existe
@ -571,12 +571,12 @@ int eDIV_GET_REAL_POINT(FUNCTION_PARAMS)
return 0 ;
}
/*! \brief Obtiene información sobre un mapa
/*! \brief Obtiene información sobre un mapa
* @param f Fichero donde se encuentra el mapa
* @param g Código del gráfico dentro del FPG
* @param i Indica qué información quiere extraerse del mapa, puede ser uno de:
* \a g_wide (0), \a g_height (1), \a g_x_center (2) ó \a g_y_center (3).
* @return La información solicitada, o -1 si hubo un error.
* @param g Código del gráfico dentro del FPG
* @param i Indica qué información quiere extraerse del mapa, puede ser uno de:
* \a g_wide (0), \a g_height (1), \a g_x_center (2) ó \a g_y_center (3).
* @return La información solicitada, o -1 si hubo un error.
* @see eDIV_GET_POINT()
*/
int eDIV_GRAPHIC_INFO(FUNCTION_PARAMS)

View file

@ -8,18 +8,18 @@
#include "graphics.h"
/*! \brief Cambia el modo de la pantalla
* \todo ¿más flags?
* \todo ¿más flags?
*
* Esta función permite distintas sintaxis:
* Esta función permite distintas sintaxis:
* - Sintaxis de DIV2:
* @param modo Modo de pantalla indicado por una constante tipo mWWWxHHH ó por un identificador de video_modes[]
* @param modo Modo de pantalla indicado por una constante tipo mWWWxHHH ó por un identificador de video_modes[]
*
* - Sintaxis de eDIV:
* @param anchura Ancho de la nueva resolución
* @param altura Alto de la nueva resolución
* @param [bpp] Profundidad de color, puede ser 8, 16, 24 ó 32 (por defecto es 8)
* @param [flags] Flags de la ventana del juego, puede ser una combinación de:
* _fullscreen (1), ... ya veremos si añadimos más xD
* @param anchura Ancho de la nueva resolución
* @param altura Alto de la nueva resolución
* @param [bpp] Profundidad de color, puede ser 8, 16, 24 ó 32 (por defecto es 8)
* @param [flags] Flags de la ventana del juego, puede ser una combinación de:
* _fullscreen (1), ... ya veremos si añadimos más xD
* .
*
* @return 0

View file

@ -37,11 +37,11 @@ int eDIV_GET_TRANSPARENT_COLOR(FUNCTION_PARAMS)
/*! \brief Crea un color a partir de las componentes RGB dadas.
*
* Esta función devuelve el color más próximo posible a las componentes RGB
* Esta función devuelve el color más próximo posible a las componentes RGB
* dadas. En modos de color paletizado (8 bits) puede devolver un color muy
* distinto al esperado si no se encuentra otro mejor en la paleta.
* Esta función difiere de \link eDIV_FIND_COLOR() find_color() \endlink en
* que recibe los parámetros en un rango de 0..255 en vez de 0..63.
* Esta función difiere de \link eDIV_FIND_COLOR() find_color() \endlink en
* que recibe los parámetros en un rango de 0..255 en vez de 0..63.
* @param r Componente roja (red)
* @param g Componente verde (green)
* @param b Componente azul (blue)
@ -60,11 +60,11 @@ int eDIV_RGB(FUNCTION_PARAMS)
/*! \brief Crea un color a partir de las componentes RGB dadas.
*
* Esta función devuelve el color más próximo posible a las componentes RGB
* Esta función devuelve el color más próximo posible a las componentes RGB
* dadas. En modos de color paletizado (8 bits) puede devolver un color muy
* distinto al esperado si no se encuentra otro mejor en la paleta.
* Esta función difiere de \link eDIV_RGB() RGB() \endlink en que recibe los
* parámetros en un rango de 0..63 en vez de 0..255. Se ha incluido para
* Esta función difiere de \link eDIV_RGB() RGB() \endlink en que recibe los
* parámetros en un rango de 0..63 en vez de 0..255. Se ha incluido para
* mantener la compatibilidad con DIV2.
* @param r Componente roja (red)
* @param g Componente verde (green)
@ -84,10 +84,10 @@ int eDIV_FIND_COLOR(FUNCTION_PARAMS)
/*! \brief Obtiene las componentes RGB de un color dado.
*
* Esta función recibe un color y almacena en las variables indicadas sus
* Esta función recibe un color y almacena en las variables indicadas sus
* componentes RGB (siempre en un rango de 0..255). Si en lugar de un offset
* se recibe un 0, se ignorará esa componente.
* @param color Color del que se quiere obtener la información
* se recibe un 0, se ignorará esa componente.
* @param color Color del que se quiere obtener la información
* @param offset_r Offset de la variable donde se quiere guardar el valor de la componente roja (red)
* @param offset_g Offset de la variable donde se quiere guardar el valor de la componente verde (green)
* @param offset_b Offset de la variable donde se quiere guardar el valor de la componente azul (blue)
@ -111,7 +111,7 @@ int eDIV_GET_RGB(FUNCTION_PARAMS)
/*! \brief Hace un fundido de pantalla
*
* \todo ¡¡función sin acabar!!
* \todo ¡¡función sin acabar!!
*/
int eDIV_FADE(FUNCTION_PARAMS)
{

View file

@ -8,13 +8,13 @@
#include "graphics.h"
/*! \brief Define una región de pantalla
* \todo Añadir un poco de comprobación de errores
* @param n Número de la región a definir (1..31)
* @param x Coordenada X de la esquina superior izquierda de la región
* @param y Coordenada Y de la esquina superior izquierda de la región
* @param w Anchura de la región
* @param h Altura de la región
/*! \brief Define una región de pantalla
* \todo Añadir un poco de comprobación de errores
* @param n Número de la región a definir (1..31)
* @param x Coordenada X de la esquina superior izquierda de la región
* @param y Coordenada Y de la esquina superior izquierda de la región
* @param w Anchura de la región
* @param h Altura de la región
* @return 1 si todo fue bien o 0 si hubo un error
* @see eDIV_OUT_REGION(), eDIV_SCREEN_COPY()
*/
@ -28,7 +28,7 @@ int eDIV_DEFINE_REGION(FUNCTION_PARAMS)
n = getparm() ;
if ( n > 31 || n < 1 ) {
fp->Runtime_Error(108); /* nº de región inválido */
fp->Runtime_Error(108); /* nº de región inválido */
return 0;
}
@ -41,10 +41,10 @@ int eDIV_DEFINE_REGION(FUNCTION_PARAMS)
return 1 ;
}
/*! \brief Indica si un proceso está fuera de la región indicada
/*! \brief Indica si un proceso está fuera de la región indicada
* @param id Identificador del proceso
* @param r Región
* @return 1 si el proceso está fuera de la región o 0 en caso contrario
* @param r Región
* @return 1 si el proceso está fuera de la región o 0 en caso contrario
* @see eDIV_DEFINE_REGION()
*/
int eDIV_OUT_REGION(FUNCTION_PARAMS)

View file

@ -19,12 +19,12 @@
*/
/* Este fichero es la cabecera para las DLL's de eDIV.
* Para saber cómo se utiliza, consulte el eDIV SDK de la documentación de eDIV
* ESTE FICHERO -NO- HA DE SER MODIFICADO PARA CREAR DLLs, TAN SÓLO POR
* DESARROLLADORES DE eDIV. EN CASO DE SER MODIFICADO, SE PERDERÁ LA
* Para saber cómo se utiliza, consulte el eDIV SDK de la documentación de eDIV
* ESTE FICHERO -NO- HA DE SER MODIFICADO PARA CREAR DLLs, TAN SÓLO POR
* DESARROLLADORES DE eDIV. EN CASO DE SER MODIFICADO, SE PERDERÁ LA
* COMPATIBILIDAD CON eDIV Y EL RESTO DE DLLs.
* En caso de encontrar cualquier bug o anomalía en este archivo, por favor
* notifíquelo a Sion Entertainment en bugs@edivcentral.com
* En caso de encontrar cualquier bug o anomalía en este archivo, por favor
* notifíquelo a Sion Entertainment en bugs@edivcentral.com
*/
/*! \file export.h
@ -65,7 +65,7 @@ typedef enum { v_global, v_reserved, v_local } tipo_t;
/*! Estructura de variables indexadas */
typedef struct {
unsigned char hash; /*!< Hash del nombre de la variable, para acelerar su búsqueda */
unsigned char hash; /*!< Hash del nombre de la variable, para acelerar su búsqueda */
tipo_t tipo; /*!< Tipo de variable (global, reservada o local) */
char* nombre; /*!< Nombre de la variable */
int offset; /*!< offset en mem[] (relativo al proceso si es local o reservada) */
@ -84,7 +84,7 @@ typedef struct {
#include <SDL/SDL.h>
/* Funciones de exportación de datos */
/* Funciones de exportación de datos */
typedef int (TYPEOF_EDIV_Export)(char* cadena, int nparam, void* hfuncion);
typedef int (TYPEOF_EDIV_Export_Const)(byte* cadena, int valor);
typedef int (TYPEOF_EDIV_Export_Global)(char* cadena, int valor);
@ -111,20 +111,20 @@ typedef int (TYPEOF_Dibuja)(SDL_Surface *src,int x,int y,int cx,int cy,int regio
/*! Tipos de error para custom_error() */
typedef enum {
_runtime_error=1, /*!< Error normal (se puede depurar y/o ignorar) */
_critical_error=2 /*!< Error crítico (interrumpe obligatoriamente el programa) */
_critical_error=2 /*!< Error crítico (interrumpe obligatoriamente el programa) */
} tipoerror;
typedef void (TYPEOF_Runtime_Error)(int, ...);
typedef void (TYPEOF_Critical_Error)(int, ...);
typedef void (TYPEOF_Custom_Error)(tipoerror,char*);
/*! Obtiene offset de variable indexada dinámicamente */
/*! Obtiene offset de variable indexada dinámicamente */
typedef int (TYPEOF_GetVarOffset)(tipo_t tipo,char* nombre);
/*! Finaliza el stub (exit) */
typedef void (TYPEOF_Stub_Quit)(int n);
/*! EXPORTAFUNCS_PARAMS deben usarse como parámetros para ExportaFuncs */
/*! EXPORTAFUNCS_PARAMS deben usarse como parámetros para ExportaFuncs */
#define EXPORTAFUNCS_PARAMS \
TYPEOF_EDIV_Export *EDIV_Export ,\
TYPEOF_EDIV_Export_Const *EDIV_Export_Const ,\
@ -146,7 +146,7 @@ TYPEOF_EDIV_Export_Priority *EDIV_Export_Priority
* ENTRY-POINTS
*
* Estas funciones son llamadas por el STUB en determinados eventos
* (Cuando una DLL hace cierta acción, lo avisa al Stub y el stub se encarga de llamar
* (Cuando una DLL hace cierta acción, lo avisa al Stub y el stub se encarga de llamar
* a las correspondientes rutinas de las dll's, ordenadas por prioridad)
*/
@ -154,7 +154,7 @@ TYPEOF_EDIV_Export_Priority *EDIV_Export_Priority
/*! \defgroup entrypoints Entrypoints */
/*! @{ */
#define EDIV_set_video_mode 1 /* Al activar un nuevo modo de vídeo */
#define EDIV_set_video_mode 1 /* Al activar un nuevo modo de vídeo */
#define EDIV_process_palette 2 /* Al cargar una paleta */
#define EDIV_process_active_palette 3 /* Al modificar la paleta activa (usada en los fades) */
#define EDIV_process_sound 4 /* Al cargar un efecto sonoro */
@ -173,13 +173,13 @@ TYPEOF_EDIV_Export_Priority *EDIV_Export_Priority
#define EDIV_ss_frame 17 /* Frame de salvapantallas */
#define EDIV_ss_end 18 /* Fin de salvapantallas */
#define EDIV_frame 19 /* En cada frame */
#define EDIV_trace 20 /* Después de ejecutar cada instrucción de bytecode (solo en debug) */
#define EDIV_trace 20 /* Después de ejecutar cada instrucción de bytecode (solo en debug) */
#define EDIV_debug 21 /* Invocar al trazador - sentencia debug (solo en debug) */
#define EDIV_first_load 22 /* Se ejecuta al cargar la DLL en ejecucion */
#define EDIV_quit 23 /* Llamado por stub_quit() */
/*! @} */
/* #defines para que la declaración de datos sea un poco más BASIC... :p */
/* #defines para que la declaración de datos sea un poco más BASIC... :p */
#ifdef CONST
# undef CONST
#endif
@ -200,7 +200,7 @@ TYPEOF_EDIV_Export_Priority *EDIV_Export_Priority
/*!
* FUNCTION_PARAMS deben usarse como parametros para TODAS las funciones
* ¡OJO! debe ser igual en extern.h
* ¡OJO! debe ser igual en extern.h
*/
#define FUNCTION_PARAMS struct _fun_params * fp
@ -216,12 +216,12 @@ struct _procs_s{
int graph ;
};
/*! Estructura de una región de pantalla */
/*! Estructura de una región de pantalla */
struct _regions {
int x , y , w , h ;
};
/*! Permite asegurarnos de que ciertos recursos están cargados */
/*! Permite asegurarnos de que ciertos recursos están cargados */
struct _existe {
int regions ;
int dibuja ;
@ -267,7 +267,7 @@ struct _graphics {
struct _palette* activepal;
};
/*! Parámetros para las funciones exportadas */
/*! Parámetros para las funciones exportadas */
struct _fun_params{
int *pila ;
int *sp ;

View file

@ -43,7 +43,7 @@
#define _prn_scr 55 /* Impr Pant */
#define _scroll_lock 70 /* Bloq Despl */
#define _wave 41 /* "º" */
#define _wave 41 /* "º" */
#define _1 2
#define _2 3
#define _3 4
@ -55,7 +55,7 @@
#define _9 10
#define _0 11
#define _minus 12 /* ? */
#define _plus 13 /* ¿ */
#define _plus 13 /* ¿ */
#define _backspace 14
#define _tab 15
@ -83,7 +83,7 @@
#define _j 36
#define _k 37
#define _l 38
#define _semicolon 39 /* Ñ */
#define _semicolon 39 /* Ñ */
#define _apostrophe 40 /* { */
#define _backslash 43 /* } */
@ -248,20 +248,20 @@ int ExportaFuncs(EXPORTAFUNCS_PARAMS)
GLOBAL_STRUCT("mouse",0);
_INT("x",0); /* Coordenada x */
_INT("y",0); /* Coordenada y */
_INT("graph",0); /* Gráfico */
_INT("graph",0); /* Gráfico */
_INT("file",0); /* FPG */
_INT("z",-512); /* Profundidad (TODO) */
_INT("angle",0); /* Ángulo (TODO) */
_INT("size",100); /* Tamaño (TODO) */
_INT("angle",0); /* Ángulo (TODO) */
_INT("size",100); /* Tamaño (TODO) */
_INT("flags",0); /* Banderas (TODO) */
_INT("region",0); /* Región (TODO) */
_INT("left",0); /* Botón izquierdo */
_INT("middle",0); /* Botón central o de ruedecilla */
_INT("right",0); /* Botón derecho */
_INT("region",0); /* Región (TODO) */
_INT("left",0); /* Botón izquierdo */
_INT("middle",0); /* Botón central o de ruedecilla */
_INT("right",0); /* Botón derecho */
_INT("wheelup",0); /* Ruedecilla arriba (NUEVO) */
_INT("wheeldown",0); /* Ruedecilla abajo (NUEVO) */
_INT("cursor",0); /* Emulación con teclas de cursor (TODO) */
_INT("speed",0); /* Velocidad del ratón (TODO) */
_INT("cursor",0); /* Emulación con teclas de cursor (TODO) */
_INT("speed",0); /* Velocidad del ratón (TODO) */
_INT("transparency",0); /* Transparencia (NUEVO) (TODO) */
END_STRUCT;
@ -430,10 +430,10 @@ void frame(FUNCTION_PARAMS)
if(mbuttons&SDL_BUTTON(3))
fp->mem[_mouse+11]=1;
if(mbuttons&SDL_BUTTON(4)) /* podria no funcionar ¿necesario sdl_event? */
if(mbuttons&SDL_BUTTON(4)) /* podria no funcionar ¿necesario sdl_event? */
fp->mem[_mouse+12]=1;
if(mbuttons&SDL_BUTTON(5)) /* podria no funcionar ¿necesario sdl_event? */
if(mbuttons&SDL_BUTTON(5)) /* podria no funcionar ¿necesario sdl_event? */
fp->mem[_mouse+13]=1;
/* si mouse.graph!=0 */
@ -450,7 +450,7 @@ void frame(FUNCTION_PARAMS)
dstrect.h=mapamouse->h;
/*
* TODO: añadir chequeo de error si no existe file o mapa
* TODO: añadir chequeo de error si no existe file o mapa
*/
fp->Dibuja(mapamouse,dstrect.x,dstrect.y,fp->files[fp->mem[_mouse+3]].mapa[fp->mem[_mouse+2]].cpoint[0].x,fp->files[fp->mem[_mouse+3]].mapa[fp->mem[_mouse+2]].cpoint[0].y,fp->mem[_mouse+8],fp->mem[_mouse+4],fp->mem[_mouse+7],(fp->mem[_mouse+7]&4)?128:255,fp->mem[_mouse+6],fp->mem[_mouse+5]);
}

View file

@ -1,6 +1,6 @@
/*
* Este fichero contiene rutinas específicas para una plataforma.
* En caso de hacer un port de la librería, deben implementarse las siguientes
* Este fichero contiene rutinas específicas para una plataforma.
* En caso de hacer un port de la librería, deben implementarse las siguientes
* funciones:
*
* gr_Init

View file

@ -29,9 +29,9 @@ typedef struct
HDC hDC; // DC global que usamos
HWND hWnd; // HWND de la ventana principal
HDC hdcDIBSection; // DC compatible con sección DIB
HBITMAP hDIBSection; // sección DIB
unsigned char *pDIBBase; // puntero base DIB, ¡NO usado directamente para dibujar!
HDC hdcDIBSection; // DC compatible con sección DIB
HBITMAP hDIBSection; // sección DIB
unsigned char *pDIBBase; // puntero base DIB, ¡NO usado directamente para dibujar!
HPALETTE hPal; // paleta actual
HPALETTE hpalOld; // paleta original del sistema
@ -40,7 +40,7 @@ typedef struct
HINSTANCE hinstDDRAW; // instancia de DDRAW.DLL
LPDIRECTDRAW lpDirectDraw; // puntero al objeto DirectDraw
LPDIRECTDRAWSURFACE lpddsFrontBuffer; // frontbuffer en memoria de vídeo
LPDIRECTDRAWSURFACE lpddsFrontBuffer; // frontbuffer en memoria de vídeo
LPDIRECTDRAWSURFACE lpddsBackBuffer; // backbuffer en memoria del sistema
LPDIRECTDRAWSURFACE lpddsOffScreenBuffer; // backbuffer en memoria del sistema
LPDIRECTDRAWPALETTE lpddpPalette; // paleta DirectDraw

View file

@ -2,7 +2,7 @@
#include "conv.h"
/* Tabla de conversión de caracteres MS-DOS a Windows */
/* Tabla de conversión de caracteres MS-DOS a Windows */
int dos_chars=0;
@ -25,7 +25,7 @@ byte dos_to_win[256] = {
173, 177, 61, 190, 182, 167, 247, 184, 176, 168, 183, 185, 179, 178, 166, 160
};
/* Tabla de conversión de caracteres Windows a MS-DOS */
/* Tabla de conversión de caracteres Windows a MS-DOS */
byte win_to_dos[256] =
{
@ -78,9 +78,9 @@ void inicializa_lower()
set_c_lower ("ABCDEFGHIJKLMNOPQRSTUVWXYZ","abcdefghijklmnopqrstuvwxyz");
set_c_lower ("abcdefghijklmnopqrstuvwxyz","abcdefghijklmnopqrstuvwxyz");
set_c_lower ("ÁÉÍÓÚÑÇÀÈÌÒÙÄËÏÖÜÝÂÊÎÔÛÆÃÅÕ","áéíóúñçàèìòùäëïöüýâêîôûæãåõ");
set_c_lower("áéíóúñçàèìòùäëïöüýâêîôûæãåõ","áéíóúñçàèìòùäëïöüýâêîôûæãåõ");
set_c_lower("1234567890#$_ºª","1234567890#$_ºª");
set_c_lower ("ÁÉÍÓÚÑÇÀÈÌÒÙÄËÏÖÜÝÂÊÎÔÛÆÃÅÕ","áéíóúñçàèìòùäëïöüýâêîôûæãåõ");
set_c_lower("áéíóúñçàèìòùäëïöüýâêîôûæãåõ","áéíóúñçàèìòùäëïöüýâêîôûæãåõ");
set_c_lower("1234567890#$_ºª","1234567890#$_ºª");
}
void inicializa_upper()
@ -89,7 +89,7 @@ void inicializa_upper()
set_c_upper ("abcdefghijklmnopqrstuvwxyz","ABCDEFGHIJKLMNOPQRSTUVWXYZ");
set_c_upper ("ABCDEFGHIJKLMNOPQRSTUVWXYZ","ABCDEFGHIJKLMNOPQRSTUVWXYZ");
set_c_upper ("áéíóúñçàèìòùäëïöüýâêîôûæãåõ","ÁÉÍÓÚÑÇÀÈÌÒÙÄËÏÖÜÝÂÊÎÔÛÆÃÅÕ");
set_c_upper("ÁÉÍÓÚÑÇÀÈÌÒÙÄËÏÖÜÝÂÊÎÔÛÆÃÅÕ","ÁÉÍÓÚÑÇÀÈÌÒÙÄËÏÖÜÝÂÊÎÔÛÆÃÅÕ");
set_c_upper("1234567890#$_ºª","1234567890#$_ºª");
set_c_upper ("áéíóúñçàèìòùäëïöüýâêîôûæãåõ","ÁÉÍÓÚÑÇÀÈÌÒÙÄËÏÖÜÝÂÊÎÔÛÆÃÅÕ");
set_c_upper("ÁÉÍÓÚÑÇÀÈÌÒÙÄËÏÖÜÝÂÊÎÔÛÆÃÅÕ","ÁÉÍÓÚÑÇÀÈÌÒÙÄËÏÖÜÝÂÊÎÔÛÆÃÅÕ");
set_c_upper("1234567890#$_ºª","1234567890#$_ºª");
}

View file

@ -82,7 +82,7 @@ int DIV_strcpy(FUNCTION_PARAMS)
int dest=getparm();
if ((fp->mem[dest-1]&0xFFF00000)!=0xDAD00000) {
fp->Runtime_Error(164); /* Cadena destino inválida */
fp->Runtime_Error(164); /* Cadena destino inválida */
return 0;
}
if ((unsigned)src>255) {
@ -115,7 +115,7 @@ int DIV_strset(FUNCTION_PARAMS)
int n;
if ((fp->mem[cadena-1]&0xFFF00000)!=0xDAD00000) {
fp->Runtime_Error(164); /* Cadena destino inválida */
fp->Runtime_Error(164); /* Cadena destino inválida */
return 0;
}
n=(fp->mem[cadena-1]&0xFFFFF)+1;
@ -174,7 +174,7 @@ int DIV_strcat(FUNCTION_PARAMS)
int n;
if ((fp->mem[dest-1]&0xFFF00000)!=0xDAD00000) {
fp->Runtime_Error(164); /* Cadena destino inválida */
fp->Runtime_Error(164); /* Cadena destino inválida */
return 0;
}
@ -318,7 +318,7 @@ int DIV_strdel(FUNCTION_PARAMS)
int str=getparm();
if ((fp->mem[str-1]&0xFFF00000)!=0xDAD00000) {
fp->Runtime_Error(164); /* Cadena destino inválida */
fp->Runtime_Error(164); /* Cadena destino inválida */
return str;
}

View file

@ -21,7 +21,7 @@
/*
-Estructura de control
contiene informacion sobre el offset y tamaño del bmp en el fichero .fnt
contiene informacion sobre el offset y tamaño del bmp en el fichero .fnt
para poder leerlo, tambien contiene el offset de la estructura de informacion
-Mapa de caracteres
es la imagen del mapa de caracteres, se copia directamente.

View file

@ -1,6 +1,6 @@
/**
* @file sys06x08_latin1.h
* Definición de la fuente sys06x08_latin1 (generado por builtinfont)
* Definición de la fuente sys06x08_latin1 (generado por builtinfont)
*/
#ifndef __EDIV__sys06x08_latin1_h__

View file

@ -1,6 +1,6 @@
/**
* @file sys06x08_msdos.h
* Definición de la fuente sys06x08_msdos (generado por builtinfont)
* Definición de la fuente sys06x08_msdos (generado por builtinfont)
*/
#ifndef __EDIV__sys06x08_msdos_h__

View file

@ -116,7 +116,7 @@ int eDiv_Write(FUNCTION_PARAMS)
fuente = getparm() ;
if(fuente<0 || fuente>MAX_FONTS || !existe[fuente]) {
fp->Runtime_Error(116); /* id de fuente no válido */
fp->Runtime_Error(116); /* id de fuente no válido */
return -1;
}
@ -196,7 +196,7 @@ int eDiv_WriteInt(FUNCTION_PARAMS)
fuente = getparm() ;
if(fuente<0 || fuente>MAX_FONTS || !existe[fuente]) {
fp->Runtime_Error(116); /* id de fuente no válido */
fp->Runtime_Error(116); /* id de fuente no válido */
return -1;
}
@ -297,7 +297,7 @@ int eDiv_DeleteText(FUNCTION_PARAMS)
return 1;
}
else if (i<1 || i>MAX_WRITES) {
fp->Runtime_Error(119); /* id de texto no válido */
fp->Runtime_Error(119); /* id de texto no válido */
return -1 ;
}

View file

@ -64,13 +64,13 @@ void prepara_compilacion()
iobj=obj;
num_obj=0;
/* Inicializamos la tabla de símbolos */
/* Inicializamos la tabla de símbolos */
memset(lex_simb,0,sizeof(lex_simb));
ilex_simb=lex_simb;
num_nodos=0;
/* Inicializamos los caracteres básicos en lex_case */
/* Inicializamos los caracteres básicos en lex_case */
for (n=0;n<256;n++)
if (lower[n]) {
if (n>='0' && n<='9')
@ -87,7 +87,7 @@ void prepara_compilacion()
ivnom.b=vnom;
/* Leemos los símbolos y palabras reservadas de ltlex.def */
/* Leemos los símbolos y palabras reservadas de ltlex.def */
analiza_ltlex();
@ -108,7 +108,7 @@ void prepara_compilacion()
loc=(int*)e_malloc(iloc_max*sizeof(int));
memset(loc,0,iloc_max*sizeof(int));
/* ¿Que es esto? */
/* ¿Que es esto? */
ifrm_max=default_buffer/2;
frm=(int*)e_malloc(ifrm_max*sizeof(int));
memset(frm,0,ifrm_max*sizeof(int));
@ -139,7 +139,7 @@ void compila()
printf(translate(27));
/* inicio_textos debe ser como mínimo 256 */
/* inicio_textos debe ser como mínimo 256 */
if(imem<256) imem=256;
itxt=inicio_textos=imem;
psintactico(); /* Para obtener "longitud_textos" */
@ -184,7 +184,7 @@ void compila()
source=prog;
inicializa_index(); /* ahora toca construir el indice de variables */
dll_func2(); /* recarga sólo las dlls necesarias */
dll_func2(); /* recarga sólo las dlls necesarias */
if(debug) {
if((linf=tmpfile())==NULL) {
@ -193,7 +193,7 @@ void compila()
}
}
/* inicio_textos debe ser como mínimo 256 */
/* inicio_textos debe ser como mínimo 256 */
if(imem<256) imem=256;
itxt=inicio_textos=imem;
imem+=longitud_textos;
@ -204,7 +204,7 @@ void compila()
sintactico();
/*
* Ahora que estamos en el final del bytecode, añadiremos la rutina que carga
* Ahora que estamos en el final del bytecode, añadiremos la rutina que carga
* las DLLs. Lo primero es guardar las cadenas con los nombres:
*/
for(n=0;n<numdlls;n++)
@ -216,7 +216,7 @@ void compila()
test_buffer(&mem,&imem_max,imem);
}
/* Si estamos compilando en modo debug, añadimos tambien la debug.dll */
/* Si estamos compilando en modo debug, añadimos tambien la debug.dll */
if(debug) {
dlls[numdlls].mem_nombre=imem;
memcpy(&mem[imem],"debug",6);
@ -225,8 +225,8 @@ void compila()
}
/*
* Ahora estamos en la posición donde comienza la rutina, por lo que tenemos
* que guardar la posición actual en el offset que guardamos en salto_import
* Ahora estamos en la posición donde comienza la rutina, por lo que tenemos
* que guardar la posición actual en el offset que guardamos en salto_import
*/
mem[salto_import]=imem;
@ -240,7 +240,7 @@ void compila()
g2(ljmp,salto_import+1);
/* Ya está !! :) */
/* Ya está !! :) */
/* Preparamos la cabecera del bytecode */
mem[2]=imem;
@ -249,26 +249,26 @@ void compila()
mem[5]=iloc_len-iloc;
mem[6]=iloc;
mem[7]=0; /* Antes imem+iloc (inicio textos), ahora no se utiliza */
mem[8]=imem+iloc; /* Número de elementos ocupados en mem[] */
mem[8]=imem+iloc; /* Número de elementos ocupados en mem[] */
/*
* mem[0] se usa para almacenar flags para el ejecutable. En el caso de DIV 2,
* éstas eran:
* éstas eran:
* +1 = El programa es un setup de sonido (setup_program)
* +128 = El programa invoca al trazador nada más ejecutarse (compilado con F12)
* +512 = Se ignoran los errores de ejecución (ignore_errors)
* +128 = El programa invoca al trazador nada más ejecutarse (compilado con F12)
* +512 = Se ignoran los errores de ejecución (ignore_errors)
* +1024= Modo DEMO (mensaje en el centro de la pantalla parpadeando diciendo
* "VERSIÓN DE DEMOSTRACIÓN")
* "VERSIÓN DE DEMOSTRACIÓN")
*/
/*
* nosotros usaremos las siguientes:
* +16 = El exe lleva incluidas las DLL's
* A ver como lo hacemos en Linux.. 1) con temporales o 2) hurgando en el codigo
* de dlopen y demas y haciendonos una pekeña lib (esto es mas aconsejable)
* de dlopen y demas y haciendonos una pekeña lib (esto es mas aconsejable)
* +32 = El exe lleva incluido el PAK
* +64 = Compilado en modo debug
* +128 = Igual que en DIV2, el programa invoca al trazador nada más ejecutarse (se
* +128 = Igual que en DIV2, el programa invoca al trazador nada más ejecutarse (se
* ha usado la orden "trazar programa" en el IDE)
* +512 = ignore_errors, igual que en DIV2
*/
@ -355,7 +355,7 @@ void compila()
free(q); free(p);
m=l*2;
q=(byte*)e_malloc(m);
if(!compress(q,&m,varptr,l)) { /* nºvariables,longitud_datos_descomp,longitud_datos_comp,datos_comp... */
if(!compress(q,&m,varptr,l)) { /* nºvariables,longitud_datos_descomp,longitud_datos_comp,datos_comp... */
fwrite(&num_indexed_vars,1,4,f);
fwrite(&l,1,4,f);
fwrite(&m,1,sizeof(unsigned long),f);
@ -371,7 +371,7 @@ void compila()
fwrite(&start_lin,1,4,f);
fwrite(&start_dbg,1,4,f);
}
fwrite(&stub_size,1,4,f); /* Ultimos 4 bytes siempre son el tamaño del stub */
fwrite(&stub_size,1,4,f); /* Ultimos 4 bytes siempre son el tamaño del stub */
fclose(f);
} else {
free(q);
@ -409,7 +409,7 @@ void compila()
/*
* void test_buffer(int **bufer, int *maximo, int n);
* Comprueba los límites de un buffer de generación de código
* Comprueba los límites de un buffer de generación de código
*/
void test_buffer(int **buffer,int *maximo,int n)
{
@ -566,17 +566,17 @@ void sentencia(void) {
if (pieza==p_step) {
lexico();
step=constante();
if (from<to && step<=0) error(4,62); /* el valor step no es válido */
if (from<to && step<=0) error(4,62); /* el valor step no es válido */
if (from>to && step>=0) error(4,62);
} else {
if (from<to) step=1; else step=-1;
}
g2(lcar,from); /* Asignación del from */
g2(lcar,from); /* Asignación del from */
g1(lasi); g1(lasp);
im1=imem; /* Inicio del bucle */
if (dir>=0) { /* Comparación de la condición de permanencia */
if (dir>=0) { /* Comparación de la condición de permanencia */
g2(lcar,dir);
} else {
g2(lcar,-dir); g1(laid);
@ -593,7 +593,7 @@ void sentencia(void) {
if (pieza!=p_end) error(0,57); inicio_sentencia(); /* esperando END */
lexico();
im3=imem; /* Posición del continue */
im3=imem; /* Posición del continue */
if (dir>=0) { /* Incremento y vuelta al inicio del bucle */
g2(lcar,dir);
@ -787,7 +787,7 @@ void sentencia(void) {
/*
* Funciones de generación de código
* Funciones de generación de código
*/
void g1(int op) {
@ -799,7 +799,7 @@ void g2(int op, int pa) {
}
/*
* Optimización peephole de código intermedio EML
* Optimización peephole de código intermedio EML
*/
void gen(int param, int op, int pa)
@ -958,7 +958,7 @@ void gen(int param, int op, int pa)
} else if (code[15].op==lcar){
if (mem[imem-1]==1) remove_code(1);
else if (mem[imem-1]!=0) {
code[15].op=mem[imem-2]=lcardiv; /* Un cardiv nunca será "cardiv 0" */
code[15].op=mem[imem-2]=lcardiv; /* Un cardiv nunca será "cardiv 0" */
optimizado=1;
}
} break;
@ -1054,7 +1054,7 @@ void grabar_sentencia(void)
}
/*
* Agrega información de depurado al ejecutable
* Agrega información de depurado al ejecutable
*/
void escribe_lin(FILE* f)
@ -1077,15 +1077,15 @@ void escribe_lin(FILE* f)
fclose(f);
errormem();
}
/* escribe el tamaño del codigo descomprimido */
/* escribe el tamaño del codigo descomprimido */
fwrite(&b,1,4,f);
/* escribe el tamaño del codigo comprimido */
/* escribe el tamaño del codigo comprimido */
fwrite(&l,1,4,f);
/* escribe el codigo comprimido */
fwrite(progcomp,1,l,f);
free(progcomp);
/* Escribe el tamaño del LIN */
/* Escribe el tamaño del LIN */
#ifdef _DEBUG
printf("dbg: linsize: %d\n",linsize);
#endif
@ -1094,7 +1094,7 @@ void escribe_lin(FILE* f)
ediv_lin=fopen("ediv.lin","w");
fprintf(ediv_lin,"linsize: %d\n",linsize);
#endif
/* Escribe la información LIN (offset de cada sentencia en el prg y en el bytecode) */
/* Escribe la información LIN (offset de cada sentencia en el prg y en el bytecode) */
fseek(linf,0,SEEK_SET);
while((b=fgetc(linf))!=EOF) {
fputc(b,f);
@ -1120,7 +1120,7 @@ void escribe_lin(FILE* f)
/*
* Escribe información sobre los objetos
* Escribe información sobre los objetos
*/
void escribe_dbg(FILE* f)
{
@ -1135,7 +1135,7 @@ void escribe_dbg(FILE* f)
int v0,v1,v2,v3,v4,v5;
} ob;
/* Cabecera de sección DBG */
/* Cabecera de sección DBG */
fwrite(&num_obj,4,1,f);
fwrite(&num_obj_predefinidos,4,1,f);
n=(int)&obj[0];
@ -1157,11 +1157,11 @@ void escribe_dbg(FILE* f)
ob.v5=(int)obj[n].sglo.items3;
if (obj[n].tipo==tpsgl || obj[n].tipo==tpslo) ob.v1=(ob.v1-(int)&obj[0])/sizeof(struct objeto);
/* OJO ! que no se pueden añadir objetos aquí (ver uso de &obj[0] y sizeof(struct objeto)) */
/* OJO ! que no se pueden añadir objetos aquí (ver uso de &obj[0] y sizeof(struct objeto)) */
fwrite(&ob,sizeof(ob),1,f);
}
/* Escribe el tamaño del vector de nombres */
/* Escribe el tamaño del vector de nombres */
n=(int)ivnom.b-(int)vnom;
fwrite(&n,4,1,f);

View file

@ -46,14 +46,14 @@ int iloc_len; /* final de las variables locales incluyendo las privadas */
/*
* mem[] vector de memoria destino
* imem puntero para la generación de datos y código
* imem_max fin de la memoria destino (indice máximo de mem[])
* imem puntero para la generación de datos y código
* imem_max fin de la memoria destino (indice máximo de mem[])
* iloc inicio en mem[] de las variables locales (inicializadas)
* iloc_len longitud de las variables locales
*/
/*
* Inserción en la tabla de expresiones, acceso a variables:
* Inserción en la tabla de expresiones, acceso a variables:
*
* vglo &vglo ptr
* tglo[_exp] &tglo <_exp> add rng ptr
@ -84,43 +84,43 @@ int case_sensitive;
/*
* MNEMÓNICOS BYTECODE EML
* MNEMÓNICOS BYTECODE EML
*/
#define lnop 0 /* * No operación */
#define lnop 0 /* * No operación */
#define lcar 1 /* valor Carga una constante en pila */
#define lasi 2 /* Saca valor, offset y mete el valor en [offset] */
#define lori 3 /* Or lógico */
#define lori 3 /* Or lógico */
#define lxor 4 /* Xor, or exclusivo */
#define land 5 /* And lógico, operador sobre condiciones */
#define ligu 6 /* Igual, operador logico de comparación */
#define land 5 /* And lógico, operador sobre condiciones */
#define ligu 6 /* Igual, operador logico de comparación */
#define ldis 7 /* Distinto, true si los 2 valores son diferentes */
#define lmay 8 /* Mayor, comparación con signo */
#define lmay 8 /* Mayor, comparación con signo */
#define lmen 9 /* Menor, idem */
#define lmei 10 /* Menor o igual */
#define lmai 11 /* Mayor o igual */
#define ladd 12 /* Suma dos constantes */
#define lsub 13 /* Resta, operación binaria */
#define lmul 14 /* Multiplicación */
#define ldiv 15 /* División de enteros */
#define lmod 16 /* Módulo, resto de la división */
#define lneg 17 /* Negación, cambia de signo una constante */
#define lsub 13 /* Resta, operación binaria */
#define lmul 14 /* Multiplicación */
#define ldiv 15 /* División de enteros */
#define lmod 16 /* Módulo, resto de la división */
#define lneg 17 /* Negación, cambia de signo una constante */
#define lptr 18 /* Pointer, saca offset y mete [offset] */
#define lnot 19 /* Negación binaria, bit a bit */
#define lnot 19 /* Negación binaria, bit a bit */
#define laid 20 /* Suma id a la constante de la pila */
#define lcid 21 /* Carga id en la pila */
#define lrng 22 /* rango Realiza una comparación de rango */
#define ljmp 23 /* offset Salta a una dirección de mem[] */
#define ljpf 24 /* offset Salta si un valor es falso a una dirección */
#define lfun 25 /* código Llamada a un proceso interno, ej. signal() (obsoleto, ver lext) */
#define lrng 22 /* rango Realiza una comparación de rango */
#define ljmp 23 /* offset Salta a una dirección de mem[] */
#define ljpf 24 /* offset Salta si un valor es falso a una dirección */
#define lfun 25 /* código Llamada a un proceso interno, ej. signal() (obsoleto, ver lext) */
#define lcal 26 /* offset Crea un nuevo proceso en el programa */
#define lret 27 /* Auto-eliminación del proceso */
#define lret 27 /* Auto-eliminación del proceso */
#define lasp 28 /* Desecha un valor apilado */
#define lfrm 29 /* Detiene por este frame la ejecución del proceso */
#define lcbp 30 /* num_par Inicializa el puntero a los parámetros locales */
#define lcpa 31 /* Saca offset, lee parámetro [offset] y bp++ */
#define lfrm 29 /* Detiene por este frame la ejecución del proceso */
#define lcbp 30 /* num_par Inicializa el puntero a los parámetros locales */
#define lcpa 31 /* Saca offset, lee parámetro [offset] y bp++ */
#define ltyp 32 /* bloque Define el tipo de proceso actual (colisiones) */
#define lpri 33 /* offset Salta a la dirección, y carga var. privadas */
#define lcse 34 /* offset Si switch <> expresión, salta al offset */
#define lpri 33 /* offset Salta a la dirección, y carga var. privadas */
#define lcse 34 /* offset Si switch <> expresión, salta al offset */
#define lcsr 35 /* offset Si switch no esta en el rango, salta al offset */
#define lshr 36 /* Rotacion a la derecha (modo C, >>) */
#define lshl 37 /* Rotacion a la izquierda (modo C, <<) */
@ -128,26 +128,26 @@ int case_sensitive;
#define lpti 39 /* Pointer e incremento */
#define ldpt 40 /* Decremento y pointer */
#define lptd 41 /* Pointer y decremento */
#define lada 42 /* Add-asignación */
#define lsua 43 /* Sub-asignación */
#define lmua 44 /* Mul-asignación */
#define ldia 45 /* Div-asignación */
#define lmoa 46 /* Mod-asignación */
#define lana 47 /* And-asignación */
#define lora 48 /* Or-asignación */
#define lxoa 49 /* Xor-asignación */
#define lsra 50 /* Shr-asignación */
#define lsla 51 /* Shl-asignación */
#define lpar 52 /* num_par_pri Define el número de parámetros privados */
#define lrtf 53 /* Auto-eliminación del proceso, devuelve un valor */
#define lada 42 /* Add-asignación */
#define lsua 43 /* Sub-asignación */
#define lmua 44 /* Mul-asignación */
#define ldia 45 /* Div-asignación */
#define lmoa 46 /* Mod-asignación */
#define lana 47 /* And-asignación */
#define lora 48 /* Or-asignación */
#define lxoa 49 /* Xor-asignación */
#define lsra 50 /* Shr-asignación */
#define lsla 51 /* Shl-asignación */
#define lpar 52 /* num_par_pri Define el número de parámetros privados */
#define lrtf 53 /* Auto-eliminación del proceso, devuelve un valor */
#define lclo 54 /* offset Crea un clon del proceso actual */
#define lfrf 55 /* Pseudo-Frame (frame a un porcentaje) */
#define limp 56 /* offset text Importa una DLL externa */
#define lext 57 /* código Llama a una función externa */
#define lext 57 /* código Llama a una función externa */
#define lchk 58 /* Comprueba la validez de un identificador */
#define ldbg 59 /* Invoca al debugger */
/* Instrucciones añadidas para la optimización (DIV 2.0) */
/* Instrucciones añadidas para la optimización (DIV 2.0) */
#define lcar2 60 /* car + car */
#define lcar3 61 /* car + car + car */
#define lcar4 62 /* car + car + car + car */
@ -167,31 +167,31 @@ int case_sensitive;
#define lcarsub 76 /* car + sub */
#define lcardiv 77 /* car + div */
/* Instrucciones añadidas para el manejo de caracteres */
/* Instrucciones añadidas para el manejo de caracteres */
#define lptrchr 78 /* Pointer, saca (index, offset) y mete [offset+byte index] */
#define lasichr 79 /* Saca (valor, index, offset) y mete el valor en [offset+byte index] */
#define liptchr 80 /* Incremento y pointer */
#define lptichr 81 /* Pointer e incremento */
#define ldptchr 82 /* Decremento y pointer */
#define lptdchr 83 /* Pointer y decremento */
#define ladachr 84 /* Add-asignación */
#define lsuachr 85 /* Sub-asignación */
#define lmuachr 86 /* Mul-asignación */
#define ldiachr 87 /* Div-asignación */
#define lmoachr 88 /* Mod-asignación */
#define lanachr 89 /* And-asignación */
#define lorachr 90 /* Or-asignación */
#define lxoachr 91 /* Xor-asignación */
#define lsrachr 92 /* Shr-asignación */
#define lslachr 93 /* Shl-asignación */
#define lcpachr 94 /* Saca offset, lee parámetro [offset] y bp++ */
#define ladachr 84 /* Add-asignación */
#define lsuachr 85 /* Sub-asignación */
#define lmuachr 86 /* Mul-asignación */
#define ldiachr 87 /* Div-asignación */
#define lmoachr 88 /* Mod-asignación */
#define lanachr 89 /* And-asignación */
#define lorachr 90 /* Or-asignación */
#define lxoachr 91 /* Xor-asignación */
#define lsrachr 92 /* Shr-asignación */
#define lslachr 93 /* Shl-asignación */
#define lcpachr 94 /* Saca offset, lee parámetro [offset] y bp++ */
/* Instrucciones añadidas para el manejo de cadenas */
/* Instrucciones añadidas para el manejo de cadenas */
#define lstrcpy 95 /* Saca si, di, y hace strcpy(mem[di],[si]) (deja di en pila) */
#define lstrfix 96 /* Amplia una cadena antes de meter un char en ella */
#define lstrcat 97 /* Concatena dos cadenas (opera como strcpy) */
#define lstradd 98 /* Suma dos strings "en el aire" y deja en pila el puntero al aire */
#define lstrdec 99 /* Añade o quita caracteres a una cadena */
#define lstrdec 99 /* Añade o quita caracteres a una cadena */
#define lstrsub 100 /* Quita caracteres a una cadena (-=) */
#define lstrlen 101 /* Sustituye una cadena por su longitud */
#define lstrigu 102 /* Comparacion de igualdad de dos cadenas */
@ -200,39 +200,39 @@ int case_sensitive;
#define lstrmen 105 /* Cadena menor */
#define lstrmei 106 /* Cadena mayor o igual */
#define lstrmai 107 /* Cadena menor o igual */
#define lcpastr 108 /* Carga un parámetro en una cadena */
#define lcpastr 108 /* Carga un parámetro en una cadena */
/* Instrucciones añadidas para el manejo de Words */
/* Instrucciones añadidas para el manejo de Words */
#define lptrwor 109 /* Pointer, saca (index, offset) y mete [offset+byte index] */
#define lasiwor 110 /* Saca (valor, index, offset) y mete el valor en [offset+byte index] */
#define liptwor 111 /* Incremento y pointer */
#define lptiwor 112 /* Pointer e incremento */
#define ldptwor 113 /* Decremento y pointer */
#define lptdwor 114 /* Pointer y decremento */
#define ladawor 115 /* Add-asignación */
#define lsuawor 116 /* Sub-asignación */
#define lmuawor 117 /* Mul-asignación */
#define ldiawor 118 /* Div-asignación */
#define lmoawor 119 /* Mod-asignación */
#define lanawor 120 /* And-asignación */
#define lorawor 121 /* Or-asignación */
#define lxoawor 122 /* Xor-asignación */
#define lsrawor 123 /* Shr-asignación */
#define lslawor 124 /* Shl-asignación */
#define lcpawor 125 /* Saca offset, lee parámetro [offset] y bp++ */
#define ladawor 115 /* Add-asignación */
#define lsuawor 116 /* Sub-asignación */
#define lmuawor 117 /* Mul-asignación */
#define ldiawor 118 /* Div-asignación */
#define lmoawor 119 /* Mod-asignación */
#define lanawor 120 /* And-asignación */
#define lorawor 121 /* Or-asignación */
#define lxoawor 122 /* Xor-asignación */
#define lsrawor 123 /* Shr-asignación */
#define lslawor 124 /* Shl-asignación */
#define lcpawor 125 /* Saca offset, lee parámetro [offset] y bp++ */
/* Miscelánea */
/* Miscelánea */
#define lnul 126 /* Comprueba que un puntero no sea NULL */
/* Instrucciones añadidas en eDIV */
#define lextasp 127 /* Combinación de ext y asp, sustituye a funasp */
/* Instrucciones añadidas en eDIV */
#define lextasp 127 /* Combinación de ext y asp, sustituye a funasp */
struct { /* Peephole, "mirilla" para el optimizador */
int dir; /* Dirección */
int param; /* Indica si ese opcode tiene parámetro */
int dir; /* Dirección */
int param; /* Indica si ese opcode tiene parámetro */
int op; /* Opcode */
} code[16]; /* En code[15] debe quedar siempre la última instrucción generada */
} code[16]; /* En code[15] debe quedar siempre la última instrucción generada */
/* Informacion para temporal de debug (posicion en mem y fuente de cada sentencia) */
FILE * linf; /* En este temporal guardamos la info y luego lo agregamos al exe */

View file

@ -117,9 +117,9 @@ void lee_ediv_cfg(char* ediv_cfg)
break;
case 3: /* _case_sensitive */
lexico();
memcpy(lower+129,"üéâäàåçêëèïîìäåéææôöòûùÿöü¢£¥áíóú",35);
memcpy(lower+129,"üéâäàåçêëèïîìäåéææôöòûùÿöü¢£¥áíóú",35);
memcpy(lower+'A',"ABCDEFGHIJKLMNOPQRSTUVWXYZ",26);
lower['Ñ']='Ñ';
lower['Ñ']='Ñ';
break;
case 4: /* _ignore_errors */
lexico();

View file

@ -34,7 +34,7 @@ void muestra_motd();
void conecta(char *servidor, char *archivo);
#else
# include <dlfcn.h> /* ¿será igual en BeOS? */
# include <dlfcn.h> /* ¿será igual en BeOS? */
# include <dirent.h>
#endif
@ -138,7 +138,7 @@ int main(int argc, char *argv[])
}
#endif
else {
printf(translate(13),argv[i]); /* parámetro erróneo */
printf(translate(13),argv[i]); /* parámetro erróneo */
exit(1);
}
}
@ -180,7 +180,7 @@ int main(int argc, char *argv[])
exit(0);
#endif
default:
printf(translate(15),argv[i][j]); /* parámetro erróneo */
printf(translate(15),argv[i][j]); /* parámetro erróneo */
exit(1);
}
j++;
@ -197,7 +197,7 @@ int main(int argc, char *argv[])
hayprog=2;
break;
default:
printf(translate(13),argv[i]); /* parámetro erróneo */
printf(translate(13),argv[i]); /* parámetro erróneo */
exit(1);
}
}
@ -341,7 +341,7 @@ int main(int argc, char *argv[])
/*
* void *e_malloc(size_t size)
* Idéntico a malloc, pero con errormsg automático
* Idéntico a malloc, pero con errormsg automático
*
* Retorna:
* El numero de bytes de memoria alojados o sale si no se puede reservar la memoria.
@ -374,7 +374,7 @@ void errormem()
/*
* Gestión de errores
* Gestión de errores
*/
int _le,_t;
byte *_ie;
@ -431,7 +431,7 @@ void error(word tipo, word num, ...)
#ifdef MULTI_ERROR
if(n_errors>20)
printf("Demasiados errores. Compilación interrumpida.\n");
printf("Demasiados errores. Compilación interrumpida.\n");
if(num==1 || num==2 || num==6 || n_errors>20) {
printf("edivc: Finalizado - %d advertencias, %d errores\n",n_warnings,n_errors);

View file

@ -38,11 +38,11 @@ struct objeto * ob2;
int creaobj;
int numparams;
byte decl_struct=0; /* 1 si se está declarando un struct */
byte struct_reserved=0; /* 1 si se está declarando la estructura reserved */
byte decl_struct=0; /* 1 si se está declarando un struct */
byte struct_reserved=0; /* 1 si se está declarando la estructura reserved */
/* Errores específicos en la ejecución de una DLL */
/* Errores específicos en la ejecución de una DLL */
void dll_error(int error, ...)
{
va_list opparam;

View file

@ -86,7 +86,7 @@ void init_rnd_coder(int n, char * clave)
}
/*
* Funci¢n de encriptaci¢n/desencriptaci¢n
* Funci¢n de encriptaci¢n/desencriptaci¢n
*/
void coder(byte * ptr, int len, char * clave)

View file

@ -29,7 +29,7 @@ int tipo_factor=0; /* idem */
/*
* Analisis de una condición (genera código para calcularla)
* Analisis de una condición (genera código para calcularla)
*/
void condicion(void) {
@ -58,7 +58,7 @@ void con0() { /* Operadores con asociatividad de derecha a izquierda <- */
con1();
if ((p=pieza)==p_asig || (p>=p_add_asig && p<=p_shl_asig)) {
error(0,69); /* asignación dentro de una condición */
error(0,69); /* asignación dentro de una condición */
}
}
@ -105,7 +105,7 @@ void con2() {
/*
* Analisis de una expresión (genera código para calcularla)
* Analisis de una expresión (genera código para calcularla)
*/
void expresion(void) {
byte * __ierror, * _ierror;
@ -120,7 +120,7 @@ void expresion(void) {
}
/* expresiones de parámetros */
/* expresiones de parámetros */
void expresion_cpa(void) {
byte * __ierror, * _ierror;
int _linea;
@ -143,7 +143,7 @@ void expresion_cpa(void) {
g1(lcpawor);
} else if ((*(_exp-1)).tipo==eoper && (*(_exp-1)).token==p_string) {
_exp--; generar_expresion(); g1(lcpastr);
} else error(4,72); /* parámetro no válido */
} else error(4,72); /* parámetro no válido */
linea=_linea; ierror=__ierror;
}
@ -259,7 +259,7 @@ void generar_expresion(void) {
case p_pointerbyte: g1(lptrchr); break;
case p_string: break; /* Es como un p_pointer nulo, que no se hace */
default: error(4,11); /* expresión incorrecta */
default: error(4,11); /* expresión incorrecta */
} break;
default: error(4,11);
}
@ -268,7 +268,7 @@ void generar_expresion(void) {
/*
* Analisis de una expresión constante
* Analisis de una expresión constante
* No se procesan valores locales ni llamadas a otros procesos
*/
int constante (void) {
@ -307,7 +307,7 @@ int constante (void) {
case p_not: pila[i]^=-1; break;
case p_shr: pila[i-1]>>=pila[i]; i--; break;
case p_shl: pila[i-1]<<=pila[i]; i--; break;
default: error(4,54); /* se esperaba una expresión constante */
default: error(4,54); /* se esperaba una expresión constante */
} break;
default: error(4,54);
}while (++e!=_exp);
@ -316,7 +316,7 @@ int constante (void) {
}
/*
* Análisis de una expresión a *tabexp
* Análisis de una expresión a *tabexp
*/
void exp00(int tipo_exp) {
@ -367,8 +367,8 @@ void exp0() { /* Operadores con asociatividad de derecha a izquierda <- */
exp00(-1);
(*_exp).tipo=eoper; (*_exp++).token=p_strsub;
(*_exp).tipo=eoper; (*_exp++).token=p_string; /* Sigue habiendo una cadena en la pila */
} else error(0,12); /* asignación a cadena incorrecta */
} else error(0,13); /* asignación incorrecta */
} else error(0,12); /* asignación a cadena incorrecta */
} else error(0,13); /* asignación incorrecta */
} tipo_factor=0;
}
@ -390,7 +390,7 @@ void exp2() {
tf=tipo_factor;
lexico(); exp3();
if (tf==2 || tipo_factor==2) {
/* OJO, p==q no se hará el strcmp() si son dos punteros a cadenas */
/* OJO, p==q no se hará el strcmp() si son dos punteros a cadenas */
p+=p_strigu-p_igu;
(*_exp).tipo=eoper; (*_exp++).token=p;
tipo_factor=0;
@ -468,7 +468,7 @@ void unario() {
if ((*(_exp-2)).tipo==econs && (*(_exp-2)).valor==0) _exp-=2;
else error(4,14); /* &words[<exp>] ??? */
} else if ((*(_exp-1)).tipo==eoper && (*(_exp-1)).token==p_string) {
/* &cadena ð cadena */
/* &cadena ð cadena */
} else error(4,15); /* no se puede calcular el offset */
} else if (p==p_inc || p==p_dec) {
if ((*(_exp-1)).tipo==eoper && (*(_exp-1)).token==p_pointer) {
@ -492,11 +492,11 @@ void unario() {
} else error(4,16); /* no se puede realizar el incremento */
} else if (p==p_pointer) {
if ((*(_exp-1)).tipo==eoper && (*(_exp-1)).token==p_pointerchar) {
/* *cadena[0] ð cadena[0] */
/* *cadena[0] ð cadena[0] */
} else if ((*(_exp-1)).tipo==eoper && (*(_exp-1)).token==p_pointerbyte) {
/* *cadena[0] ð cadena[0] */
/* *cadena[0] ð cadena[0] */
} else if ((*(_exp-1)).tipo==eoper && (*(_exp-1)).token==p_pointerword) {
/* *cadena[0] ð cadena[0] */
/* *cadena[0] ð cadena[0] */
} else if ((*(_exp-1)).tipo==eoper && (*(_exp-1)).token==p_string) {
/* *cadena == cadena */
} else {
@ -521,8 +521,8 @@ void exp6() { /* Operador de acceso a variables o tablas locales ajenas */
/*
* OJO, el <p_punto> DEBE SER LO SEGUNDO que el <factor>
* introduzca en la <expresión>, no quedan más cojones.
* (bueno, si, hacer aquí una búsqueda del p_punto entre e-1 y _exp ...)
* introduzca en la <expresión>, no quedan más cojones.
* (bueno, si, hacer aquí una búsqueda del p_punto entre e-1 y _exp ...)
*/
if ((*e).tipo==eoper && (*e).token==p_punto)
@ -601,18 +601,18 @@ void factor(void) {
(*_exp++).valor=((*o).cglo.totalen+5)/4; break;
case tvglo: case tvloc:
(*_exp++).valor=1; break;
default: error(0,24); /* no se puede calcular el tamaño */
default: error(0,24); /* no se puede calcular el tamaño */
} lexico(); if (pieza!=p_cerrar) error(3,18); lexico(); /* esperando ')' */
break;
case p_struct: /* Se comprueba la declaración de un puntero a struct parámetro */
case p_struct: /* Se comprueba la declaración de un puntero a struct parámetro */
if (parametros<=0) {
if (error_25==25) error(1,25); else error(0,error_25);
} else {
lexico();
if (pieza!=p_pointer) error(0,26); /* No se define el pointer así */
if (pieza!=p_pointer) error(0,26); /* No se define el pointer así */
lexico(); if (pieza!=p_id) error(1,27); obs=o;
if ((*obs).tipo==tnone) error(0,28); /* No se define el pointer así */
if ((*obs).tipo==tnone) error(0,28); /* No se define el pointer así */
if ((*obs).tipo!=tsglo && (*obs).tipo!=tsloc) error(0,28);
lexico(); ob=o;
analiza_pointer_struct(tpslo,iloc++,obs);
@ -623,7 +623,7 @@ void factor(void) {
(*_exp).tipo=eoper; (*_exp++).token=p_pointer;
} break;
case p_string: /* Se comprueba la declaración de un string parámetro */
case p_string: /* Se comprueba la declaración de un string parámetro */
if (parametros<=0) {
if (error_25==25) error(1,25); else error(0,error_25);
} else {
@ -671,7 +671,7 @@ void factor(void) {
(*_exp).tipo=eoper; (*_exp++).token=p_string;
} break;
case p_byte: /* Se comprueba la declaración de un byte parámetro */
case p_byte: /* Se comprueba la declaración de un byte parámetro */
if (parametros<=0) {
if (error_25==25) error(1,25); else error(0,error_25);
} else {
@ -703,7 +703,7 @@ void factor(void) {
(*_exp).tipo=eoper; (*_exp++).token=p_pointerbyte;
} break;
case p_word: /* Se comprueba la declaración de un word parámetro */
case p_word: /* Se comprueba la declaración de un word parámetro */
if (parametros<=0) {
if (error_25==25) error(1,25); else error(0,error_25);
} else {
@ -735,14 +735,14 @@ void factor(void) {
(*_exp).tipo=eoper; (*_exp++).token=p_pointerword;
} break;
case p_int: /* Se comprueba la declaración de un int parámetro */
case p_int: /* Se comprueba la declaración de un int parámetro */
if (parametros<=0) {
if (error_25==25) error(1,25); else error(0,error_25);
} else {
lexico();
if (pieza==p_pointer) {
case p_pointer: /* Declaración de un puntero a int parámetro */
case p_pointer: /* Declaración de un puntero a int parámetro */
if (parametros<=0) {
if (error_25==25) error(1,25); else error(0,error_25);
} parametros++;
@ -878,7 +878,7 @@ void factor(void) {
}
if (pieza!=p_corce) error(3,19); /* esperando ']' */
lexico();
} else { /* mi_byte ð mi_byte[0] */
} else { /* mi_byte ð mi_byte[0] */
(*_exp).tipo=econs; (*_exp++).valor=0;
} (*_exp).tipo=eoper; (*_exp++).token=p_pointerbyte ; break;
@ -916,7 +916,7 @@ void factor(void) {
}
if (pieza!=p_corce) error(3,19); /* esperando ']' */
lexico();
} else { /* mi_byte ð mi_byte[0] */
} else { /* mi_byte ð mi_byte[0] */
(*_exp).tipo=econs; (*_exp++).valor=0;
} (*_exp).tipo=eoper; (*_exp++).token=p_pointerword; break;
@ -1074,7 +1074,7 @@ void factor(void) {
}
if (pieza!=p_corce) error(3,19); /* esperando ']' */
lexico();
} else { /* mi_byte ð mi_byte[0] */
} else { /* mi_byte ð mi_byte[0] */
(*_exp).tipo=econs; (*_exp++).valor=0;
} (*_exp).tipo=eoper; (*_exp++).token=p_pointerbyte ; break;
@ -1115,7 +1115,7 @@ void factor(void) {
}
if (pieza!=p_corce) error(3,19); /* esperando ']' */
lexico();
} else { /* mi_byte ð mi_byte[0] */
} else { /* mi_byte ð mi_byte[0] */
(*_exp).tipo=econs; (*_exp++).valor=0;
} (*_exp).tipo=eoper; (*_exp++).token=p_pointerword; break;
@ -1197,7 +1197,7 @@ void factor(void) {
case tproc:
ob=o; lexico(); if (pieza!=p_abrir) error(3,22); lexico(); /* esperando '(' */
p=0; while (pieza!=p_cerrar) { /* pðnum_par */
p=0; while (pieza!=p_cerrar) { /* pðnum_par */
p++;
exp00(0);
if (pieza!=p_cerrar) {
@ -1208,12 +1208,12 @@ void factor(void) {
if (p!=(*ob).proc.num_par) error(1,38); /* numero de parametros incorrecto */
(*_exp).tipo=ecall; (*_exp++).objeto=ob; lexico(); break;
// POR HACER: implementar soporte para qsort (ver comentario aquí arriba)
// POR HACER: implementar soporte para qsort (ver comentario aquí arriba)
case tfext:
ob=o; lexico(); if (pieza!=p_abrir) error(3,22); /* esperando '(' */
lexico();
p=0; while (pieza!=p_cerrar) { /* pðnum_par */
p=0; while (pieza!=p_cerrar) { /* pðnum_par */
p++;
exp00(0);
if (pieza!=p_cerrar) {
@ -1357,7 +1357,7 @@ void factor_struct(void) {
(*_exp).tipo=eoper; (*_exp++).token=p_add;
}
if (pieza!=p_corce) error(3,19); lexico(); /* esperando ']' */
} else { /* mi_byte ð mi_byte[0] */
} else { /* mi_byte ð mi_byte[0] */
(*_exp).tipo=econs; (*_exp++).valor=0;
} struct_pointer=p_pointerbyte; break;
@ -1394,7 +1394,7 @@ void factor_struct(void) {
(*_exp).tipo=eoper; (*_exp++).token=p_add;
}
if (pieza!=p_corce) error(3,19); lexico(); /* esperando ']' */
} else { /* mi_byte ð mi_byte[0] */
} else { /* mi_byte ð mi_byte[0] */
(*_exp).tipo=econs; (*_exp++).valor=0;
} struct_pointer=p_pointerword; break;
@ -1540,7 +1540,7 @@ void factor_struct(void) {
(*_exp).tipo=eoper; (*_exp++).token=p_add;
}
if (pieza!=p_corce) error(3,19); lexico(); /* esperando ']' */
} else { /* mi_byte ð mi_byte[0] */
} else { /* mi_byte ð mi_byte[0] */
(*_exp).tipo=econs; (*_exp++).valor=0;
} struct_pointer=p_pointerbyte; break;
@ -1577,7 +1577,7 @@ void factor_struct(void) {
(*_exp).tipo=eoper; (*_exp++).token=p_add;
}
if (pieza!=p_corce) error(3,19); lexico(); /* esperando ']' */
} else { /* mi_byte ð mi_byte[0] */
} else { /* mi_byte ð mi_byte[0] */
(*_exp).tipo=econs; (*_exp++).valor=0;
} struct_pointer=p_pointerword; break;

View file

@ -21,12 +21,12 @@
#ifndef __EDIV_EXPRESION_H_
#define __EDIV_EXPRESION_H_
#define max_exp 512 /* Máximo número de elementos en una expresión */
#define long_pila 2048 /* Longitud de la pila en ejecución */
#define max_exp 512 /* Máximo número de elementos en una expresión */
#define long_pila 2048 /* Longitud de la pila en ejecución */
int pila[long_pila+max_exp+64]; /* cálculo de expresiones (compilación y ejecución) */
int pila[long_pila+max_exp+64]; /* cálculo de expresiones (compilación y ejecución) */
/* Tabla de elementos en la evaluación de una expresión */
/* Tabla de elementos en la evaluación de una expresión */
struct exp_ele {
byte tipo; /* econs, eoper, erango, ewhoami, ecall */
@ -39,14 +39,14 @@ struct exp_ele {
#define econs 0 /* Constante // Tipos de elementos en tabexp[] */
#define eoper 1 /* Operador */
#define erango 2 /* Comprobación de rango */
#define erango 2 /* Comprobación de rango */
#define ewhoami 3 /* Identificador de proceso */
#define ecall 4 /* Creación de un proceso */
/*#define efunc 5*/ /* Llamada a una función interna */
#define efext 6 /* Llamada a una función externa */
#define echeck 7 /* Comprobació¢n de validez de un identificador */
#define ecall 4 /* Creación de un proceso */
/*#define efunc 5*/ /* Llamada a una función interna */
#define efext 6 /* Llamada a una función externa */
#define echeck 7 /* Comprobació¢n de validez de un identificador */
#define estring 8 /* Cadena de texto (su offset constante) */
#define enull 9 /* Comprobaci¢n de NULL pointer */
#define enull 9 /* Comprobaci¢n de NULL pointer */
/*
* Prototipos

View file

@ -25,7 +25,7 @@
extern struct keywords {
char keyword[20]; /* Max. 20 caracteres por keyword */
char code; /* Code del keyword */
void* hfuncion; /* Puntero a la función correspondiente (para no usar SWITCH) */
void* hfuncion; /* Puntero a la función correspondiente (para no usar SWITCH) */
} table[];
extern struct prioridades {
@ -38,8 +38,8 @@ extern struct prioridades {
/* CM = TIPO DE COMANDO */
#define CM_SEPARATE 0 /* Se pone entre linea y linea */
#define CM_STATEMENT 1 /* Statement */
#define CM_CALL 2 /* Llamada a una función o un proceso */
#define CM_SIGNO 3 /* Asignación */
#define CM_CALL 2 /* Llamada a una función o un proceso */
#define CM_SIGNO 3 /* Asignación */
#define CM_DATA 4 /* Cualquier dato */
/* ST = STATEMENTS */

View file

@ -35,11 +35,11 @@ int detecta_idioma_iso(char* lang)
{
int i;
static char getid[NUM_LANGUAGES][3] = {
"es", /* español */
"es", /* español */
"it", /* italiano */
"pt", /* portugués */
"en", /* inglés */
"ca", /* catalán */
"pt", /* portugués */
"en", /* inglés */
"ca", /* catalán */
"eu" /* euskera */
};
if(lang==NULL) return DEFAULT_LANGUAGE;
@ -62,11 +62,11 @@ int detecta_idioma()
#ifdef _WIN32
int i;
static int getid[NUM_LANGUAGES] = {
0x0a, /* español */
0x0a, /* español */
0x10, /* italiano */
0x16, /* portugués */
0x09, /* inglés */
0x03, /* catalán */
0x16, /* portugués */
0x09, /* inglés */
0x03, /* catalán */
0x2d /* euskera */
};
LANGID lang;

View file

@ -1,4 +1,4 @@
/* Copyright (C) 1999 José Luis Cebrián Pagüe
/* Copyright (C) 1999 José Luis Cebrián Pagüe
* Copyright (C) 2000-2002 Sion, Ltd
*
* This program is free software; you can redistribute it and/or modify
@ -21,7 +21,7 @@
#include "main.h"
#include "lower.h"
/* Tabla de conversión de caracteres MS-DOS a Windows */
/* Tabla de conversión de caracteres MS-DOS a Windows */
int dos_chars=0;
@ -44,7 +44,7 @@ byte dos_to_win[256] = {
173, 177, 61, 190, 182, 167, 247, 184, 176, 168, 183, 185, 179, 178, 166, 160
};
/* Tabla de conversión de caracteres Windows a MS-DOS */
/* Tabla de conversión de caracteres Windows a MS-DOS */
byte win_to_dos[256] =
{
@ -91,16 +91,16 @@ void inicializa_lower()
"abcdefghijklmnopqrstuvwxyz");
#ifdef RESPETAR_ACENTOS
set_c_lower ("ÁÉÍÓÚÑÇÀÈÌÒÙÄËÏÖÜÝÂÊÎÔÛÆÃÅÕ",
"áéíóúñçàèìòùäëïöüýâêîôûæãåõ");
set_c_lower("áéíóúñçàèìòùäëïöüýâêîôûæãåõ",
"áéíóúñçàèìòùäëïöüýâêîôûæãåõ");
set_c_lower ("ÁÉÍÓÚÑÇÀÈÌÒÙÄËÏÖÜÝÂÊÎÔÛÆÃÅÕ",
"áéíóúñçàèìòùäëïöüýâêîôûæãåõ");
set_c_lower("áéíóúñçàèìòùäëïöüýâêîôûæãåõ",
"áéíóúñçàèìòùäëïöüýâêîôûæãåõ");
#else
set_c_lower ("ÁÉÍÓÚÑÇÀÈÌÒÙÄËÏÖÜÝÂÊÎÔÛÆÃÅÕ",
"aeiouncaeiouaeiouyaeiouæaao");
set_c_lower ("áéíóúñÑçÇàèìòùäëïöüýâêîôûæãåõÁÉÍÓÚ",
"aeiounnccaeiouaeiouyaeiouÆaaoaeiou");
set_c_lower ("ÁÉÍÓÚÑÇÀÈÌÒÙÄËÏÖÜÝÂÊÎÔÛÆÃÅÕ",
"aeiouncaeiouaeiouyaeiouæaao");
set_c_lower ("áéíóúñÑçÇàèìòùäëïöüýâêîôûæãåõÁÉÍÓÚ",
"aeiounnccaeiouaeiouyaeiouÆaaoaeiou");
#endif
set_c_lower("1234567890#$_ºª","1234567890#$_ºª");
set_c_lower("1234567890#$_ºª","1234567890#$_ºª");
}

View file

@ -19,7 +19,7 @@
*/
/*
* Precarga de las estructuras léxicas, analiza el fichero ltlex.def
* Precarga de las estructuras léxicas, analiza el fichero ltlex.def
*/
#include <stdio.h>
@ -43,9 +43,9 @@ void ltlex_error(int error)
void analiza_ltlex(void){
byte *_buf, * buf; /* Buffer del texto y puntero al carácter actual */
byte *_buf, * buf; /* Buffer del texto y puntero al carácter actual */
byte cont=1; /* 0 indica final del archivo */
int len; /* Tamaño del archivo */
int len; /* Tamaño del archivo */
struct lex_ele * e; /* Puntero al lex_case correspondiente */
FILE * def; /* Stream del fichero */
@ -65,7 +65,7 @@ void analiza_ltlex(void){
fseek(def,0,SEEK_SET);
len=fread(buf,1,len,def);
/* El carácter ASCII 0 indica final del fichero */
/* El carácter ASCII 0 indica final del fichero */
*(buf+len)=0;
#ifdef _DEBUG
@ -89,10 +89,10 @@ void analiza_ltlex(void){
case lf:
linea++;
break;
/* Los ; indican línea de comentario */
/* Los ; indican línea de comentario */
case ';':
while (*buf!=cr && *buf!=lf) buf++; break;
/* El símbolo & indica definición de token */
/* El símbolo & indica definición de token */
case '&':
*buf=lower[*buf];
if (*buf>='0' && *buf<='9')
@ -118,7 +118,7 @@ void analiza_ltlex(void){
buf--; ivnom.b++;
} else if (t>=0x78 && t<=0x7b) { /* Analiza un delimitador de literal */
lex_case[*buf]=(struct lex_ele*)l_lit;
} else { /* Analiza un nuevo símbolo */
} else { /* Analiza un nuevo símbolo */
if ((e=lex_case[*buf])==0) {
if (num_nodos++==max_nodos)
ltlex_error(3);

View file

@ -33,11 +33,11 @@
#define swap(a,b) {(a)^=(b);(b)^=(a);(a)^=(b);}
unsigned int stub_size; /* tamaño del STUB.EXE (está almacenado en edivrun.lib) */
unsigned int stub_size; /* tamaño del STUB.EXE (está almacenado en edivrun.lib) */
byte *prog, *tprog; /* buffer donde se almacena el PRG */
size_t progsize; /* tamaño del PRG */
char nombreprog[256]; /* nombre del PRG sin extensión */
size_t progsize; /* tamaño del PRG */
char nombreprog[256]; /* nombre del PRG sin extensión */
char *fichero_prg; /* nombre del archivo a compilar */
char outfilename[256]; /* archivo de salida */
char edivrun_lib[256]; /* archivo stub (distinto para cada sistema) */
@ -50,7 +50,7 @@ int n_errors;
int n_warnings;
int linea;
/* Información sobre los errores */
/* Información sobre los errores */
/*
* int numero_error=-1;
@ -65,8 +65,8 @@ word error_25; /* Para emitir "se esperaba una sentencia" */
void *e_malloc(size_t size); /* un malloc con mensaje de error */
void e_free(void *puntero); /* un free que fija el puntero a NULL tras liberarlo */
void errormem(); /* mensaje "memoria insuficiente" */
void save_error(word tipo); /* guarda una posición de error */
void error(word tipo,word num, ...); /* error de compilación */
void save_error(word tipo); /* guarda una posición de error */
void error(word tipo,word num, ...); /* error de compilación */
void warning(int num, ...); /* warning en el proceso */
#endif

View file

@ -203,7 +203,7 @@ void dll_func()
if(fichero_dll->d_type==DT_REG) {
char dllkey[256]="dll_priority:";
#ifdef _DEBUG
printf("dbg: Librería encontrada: %s/%s\n",dir,fichero_dll->d_name);
printf("dbg: Librería encontrada: %s/%s\n",dir,fichero_dll->d_name);
#endif
carga=1;
sprintf(fichdll,"%s/%s",dir,fichero_dll->d_name);

View file

@ -71,7 +71,7 @@ int crea_objeto(byte * nombre, int nparam)
o=(*o).anterior;
}
//while(o!=NULL && (((*o).tipo==tfext) ^^ ((*o).fext.num_par!=nparam))) o=(*o).anterior;
if(o==NULL) { // ok, lo añadimos a la lista
if(o==NULL) { // ok, lo añadimos a la lista
o=iobj++; (*o).anterior=*ptr_o; *ptr_o=o;
(*o).name=(byte*)(ptr_o+1);
(*o).member=member;
@ -97,7 +97,7 @@ int crea_objeto(byte * nombre, int nparam)
////////////////////
// PRECOMPILACIÓN //
// PRECOMPILACIÓN //
////////////////////
void psintactico(void)
@ -136,13 +136,13 @@ lex_scan:
case l_err:
if (coment) { pieza=p_rem; _source++; }
else error(0,5); // carácter no reconocido
else error(0,5); // carácter no reconocido
_source++;
break;
case l_eof:
pieza=p_ultima;
if (coment) error(0,1); // llegó el final dentro de un comentario
if (coment) error(0,1); // llegó el final dentro de un comentario
break;
case l_cr:
@ -280,8 +280,8 @@ lex_scan:
}
if (pieza==p_ultima) {
if (coment) error(0,1); // llegó el final dentro de un comentario
else error(0,4); // símbolo no reconocido (¡¡creo!!) TODO: comprobar
if (coment) error(0,1); // llegó el final dentro de un comentario
else error(0,4); // símbolo no reconocido (¡¡creo!!) TODO: comprobar
}
break;
@ -294,7 +294,7 @@ lex_scan:
//////////////////////////////////////
// ANÁLISIS SINTÁCTICO DEL PROGRAMA //
// ANÁLISIS SINTÁCTICO DEL PROGRAMA //
//////////////////////////////////////
void sintactico(void)
@ -327,9 +327,9 @@ void sintactico(void)
optimizar=1;*/
if(case_sensitive) {
memcpy(lower+129,"üéâäàåçêëèïîìäåéææôöòûùÿöü¢£¥áíóú",35);
memcpy(lower+129,"üéâäàåçêëèïîìäåéææôöòûùÿöü¢£¥áíóú",35);
memcpy(lower+'A',"ABCDEFGHIJKLMNOPQRSTUVWXYZ",26);
lower['Ñ']='Ñ';
lower['Ñ']='Ñ';
}
if (pieza==p_compiler_options) {
@ -360,9 +360,9 @@ void sintactico(void)
case 3: // _case_sensitive
lexico();
case_sensitive=1;
memcpy(lower+129,"üéâäàåçêëèïîìäåéææôöòûùÿöü¢£¥áíóú",35);
memcpy(lower+129,"üéâäàåçêëèïîìäåéææôöòûùÿöü¢£¥áíóú",35);
memcpy(lower+'A',"ABCDEFGHIJKLMNOPQRSTUVWXYZ",26);
lower['Ñ']='Ñ';
lower['Ñ']='Ñ';
break;
case 4: // _ignore_errors
lexico();
@ -399,18 +399,18 @@ void sintactico(void)
comprueba_null=0;
break;
default:
error(0,8); // se esperaba una opción de compilación
error(0,8); // se esperaba una opción de compilación
break;
}
} else {
if (!free_sintax) {
if (pieza==p_program) {
error(3,9); // se esperaba ';' (¡creo!) TODO: comprobar
error(3,9); // se esperaba ';' (¡creo!) TODO: comprobar
//lexico();
break;
}
else {
error(0,8); // se esperaba una opción de compilación
error(0,8); // se esperaba una opción de compilación
//lexico();
// puede ser peligroso
while(pieza!=p_coma && pieza!=p_ptocoma && pieza!=p_program)
@ -431,7 +431,7 @@ void sintactico(void)
if (pieza!=p_program && pieza!=p_setup_program) error(4,44); // esperando PROGRAM
if (pieza==p_setup_program)
warning(1); // característica desfasada
warning(1); // característica desfasada
//if ((lins=fopen(cWork,"wb"))==NULL) c_error(0,0); // cWork="system\exec.ins"
@ -515,7 +515,7 @@ void sintactico(void)
if (pieza==p_pointer) { // Se define un puntero a struct
lexico(); if (pieza!=p_id) error(1,27); ob=o; // esperando el nombre de la estructura
if ((*ob).tipo==tnone) error(0,28); // No se define el pointer así
if ((*ob).tipo==tnone) error(0,28); // No se define el pointer así
if ((*ob).tipo!=tsglo && (*ob).tipo!=tsloc) error(0,28);
lexico();
puntero_a_struct:
@ -874,7 +874,7 @@ void sintactico(void)
if (pieza==p_pointer) { // Se define un puntero a struct
lexico(); if (pieza!=p_id) error(1,27); ob=o; // esperando el nombre de la estructura
if ((*ob).tipo==tnone) error(0,28); // No se define el pointer así
if ((*ob).tipo==tnone) error(0,28); // No se define el pointer así
if ((*ob).tipo!=tsglo && (*ob).tipo!=tsloc) error(0,28);
lexico();
puntero_a_struct_local:
@ -1211,10 +1211,10 @@ void sintactico(void)
}
//
// Código principal
// Código principal
//
// Genera el salto al inicio del código (long_header)
// Genera el salto al inicio del código (long_header)
mem[0]=0; mem[1]=imem; iloc_len=iloc;
@ -1236,10 +1236,10 @@ void sintactico(void)
while (pieza==p_ptocoma || pieza==p_coma) lexico();
}
// esta instrucción realiza un salto a la rutina donde están los limp
// (importación de DLLs). Como esta la colocaremos al final (porque, hasta
// que lleguemos al final no sabremos qué dlls hay que importar), dejamos
// el parámetro de ljmp de momento a 0 y guardamos el offset en
// esta instrucción realiza un salto a la rutina donde están los limp
// (importación de DLLs). Como esta la colocaremos al final (porque, hasta
// que lleguemos al final no sabremos qué dlls hay que importar), dejamos
// el parámetro de ljmp de momento a 0 y guardamos el offset en
// salto_import, donde al final sustituiremos el 0 por el offset adecuado.
salto_import=imem+1;
@ -1302,10 +1302,10 @@ void sintactico(void)
while (pieza!=p_cerrar) {
(*ob).proc.num_par++; expresion_cpa();
if (pieza!=p_cerrar) if (pieza!=p_coma) error(3,35); // se esperaba una coma
else { lexico(); if (pieza==p_cerrar) error(3,36); } // se esperaba otro parámetro
else { lexico(); if (pieza==p_cerrar) error(3,36); } // se esperaba otro parámetro
}
if ((*ob).usado) {
if (num_par==(*ob).proc.num_par) (*ob).usado=0; else error(0,38); // nº de parametros incorrecto
if (num_par==(*ob).proc.num_par) (*ob).usado=0; else error(0,38); // nº de parametros incorrecto
}
pasa_ptocoma(); final_sentencia();
@ -1313,7 +1313,7 @@ void sintactico(void)
g2(lpar,parametros-1);
}
parametros=-1; // Para que los parámetros se puedan repetir como PRIVATE
parametros=-1; // Para que los parámetros se puedan repetir como PRIVATE
num_par=mem[_imem]=(*ob).proc.num_par;
@ -1362,7 +1362,7 @@ lex_scan:
case l_err:
if (coment) { pieza=p_rem; _source++; }
else error(0,5); // carácter no reconocido
else error(0,5); // carácter no reconocido
_source++;
break;
@ -1527,7 +1527,7 @@ lex_scan:
pieza=p_num;
pieza_num=0;
// Número hexadecimal
// Número hexadecimal
if (*_source=='0' && lower[*(_source+1)]=='x') {
_source+=2;
while ((int)lex_case[*_source]==l_num ||
@ -1580,8 +1580,8 @@ lex_scan:
}
if (pieza==p_ultima) {
if (coment) error(0,1); // llegó el final dentro de un comentario
else error(0,4); // símbolo no reconocido (¡¡creo!!)
if (coment) error(0,1); // llegó el final dentro de un comentario
else error(0,4); // símbolo no reconocido (¡¡creo!!)
}
break;
@ -1594,7 +1594,7 @@ lex_scan:
//-----------------------------------------------------------------------------
// Adivina cual será la siguiente pieza lexica leida (y donde estará)
// Adivina cual será la siguiente pieza lexica leida (y donde estará)
//-----------------------------------------------------------------------------
// No genera nunca errores
@ -1754,7 +1754,7 @@ void pasa_ptocoma(void)
//
// *** OJO *** No se debe permitir #id.tvpri
// pues fallaría a no ser que #id fuera del mismo tipo que el
// pues fallaría a no ser que #id fuera del mismo tipo que el
// proceso actual (hermano)
void analiza_private(void) {
@ -1776,7 +1776,7 @@ void analiza_private(void) {
if (pieza==p_pointer) { // Se define un puntero a struct
lexico(); if (pieza!=p_id) error(1,27); ob=o; // esperando el nombre de la estructura
if ((*ob).tipo==tnone) error(0,28); // No se define el pointer así
if ((*ob).tipo==tnone) error(0,28); // No se define el pointer así
if ((*ob).tipo!=tsglo && (*ob).tipo!=tsloc) error(0,28);
lexico();
puntero_a_struct:
@ -1867,7 +1867,7 @@ void analiza_private(void) {
} else {
if (pieza!=p_id) error(1,29); // esperando el nombre de la cadena
ob=o; if ((*ob).tipo!=tnone) { // Mira si se repite un parámetro ...
ob=o; if ((*ob).tipo!=tnone) { // Mira si se repite un parámetro ...
if (parametros==-1 && (*ob).param==1 && (*ob).bloque==bloque_actual) {
if ((*ob).tipo==tcloc) { // Se repite un string
save_error(0);
@ -1883,8 +1883,8 @@ void analiza_private(void) {
lexico();
}
} else dup=255;
if (dup!=(*ob).cloc.totalen) error(4,41); // la longitud no coincide con la declaración anterior
else if (pieza==p_asig) error(0,42); // no se puede inicializar un parámetro
if (dup!=(*ob).cloc.totalen) error(4,41); // la longitud no coincide con la declaración anterior
else if (pieza==p_asig) error(0,42); // no se puede inicializar un parámetro
else {
while (pieza==p_ptocoma || pieza==p_coma) lexico();
(*ob).param++;
@ -1955,10 +1955,10 @@ void analiza_private(void) {
if (pieza!=p_id) error(1,23); // esperando un nombre
ob=o; if ((*ob).tipo!=tnone) {
if (parametros==-1 && (*ob).param==1 && (*ob).bloque==bloque_actual) {
if ((*ob).tipo==tbloc) { // Se repite un byte parámetro
if ((*ob).tipo==tbloc) { // Se repite un byte parámetro
lexico();
if (pieza==p_corab) error(2,33); // no se puede pasar una tabla como parámetro
else if (pieza==p_asig) error(0,42); // no se puede inicializar un parámetro
if (pieza==p_corab) error(2,33); // no se puede pasar una tabla como parámetro
else if (pieza==p_asig) error(0,42); // no se puede inicializar un parámetro
else {
while (pieza==p_ptocoma || pieza==p_coma) {
lexico();
@ -2047,10 +2047,10 @@ void analiza_private(void) {
if (pieza!=p_id) error(1,23); // esperando un nombre
ob=o; if ((*ob).tipo!=tnone) {
if (parametros==-1 && (*ob).param==1 && (*ob).bloque==bloque_actual) {
if ((*ob).tipo==twloc) { // Se repite un word parámetro
if ((*ob).tipo==twloc) { // Se repite un word parámetro
lexico();
if (pieza==p_corab) error(2,33); // no se puede pasar una tabla como parámetro
else if (pieza==p_asig) error(0,42); // no se puede inicializar un parámetro
if (pieza==p_corab) error(2,33); // no se puede pasar una tabla como parámetro
else if (pieza==p_asig) error(0,42); // no se puede inicializar un parámetro
else {
while (pieza==p_ptocoma || pieza==p_coma) {
lexico();
@ -2139,14 +2139,14 @@ void analiza_private(void) {
} else {
// Si el objeto no es tnone, se repite un parámetro o bien es un error
// Si el objeto no es tnone, se repite un parámetro o bien es un error
ob=o; if ((*ob).tipo!=tnone) {
if (parametros==-1 && (*ob).param==1 && (*ob).bloque==bloque_actual) {
if ((*ob).tipo==tvloc) { // Se repite una variable local
lexico();
if (pieza==p_corab) error(2,33); // no se puede pasar una tabla como parámetro
else if (pieza==p_asig) error(0,42); // no se puede inicializar un parámetro
if (pieza==p_corab) error(2,33); // no se puede pasar una tabla como parámetro
else if (pieza==p_asig) error(0,42); // no se puede inicializar un parámetro
else {
while (pieza==p_ptocoma || pieza==p_coma) {
lexico();
@ -2209,7 +2209,7 @@ void analiza_private(void) {
}
//-----------------------------------------------------------------------------
// Análisis de una declaración pointer (int, word o byte)
// Análisis de una declaración pointer (int, word o byte)
//-----------------------------------------------------------------------------
struct objeto * analiza_pointer(int tipo, int offset)
@ -2220,7 +2220,7 @@ struct objeto * analiza_pointer(int tipo, int offset)
if (pieza!=p_id) error(1,23); // esperando un nombre
ob=o; if ((*ob).tipo!=tnone) {
if (parametros==-1 && (*ob).param==1 && (*ob).bloque==bloque_actual) {
if ((*ob).tipo==tipo) { // Se repite un pointer parámetro como private
if ((*ob).tipo==tipo) { // Se repite un pointer parámetro como private
save_error(0); lexico();
len1=-1; len2=-1; len3=-1;
if (pieza==p_corab) { lexico();
@ -2234,8 +2234,8 @@ struct objeto * analiza_pointer(int tipo, int offset)
}
} if (pieza!=p_corce) error(3,19); lexico(); // esperando ']'
}
if (len1!=(*ob).pilo.len1 || len2!=(*ob).pilo.len2 || len3!=(*ob).pilo.len3) error(4,41); // la longitud no coincide con la declaración anterior
else if (pieza==p_asig) error(0,42); // no se puede inicializar un parámetro
if (len1!=(*ob).pilo.len1 || len2!=(*ob).pilo.len2 || len3!=(*ob).pilo.len3) error(4,41); // la longitud no coincide con la declaración anterior
else if (pieza==p_asig) error(0,42); // no se puede inicializar un parámetro
else {
while (pieza==p_ptocoma || pieza==p_coma) lexico();
(*ob).param++; // No permite volver a redeclararlo
@ -2269,7 +2269,7 @@ struct objeto * analiza_pointer(int tipo, int offset)
//-----------------------------------------------------------------------------
int analiza_struct(int offstruct) { // tras " struct id [ <const> ] " // idðmember
int analiza_struct(int offstruct) { // tras " struct id [ <const> ] " // idðmember
int len=0,dup,i,_itxt,_imem;
struct objeto * ob;
struct objeto * old_member,* member2;
@ -2288,7 +2288,7 @@ int analiza_struct(int offstruct) { // tras " struct id [ <const> ] " // id
old_member=member; member=NULL; lexico(); member=old_member;
if (pieza!=p_id) error(1,27); ob=o; // esperando el nombre de la estructura
if ((*ob).tipo==tnone) error(0,28); // No se define el pointer así
if ((*ob).tipo==tnone) error(0,28); // No se define el pointer así
if ((*ob).tipo!=tsglo && (*ob).tipo!=tsloc) error(0,28);
lexico();
puntero_a_struct:
@ -2629,7 +2629,7 @@ int analiza_struct(int offstruct) { // tras " struct id [ <const> ] " // id
//
int analiza_struct_local(int offstruct) { // tras " struct id [ <const> ] " // idðmember
int analiza_struct_local(int offstruct) { // tras " struct id [ <const> ] " // idðmember
int len=0,dup,i,_itxt,_iloc;
struct objeto * ob;
struct objeto * old_member,* member2;
@ -2648,7 +2648,7 @@ int analiza_struct_local(int offstruct) { // tras " struct id [ <const> ] " // i
old_member=member; member=NULL; lexico(); member=old_member;
if (pieza!=p_id) error(1,27); ob=o; // esperando el nombre de la estructura
if ((*ob).tipo==tnone) error(0,28); // No se define el pointer así
if ((*ob).tipo==tnone) error(0,28); // No se define el pointer así
if ((*ob).tipo!=tsglo && (*ob).tipo!=tsloc) error(0,28);
lexico();
puntero_a_struct:
@ -2993,7 +2993,7 @@ int analiza_struct_local(int offstruct) { // tras " struct id [ <const> ] " // i
//
int analiza_struct_private(int offstruct) { // tras " struct id [ <const> ] " // idðmember
int analiza_struct_private(int offstruct) { // tras " struct id [ <const> ] " // idðmember
int len=0,dup,i,_itxt,_imem;
struct objeto * ob;
struct objeto * old_member,* member2;
@ -3012,7 +3012,7 @@ int analiza_struct_private(int offstruct) { // tras " struct id [ <const> ] " //
old_member=member; member=NULL; lexico(); member=old_member;
if (pieza!=p_id) error(1,27); ob=o; // esperando el nombre de la estructura
if ((*ob).tipo==tnone) error(0,28); // No se define el pointer así
if ((*ob).tipo==tnone) error(0,28); // No se define el pointer así
if ((*ob).tipo!=tsglo && (*ob).tipo!=tsloc) error(0,28);
lexico();
puntero_a_struct:
@ -3366,7 +3366,7 @@ int analiza_pointer_struct(int tipo, int offset, struct objeto * estructura)
if (pieza!=p_id) error(1,23); // esperando un nombre
ob=o; if ((*ob).tipo!=tnone) {
if (parametros==-1 && (*ob).param==1 && (*ob).bloque==bloque_actual) {
if ((*ob).tipo==tipo) { // Se repite un pointer parámetro como private
if ((*ob).tipo==tipo) { // Se repite un pointer parámetro como private
save_error(0); lexico();
items1=-1; items2=-1; items3=-1;
if (pieza==p_corab) { lexico();
@ -3380,8 +3380,8 @@ int analiza_pointer_struct(int tipo, int offset, struct objeto * estructura)
}
} if (pieza!=p_corce) error(3,19); lexico(); // esperando ']'
}
if (items1!=(*ob).psgl.items1 || items2!=(*ob).psgl.items2 || items3!=(*ob).psgl.items3) error(4,41); // la longitud no coincide con la declaración anterior
else if (pieza==p_asig) error(0,42); // no se puede inicializar un parámetro
if (items1!=(*ob).psgl.items1 || items2!=(*ob).psgl.items2 || items3!=(*ob).psgl.items3) error(4,41); // la longitud no coincide con la declaración anterior
else if (pieza==p_asig) error(0,42); // no se puede inicializar un parámetro
else {
(*ob).param++; return(0); // No permite volver a redeclararlo
}
@ -3410,13 +3410,13 @@ int analiza_pointer_struct(int tipo, int offset, struct objeto * estructura)
(*ob).psgl.offset=offset; // del pointer
(*ob).psgl.ostruct=estructura; // struct original
// (*ob).psgl.len_item ð (*((*ob).psgl.ostruct)).len_item;
// (*ob).psgl.len_item ð (*((*ob).psgl.ostruct)).len_item;
return(1);
}
//
// Inicialización de tablas (a mem[imem++])
// Inicialización de tablas (a mem[imem++])
//
// <init> := ( <string> | <exp> [ [p_dup] p_abrir <init> p_cerrar ] )
// [ p_coma <init>]
@ -3455,7 +3455,7 @@ void tglo_init2(int tipo) {
while (1) {
// Mira si finaliza la inicialización de datos
// Mira si finaliza la inicialización de datos
if (pieza==p_cerrar || pieza==p_ptocoma) {
if (*(imemptr-(int)mem+(int)frm)==1 || tipo==1) {
@ -3474,7 +3474,7 @@ void tglo_init2(int tipo) {
return;
}
// Una coma sola, como "3,,4", avanza una posición (y define un 0)
// Una coma sola, como "3,,4", avanza una posición (y define un 0)
if (pieza==p_coma) {
if (*(imemptr-(int)mem+(int)frm)==1 || tipo==1) {
@ -3506,7 +3506,7 @@ void tglo_init2(int tipo) {
} else if (pieza==p_lit || (pieza==p_id && (*o).tipo==tcons && (*o).cons.literal)) {
valor=pieza_num; lexico();
if (pieza==p_abrir || pieza==p_dup) error(2,52); // no se puede duplicar 0 o menos veces (se ha indicado un literal como número de veces)
if (pieza==p_abrir || pieza==p_dup) error(2,52); // no se puede duplicar 0 o menos veces (se ha indicado un literal como número de veces)
// Mete un literal en un dato de tipo string
@ -3569,7 +3569,7 @@ void tglo_init2(int tipo) {
if (frm[imem]==0xdad00000) error(2,46); // se esperaba un literal
}
// Mete un valor numérico en la memoria
// Mete un valor numérico en la memoria
if (*(imemptr-(int)mem+(int)frm)==1 || tipo==1) { // En un word
@ -3614,13 +3614,13 @@ void tglo_init2(int tipo) {
if (dup<1) error(2,52); // no se puede duplicar 0 o menos veces
lexico();
// Analiza la secuencia como otra inicialización ...
// Analiza la secuencia como otra inicialización ...
oimemptr=imemptr;
tglo_init2(tipo);
if (pieza!=p_cerrar) error(3,18); // esperando ')'
// Y la duplica el número de veces indicado
// Y la duplica el número de veces indicado
if (dup>1) {
len=imemptr-oimemptr;
@ -3633,7 +3633,7 @@ void tglo_init2(int tipo) {
imem=((int)imemptr-(int)mem+3)/4;
_imem=((int)oimemptr+n-(int)mem+3)/4;
if (frm[imem]==0xdad00000) {
if (frm[_imem]!=0xdad00000) error(3,53); // inicialización incorrecta
if (frm[_imem]!=0xdad00000) error(3,53); // inicialización incorrecta
else if (mem[imem]!=mem[_imem]) error(3,53);
} else if (frm[_imem]==0xdad00000) error(3,53);
}

View file

@ -28,7 +28,7 @@ byte* nombre_program; /* nombre del programa, para guardarlo en el exe */
/*
* A continuacion viene el asunto de los objetos. Para el que no se haya estudiado a fondo
* el DIVC.CPP (ejem) diré que un objeto es cada una de las variables, constantes, tipos
* el DIVC.CPP (ejem) diré que un objeto es cada una de las variables, constantes, tipos
* de proceso (declarados con PROCESS), tipos de funcion (declarados con FUNCTION), funciones
* de DLL, estructuras, etc. etc. etc.
* Estudiaros la siguiente tabla para entenderlo mejor...
@ -44,11 +44,11 @@ byte* nombre_program; /* nombre del programa, para guardarlo en el exe */
struct objeto {
byte tipo; /* Tipo de objeto */
byte usado; /* Indica si el objeto ha sido usado antes de definirse */
byte * name; /* Puntero al nombre, para algún listado */
byte * ierror;/* Puntero al código para determinar la columna si es necesario */
int linea; /* Línea de código fuente, para informar del error */
int param; /* Indica que es un objeto declarado en los parámetros */
int dll; /* En qué dll se declara el objeto, -1 = pertenece al prg */
byte * name; /* Puntero al nombre, para algún listado */
byte * ierror;/* Puntero al código para determinar la columna si es necesario */
int linea; /* Línea de código fuente, para informar del error */
int param; /* Indica que es un objeto declarado en los parámetros */
int dll; /* En qué dll se declara el objeto, -1 = pertenece al prg */
struct objeto * anterior; /* Anterior objeto de igual nombre */
struct objeto * bloque; /* Bloque de este proceso (0-global/local N-private) */
struct objeto * member; /* Indica a que struct pertenece (0-n/a) */
@ -81,14 +81,14 @@ struct objeto {
} cglo,pcgl;
struct { /* Struct */
int offset;
int len_item; /* Número de campos */
int len_item; /* Número de campos */
int totalitems; /* Numero total de registros */
int items1,items2,items3; /* -1 si n/a */
} sglo,sloc;
struct { /* Struct pointer */
int offset;
struct objeto * ostruct; /* Puntero al struct */
int totalitems; /* Número total de registros */
int totalitems; /* Número total de registros */
int items1,items2,items3; /* -1 si n/a */
} psgl,pslo;
struct { /* Variable local */
@ -116,12 +116,12 @@ struct objeto {
struct { /* Proceso */
struct objeto * bloque;
int offset;
int num_par; /* Número de parámetros */
int num_par; /* Número de parámetros */
} proc;
/*
* qsort requiere como parametros un nombre de estructura y un campo
* Ya le buscaremos una solución (p.ej. una función complementaria a EDIV_Export)
* Ya le buscaremos una solución (p.ej. una función complementaria a EDIV_Export)
*/
struct { /* Funcion externa (DLL) */
@ -144,7 +144,7 @@ struct objeto {
#define tfunc 9
#define tsglo 10 /* Structs */
#define tsloc 11
#define tfext 12 /* Función de una librer¡a externa */
#define tfext 12 /* Función de una librer¡a externa */
#define tbglo 13 /* Byte global */
#define twglo 14 /* Word global */
#define tbloc 15 /* Byte local */
@ -172,33 +172,33 @@ byte * vhash[256]; /* Punteros al vector de nombres; */
/*
* Ahora viene todo lo referente al parser en si, es decir, al analizador léxico y sintáctico.
* También se incluye aquí al evaluador de expresiones (por cierto, usa notación polaca xD)
* El parser de DIV es realmente bueno, y además muy personalizable. Que yo sepa, sólo existe
* un bug en el evaluador de expresiones, al parecer los operadores lógicos no funcionan de
* Ahora viene todo lo referente al parser en si, es decir, al analizador léxico y sintáctico.
* También se incluye aquí al evaluador de expresiones (por cierto, usa notación polaca xD)
* El parser de DIV es realmente bueno, y además muy personalizable. Que yo sepa, sólo existe
* un bug en el evaluador de expresiones, al parecer los operadores lógicos no funcionan de
* igual forma en sus distintas sintaxis, al menos al trabajar con cadenas. Es decir, que un
* AND no devuelve lo mismo que un && (pablo-bug nº1). Pero todo se arreglará con un vistazo
* AND no devuelve lo mismo que un && (pablo-bug nº1). Pero todo se arreglará con un vistazo
* al listado EML ;)
*/
#define max_nodos 128 /* Máximo número de nodos del léxico para símbolos */
#define max_nodos 128 /* Máximo número de nodos del léxico para símbolos */
#define cr 13 /* Retorno de carro */
#define lf 10 /* Salto de linea */
#define tab 9 /* Tabulación */
#define tab 9 /* Tabulación */
/* Valores de lex_case, si no son punteros a lex_simb */
#define l_err 0 /* Caracter desconocido */
#define l_cr 1 /* Fin de linea (l_err Carácter no esperado) */
#define l_cr 1 /* Fin de linea (l_err Carácter no esperado) */
#define l_id 2 /* Identificador o palabra reservada */
#define l_spc 3 /* Espacios y tabulaciones */
#define l_lit 4 /* Literal */
#define l_num 5 /* Constante numérica */
#define l_num 5 /* Constante numérica */
#define l_eof 6 /* Fin de fichero */
/*
* Valores sintácticos o tokens (pieza)
* Valores sintácticos o tokens (pieza)
*/
#define p_ultima 0x00 /* Fin de fichero <EOF> */
#define p_program 0x01
@ -210,7 +210,7 @@ byte * vhash[256]; /* Punteros al vector de nombres; */
#define p_process 0x07
#define p_private 0x08
#define p_struct 0x09
#define p_import 0x0A /* sólo para mostrar el warning de que ya no se usa */
#define p_import 0x0A /* sólo para mostrar el warning de que ya no se usa */
#define p_setup_program 0x0B /* idem */
#define p_string 0x0C
@ -376,16 +376,16 @@ byte * vhash[256]; /* Punteros al vector de nombres; */
#define p_lit 0xfc /* Puntero al literal (txt) en pieza_num */
#define p_id 0xfd /* o es un ptr a vnom (a un ptr al objeto) */
#define p_num 0xfe /* Número en pieza_num */
#define p_num 0xfe /* Número en pieza_num */
/* Tabla de elementos léxicos (distintos tipos de token) */
/* Tabla de elementos léxicos (distintos tipos de token) */
struct lex_ele { byte caracter;
byte token;
struct lex_ele * alternativa;
struct lex_ele * siguiente; }
lex_simb[max_nodos], * ilex_simb, * lex_case[256];
/* Pieza (token) que se está leyendo (ver constantes p_xxxx) */
/* Pieza (token) que se está leyendo (ver constantes p_xxxx) */
int pieza, pieza_num;
struct objeto * o; /* Cuando pieza=p_id, objeto de tipo (**o).tipo */
@ -393,7 +393,7 @@ struct objeto * bloque_actual; /* Bloque que esta siendo analizado *
struct objeto * bloque_lexico; /* Es 0 hasta las privadas del program */
struct objeto * member; /* !=0 al declarar/acceder un miembro de un struct */
/* número de nodos, número de objetos */
/* número de nodos, número de objetos */
int num_nodos, num_obj;
int num_obj_predefinidos;
@ -401,14 +401,14 @@ int num_obj_predefinidos;
/*
* Variables relacionadas con el listado formateado
*/
int coment; /* 0-Código, 1-Dentro de comentario, 2-Anidado, ... */
int coment; /* 0-Código, 1-Dentro de comentario, 2-Anidado, ... */
int old_linea; /* Situación en el fichero del token anterior al último leido */
int old_linea; /* Situación en el fichero del token anterior al último leido */
byte * old_ierror, * old_ierror_end;
/* El último token leido está en (linea,ierror,ierror_end) */
/* El último token leido está en (linea,ierror,ierror_end) */
byte * ultima_linea,cero;
/* Siguiente token -> next_lexico() */

View file

@ -18,7 +18,7 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
// ¡ojo! versión capada, no devuelve errores
// ¡ojo! versión capada, no devuelve errores
#ifdef WIN32
# define el_stub "stub.exe"
@ -112,9 +112,9 @@ void init_rnd_coder(int n, char * clave)
rndb();
}
//ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ
// Funci¢n de encriptaci¢n/desencriptaci¢n
//ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ
//ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ
// Funci¢n de encriptaci¢n/desencriptaci¢n
//ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ
void coder(byte * ptr, int len, char * clave)
{

View file

@ -23,7 +23,7 @@
/*
-Estructura de control
contiene informacion sobre el offset y tamaño del bmp en el fichero .fnt
contiene informacion sobre el offset y tamaño del bmp en el fichero .fnt
para poder leerlo, tambien contiene el offset de la estructura de informacion
-Mapa de caracteres
es la imagen del mapa de caracteres, se copia directamente.

View file

@ -25,7 +25,7 @@
#include "main.h"
#include "varindex.h"
#define MAX_EXTERN_FUNCS 0xFFFF /* ¿Demasiado? */
#define MAX_EXTERN_FUNCS 0xFFFF /* ¿Demasiado? */
#define MAX_EXTFUNC_PARMS 0xFF
#define MAX_DLLS 0xFF
#define MAX_ENTRYPOINTS 0xFF
@ -33,7 +33,7 @@
#define P_SIEMPRE 512 /* yo creo ke esto vale */
#define P_NUNCA -512
char fichdll[256]; /* Nombre de la DLL que se está ejecutando ahora */
char fichdll[256]; /* Nombre de la DLL que se está ejecutando ahora */
/*
@ -89,7 +89,7 @@ typedef void (TYPEOF_Runtime_Error)(int, ...);
typedef void (TYPEOF_Critical_Error)(int, ...);
typedef void (TYPEOF_Custom_Error)(int,char*);
/* Obtiene offset de variable indexada dinámicamente */
/* Obtiene offset de variable indexada dinámicamente */
typedef int (TYPEOF_GetVarOffset)(tipo_t tipo,char* nombre);
/* Finaliza el stub (exit) */
@ -99,7 +99,7 @@ typedef void (TYPEOF_Stub_Quit)(int n);
* ENTRY-POINTS
*
* Estas funciones son llamadas por el STUB en determinados eventos
* (Cuando una DLL hace cierta acción, lo avisa al Stub y el stub se encarga de llamar
* (Cuando una DLL hace cierta acción, lo avisa al Stub y el stub se encarga de llamar
* a las correspondientes rutinas de las dll's, ordenadas por prioridad)
*/
@ -107,7 +107,7 @@ typedef void (TYPEOF_Stub_Quit)(int n);
* Constantes para EDIV_Export_Entrypoint
*/
#define EDIV_set_video_mode 1 // Al activar un nuevo modo de vídeo
#define EDIV_set_video_mode 1 // Al activar un nuevo modo de vídeo
#define EDIV_process_palette 2 // Al cargar una paleta
#define EDIV_process_active_palette 3 // Al modificar la paleta activa (usada en los fades)
#define EDIV_process_sound 4 // Al cargar un efecto sonoro
@ -126,7 +126,7 @@ typedef void (TYPEOF_Stub_Quit)(int n);
#define EDIV_ss_frame 17 // Frame de salvapantallas
#define EDIV_ss_end 18 // Fin de salvapantallas
#define EDIV_frame 19 // En cada frame
#define EDIV_trace 20 // Después de ejecutar cada instrucción de bytecode (solo en debug)
#define EDIV_trace 20 // Después de ejecutar cada instrucción de bytecode (solo en debug)
#define EDIV_debug 21 // Invocar al trazador - sentencia debug (solo en debug)
#define EDIV_first_load 22 // Se ejecuta al cargar la DLL en ejecucion
#define EDIV_quit 23 // Llamado por stub_quit()
@ -134,7 +134,7 @@ typedef void (TYPEOF_Stub_Quit)(int n);
/*
* Call_Entrypoint
*
* Devuelve el número de entrypoints a los que corresponde ese identificador.
* Devuelve el número de entrypoints a los que corresponde ese identificador.
* (0 si no hay ninguno)
*/
int Call_Entrypoint(int ep, ...);
@ -178,9 +178,9 @@ TYPEOF_EDIV_Export_Priority *
typedef int (TYPEOF_ExportaFuncs)(EXPORTAFUNCS_PARAMS_DECLARE);
/* FUNCIÓN EXTERNA */
/* FUNCIÓN EXTERNA */
/* ¡ojo! debe ser igual en export.h */
/* ¡ojo! debe ser igual en export.h */
#define FUNCTION_PARAMS \
int *params, int *sp, \
int mem[], \
@ -275,24 +275,24 @@ struct _fun_params{
/*
* La pila de parametros y su señalador o como se llame
* La pila de parametros y su señalador o como se llame
* int params[MAX_EXTFUNC_PARMS];
* int sp;
*/
void* extfuncs[MAX_EXTERN_FUNCS]; /* tabla de punteros a las funciones de las DLLs (stub) */
int extparms[MAX_EXTERN_FUNCS]; /* nº de parámetros de cada función externa (necesario para la sobrecarga) */
int extparms[MAX_EXTERN_FUNCS]; /* nº de parámetros de cada función externa (necesario para la sobrecarga) */
struct _entrypoints {
int tipo; /* Ver #defines de entrypoints más arriba */
int tipo; /* Ver #defines de entrypoints más arriba */
int dll; /* DLL que contiene este entrypoint */
void* hfuncion; /* Puntero a la función entrypoint de la DLL */
void* hfuncion; /* Puntero a la función entrypoint de la DLL */
} entrypoints[MAX_ENTRYPOINTS];
struct _dlls {
char* nombre; /* nombre de la DLL (ej: "sample.so") */
byte usado; /* si la dll es requerida por el programa */
int mem_nombre; /* posición del nombre en mem[] */
int mem_nombre; /* posición del nombre en mem[] */
int prioridad; /* prioridad por defecto de la DLL */
void* hDLL;
} dlls[MAX_DLLS];
@ -300,9 +300,9 @@ struct _dlls {
int dimem; /* indices para poder devolver offsets de variables segun se van declarando */
int diloc;
int numdlls; /* Número de DLLs encontradas en el directorio */
int n_dlls; /* Número de DLLs requeridas por el programa */
int n_externs; /* Número de funciones importadas */
int n_entrypoints; /* Número de entrypoints declarados */
int numdlls; /* Número de DLLs encontradas en el directorio */
int n_dlls; /* Número de DLLs requeridas por el programa */
int n_externs; /* Número de funciones importadas */
int n_entrypoints; /* Número de entrypoints declarados */
#endif // __EXTERN_H

View file

@ -21,11 +21,11 @@
/*
* IDs de idioma:
* 0 - ES - Español
* 0 - ES - Español
* 1 - IT - Italiano (CicTec)
* 2 - PT - Portugués (tareco)
* 3 - EN - Inglés (de momento Er_Makina :P)
* 4 - CA - Catalán (BenKo)
* 2 - PT - Portugués (tareco)
* 3 - EN - Inglés (de momento Er_Makina :P)
* 4 - CA - Catalán (BenKo)
* 5 - EU - Euskera (Jorge Urreta)
*/

View file

@ -21,13 +21,13 @@
/*
* ARCHIVO DE IDIOMA DE EDIV
* 4 - CATALÁN (ca)
* Autora: Belén Albeza (BenKo)
* 4 - CATALÁN (ca)
* Autora: Belén Albeza (BenKo)
*/
/*
* Errores de compilación
* Errores de compilación
*/
#if TRANSLATE == TRANSLATE_ERROR
@ -36,45 +36,45 @@
/* 1 */ "Ha arribat el final dins d' un comentari",
/* 2 */ "Excedida la capacitat del vector de noms",
/* 3 */ "Literal sense tancar",
/* 4 */ "Símbol no reconegut",
/* 5 */ "Caràcter no reconegut",
/* 4 */ "Símbol no reconegut",
/* 5 */ "Caràcter no reconegut",
/* 6 */ "Excedida la capacitat de la tabla d' objectes",
/* 7 */ "Esperant '='",
/* 8 */ "Esperant una opció de compilació",
/* 8 */ "Esperant una opció de compilació",
/* 9 */ "Esperant ';'",
/* 10 */ "S' esperava un operand",
/* 11 */ "Expresió incorrecta",
/* 12 */ "Asignació a cadena incorrecta",
/* 13 */ "Asignació incorrecta",
/* 11 */ "Expresió incorrecta",
/* 12 */ "Asignació a cadena incorrecta",
/* 13 */ "Asignació incorrecta",
/* 14 */ "No es pot calcular l' offset de la dada",
/* 15 */ "No es pot calcular l' offset",
/* 16 */ "No es pot realitzar l' increment",
/* 17 */ "Local no es pot accedir",
/* 18 */ "Esperant ')'",
/* 19 */ "Esperant ']'",
/* 20 */ "No és un tipus de procés",
/* 21 */ "Esperant el nom del procés",
/* 20 */ "No és un tipus de procés",
/* 21 */ "Esperant el nom del procés",
/* 22 */ "Esperant '('",
/* 23 */ "Esperant un nom",
/* 24 */ "No es pot calcular el tamany",
/* 25 */ "Expresió incorrecta",
/* 26 */ "No es pot rebre una estructura com a paràmetre",
/* 25 */ "Expresió incorrecta",
/* 26 */ "No es pot rebre una estructura com a paràmetre",
/* 27 */ "Esperant el nom de la estructura",
/* 28 */ "Declaració incorrecta de punter a una estructura",
/* 28 */ "Declaració incorrecta de punter a una estructura",
/* 29 */ "Esperant el nom de la cadena",
/* 30 */ "El nom no és nou",
/* 30 */ "El nom no és nou",
/* 31 */ "Cadena de text de longitud negativa",
/* 32 */ "Cadena de text massa llarga",
/* 33 */ "No es pot especificar una tabla com a paràmetre",
/* 33 */ "No es pot especificar una tabla com a paràmetre",
/* 34 */ "Nombre desconegut: %s",
/* 35 */ "S' esperava una coma",
/* 36 */ "S' esperaba altre paràmetre",
/* 36 */ "S' esperaba altre paràmetre",
/* 37 */ "No es pot accedir a dades PRIVATE externes",
/* 38 */ "Nombre de paràmetres incorrecte",
/* 38 */ "Nombre de paràmetres incorrecte",
/* 39 */ "Esperant un element de la estructura",
/* 40 */ "Tabla de longitud negativa",
/* 41 */ "La longitud no coincideix amb la declaració anterior",
/* 42 */ "No es pot inicialitzar un paràmetre",
/* 41 */ "La longitud no coincideix amb la declaració anterior",
/* 42 */ "No es pot inicialitzar un paràmetre",
/* 43 */ "Estructura de longitud negativa",
/* 44 */ "Esperant PROGRAM",
/* 45 */ "Esperant el nom del programa",
@ -85,26 +85,26 @@
/* 50 */ "Valor BYTE fora del rang (0...255)",
/* 51 */ "Valor WORD fora del rang (0...65535)",
/* 52 */ "No es pot duplicar 0 o menys vegades",
/* 53 */ "Inicialització incorrecta",
/* 54 */ "S' esperava una expresió constant",
/* 53 */ "Inicialització incorrecta",
/* 54 */ "S' esperava una expresió constant",
/* 55 */ "Massa valors per a la estructura",
/* 56 */ "Esperant BEGIN",
/* 57 */ "Esperant END",
/* 58 */ "Esperant UNTIL",
/* 59 */ "Esperant una variable",
/* 60 */ "Esperant TO",
/* 61 */ "Sentència FROM incorrecta",
/* 62 */ "El valor STEP no es vàlid",
/* 61 */ "Sentència FROM incorrecta",
/* 62 */ "El valor STEP no es vàlid",
/* 63 */ "Esperant CASE, DEFAULT o END",
/* 64 */ "Esperant ':'",
/* 65 */ "BREAK no apareix dins d' un bucle",
/* 66 */ "CONTINUE no apareix dins d' un bucle",
/* 67 */ "S' esperava una sentència",
/* 68 */ "Expresió sense sentit",
/* 69 */ "Asignació dins d' una condició",
/* 70 */ "Esperant el nomb del procés o funció",
/* 67 */ "S' esperava una sentència",
/* 68 */ "Expresió sense sentit",
/* 69 */ "Asignació dins d' una condició",
/* 70 */ "Esperant el nomb del procés o funció",
/* 71 */ "Esperant PROCESS o FUNCTION",
/* 72 */ "Paràmetre no vàlid",
/* 72 */ "Paràmetre no vàlid",
/* 73 */ "ELSEIF no apareix dins d' un bloc IF" /* SIN COMA */
@ -115,7 +115,7 @@
#elif TRANSLATE == TRANSLATE_WARNING
/* 0 */ "",
/* 1 */ "SETUP_PROGRAM: Característica desfasada",
/* 1 */ "SETUP_PROGRAM: Característica desfasada",
/* 2 */ "IMPORT: Sintaxi antiga, s' ignora" /* SIN COMA */
@ -126,13 +126,13 @@
#elif TRANSLATE == TRANSLATE_DLL_ERROR
/* 1 */ "Sobrepassat buffer de noms d' objecte",
/* 2 */ "Objecte '%s': El nom no és nou",
/* 2 */ "Objecte '%s': El nom no és nou",
/* 3 */ "Massa objectes declarats",
/* 4 */ "Funció '%s': El nom no és nou",
/* 4 */ "Funció '%s': El nom no és nou",
/* 5 */ "Error declarant objecte '%s'",
/* 6 */ "Objecte '%s': Declaració il·legal dins d' struct",
/* 7 */ "Objecte '%s': Declaració d' un membre fora d' struct",
/* 8 */ "Tamany il·legal de l' string '%s'",
/* 6 */ "Objecte '%s': Declaració il·legal dins d' struct",
/* 7 */ "Objecte '%s': Declaració d' un membre fora d' struct",
/* 8 */ "Tamany il·legal de l' string '%s'",
/* 9 */ "EndStruct sense Struct",
/* 10 */ "Una estructura ha de contenir almenys un element" /* SIN COMA */
@ -146,8 +146,8 @@
/* 0 */ "",
/* 1 */ "Arxiu ltlex.def no trobat",
/* 2 */ "S' esperava un valor hexadecimal (&00..&FF)",
/* 3 */ "Massa símbols definits",
/* 4 */ "Símbol no vàlid" /* SIN COMA */
/* 3 */ "Massa símbols definits",
/* 4 */ "Símbol no vàlid" /* SIN COMA */
/*
@ -157,47 +157,47 @@
#elif TRANSLATE == TRANSLATE_COMPILER
/* 0 */ " **** Compilador eDIV " VERSION " ****\n" COPYRIGHT "\n" WEBSITE "\n",
/* 1 */ "ATENCIÓ: Aquesta versió d' eDIV està sense acabar.\nSi us plau, informi de qualsevol bug a: ediv@divsite.net\n",
/* 1 */ "ATENCIÓ: Aquesta versió d' eDIV està sense acabar.\nSi us plau, informi de qualsevol bug a: ediv@divsite.net\n",
/* 2 */ "Ajuda d' opcions de comand:\n\n",
/* 3 */ "%s [opcions] arxiu.prg [executable]\n\n",
/* 4 */ "Llista d' opcions:\n",
/* 5 */ " -h, --help Mostra aquesta ajuda i en sort\n",
/* 6 */ " -d, --debug Genera informació adicional de depurat\n",
/* 6 */ " -d, --debug Genera informació adicional de depurat\n",
/* 7 */ " -l, --list Guarda el llistat EML com a <programa.eml>\n",
/* 8 */ " -t, --table Guarda la tabla d' objectes com a <programa.tab>\n",
/* 9 */ " -c, --check No genera un executable (per comprovar sintaxi, etc.)\n",
/* 10 */ " -s, --system Sistema Operatiu destí (per defecte %s)\n",
/* 11 */ " -v, --version Mostra versió i en sort\n\n",
/* 12 */ "Paràmetre --system: ha d' indicar un sistema destí\nConsulti la documentació per a obtenir ajuda\n",
/* 13 */ "Paràmetre erroni: %s\nUtilitze la opció -h per a veure l' ajuda\n",
/* 14 */ "Paràmetre -s: ha d' indicar un sistema destí\nConsulti la documentació per a obtenir ajuda\n",
/* 15 */ "Paràmetre erroni: -%c\nUtilitze la opció -h per a veure l' ajuda\n",
/* 16 */ "No s'ha especificat un arxiu\nUtilitze la opció -h per a veure l' ajuda\n",
/* 10 */ " -s, --system Sistema Operatiu destí (per defecte %s)\n",
/* 11 */ " -v, --version Mostra versió i en sort\n\n",
/* 12 */ "Paràmetre --system: ha d' indicar un sistema destí\nConsulti la documentació per a obtenir ajuda\n",
/* 13 */ "Paràmetre erroni: %s\nUtilitze la opció -h per a veure l' ajuda\n",
/* 14 */ "Paràmetre -s: ha d' indicar un sistema destí\nConsulti la documentació per a obtenir ajuda\n",
/* 15 */ "Paràmetre erroni: -%c\nUtilitze la opció -h per a veure l' ajuda\n",
/* 16 */ "No s'ha especificat un arxiu\nUtilitze la opció -h per a veure l' ajuda\n",
/* 17 */ "edivc: Error obrint l' arxiu %s.\n",
/* 18 */ "edivc: Compilant: %s\n",
/* 19 */ "edivc: ERROR: No es troba %s\n",
/* 20 */ "edivc: ERROR: Format incorrecte de %s\n",
/* 21 */ "edivc: Interromput (%d advertències)\n",
/* 22 */ "edivc: Finalitzat amb èxit (%d advertències)\n",
/* 21 */ "edivc: Interromput (%d advertències)\n",
/* 22 */ "edivc: Finalitzat amb èxit (%d advertències)\n",
/* 23 */ "edivc: Sortida amb errors\n",
/* 24 */ "edivc: ERROR: Memòria insuficient\n",
/* 24 */ "edivc: ERROR: Memòria insuficient\n",
/* 25 */ "%s:%d:%d: ERROR %d: ",
/* 26 */ "%s:%d: Advertència: ",
/* 26 */ "%s:%d: Advertència: ",
/* 27 */ "Precompilant...\n",
/* 28 */ "Compilant...\n",
/* 29 */ "Error creant arxiu d' intercanvi\n",
/* 30 */ "Generant llistats...\n",
/* 31 */ "Guardant executable...\n",
/* 32 */ "Guardant informació de depurat...\n",
/* 32 */ "Guardant informació de depurat...\n",
/* 33 */ "Error escriguent executable\n",
/* 34 */ "Compilació finalitzada.\n",
/* 34 */ "Compilació finalitzada.\n",
/* 35 */ "%s: ERROR: ",
/* 36 */ "Error creant arxiu %s\n",
/* 37 */ "Llistado d' objectes de %s - eDIV versió " VERSION "\n\n",
/* 37 */ "Llistado d' objectes de %s - eDIV versió " VERSION "\n\n",
/* 38 */ "\tbloque(%u), anterior(%u)\n",
/* 39 */ "Codi EML de %s - eDIV versió " VERSION "\n",
/* 39 */ "Codi EML de %s - eDIV versió " VERSION "\n",
/* 40 */ "edivc: ERROR: %s\n\n",
/* 41 */ "edivc: %s (línia %d) ERROR: %s\n\n",
/* 41 */ "edivc: %s (línia %d) ERROR: %s\n\n",
/* 42 */ "edivc: Interromput - s' han trobat errors\n",
#ifdef _WIN32
/* 43 */ "No es troba cap DLL\n",
@ -206,17 +206,17 @@
/* 43 */ "No es troba cap llibreria\n",
/* 44 */ "Directori %s/ no trobat\n",
#endif
/* 45 */ "Error cargant llibrería %s\n",
/* 45 */ "Error cargant llibrería %s\n",
#ifdef _WIN32
/* 46 */ "No es pot cargar %s\n",
/* 47 */ "No es troba ExportaFuncs en %s - DLL no vàlida\n",
/* 47 */ "No es troba ExportaFuncs en %s - DLL no vàlida\n",
#else
/* 46 */ "No es pot cargar %s (%s)\n",
/* 47 */ "No es troba ExportaFuncs en %s - Llibreria no vàlida (%s)\n",
/* 47 */ "No es troba ExportaFuncs en %s - Llibreria no vàlida (%s)\n",
#endif
/* 48 */ " -n, --news Mostra les últimes notícies d' eDIVCentral i en surt\n",
/* 49 */ "Error: No s' ha configurat un servidor de notícies en ediv.cfg\n",
/* 50 */ "Error: l' arxiu rebut no és del tipus esperat\n" /* SIN COMA */
/* 48 */ " -n, --news Mostra les últimes notícies d' eDIVCentral i en surt\n",
/* 49 */ "Error: No s' ha configurat un servidor de notícies en ediv.cfg\n",
/* 50 */ "Error: l' arxiu rebut no és del tipus esperat\n" /* SIN COMA */
/*
@ -227,102 +227,102 @@
/* FIXMI: traducir esto */
/* 0 */ "ERROR %d: ",
/* 1 */ "eDIV: Error en ejecución",
/* 2 */ "eDIV: Error crítico",
/* 1 */ "eDIV: Error en ejecución",
/* 2 */ "eDIV: Error crítico",
/* 3 */ "Error en %s: ",
/* 4 */ "eDIV: Error en librería dinámica" /* SIN COMA */
/* 4 */ "eDIV: Error en librería dinámica" /* SIN COMA */
/*
* Errores de tiempo de ejecución del stub
* Errores de tiempo de ejecución del stub
*/
#elif TRANSLATE == TRANSLATE_RUNTIME_ERROR
/* 100 */ "No hi ha memòria suficient per a executar el programa.",
/* 100 */ "No hi ha memòria suficient per a executar el programa.",
/* 101 */ "Crida a key() amb un codi de tecla inexistent.",
/* 102 */ "No es va poder carregar la paleta, arxiu no trobat.",
/* 103 */ "Es va intentar carregar un arxiu de paleta invàlid.",
/* 103 */ "Es va intentar carregar un arxiu de paleta invàlid.",
/* 104 */ "Massa arxius FPG oberts al mateix temps.",
/* 105 */ "No es va poder carregar l' arxiu, arxiu no trobat.",
/* 106 */ "Es va intentar carregar un arxiu FPG no vàlid.",
/* 107 */ "Número d' scroll invàlid (ha d' estar entre 0 y 9).",
/* 108 */ "Número de regió invàlid (fora de rang).",
/* 109 */ "Codi d' arxiu invàlido.",
/* 110 */ "Codi de gràfic invàlid.",
/* 106 */ "Es va intentar carregar un arxiu FPG no vàlid.",
/* 107 */ "Número d' scroll invàlid (ha d' estar entre 0 y 9).",
/* 108 */ "Número de regió invàlid (fora de rang).",
/* 109 */ "Codi d' arxiu invàlido.",
/* 110 */ "Codi de gràfic invàlid.",
/* 111 */ "Es va intentar usar un arxiu FPG abans de carregar-lo.",
/* 112 */ "Es necesita un codi de gràfic per a l' scroll.",
/* 112 */ "Es necesita un codi de gràfic per a l' scroll.",
/* 113 */ "S' han carregat massa fonts de lletres.",
/* 114 */ "No es va poder carregar la font, arxiu no trobat.",
/* 115 */ "Es va intentar carregar un arxiu de font no vàlid.",
/* 116 */ "Codi identificador de font de lletres invàlid.",
/* 117 */ "Codi de centrat de text invàlid.",
/* 115 */ "Es va intentar carregar un arxiu de font no vàlid.",
/* 116 */ "Codi identificador de font de lletres invàlid.",
/* 117 */ "Codi de centrat de text invàlid.",
/* 118 */ "Hi ha massa textos actius al programa.",
/* 119 */ "Indentificador de text no vàlid.",
/* 120 */ "Regió de pantalla definida incorrectament.",
/* 121 */ "Es va intentar utilitzar un gràfic que no existeix.",
/* 122 */ "Es va intentar escriure un bloc fora de la memòria.",
/* 119 */ "Indentificador de text no vàlid.",
/* 120 */ "Regió de pantalla definida incorrectament.",
/* 121 */ "Es va intentar utilitzar un gràfic que no existeix.",
/* 122 */ "Es va intentar escriure un bloc fora de la memòria.",
/* 123 */ "No es va poder obrir l' arxiu per a escritura.",
/* 124 */ "No es va poder escriure l' arxiu (veure espai al disc).",
/* 125 */ "Es va intentar llegir un bloc fora de la memòria.",
/* 125 */ "Es va intentar llegir un bloc fora de la memòria.",
/* 126 */ "No es va poder obrir l' arxiu per a lectura.",
/* 127 */ "No es va poder llegir l' arxiu.",
/* 128 */ "No es va poder carregar l' efecte de so.",
/* 129 */ "No es va poder reproduir l' efecte de so sol·licitat.",
/* 130 */ "No es va poder iniciar l' animació sol·licitada.",
/* 131 */ "Número de mode 7 invàlid (ha d' estar entre 0 y 9).",
/* 132 */ "Es necessita un codi de gràfic per al mode 7.",
/* 133 */ "Número de punt de control invàlid.",
/* 134 */ "Número de botó incorrecte (ha d' estar entre 0 y 3).",
/* 135 */ "Número d' eix incorrecte (ha d' estar entre 0 y 3).",
/* 136 */ "Direcció de la tabla de paleta fora de la memòria.",
/* 137 */ "No es poden comprovar regions en gràfics de mode 7.",
/* 138 */ "Codi d' informació gràfica incorrecte.",
/* 139 */ "No es poden comprovar col·lisions en gràfics de mode 7.",
/* 140 */ "Accés fora de rang.",
/* 141 */ "Es va intentar accedir a un procés invàlid.",
/* 142 */ "El procés sembla bloquejat, esperant FRAME.",
/* 129 */ "No es va poder reproduir l' efecte de so sol·licitat.",
/* 130 */ "No es va poder iniciar l' animació sol·licitada.",
/* 131 */ "Número de mode 7 invàlid (ha d' estar entre 0 y 9).",
/* 132 */ "Es necessita un codi de gràfic per al mode 7.",
/* 133 */ "Número de punt de control invàlid.",
/* 134 */ "Número de botó incorrecte (ha d' estar entre 0 y 3).",
/* 135 */ "Número d' eix incorrecte (ha d' estar entre 0 y 3).",
/* 136 */ "Direcció de la tabla de paleta fora de la memòria.",
/* 137 */ "No es poden comprovar regions en gràfics de mode 7.",
/* 138 */ "Codi d' informació gràfica incorrecte.",
/* 139 */ "No es poden comprovar col·lisions en gràfics de mode 7.",
/* 140 */ "Accés fora de rang.",
/* 141 */ "Es va intentar accedir a un procés invàlid.",
/* 142 */ "El procés sembla bloquejat, esperant FRAME.",
/* 143 */ "No es va poder carregar el mapa, arxiu no trobat.",
/* 144 */ "Es va intentar carregar un arxiu de mapa invàlid.",
/* 145 */ "S' ha intentar fer una divisió entre zero.",
/* 146 */ "El tamany de la regió es incorrecte.",
/* 144 */ "Es va intentar carregar un arxiu de mapa invàlid.",
/* 145 */ "S' ha intentar fer una divisió entre zero.",
/* 146 */ "El tamany de la regió es incorrecte.",
/* 147 */ "No es va poder carregar FLI/FLC, arxiu no trobat.",
/* 148 */ "Valor de timeout incorrecte (ha de ser entre 1 y 60).",
/* 149 */ "Nombre de jugadors incorrecte (ha de ser entre 2 y 8).",
/* 150 */ "Només es poden enviar dades globals.",
/* 151 */ "Tamany de casella invàlid (ha de ser entre 1 y 256).",
/* 152 */ "Map de búsqueda no vàlid (des d' 1x1 fins a 128x128).",
/* 150 */ "Només es poden enviar dades globals.",
/* 151 */ "Tamany de casella invàlid (ha de ser entre 1 y 256).",
/* 152 */ "Map de búsqueda no vàlid (des d' 1x1 fins a 128x128).",
/* 153 */ "Tamany de mapa incorrecte (des d' 1x1 fins a 32768x32768).",
/* 154 */ "Número de color incorrecte (ha de ser ser des de 0 fins a 255).",
/* 155 */ "El centre es troba fora dels límits del gràfic.",
/* 156 */ "L' objecte es troba fora del mapa i serà eliminat.",
/* 154 */ "Número de color incorrecte (ha de ser ser des de 0 fins a 255).",
/* 155 */ "El centre es troba fora dels límits del gràfic.",
/* 156 */ "L' objecte es troba fora del mapa i serà eliminat.",
/* 157 */ "Textura del mapa no trobada.",
/* 158 */ "El tamany de la textura és incorrecte.",
/* 159 */ "No es va poder carregar el món, arxiu no trobat.",
/* 160 */ "No es va poder carregar el món, arxiu no vàlid.",
/* 161 */ "El número de bandera no és vàlid.",
/* 162 */ "Dispositiu invàlid (només 1-IPX,2-SERIAL,3-MODEM).",
/* 163 */ "Tamany de paquet invàlid (només des d' 1 fins a 199).",
/* 164 */ "La cadena de text destí no és vàlida.",
/* 158 */ "El tamany de la textura és incorrecte.",
/* 159 */ "No es va poder carregar el món, arxiu no trobat.",
/* 160 */ "No es va poder carregar el món, arxiu no vàlid.",
/* 161 */ "El número de bandera no és vàlid.",
/* 162 */ "Dispositiu invàlid (només 1-IPX,2-SERIAL,3-MODEM).",
/* 163 */ "Tamany de paquet invàlid (només des d' 1 fins a 199).",
/* 164 */ "La cadena de text destí no és vàlida.",
/* 165 */ "Es va intentar accedir a un punter nul.",
/* 166 */ "El mode d' accés a l' arxiu no és vàlid.",
/* 167 */ "No es va poder carregar el mòdul.",
/* 166 */ "El mode d' accés a l' arxiu no és vàlid.",
/* 167 */ "No es va poder carregar el mòdul.",
/* 168 */ "Massa errors ignorats.",
/* 169 */ "Massa arxius oberts.",
/* 170 */ "Identificador d' arxiu (handle) no vàlid.",
/* 170 */ "Identificador d' arxiu (handle) no vàlid.",
/* 171 */ "Valor fora de rang.",
/* 172 */ "Massa objectes gràfics visualitzats.",
/* 173 */ "Tipus d' objecte gràfic no conegut.",
/* 172 */ "Massa objectes gràfics visualitzats.",
/* 173 */ "Tipus d' objecte gràfic no conegut.",
/* 174 */ "Percentatge de tinta fora de rang (0..15).",
/* 175 */ "Número d' objecte gràfic no vàlid.",
/* 175 */ "Número d' objecte gràfic no vàlid.",
/* 176 */ "Error variable de mode 8: Textura de mapa [a] no trobada en arxiu [b].",
/* 177 */ "Textura de map.",
/* 178 */ "no trobada en arxiu.",
/* 179 */ "Es van realitzar massa peticions de memòria dinàmica.",
/* 180 */ "El punter no es correspón amb ningú dels blocs reservats.",
/* 181 */ "No es poden reservar blocs de menys d' una posició.",
/* 182 */ "Es va intentar (des)encriptar un bloc fora de la memòria.",
/* 183 */ "No es pot carregar altra paleta quan està forçada l' actual.",
/* 179 */ "Es van realitzar massa peticions de memòria dinàmica.",
/* 180 */ "El punter no es correspón amb ningú dels blocs reservats.",
/* 181 */ "No es poden reservar blocs de menys d' una posició.",
/* 182 */ "Es va intentar (des)encriptar un bloc fora de la memòria.",
/* 183 */ "No es pot carregar altra paleta quan està forçada l' actual.",
/* 184 */ "",
/* 185 */ "",
/* 186 */ "",
@ -343,7 +343,7 @@
/*
* Errores críticos del stub
* Errores críticos del stub
*/
#elif TRANSLATE == TRANSLATE_CRITICAL_ERROR
@ -351,13 +351,13 @@
/* 0 */ "",
/* 1 */ "Error llegint el codi del programa",
/* 2 */ "Error en el format de codi",
/* 3 */ "Redefinició del tipus de procés",
/* 4 */ "No es va poder reservar memòria per a la pila",
/* 3 */ "Redefinició del tipus de procés",
/* 4 */ "No es va poder reservar memòria per a la pila",
/* 5 */ "Llibreria no trobada: %s",
/* 6 */ "%s no és una llibreria vàlida d' eDIV",
/* 6 */ "%s no és una llibreria vàlida d' eDIV",
/* 7 */ "No se pudo inicializar SDL", // FIXME: traducir esto
/* 8 */ "Demasiados procesos en ejecución", // FIXME: traducir esto
/* 9 */ "Se requiere SDL versión %d.%d.%d\nVersión detectada en el sistema: %d.%d.%d" /* SIN COMA */ // FIXME: traducir esto
/* 8 */ "Demasiados procesos en ejecución", // FIXME: traducir esto
/* 9 */ "Se requiere SDL versión %d.%d.%d\nVersión detectada en el sistema: %d.%d.%d" /* SIN COMA */ // FIXME: traducir esto
#endif

View file

@ -255,7 +255,7 @@
#elif TRANSLATE == TRANSLATE_RUNTIME_ERROR
/* TODO: Creo que esta traducción es un poco patatera, voy a tener que revisarla un poco. */
/* TODO: Creo que esta traducción es un poco patatera, voy a tener que revisarla un poco. */
/* 100 */ "There is not enough memory to execute the program.",
/* 101 */ "Call to a key() with a nonexistent key code.",
/* 102 */ "The palette was not loaded, archive not found.",

View file

@ -21,48 +21,48 @@
/*
* ARCHIVO DE IDIOMA DE EDIV
* 0 - ESPAÑOL (es)
* 0 - ESPAÑOL (es)
* Autores: eDIV Team, Hammer Technologies
*/
/*
* Este archivo puede usarse como archivo de plantilla para hacer nuevas
* traducciones. Si quieres que eDIV soporte un nuevo idioma, traduce este
* archivo y envíanoslo por email.
* archivo y envíanoslo por email.
* De momento eDIV no soporta Unicode, pero si tu idioma lo requiere,
* avísanos y nos ocuparemos de que lo soporte :)
* avísanos y nos ocuparemos de que lo soporte :)
*
* Si editas este archivo, por favor:
* - Puedes utilizar un editor de Linux, Windows o Mac, pero NO uses un
* editor de MS-DOS (como EDIT.COM), ya que destrozarás todos los acentos
* editor de MS-DOS (como EDIT.COM), ya que destrozarás todos los acentos
* y caracteres especiales.
* - Respeta la numeración de los mensajes.
* - Respeta las comillas, los símbolos reservados de C (%s, \n, etc),
* - Respeta la numeración de los mensajes.
* - Respeta las comillas, los símbolos reservados de C (%s, \n, etc),
* las instrucciones de preprocesador (#ifdef, #else, etc)...
* - Ten especial cuidado con las comas que aparecen al final de todas las
* líneas, EXCEPTO en la última línea de cada bloque.
* líneas, EXCEPTO en la última línea de cada bloque.
*/
/*
* Errores de compilación
* Errores de compilación
*/
#if TRANSLATE == TRANSLATE_ERROR
/* 0 */ "",
/* 1 */ "Llegó el final dentro de un comentario",
/* 1 */ "Llegó el final dentro de un comentario",
/* 2 */ "Excedida la capacidad del vector de nombres",
/* 3 */ "Literal sin cerrar",
/* 4 */ "Símbolo no reconocido",
/* 5 */ "Carácter no reconocido",
/* 4 */ "Símbolo no reconocido",
/* 5 */ "Carácter no reconocido",
/* 6 */ "Excedida la capacidad de la tabla de objetos",
/* 7 */ "Esperando '='",
/* 8 */ "Esperando una opción de compilación",
/* 8 */ "Esperando una opción de compilación",
/* 9 */ "Esperando ';'",
/* 10 */ "Se esperaba un operando",
/* 11 */ "Expresión incorrecta",
/* 12 */ "Asignación a cadena incorrecta",
/* 13 */ "Asignación incorrecta",
/* 11 */ "Expresión incorrecta",
/* 12 */ "Asignación a cadena incorrecta",
/* 13 */ "Asignación incorrecta",
/* 14 */ "No se puede calcular el offset del dato",
/* 15 */ "No se puede calcular el offset",
/* 16 */ "No se puede realizar el incremento",
@ -73,25 +73,25 @@
/* 21 */ "Esperando el nombre de un proceso",
/* 22 */ "Esperando '('",
/* 23 */ "Esperando un nombre",
/* 24 */ "No se puede calcular el tamaño",
/* 25 */ "Expresión incorrecta",
/* 26 */ "No se puede recibir una estructura como parámetro",
/* 24 */ "No se puede calcular el tamaño",
/* 25 */ "Expresión incorrecta",
/* 26 */ "No se puede recibir una estructura como parámetro",
/* 27 */ "Esperando el nombre de la estructura",
/* 28 */ "Declaración incorrecta de puntero a una estructura",
/* 28 */ "Declaración incorrecta de puntero a una estructura",
/* 29 */ "Esperando el nombre de la cadena",
/* 30 */ "El nombre no es nuevo",
/* 31 */ "Cadena de texto de longitud negativa",
/* 32 */ "Cadena de texto demasiado larga",
/* 33 */ "No se puede especificar una tabla como parámetro",
/* 33 */ "No se puede especificar una tabla como parámetro",
/* 34 */ "Nombre desconocido: %s",
/* 35 */ "Se esperaba una coma",
/* 36 */ "Se esperaba otro parámetro",
/* 36 */ "Se esperaba otro parámetro",
/* 37 */ "No se puede acceder a datos PRIVATE externos",
/* 38 */ "Número de parámetros incorrecto",
/* 38 */ "Número de parámetros incorrecto",
/* 39 */ "Esperando un elemento de la estructura",
/* 40 */ "Tabla de longitud negativa",
/* 41 */ "La longitud no coincide con la declaración anterior",
/* 42 */ "No se puede inicializar un parámetro",
/* 41 */ "La longitud no coincide con la declaración anterior",
/* 42 */ "No se puede inicializar un parámetro",
/* 43 */ "Estructura de longitud negativa",
/* 44 */ "Esperando PROGRAM",
/* 45 */ "Esperando el nombre del programa",
@ -102,8 +102,8 @@
/* 50 */ "Valor BYTE fuera del rango (0...255)",
/* 51 */ "Valor WORD fuera del rango (0...65535)",
/* 52 */ "No se puede duplicar 0 o menos veces",
/* 53 */ "Inicialización incorrecta",
/* 54 */ "Se esperaba una expresión constante",
/* 53 */ "Inicialización incorrecta",
/* 54 */ "Se esperaba una expresión constante",
/* 55 */ "Demasiados valores para la estructura",
/* 56 */ "Esperando BEGIN",
/* 57 */ "Esperando END",
@ -111,17 +111,17 @@
/* 59 */ "Esperando una variable", /* (para el FROM) */
/* 60 */ "Esperando TO",
/* 61 */ "Sentencia FROM incorrecta", /* (from==to) */
/* 62 */ "El valor STEP no es válido",
/* 62 */ "El valor STEP no es válido",
/* 63 */ "Esperando CASE, DEFAULT o END",
/* 64 */ "Esperando ':'",
/* 65 */ "BREAK no aparece dentro de un bucle",
/* 66 */ "CONTINUE no aparece dentro de un bucle",
/* 67 */ "Se esperaba una sentencia",
/* 68 */ "Expresión sin sentido",
/* 69 */ "Asignación dentro de una condición",
/* 70 */ "Esperando el nombre del proceso o función",
/* 68 */ "Expresión sin sentido",
/* 69 */ "Asignación dentro de una condición",
/* 70 */ "Esperando el nombre del proceso o función",
/* 71 */ "Esperando PROCESS o FUNCTION",
/* 72 */ "Parámetro no válido",
/* 72 */ "Parámetro no válido",
/* 73 */ "ELSEIF no aparece dentro de un bloque IF" /* SIN COMA */
@ -145,11 +145,11 @@
/* 1 */ "Sobrepasado buffer de nombres de objeto",
/* 2 */ "Objeto '%s': El nombre no es nuevo",
/* 3 */ "Demasiados objetos declarados",
/* 4 */ "Función '%s': El nombre no es nuevo",
/* 4 */ "Función '%s': El nombre no es nuevo",
/* 5 */ "Error declarando objeto '%s'",
/* 6 */ "Objeto '%s': Declaración ilegal dentro de struct",
/* 7 */ "Objeto '%s': Declaración de un miembro fuera de struct",
/* 8 */ "Tamaño ilegal del string '%s'",
/* 6 */ "Objeto '%s': Declaración ilegal dentro de struct",
/* 7 */ "Objeto '%s': Declaración de un miembro fuera de struct",
/* 8 */ "Tamaño ilegal del string '%s'",
/* 9 */ "EndStruct sin Struct",
/* 10 */ "Una estructura debe contener al menos un elemento" /* SIN COMA */
@ -163,8 +163,8 @@
/* 0 */ "",
/* 1 */ "Archivo ltlex.def no encontrado",
/* 2 */ "Se esperaba un valor hexadecimal (&00..&FF)",
/* 3 */ "Demasiados símbolos definidos",
/* 4 */ "Símbolo no válido" /* SIN COMA */
/* 3 */ "Demasiados símbolos definidos",
/* 4 */ "Símbolo no válido" /* SIN COMA */
/*
@ -179,23 +179,23 @@
/* 3 */ "%s [opciones] archivo.prg [ejecutable]\n\n",
/* 4 */ "Lista de opciones:\n",
/* 5 */ " -h, --help Muestra esta ayuda y sale\n",
/* 6 */ " -d, --debug Genera información adicional de depurado\n",
/* 6 */ " -d, --debug Genera información adicional de depurado\n",
/* 7 */ " -l, --list Guarda el listado EML como <programa.eml>\n",
/* 8 */ " -t, --table Guarda la tabla de objetos como <programa.tab>\n",
/* 9 */ " -c, --check No genera un ejecutable (para comprobar sintaxis, etc.)\n",
/* 10 */ " -s, --system Sistema Operativo destino (por defecto %s)\n",
/* 11 */ " -v, --version Muestra versión y sale\n\n",
/* 12 */ "Parámetro --system: debe indicar un sistema destino\nConsulte la documentación para obtener ayuda\n",
/* 13 */ "Parámetro erróneo: %s\nUse la opción -h para ver la ayuda\n",
/* 14 */ "Parámetro -s: debe indicar un sistema destino\nConsulte la documentación para obtener ayuda\n",
/* 15 */ "Parámetro erróneo: -%c\nUse la opción -h para ver la ayuda\n",
/* 16 */ "No se ha especificado un archivo\nUse la opción -h para ver la ayuda\n",
/* 11 */ " -v, --version Muestra versión y sale\n\n",
/* 12 */ "Parámetro --system: debe indicar un sistema destino\nConsulte la documentación para obtener ayuda\n",
/* 13 */ "Parámetro erróneo: %s\nUse la opción -h para ver la ayuda\n",
/* 14 */ "Parámetro -s: debe indicar un sistema destino\nConsulte la documentación para obtener ayuda\n",
/* 15 */ "Parámetro erróneo: -%c\nUse la opción -h para ver la ayuda\n",
/* 16 */ "No se ha especificado un archivo\nUse la opción -h para ver la ayuda\n",
/* 17 */ "edivc: Error al abrir archivo %s.\n",
/* 18 */ "edivc: Compilando: %s\n",
/* 19 */ "edivc: ERROR: No se encuentra %s\n",
/* 20 */ "edivc: ERROR: Formato incorrecto de %s\n",
/* 21 */ "edivc: Interrumpido (%d advertencias)\n",
/* 22 */ "edivc: Finalizado con éxito (%d advertencias)\n",
/* 22 */ "edivc: Finalizado con éxito (%d advertencias)\n",
/* 23 */ "edivc: Salida con errores\n",
/* 24 */ "edivc: ERROR: Memoria insuficiente\n",
/* 25 */ "%s:%d:%d: ERROR %d: ",
@ -205,14 +205,14 @@
/* 29 */ "Error creando archivo de intercambio\n",
/* 30 */ "Generando listados...\n",
/* 31 */ "Guardando ejecutable...\n",
/* 32 */ "Guardando información de depurado...\n",
/* 32 */ "Guardando información de depurado...\n",
/* 33 */ "Error escribiendo ejecutable\n",
/* 34 */ "Compilación finalizada.\n",
/* 34 */ "Compilación finalizada.\n",
/* 35 */ "%s: ERROR: ",
/* 36 */ "Error creando archivo %s\n",
/* 37 */ "Listado de objetos de %s - eDIV versión " VERSION "\n\n",
/* 37 */ "Listado de objetos de %s - eDIV versión " VERSION "\n\n",
/* 38 */ "\tbloque(%u), anterior(%u)\n",
/* 39 */ "Código EML de %s - eDIV versión " VERSION "\n",
/* 39 */ "Código EML de %s - eDIV versión " VERSION "\n",
/* 40 */ "edivc: ERROR: %s\n\n",
/* 41 */ "edivc: %s (linea %d) ERROR: %s\n\n",
/* 42 */ "edivc: Interrumpido - se han encontrado errores\n",
@ -220,18 +220,18 @@
/* 43 */ "No se encuentra ninguna DLL\n",
/* 44 */ "",
#else
/* 43 */ "No se encuentra ninguna librería\n",
/* 43 */ "No se encuentra ninguna librería\n",
/* 44 */ "Directorio %s/ no encontrado\n",
#endif
/* 45 */ "Error al cargar librería %s\n",
/* 45 */ "Error al cargar librería %s\n",
#ifdef _WIN32
/* 46 */ "No puedo cargar %s\n",
/* 47 */ "No se encuentra ExportaFuncs en %s - DLL no valida\n",
#else
/* 46 */ "No puedo cargar %s (%s)\n",
/* 47 */ "No se encuentra ExportaFuncs en %s - Librería no válida (%s)\n",
/* 47 */ "No se encuentra ExportaFuncs en %s - Librería no válida (%s)\n",
#endif
/* 48 */ " -n, --news Muestra las últimas noticias de eDivCentral.com y sale\n",
/* 48 */ " -n, --news Muestra las últimas noticias de eDivCentral.com y sale\n",
/* 49 */ "Error: no se ha configurado un servidor de noticias en ediv.cfg\n",
/* 50 */ "Error: el fichero recibido no es del tipo esperado\n" /* SIN COMA */
@ -243,102 +243,102 @@
#elif TRANSLATE == TRANSLATE_STUB
/* 0 */ "ERROR %d: ",
/* 1 */ "eDIV: Error en ejecución",
/* 2 */ "eDIV: Error crítico",
/* 1 */ "eDIV: Error en ejecución",
/* 2 */ "eDIV: Error crítico",
/* 3 */ "Error en %s: ",
/* 4 */ "eDIV: Error en librería dinámica" /* SIN COMA */
/* 4 */ "eDIV: Error en librería dinámica" /* SIN COMA */
/*
* Errores de tiempo de ejecución del stub
* Errores de tiempo de ejecución del stub
*/
#elif TRANSLATE == TRANSLATE_RUNTIME_ERROR
/* 100 */ "No hay memoria suficiente para ejecutar el programa.",
/* 101 */ "Llamada a key() con un código de tecla inexistente.",
/* 101 */ "Llamada a key() con un código de tecla inexistente.",
/* 102 */ "No se pudo cargar la paleta, archivo no encontrado.",
/* 103 */ "Se intentó cargar un archivo de paleta inválido.",
/* 103 */ "Se intentó cargar un archivo de paleta inválido.",
/* 104 */ "Demasiados ficheros FPG abiertos a la vez.",
/* 105 */ "No se pudo cargar el fichero, archivo no encontrado.",
/* 106 */ "Se intentó cargar un fichero FPG no válido.",
/* 107 */ "Número de scroll inválido (debe estar entre 0 y 9).",
/* 108 */ "Número de región inválido (fuera de rango).",
/* 109 */ "Código de fichero inválido.",
/* 110 */ "Código de gráfico inválido.",
/* 111 */ "Se intentó usar un fichero FPG antes de cargarlo.",
/* 112 */ "Se necesita un código de gráfico para el scroll.",
/* 106 */ "Se intentó cargar un fichero FPG no válido.",
/* 107 */ "Número de scroll inválido (debe estar entre 0 y 9).",
/* 108 */ "Número de región inválido (fuera de rango).",
/* 109 */ "Código de fichero inválido.",
/* 110 */ "Código de gráfico inválido.",
/* 111 */ "Se intentó usar un fichero FPG antes de cargarlo.",
/* 112 */ "Se necesita un código de gráfico para el scroll.",
/* 113 */ "Se han cargado demasiados fuentes de letras.",
/* 114 */ "No se pudo cargar el fuente, archivo no encontrado.",
/* 115 */ "Se intentó cargar un archivo de fuente no válido.",
/* 116 */ "Código identificador de fuente de letras inválido.",
/* 117 */ "Código de centrado de texto inválido.",
/* 115 */ "Se intentó cargar un archivo de fuente no válido.",
/* 116 */ "Código identificador de fuente de letras inválido.",
/* 117 */ "Código de centrado de texto inválido.",
/* 118 */ "Hay demasiados textos activos en el programa.",
/* 119 */ "Indentificador de texto no válido.",
/* 120 */ "Región de pantalla definida incorrectamente.",
/* 121 */ "Se intentó utilizar un gráfico que no existe.",
/* 122 */ "Se intentó escribir un bloque fuera de la memoria.",
/* 119 */ "Indentificador de texto no válido.",
/* 120 */ "Región de pantalla definida incorrectamente.",
/* 121 */ "Se intentó utilizar un gráfico que no existe.",
/* 122 */ "Se intentó escribir un bloque fuera de la memoria.",
/* 123 */ "No se pudo abrir el archivo para escritura.",
/* 124 */ "No se pudo escribir el archivo (ver espacio en disco).",
/* 125 */ "Se intentó leer un bloque fuera de la memoria.",
/* 125 */ "Se intentó leer un bloque fuera de la memoria.",
/* 126 */ "No se pudo abrir el archivo para lectura.",
/* 127 */ "No se pudo leer el archivo.",
/* 128 */ "No se pudo cargar el efecto de sonido.",
/* 129 */ "No se pudo tocar el efecto de sonido solicitado.",
/* 130 */ "No se pudo iniciar la animación solicitada.",
/* 131 */ "Número de modo 7 inválido (debe estar entre 0 y 9).",
/* 132 */ "Se necesita un código de gráfico para el modo 7.",
/* 133 */ "Número de punto de control inválido.",
/* 134 */ "Número de botón incorrecto (debe estar entre 0 y 3).",
/* 135 */ "Número de eje incorrecto (debe estar entre 0 y 3).",
/* 136 */ "Dirección de la tabla de paleta fuera de la memoria.",
/* 137 */ "No se pueden comprobar regiones en gráficos de m-7.",
/* 138 */ "Código de información gráfica incorrecto.",
/* 139 */ "No se pueden comprobar colisiones en gráficos de m-7.",
/* 130 */ "No se pudo iniciar la animación solicitada.",
/* 131 */ "Número de modo 7 inválido (debe estar entre 0 y 9).",
/* 132 */ "Se necesita un código de gráfico para el modo 7.",
/* 133 */ "Número de punto de control inválido.",
/* 134 */ "Número de botón incorrecto (debe estar entre 0 y 3).",
/* 135 */ "Número de eje incorrecto (debe estar entre 0 y 3).",
/* 136 */ "Dirección de la tabla de paleta fuera de la memoria.",
/* 137 */ "No se pueden comprobar regiones en gráficos de m-7.",
/* 138 */ "Código de información gráfica incorrecto.",
/* 139 */ "No se pueden comprobar colisiones en gráficos de m-7.",
/* 140 */ "Acceso fuera de rango.",
/* 141 */ "Se intentó acceder a un proceso inválido.",
/* 141 */ "Se intentó acceder a un proceso inválido.",
/* 142 */ "El proceso parece bloqueado, esperando FRAME.",
/* 143 */ "No se pudo cargar el mapa, archivo no encontrado.",
/* 144 */ "Se intentó cargar un archivo de mapa inválido.",
/* 145 */ "Se ha intentado hacer una división entre cero.",
/* 146 */ "El tamaño de la región es incorrecto.",
/* 144 */ "Se intentó cargar un archivo de mapa inválido.",
/* 145 */ "Se ha intentado hacer una división entre cero.",
/* 146 */ "El tamaño de la región es incorrecto.",
/* 147 */ "No se pudo cargar FLI/FLC, archivo no encontrado.",
/* 148 */ "Valor de timeout incorrecto (debe ser entre 1 y 60).",
/* 149 */ "Número de jugadores incorrecto (debe ser entre 2 y 8).",
/* 150 */ "Sólo se pueden enviar datos globales.",
/* 151 */ "Tamaño de casilla inválido (debe ser entre 1 y 256).",
/* 152 */ "Mapa de búsqueda no válido (desde 1x1 hasta 128x128).",
/* 153 */ "Tamaño de mapa incorrecto (de 1x1 a 32768x32768).",
/* 154 */ "Número de color incorrecto (debe ser de 0 a 255).",
/* 155 */ "El centro está fuera de los límites del gráfico.",
/* 149 */ "Número de jugadores incorrecto (debe ser entre 2 y 8).",
/* 150 */ "Sólo se pueden enviar datos globales.",
/* 151 */ "Tamaño de casilla inválido (debe ser entre 1 y 256).",
/* 152 */ "Mapa de búsqueda no válido (desde 1x1 hasta 128x128).",
/* 153 */ "Tamaño de mapa incorrecto (de 1x1 a 32768x32768).",
/* 154 */ "Número de color incorrecto (debe ser de 0 a 255).",
/* 155 */ "El centro está fuera de los límites del gráfico.",
/* 156 */ "El objeto se encuentra fuera del mapa y sera eliminado.",
/* 157 */ "Textura del mapa no encontrada.",
/* 158 */ "El tamaño de la textura es incorrecto.",
/* 158 */ "El tamaño de la textura es incorrecto.",
/* 159 */ "No se pudo cargar el mundo, archivo no encontrado.",
/* 160 */ "No se pudo cargar el mundo, archivo no válido.",
/* 161 */ "El número de bandera no es válido.",
/* 162 */ "Dispositivo inválido (sólo 1-IPX,2-SERIAL,3-MODEM).",
/* 163 */ "Tamaño de paquete inválido (sólo de 1 a 199).",
/* 164 */ "La cadena de texto destino no es válida.",
/* 165 */ "Se intentó acceder a un puntero nulo.",
/* 166 */ "El modo de acceso al archivo no es válido.",
/* 167 */ "No se pudo cargar el módulo.",
/* 160 */ "No se pudo cargar el mundo, archivo no válido.",
/* 161 */ "El número de bandera no es válido.",
/* 162 */ "Dispositivo inválido (sólo 1-IPX,2-SERIAL,3-MODEM).",
/* 163 */ "Tamaño de paquete inválido (sólo de 1 a 199).",
/* 164 */ "La cadena de texto destino no es válida.",
/* 165 */ "Se intentó acceder a un puntero nulo.",
/* 166 */ "El modo de acceso al archivo no es válido.",
/* 167 */ "No se pudo cargar el módulo.",
/* 168 */ "Demasiados errores ignorados.",
/* 169 */ "Demasiados archivos abiertos.",
/* 170 */ "Identificador de archivo (handle) no válido.",
/* 170 */ "Identificador de archivo (handle) no válido.",
/* 171 */ "Valor fuera de rango.",
/* 172 */ "Demasiados objetos gráficos visualizados.",
/* 173 */ "Tipo de objeto gráfico no conocido.",
/* 172 */ "Demasiados objetos gráficos visualizados.",
/* 173 */ "Tipo de objeto gráfico no conocido.",
/* 174 */ "Porcentaje de tinta fuera de rango (0..15).",
/* 175 */ "Número de objeto gráfico no válido.",
/* 175 */ "Número de objeto gráfico no válido.",
/* 176 */ "Error variable de vpe: Textura de mapa [a] no encontrada en fichero [b].",
/* 177 */ "Textura de mapa.",
/* 178 */ "no encontrada en fichero.",
/* 179 */ "Se realizaron demasiadas peticiones de memoria dinámica.",
/* 179 */ "Se realizaron demasiadas peticiones de memoria dinámica.",
/* 180 */ "El puntero no se corresponde con ninguno de los bloques reservados.",
/* 181 */ "No se pueden reservar bloques de menos de una posición.",
/* 182 */ "Se intentó (des)encriptar un bloque fuera de la memoria.",
/* 183 */ "No se puede cargar otra paleta cuando está forzada la actual.",
/* 181 */ "No se pueden reservar bloques de menos de una posición.",
/* 182 */ "Se intentó (des)encriptar un bloque fuera de la memoria.",
/* 183 */ "No se puede cargar otra paleta cuando está forzada la actual.",
/* 184 */ "",
/* 185 */ "",
/* 186 */ "",
@ -359,21 +359,21 @@
/*
* Errores críticos del stub
* Errores críticos del stub
*/
#elif TRANSLATE == TRANSLATE_CRITICAL_ERROR
/* 0 */ "",
/* 1 */ "Error leyendo el código del programa",
/* 2 */ "Error en el formato de código",
/* 1 */ "Error leyendo el código del programa",
/* 2 */ "Error en el formato de código",
/* 3 */ "Redefinicion del tipo de proceso",
/* 4 */ "No se pudo reservar memoria para la pila",
/* 5 */ "Librería no encontrada: %s",
/* 6 */ "%s no es una librería válida de eDIV",
/* 5 */ "Librería no encontrada: %s",
/* 6 */ "%s no es una librería válida de eDIV",
/* 7 */ "No se pudo inicializar SDL",
/* 8 */ "Demasiados procesos en ejecución",
/* 9 */ "Se requiere SDL versión %d.%d.%d\nVersión detectada en el sistema: %d.%d.%d" /* SIN COMA */
/* 8 */ "Demasiados procesos en ejecución",
/* 9 */ "Se requiere SDL versión %d.%d.%d\nVersión detectada en el sistema: %d.%d.%d" /* SIN COMA */
#endif

View file

@ -27,7 +27,7 @@
/*
* Errores de compilación
* Errores de compilación
*/
#if TRANSLATE == TRANSLATE_ERROR
@ -227,14 +227,14 @@
/* FIXME: traducir esto */
/* 0 */ "ERROR %d: ",
/* 1 */ "eDIV: Error en ejecución",
/* 2 */ "eDIV: Error crítico",
/* 1 */ "eDIV: Error en ejecución",
/* 2 */ "eDIV: Error crítico",
/* 3 */ "Error en %s: ",
/* 4 */ "eDIV: Error en librería dinámica" /* SIN COMA */
/* 4 */ "eDIV: Error en librería dinámica" /* SIN COMA */
/*
* Errores de tiempo de ejecución del stub
* Errores de tiempo de ejecución del stub
*/
#elif TRANSLATE == TRANSLATE_RUNTIME_ERROR
@ -343,7 +343,7 @@
/*
* Errores críticos del stub
* Errores críticos del stub
*/
#elif TRANSLATE == TRANSLATE_CRITICAL_ERROR
@ -356,8 +356,8 @@
/* 5 */ "Ezin da liburutegia aurkitu: %s",
/* 6 */ "%s ez da eDIV-en liburutegi zuzen bat",
/* 7 */ "No se pudo inicializar SDL", // FIXME: traducir esto
/* 8 */ "Demasiados procesos en ejecución", // FIXME: traducir esto
/* 9 */ "Se requiere SDL versión %d.%d.%d\nVersión detectada en el sistema: %d.%d.%d" /* SIN COMA */ // FIXME: traducir esto
/* 8 */ "Demasiados procesos en ejecución", // FIXME: traducir esto
/* 9 */ "Se requiere SDL versión %d.%d.%d\nVersión detectada en el sistema: %d.%d.%d" /* SIN COMA */ // FIXME: traducir esto
#endif

View file

@ -27,18 +27,18 @@
/*
* Errores de compilación
* Errores de compilación
*/
#if TRANSLATE == TRANSLATE_ERROR
/* 0 */ "",
/* 1 */ "Si aspettava '*/'",
/* 2 */ "Capacità vettore nomi oltrepassata",
/* 2 */ "Capacità vettore nomi oltrepassata",
/* 3 */ "Si aspettava '\"'",
/* 4 */ "Simbolo non riconosciuto",
/* 5 */ "Carattere non riconosciuto",
/* 6 */ "Capacità tabella oggetti oltrepassata",
/* 6 */ "Capacità tabella oggetti oltrepassata",
/* 7 */ "Aspettando '='",
/* 8 */ "Aspettando un'opzione di compilazione",
/* 9 */ "Aspettando ';'",
@ -48,28 +48,28 @@
/* 13 */ "Assegnazione incorretta",
/* 14 */ "Impossibile calcolare l'offset del dato",
/* 15 */ "Impossibile calcolare l'offset",
/* 16 */ "Non è possibile realizzare l'incremento",
/* 16 */ "Non è possibile realizzare l'incremento",
/* 17 */ "Impossibile accedere a local",
/* 18 */ "Aspettando ')'",
/* 19 */ "Aspettando ']'",
/* 20 */ "Non è un tipo di proceso",
/* 20 */ "Non è un tipo di proceso",
/* 21 */ "Aspettando il nome di un processo",
/* 22 */ "Aspettando '('",
/* 23 */ "Aspettando un nome",
/* 24 */ "Impossibile calcolare la grandezza",
/* 25 */ "Espressione incorretta",
/* 26 */ "Non è possibile ricevere una struttura come parametro",
/* 26 */ "Non è possibile ricevere una struttura come parametro",
/* 27 */ "Aspettando il nome della struttura",
/* 28 */ "Dichiarazione incorretta di puntatore a struttura",
/* 29 */ "Aspettando il nome della catena",
/* 30 */ "Il nome non è nuovo",
/* 30 */ "Il nome non è nuovo",
/* 31 */ "Catena di testo di lunghezza negativa",
/* 32 */ "Catena di testo troppo lunga",
/* 33 */ "Non si può specificare una tabella come parametro",
/* 33 */ "Non si può specificare una tabella come parametro",
/* 34 */ "Nome sconosciuto: %s",
/* 35 */ "Si aspettava una virgola",
/* 36 */ "Si aspettava un altro parametro",
/* 37 */ "Non è possibile accedere a dati PRIVATE esterni",
/* 37 */ "Non è possibile accedere a dati PRIVATE esterni",
/* 38 */ "Numero di parametri incorretto",
/* 39 */ "Aspettando un elemento della struttura",
/* 40 */ "Tabella di lunghezza negativa",
@ -84,7 +84,7 @@
/* 49 */ "Stringa troppo lunga",
/* 50 */ "Valore BYTE fuori rango (0...255)",
/* 51 */ "Valore WORD fuori rango (0...65535)",
/* 52 */ "Non si può duplicare 0 o meno volte",
/* 52 */ "Non si può duplicare 0 o meno volte",
/* 53 */ "Inizializzazione incorretta",
/* 54 */ "Si aspettava un'espressione costante",
/* 55 */ "Troppi valori per la struttura",
@ -94,7 +94,7 @@
/* 59 */ "Aspettando una variabile",
/* 60 */ "Aspettando TO",
/* 61 */ "Sentenza FROM incorretta",
/* 62 */ "Il valore STEP non è valido",
/* 62 */ "Il valore STEP non è valido",
/* 63 */ "Aspettando CASE, DEFAULT o END",
/* 64 */ "Aspettando ':'",
/* 65 */ "BREAK non appare dentro un bugle",
@ -126,9 +126,9 @@
#elif TRANSLATE == TRANSLATE_DLL_ERROR
/* 1 */ "Limite buffer nomi oggetto oltrepassato",
/* 2 */ "Oggetto '%s': Il nome non è nuovo",
/* 2 */ "Oggetto '%s': Il nome non è nuovo",
/* 3 */ "Troppi oggetti dichiarati",
/* 4 */ "Funzione '%s': Il nome non è nuovo",
/* 4 */ "Funzione '%s': Il nome non è nuovo",
/* 5 */ "Errore dichiarando oggetto '%s'",
/* 6 */ "Oggetto '%s': Dichiarazione illegale dentro struct",
/* 7 */ "Oggetto '%s': Dichiarazione di un membro fuori struct",
@ -157,7 +157,7 @@
#elif TRANSLATE == TRANSLATE_COMPILER
/* 0 */ " **** Compilatore eDIV " VERSION " ****\n" COPYRIGHT "\n" WEBSITE "\n",
/* 1 */ "ATTENZIONE: Questa versione di eDIV è incompleta.\nPer favore informa su qualunque bug a: ediv@divsite.net\n",
/* 1 */ "ATTENZIONE: Questa versione di eDIV è incompleta.\nPer favore informa su qualunque bug a: ediv@divsite.net\n",
/* 2 */ "Guida opzioni di comando:\n\n",
/* 3 */ "%s [opzioni] archivio.prg [eseguibile]\n\n",
/* 4 */ "Lista opzioni:\n",
@ -172,7 +172,7 @@
/* 13 */ "Parametro errato: %s\nUsa l'opzione -h per visualizzare la guida\n",
/* 14 */ "Parametro -s: deve indicare il sistema di destinazione\nConsulta la documentazione per ottenere aiuto\n",
/* 15 */ "Parametro errato: -%c\nUsa l'opzione -h per visualizzare la guida\n",
/* 16 */ "Non è stato specificato l'archivio\nUsa l'opzione -h per visualizzare la guida\n",
/* 16 */ "Non è stato specificato l'archivio\nUsa l'opzione -h per visualizzare la guida\n",
/* 17 */ "edivc: Errore aprendo l'archivio %s.\n",
/* 18 */ "edivc: Compilando: %s\n",
/* 19 */ "edivc: ERRORE: Non si incontra %s\n",
@ -215,8 +215,8 @@
/* 47 */ "Non si trova ExportaFuncs in %s - Libreria non valida (%s)\n",
#endif
/* 48 */ " -n, --news Mostra le ultime notizie di eDivCentral.com ed esce\n",
/* 49 */ "Errore: non è stato configurato un server di notizie in ediv.cfg\n",
/* 50 */ "Errore: il file ricevuto non è del tipo atteso\n" /* SIN COMA */
/* 49 */ "Errore: non è stato configurato un server di notizie in ediv.cfg\n",
/* 50 */ "Errore: il file ricevuto non è del tipo atteso\n" /* SIN COMA */
/*
@ -233,42 +233,42 @@
/*
* Errores de tiempo de ejecución del stub
* Errores de tiempo de ejecución del stub
*/
#elif TRANSLATE == TRANSLATE_RUNTIME_ERROR
/* 100 */ "Non hai memoria sufficiente per eseguire il programma.",
/* 101 */ "Chiamata a key() con un codice di tasto inesistente.",
/* 102 */ "Non è tasto possibile caricare la paletta, archivio non trovato.",
/* 103 */ "Si è tentato di caricare un archivio di paletta non valido.",
/* 102 */ "Non è tasto possibile caricare la paletta, archivio non trovato.",
/* 103 */ "Si è tentato di caricare un archivio di paletta non valido.",
/* 104 */ "Troppi file FPG aperti contemporaneamente.",
/* 105 */ "Non è stato possibile caricare il file, archivio non trovato.",
/* 106 */ "Si è tentato di caricare un file FPG non valido.",
/* 105 */ "Non è stato possibile caricare il file, archivio non trovato.",
/* 106 */ "Si è tentato di caricare un file FPG non valido.",
/* 107 */ "Numero di scroll non valido (deve essere tra 0 e 9).",
/* 108 */ "Numero di regione non valido (fuori rango).",
/* 109 */ "Codice di file non valido.",
/* 110 */ "Codice di grafico non valido.",
/* 111 */ "Si è tentato di usare un file FPG prima di caricarlo.",
/* 111 */ "Si è tentato di usare un file FPG prima di caricarlo.",
/* 112 */ "Si necessita un codice di grafico per lo scroll.",
/* 113 */ "Sono state caricate troppe fonti di lettere.",
/* 114 */ "Non è stato possibile caricare la fonte, archivio non trovato.",
/* 115 */ "Si è tentato di caricare un archivio di fonte non valido.",
/* 114 */ "Non è stato possibile caricare la fonte, archivio non trovato.",
/* 115 */ "Si è tentato di caricare un archivio di fonte non valido.",
/* 116 */ "Codice identificatore fonte di lettere non valido.",
/* 117 */ "Codice di allineamento testo non valido.",
/* 118 */ "Hai troppi testi attivi nel programma.",
/* 119 */ "Identificatore di testo non valido.",
/* 120 */ "Regione di schermo definita incorrettamente.",
/* 121 */ "Si è tentato di utilizzare un grafico che non esiste.",
/* 122 */ "Si è tentato di scrivere un blocco fuori della memoria.",
/* 123 */ "Non è stato possibile aprire l'archivio per la scrittura.",
/* 124 */ "Non è stato possibile scrivere l'archivio (vedere spazio nel disco).",
/* 125 */ "Si è tentato di leggere un blocco fuori della memoria.",
/* 126 */ "Non è stato possibile aprire l'archivio per la lettura.",
/* 127 */ "Non è stato possibile leggere l'archivio.",
/* 128 */ "Non è stato possibile caricare l'effetto di suono.",
/* 129 */ "Non è stato possibile eseguire l'effetto di suono sollecitato.",
/* 130 */ "Non è stato possibile iniziare l'animazione sollecitata.",
/* 121 */ "Si è tentato di utilizzare un grafico che non esiste.",
/* 122 */ "Si è tentato di scrivere un blocco fuori della memoria.",
/* 123 */ "Non è stato possibile aprire l'archivio per la scrittura.",
/* 124 */ "Non è stato possibile scrivere l'archivio (vedere spazio nel disco).",
/* 125 */ "Si è tentato di leggere un blocco fuori della memoria.",
/* 126 */ "Non è stato possibile aprire l'archivio per la lettura.",
/* 127 */ "Non è stato possibile leggere l'archivio.",
/* 128 */ "Non è stato possibile caricare l'effetto di suono.",
/* 129 */ "Non è stato possibile eseguire l'effetto di suono sollecitato.",
/* 130 */ "Non è stato possibile iniziare l'animazione sollecitata.",
/* 131 */ "Numero di mode 7 non valido (deve essere tra 0 e 9).",
/* 132 */ "Si necessita un codice di grafico per il mode 7.",
/* 133 */ "Numero punto di controllo non valido.",
@ -279,13 +279,13 @@
/* 138 */ "Codice d'informazione grafica incorretto.",
/* 139 */ "Non si possono comprovare collisioni in grafici di m-7.",
/* 140 */ "Accesso fuori rango.",
/* 141 */ "Si è tentato di accedere ad un processo non valido.",
/* 141 */ "Si è tentato di accedere ad un processo non valido.",
/* 142 */ "Il processo sembra bloccato, aspettando FRAME.",
/* 143 */ "Non è stato possibile caricare la mappa, archivio non trovato.",
/* 144 */ "Si è tentato di caricare un archivio di mappa non valido.",
/* 145 */ "Si è tentato di eseguire una divisione per zero.",
/* 146 */ "La grandezza della regione è incorretta.",
/* 147 */ "Non è stato possibile caricare FLI/FLC, archivio non trovato.",
/* 143 */ "Non è stato possibile caricare la mappa, archivio non trovato.",
/* 144 */ "Si è tentato di caricare un archivio di mappa non valido.",
/* 145 */ "Si è tentato di eseguire una divisione per zero.",
/* 146 */ "La grandezza della regione è incorretta.",
/* 147 */ "Non è stato possibile caricare FLI/FLC, archivio non trovato.",
/* 148 */ "Valore del timeout incorretto (deve essere tra 1 e 60).",
/* 149 */ "Numero di giocatori incorretto (deve essere tra 2 e 8).",
/* 150 */ "Si possono inviare solo dati globali.",
@ -293,19 +293,19 @@
/* 152 */ "Mappa di ricerca non valida (da 1x1 a 128x128).",
/* 153 */ "Grandezza di mappa incorretta (da 1x1 a 32768x32768).",
/* 154 */ "Numero di colore incorretto (deve essere da 0 a 255).",
/* 155 */ "Il centro è fuori dai limiti del grafico.",
/* 156 */ "L'oggetto si trova fuori dalla mappa è sarà eliminato.",
/* 155 */ "Il centro è fuori dai limiti del grafico.",
/* 156 */ "L'oggetto si trova fuori dalla mappa è sarà eliminato.",
/* 157 */ "Textura della mappa non trovata.",
/* 158 */ "La grandezza della textura è incorretta.",
/* 159 */ "Non è stato possibile caricare il mondo, archivio non trovato.",
/* 160 */ "Non è stato possibile caricare il mondo, archivio non valido.",
/* 161 */ "Il numero di bandiera non è valido.",
/* 158 */ "La grandezza della textura è incorretta.",
/* 159 */ "Non è stato possibile caricare il mondo, archivio non trovato.",
/* 160 */ "Non è stato possibile caricare il mondo, archivio non valido.",
/* 161 */ "Il numero di bandiera non è valido.",
/* 162 */ "Dispositivo non valido (solo 1-IPX,2-SERIAL,3-MODEM).",
/* 163 */ "Grandezza di pacchetto non valida (solo da 1 a 199).",
/* 164 */ "La catena testo di destinazione non è valida.",
/* 165 */ "Si è tentato di accedere ad un puntatore nullo.",
/* 166 */ "Il modo di acceso all'archivio non è valido.",
/* 167 */ "Non è stato possibile caricare il modulo.",
/* 164 */ "La catena testo di destinazione non è valida.",
/* 165 */ "Si è tentato di accedere ad un puntatore nullo.",
/* 166 */ "Il modo di acceso all'archivio non è valido.",
/* 167 */ "Non è stato possibile caricare il modulo.",
/* 168 */ "Troppi errori ignorati.",
/* 169 */ "Troppi archivi aperti.",
/* 170 */ "Identificatore archivio (handle) non valido.",
@ -319,9 +319,9 @@
/* 178 */ "non trovata in file.",
/* 179 */ "Sono state realizzate troppe sollecitazioni di memoria dinamica.",
/* 180 */ "Il puntatore non corrisponde con nessuno dei blocchi reservati.",
/* 181 */ "Non è possibile riservare blocchi minori di una posizione.",
/* 182 */ "Si è tentato di (dis)encriptare un blocco fuori della memoria.",
/* 183 */ "Non è possibile caricare un'altra paletta quando è forzata l'attuale.",
/* 181 */ "Non è possibile riservare blocchi minori di una posizione.",
/* 182 */ "Si è tentato di (dis)encriptare un blocco fuori della memoria.",
/* 183 */ "Non è possibile caricare un'altra paletta quando è forzata l'attuale.",
/* 184 */ "",
/* 185 */ "",
/* 186 */ "",
@ -338,11 +338,11 @@
/* 197 */ "",
/* 198 */ "",
/* 199 */ "",
/* 200 */ "Archivio con dati corrotti, non si è potuto caricare." /* SIN COMA */
/* 200 */ "Archivio con dati corrotti, non si è potuto caricare." /* SIN COMA */
/*
* Errores críticos del stub
* Errores críticos del stub
*/
#elif TRANSLATE == TRANSLATE_CRITICAL_ERROR
@ -351,10 +351,10 @@
/* 1 */ "Errore leggendo il codice del programma",
/* 2 */ "Errore nel formato di codice",
/* 3 */ "Ridefinizione del tipo di processo",
/* 4 */ "Non si è potuto riservare memoria per la pila",
/* 4 */ "Non si è potuto riservare memoria per la pila",
/* 5 */ "Libreria non trovata: %s",
/* 6 */ "%s non è una libreria valida di eDIV",
/* 7 */ "Non è stato possibile inizializzare SDL",
/* 6 */ "%s non è una libreria valida di eDIV",
/* 7 */ "Non è stato possibile inizializzare SDL",
/* 8 */ "Troppi processi in esecuzione",
/* 9 */ "E' richiesta SDL %d.%d.%d\nVersione rilevata nel sistema: %d.%d.%d" /* SIN COMA */

View file

@ -21,13 +21,13 @@
/*
* ARCHIVO DE IDIOMA DE EDIV
* 2 - PORTUGUÉS (pt)
* 2 - PORTUGUÉS (pt)
* Autor: tareko
*/
/*
* Errores de compilación
* Errores de compilación
*/
#if TRANSLATE == TRANSLATE_ERROR
@ -36,45 +36,45 @@
/* 1 */ "Esperava-se '*/'",
/* 2 */ "Capacidade do vector de nomes excedida",
/* 3 */ "Esperava-se '\"'",
/* 4 */ "Símbolo desconhecido",
/* 4 */ "Símbolo desconhecido",
/* 5 */ "Caracter desconhecido",
/* 6 */ "Capacidade da tabela de objectos excedida",
/* 7 */ "Esperando '='",
/* 8 */ "Esperando uma opção de compilação",
/* 8 */ "Esperando uma opção de compilação",
/* 9 */ "Esperando ';'",
/* 10 */ "Esperando um operando",
/* 11 */ "Expressão incorrecta",
/* 12 */ "Asignação a cadeia incorrecta",
/* 13 */ "Asignação incorrecta",
/* 14 */ "Não se pode calcular o offset do dado",
/* 15 */ "Não se pode calcular o offset",
/* 16 */ "Não se pode realizar o incremento",
/* 17 */ "Local não se pode aceder",
/* 11 */ "Expressão incorrecta",
/* 12 */ "Asignação a cadeia incorrecta",
/* 13 */ "Asignação incorrecta",
/* 14 */ "Não se pode calcular o offset do dado",
/* 15 */ "Não se pode calcular o offset",
/* 16 */ "Não se pode realizar o incremento",
/* 17 */ "Local não se pode aceder",
/* 18 */ "Esperando ')'",
/* 19 */ "Esperando ']'",
/* 20 */ "Não é um tipo de processo",
/* 20 */ "Não é um tipo de processo",
/* 21 */ "Esperando o nome de um processo",
/* 22 */ "Esperando '('",
/* 23 */ "Esperando um nome",
/* 24 */ "Não se pode calcular o tamanho",
/* 25 */ "Expressão incorrecta",
/* 26 */ "Não se pode receber uma estructura como parametro",
/* 24 */ "Não se pode calcular o tamanho",
/* 25 */ "Expressão incorrecta",
/* 26 */ "Não se pode receber uma estructura como parametro",
/* 27 */ "Esperando o nome da estructura",
/* 28 */ "Declaração incorrecta de ponteiro a uma estructura",
/* 28 */ "Declaração incorrecta de ponteiro a uma estructura",
/* 29 */ "Esperando o nome da cadeia",
/* 30 */ "O nome não é novo",
/* 30 */ "O nome não é novo",
/* 31 */ "Cadeia de texto de longitude negativa",
/* 32 */ "Cadeia de texto demasiado larga",
/* 33 */ "Não se pode especificar uma tabela como parametro",
/* 33 */ "Não se pode especificar uma tabela como parametro",
/* 34 */ "Nome desconhecido: %s",
/* 35 */ "Esperava-se uma virgula",
/* 36 */ "Esperava-se outro parametro",
/* 37 */ "Não se pode aceder a dados PRIVATE externos",
/* 38 */ "Número de parametros incorrecto",
/* 37 */ "Não se pode aceder a dados PRIVATE externos",
/* 38 */ "Número de parametros incorrecto",
/* 39 */ "Esperando um elemento da estructura",
/* 40 */ "Tabela de longitude negativa",
/* 41 */ "A longitude não coincide con a declaração anterior",
/* 42 */ "Não se pode inicializar un parametro",
/* 41 */ "A longitude não coincide con a declaração anterior",
/* 42 */ "Não se pode inicializar un parametro",
/* 43 */ "Estructura de longitude negativa",
/* 44 */ "Esperando PROGRAM",
/* 45 */ "Esperando o nome do programa",
@ -84,28 +84,28 @@
/* 49 */ "Literal demasiado largo",
/* 50 */ "Valor BYTE fora de alcance (0...255)",
/* 51 */ "Valor WORD fora de alcance (0...65535)",
/* 52 */ "Não se pode duplicar 0 o menos veces",
/* 53 */ "Inicialização incorrecta",
/* 54 */ "Esperava-se uma expressão constante",
/* 52 */ "Não se pode duplicar 0 o menos veces",
/* 53 */ "Inicialização incorrecta",
/* 54 */ "Esperava-se uma expressão constante",
/* 55 */ "Demasiados valores para a estructura",
/* 56 */ "Esperando BEGIN",
/* 57 */ "Esperando END",
/* 58 */ "Esperando UNTIL",
/* 59 */ "Esperando uma variable",
/* 60 */ "Esperando TO",
/* 61 */ "Sentença FROM incorrecta",
/* 62 */ "O valor STEP não é válido",
/* 61 */ "Sentença FROM incorrecta",
/* 62 */ "O valor STEP não é válido",
/* 63 */ "Esperando CASE, DEFAULT ou END",
/* 64 */ "Esperando ':'",
/* 65 */ "BREAK não aparece dentro de um ciclo",
/* 66 */ "CONTINUE não aparece dentro de um ciclo",
/* 67 */ "Esperava-se uma sentença",
/* 68 */ "Expressão sem sentido",
/* 69 */ "Asignação dentro de uma condição",
/* 70 */ "Esperando o nome do processo ou função",
/* 65 */ "BREAK não aparece dentro de um ciclo",
/* 66 */ "CONTINUE não aparece dentro de um ciclo",
/* 67 */ "Esperava-se uma sentença",
/* 68 */ "Expressão sem sentido",
/* 69 */ "Asignação dentro de uma condição",
/* 70 */ "Esperando o nome do processo ou função",
/* 71 */ "Esperando PROCESS ou FUNCTION",
/* 72 */ "Parametro não válido",
/* 73 */ "ELSEIF não aparece dentro de um bloco IF" /* SIN COMA */
/* 72 */ "Parametro não válido",
/* 73 */ "ELSEIF não aparece dentro de um bloco IF" /* SIN COMA */
/*
@ -115,7 +115,7 @@
#elif TRANSLATE == TRANSLATE_WARNING
/* 0 */ "",
/* 1 */ "SETUP_PROGRAM: Caracteristica ambígua",
/* 1 */ "SETUP_PROGRAM: Caracteristica ambígua",
/* 2 */ "IMPORT: Sintaxe antiga, ignorado" /* SIN COMA */
@ -126,12 +126,12 @@
#elif TRANSLATE == TRANSLATE_DLL_ERROR
/* 1 */ "Buffer de nomes de objecto ultrapassado",
/* 2 */ "Objecto '%s': O nome não é novo",
/* 2 */ "Objecto '%s': O nome não é novo",
/* 3 */ "Demasiados objectos declarados",
/* 4 */ "Função '%s': O nome não é novo",
/* 4 */ "Função '%s': O nome não é novo",
/* 5 */ "Erro declarando objecto '%s'",
/* 6 */ "Objecto '%s': Declaração ilegal dentro de struct",
/* 7 */ "Objecto '%s': Declaração de um membro fora de struct",
/* 6 */ "Objecto '%s': Declaração ilegal dentro de struct",
/* 7 */ "Objecto '%s': Declaração de um membro fora de struct",
/* 8 */ "Tamanho ilegal da string '%s'",
/* 9 */ "EndStruct sem Struct",
/* 10 */ "Uma estructura deve conter ao menos um elemento" /* SIN COMA */
@ -144,10 +144,10 @@
#elif TRANSLATE == TRANSLATE_LTLEX_ERROR
/* 0 */ "",
/* 1 */ "Arquivo ltlex.def não encontrado",
/* 1 */ "Arquivo ltlex.def não encontrado",
/* 2 */ "Esperava-se um valor hexadecimal (&00..&FF)",
/* 3 */ "Demasiados símbolos definidos",
/* 4 */ "Símbolo inválido" /* SIN COMA */
/* 3 */ "Demasiados símbolos definidos",
/* 4 */ "Símbolo inválido" /* SIN COMA */
/*
@ -157,30 +157,30 @@
#elif TRANSLATE == TRANSLATE_COMPILER
/* 0 */ " **** Compilador eDIV " VERSION " ****\n" COPYRIGHT "\n" WEBSITE "\n",
/* 1 */ "ATENÇÃO: Esta versão de eDIV está inacabada.\nPor favor informe-nos de qualquer bug a: ediv@divsite.net\n",
/* 2 */ "Ajuda de opções de comando:\n\n",
/* 3 */ "%s [opções] arquivo.prg [executavel]\n\n",
/* 4 */ "Lista de opções:\n",
/* 1 */ "ATENÇÃO: Esta versão de eDIV está inacabada.\nPor favor informe-nos de qualquer bug a: ediv@divsite.net\n",
/* 2 */ "Ajuda de opções de comando:\n\n",
/* 3 */ "%s [opções] arquivo.prg [executavel]\n\n",
/* 4 */ "Lista de opções:\n",
/* 5 */ " -h, --help Mostra esta ajuda e sai\n",
/* 6 */ " -d, --debug Gera informação adicional de depuração\n",
/* 6 */ " -d, --debug Gera informação adicional de depuração\n",
/* 7 */ " -l, --list Guarda o listado EML como <programa.eml>\n",
/* 8 */ " -t, --table Guarda a tabela de objectos como <programa.tab>\n",
/* 9 */ " -c, --check Não gera um executavel (para comprovar sintaxe, etc.)\n",
/* 9 */ " -c, --check Não gera um executavel (para comprovar sintaxe, etc.)\n",
/* 10 */ " -s, --system Sistema Operativo de destino (por defeito %s)\n",
/* 11 */ " -v, --version Mostra versão e sai\n\n",
/* 12 */ "Parametro --system: deve indicar um sistema de destino\nConsulte a documentação para obter ajuda\n",
/* 13 */ "Parametro erróneo: %s\nUse a opção -h para ver a ajuda\n",
/* 14 */ "Parametro -s: deve indicar um sistema de destino\nConsulte a documentação para obter ajuda\n",
/* 15 */ "Parametro erróneo: -%c\nUse a opção -h para ver a ajuda\n",
/* 16 */ "Não foi especificado um arquivo\nUse a opção -h para ver a ajuda\n",
/* 11 */ " -v, --version Mostra versão e sai\n\n",
/* 12 */ "Parametro --system: deve indicar um sistema de destino\nConsulte a documentação para obter ajuda\n",
/* 13 */ "Parametro erróneo: %s\nUse a opção -h para ver a ajuda\n",
/* 14 */ "Parametro -s: deve indicar um sistema de destino\nConsulte a documentação para obter ajuda\n",
/* 15 */ "Parametro erróneo: -%c\nUse a opção -h para ver a ajuda\n",
/* 16 */ "Não foi especificado um arquivo\nUse a opção -h para ver a ajuda\n",
/* 17 */ "edivc: Erro ao abrir arquivo %s.\n",
/* 18 */ "edivc: Compilando: %s\n",
/* 19 */ "edivc: ERROR: Não se enconntra %s\n",
/* 19 */ "edivc: ERROR: Não se enconntra %s\n",
/* 20 */ "edivc: ERROR: Formato incorrecto de %s\n",
/* 21 */ "edivc: Interrompido (%d advertencias)\n",
/* 22 */ "edivc: Finalizado con exito (%d advertencias)\n",
/* 23 */ "edivc: Saida com erros\n",
/* 24 */ "edivc: ERROR: Memória insuficiente\n",
/* 24 */ "edivc: ERROR: Memória insuficiente\n",
/* 25 */ "%s:%d:%d: ERROR %d: ",
/* 26 */ "%s:%d: Advertencia: ",
/* 27 */ "Precompilando...\n",
@ -188,35 +188,35 @@
/* 29 */ "Erro ao criar arquivo de intercambio\n",
/* 30 */ "Generando listados...\n",
/* 31 */ "Guardando executavel...\n",
/* 32 */ "Guardando informação de depuração...\n",
/* 32 */ "Guardando informação de depuração...\n",
/* 33 */ "Erro ao escrever executavel\n",
/* 34 */ "Compilação finalizada.\n",
/* 34 */ "Compilação finalizada.\n",
/* 35 */ "%s: ERRO: ",
/* 36 */ "Erro ao criar arquivo %s\n",
/* 37 */ "Listado de objectos de %s - eDIV versão " VERSION "\n\n",
/* 37 */ "Listado de objectos de %s - eDIV versão " VERSION "\n\n",
/* 38 */ "\tbloco(%u), anterior(%u)\n",
/* 39 */ "Código EML de %s - eDIV versão " VERSION "\n",
/* 39 */ "Código EML de %s - eDIV versão " VERSION "\n",
/* 40 */ "edivc: ERRO: %s\n\n",
/* 41 */ "edivc: %s (linha %d) ERRO: %s\n\n",
/* 42 */ "edivc: Interrompido - encontraram-se erros\n",
#ifdef _WIN32
/* 43 */ "Não se encontra nenhuma DLL\n",
/* 43 */ "Não se encontra nenhuma DLL\n",
/* 44 */ "",
#else
/* 43 */ "Não se encontra nenhuma biblioteca\n",
/* 44 */ "Directorio %s/ não foi encontrado\n",
/* 43 */ "Não se encontra nenhuma biblioteca\n",
/* 44 */ "Directorio %s/ não foi encontrado\n",
#endif
/* 45 */ "Erro ao carregar biblioteca %s\n",
#ifdef _WIN32
/* 46 */ "Não podo carregar %s\n",
/* 47 */ "Não se encontra ExportaFuncs em %s - DLL invalida\n",
/* 46 */ "Não podo carregar %s\n",
/* 47 */ "Não se encontra ExportaFuncs em %s - DLL invalida\n",
#else
/* 46 */ "Não se pode carregar %s (%s)\n",
/* 47 */ "Não se encontra ExportaFuncs em %s - Biblioteca invalida (%s)\n",
/* 46 */ "Não se pode carregar %s (%s)\n",
/* 47 */ "Não se encontra ExportaFuncs em %s - Biblioteca invalida (%s)\n",
#endif
/* FIXME: revisar/traducir esto */
/* 48 */ " -n, --news Mostra a última notícia de eDivCentral.com e sai\n",
/* 48 */ " -n, --news Mostra a última notícia de eDivCentral.com e sai\n",
/* 49 */ "Error: no se ha configurado un servidor de noticias en ediv.cfg\n",
/* 50 */ "Error: el fichero recibido no es del tipo esperado\n" /* SIN COMA */
@ -229,103 +229,103 @@
/* FIXME: traducir esto */
/* 0 */ "ERROR %d: ",
/* 1 */ "eDIV: Error en ejecución",
/* 2 */ "eDIV: Error crítico",
/* 1 */ "eDIV: Error en ejecución",
/* 2 */ "eDIV: Error crítico",
/* 3 */ "Error en %s: ",
/* 4 */ "eDIV: Error en librería dinámica" /* SIN COMA */
/* 4 */ "eDIV: Error en librería dinámica" /* SIN COMA */
/*
* Errores de tiempo de ejecución del stub
* Errores de tiempo de ejecución del stub
*/
#elif TRANSLATE == TRANSLATE_RUNTIME_ERROR
/* FIXME: traducir esto */
/* 100 */ "No hay memoria suficiente para ejecutar el programa.",
/* 101 */ "Llamada a key() con un código de tecla inexistente.",
/* 101 */ "Llamada a key() con un código de tecla inexistente.",
/* 102 */ "No se pudo cargar la paleta, archivo no encontrado.",
/* 103 */ "Se intentó cargar un archivo de paleta inválido.",
/* 103 */ "Se intentó cargar un archivo de paleta inválido.",
/* 104 */ "Demasiados ficheros FPG abiertos a la vez.",
/* 105 */ "No se pudo cargar el fichero, archivo no encontrado.",
/* 106 */ "Se intentó cargar un fichero FPG no válido.",
/* 107 */ "Número de scroll inválido (debe estar entre 0 y 9).",
/* 108 */ "Número de región inválido (fuera de rango).",
/* 109 */ "Código de fichero inválido.",
/* 110 */ "Código de gráfico inválido.",
/* 111 */ "Se intentó usar un fichero FPG antes de cargarlo.",
/* 112 */ "Se necesita un código de gráfico para el scroll.",
/* 106 */ "Se intentó cargar un fichero FPG no válido.",
/* 107 */ "Número de scroll inválido (debe estar entre 0 y 9).",
/* 108 */ "Número de región inválido (fuera de rango).",
/* 109 */ "Código de fichero inválido.",
/* 110 */ "Código de gráfico inválido.",
/* 111 */ "Se intentó usar un fichero FPG antes de cargarlo.",
/* 112 */ "Se necesita un código de gráfico para el scroll.",
/* 113 */ "Se han cargado demasiados fuentes de letras.",
/* 114 */ "No se pudo cargar el fuente, archivo no encontrado.",
/* 115 */ "Se intentó cargar un archivo de fuente no válido.",
/* 116 */ "Código identificador de fuente de letras inválido.",
/* 117 */ "Código de centrado de texto inválido.",
/* 115 */ "Se intentó cargar un archivo de fuente no válido.",
/* 116 */ "Código identificador de fuente de letras inválido.",
/* 117 */ "Código de centrado de texto inválido.",
/* 118 */ "Hay demasiados textos activos en el programa.",
/* 119 */ "Indentificador de texto no válido.",
/* 120 */ "Región de pantalla definida incorrectamente.",
/* 121 */ "Se intentó utilizar un gráfico que no existe.",
/* 122 */ "Se intentó escribir un bloque fuera de la memoria.",
/* 119 */ "Indentificador de texto no válido.",
/* 120 */ "Región de pantalla definida incorrectamente.",
/* 121 */ "Se intentó utilizar un gráfico que no existe.",
/* 122 */ "Se intentó escribir un bloque fuera de la memoria.",
/* 123 */ "No se pudo abrir el archivo para escritura.",
/* 124 */ "No se pudo escribir el archivo (ver espacio en disco).",
/* 125 */ "Se intentó leer un bloque fuera de la memoria.",
/* 125 */ "Se intentó leer un bloque fuera de la memoria.",
/* 126 */ "No se pudo abrir el archivo para lectura.",
/* 127 */ "No se pudo leer el archivo.",
/* 128 */ "No se pudo cargar el efecto de sonido.",
/* 129 */ "No se pudo tocar el efecto de sonido solicitado.",
/* 130 */ "No se pudo iniciar la animación solicitada.",
/* 131 */ "Número de modo 7 inválido (debe estar entre 0 y 9).",
/* 132 */ "Se necesita un código de gráfico para el modo 7.",
/* 133 */ "Número de punto de control inválido.",
/* 134 */ "Número de botón incorrecto (debe estar entre 0 y 3).",
/* 135 */ "Número de eje incorrecto (debe estar entre 0 y 3).",
/* 136 */ "Dirección de la tabla de paleta fuera de la memoria.",
/* 137 */ "No se pueden comprobar regiones en gráficos de m-7.",
/* 138 */ "Código de información gráfica incorrecto.",
/* 139 */ "No se pueden comprobar colisiones en gráficos de m-7.",
/* 130 */ "No se pudo iniciar la animación solicitada.",
/* 131 */ "Número de modo 7 inválido (debe estar entre 0 y 9).",
/* 132 */ "Se necesita un código de gráfico para el modo 7.",
/* 133 */ "Número de punto de control inválido.",
/* 134 */ "Número de botón incorrecto (debe estar entre 0 y 3).",
/* 135 */ "Número de eje incorrecto (debe estar entre 0 y 3).",
/* 136 */ "Dirección de la tabla de paleta fuera de la memoria.",
/* 137 */ "No se pueden comprobar regiones en gráficos de m-7.",
/* 138 */ "Código de información gráfica incorrecto.",
/* 139 */ "No se pueden comprobar colisiones en gráficos de m-7.",
/* 140 */ "Acceso fuera de rango.",
/* 141 */ "Se intentó acceder a un proceso inválido.",
/* 141 */ "Se intentó acceder a un proceso inválido.",
/* 142 */ "El proceso parece bloqueado, esperando FRAME.",
/* 143 */ "No se pudo cargar el mapa, archivo no encontrado.",
/* 144 */ "Se intentó cargar un archivo de mapa inválido.",
/* 145 */ "Se ha intentado hacer una división entre cero.",
/* 146 */ "El tamaño de la región es incorrecto.",
/* 144 */ "Se intentó cargar un archivo de mapa inválido.",
/* 145 */ "Se ha intentado hacer una división entre cero.",
/* 146 */ "El tamaño de la región es incorrecto.",
/* 147 */ "No se pudo cargar FLI/FLC, archivo no encontrado.",
/* 148 */ "Valor de timeout incorrecto (debe ser entre 1 y 60).",
/* 149 */ "Número de jugadores incorrecto (debe ser entre 2 y 8).",
/* 150 */ "Sólo se pueden enviar datos globales.",
/* 151 */ "Tamaño de casilla inválido (debe ser entre 1 y 256).",
/* 152 */ "Mapa de búsqueda no válido (desde 1x1 hasta 128x128).",
/* 153 */ "Tamaño de mapa incorrecto (de 1x1 a 32768x32768).",
/* 154 */ "Número de color incorrecto (debe ser de 0 a 255).",
/* 155 */ "El centro está fuera de los límites del gráfico.",
/* 149 */ "Número de jugadores incorrecto (debe ser entre 2 y 8).",
/* 150 */ "Sólo se pueden enviar datos globales.",
/* 151 */ "Tamaño de casilla inválido (debe ser entre 1 y 256).",
/* 152 */ "Mapa de búsqueda no válido (desde 1x1 hasta 128x128).",
/* 153 */ "Tamaño de mapa incorrecto (de 1x1 a 32768x32768).",
/* 154 */ "Número de color incorrecto (debe ser de 0 a 255).",
/* 155 */ "El centro está fuera de los límites del gráfico.",
/* 156 */ "El objeto se encuentra fuera del mapa y sera eliminado.",
/* 157 */ "Textura del mapa no encontrada.",
/* 158 */ "El tamaño de la textura es incorrecto.",
/* 158 */ "El tamaño de la textura es incorrecto.",
/* 159 */ "No se pudo cargar el mundo, archivo no encontrado.",
/* 160 */ "No se pudo cargar el mundo, archivo no válido.",
/* 161 */ "El número de bandera no es válido.",
/* 162 */ "Dispositivo inválido (sólo 1-IPX,2-SERIAL,3-MODEM).",
/* 163 */ "Tamaño de paquete inválido (sólo de 1 a 199).",
/* 164 */ "La cadena de texto destino no es válida.",
/* 165 */ "Se intentó acceder a un puntero nulo.",
/* 166 */ "El modo de acceso al archivo no es válido.",
/* 167 */ "No se pudo cargar el módulo.",
/* 160 */ "No se pudo cargar el mundo, archivo no válido.",
/* 161 */ "El número de bandera no es válido.",
/* 162 */ "Dispositivo inválido (sólo 1-IPX,2-SERIAL,3-MODEM).",
/* 163 */ "Tamaño de paquete inválido (sólo de 1 a 199).",
/* 164 */ "La cadena de texto destino no es válida.",
/* 165 */ "Se intentó acceder a un puntero nulo.",
/* 166 */ "El modo de acceso al archivo no es válido.",
/* 167 */ "No se pudo cargar el módulo.",
/* 168 */ "Demasiados errores ignorados.",
/* 169 */ "Demasiados archivos abiertos.",
/* 170 */ "Identificador de archivo (handle) no válido.",
/* 170 */ "Identificador de archivo (handle) no válido.",
/* 171 */ "Valor fuera de rango.",
/* 172 */ "Demasiados objetos gráficos visualizados.",
/* 173 */ "Tipo de objeto gráfico no conocido.",
/* 172 */ "Demasiados objetos gráficos visualizados.",
/* 173 */ "Tipo de objeto gráfico no conocido.",
/* 174 */ "Porcentaje de tinta fuera de rango (0..15).",
/* 175 */ "Número de objeto gráfico no válido.",
/* 175 */ "Número de objeto gráfico no válido.",
/* 176 */ "Error variable de vpe: Textura de mapa [a] no encontrada en fichero [b].",
/* 177 */ "Textura de mapa.",
/* 178 */ "no encontrada en fichero.",
/* 179 */ "Se realizaron demasiadas peticiones de memoria dinámica.",
/* 179 */ "Se realizaron demasiadas peticiones de memoria dinámica.",
/* 180 */ "El puntero no se corresponde con ninguno de los bloques reservados.",
/* 181 */ "No se pueden reservar bloques de menos de una posición.",
/* 182 */ "Se intentó (des)encriptar un bloque fuera de la memoria.",
/* 183 */ "No se puede cargar otra paleta cuando está forzada la actual.",
/* 181 */ "No se pueden reservar bloques de menos de una posición.",
/* 182 */ "Se intentó (des)encriptar un bloque fuera de la memoria.",
/* 183 */ "No se puede cargar otra paleta cuando está forzada la actual.",
/* 184 */ "",
/* 185 */ "",
/* 186 */ "",
@ -346,22 +346,22 @@
/*
* Errores críticos del stub
* Errores críticos del stub
*/
#elif TRANSLATE == TRANSLATE_CRITICAL_ERROR
/* FIXME: traducir esto */
/* 0 */ "",
/* 1 */ "Error leyendo el código del programa",
/* 2 */ "Error en el formato de código",
/* 1 */ "Error leyendo el código del programa",
/* 2 */ "Error en el formato de código",
/* 3 */ "Redefinicion del tipo de proceso",
/* 4 */ "No se pudo reservar memoria para la pila",
/* 5 */ "Librería no encontrada: %s",
/* 6 */ "%s no es una librería válida de eDIV",
/* 5 */ "Librería no encontrada: %s",
/* 6 */ "%s no es una librería válida de eDIV",
/* 7 */ "No se pudo inicializar SDL",
/* 8 */ "Demasiados procesos en ejecución",
/* 9 */ "Se requiere SDL versión %d.%d.%d\nVersión detectada en el sistema: %d.%d.%d" /* SIN COMA */
/* 8 */ "Demasiados procesos en ejecución",
/* 9 */ "Se requiere SDL versión %d.%d.%d\nVersión detectada en el sistema: %d.%d.%d" /* SIN COMA */
#endif

View file

@ -21,7 +21,7 @@
/*
* Archivo auxiliar para los language.c
* Hay que editarlo cada vez que se añada un nuevo idioma
* Hay que editarlo cada vez que se añada un nuevo idioma
* LOS INCLUDES DEBEN ESTAR EN ORDEN (ver language.h)
*/

View file

@ -62,7 +62,7 @@ int carga_dll(char* nombre)
printf("intento 2: %s\n",resolved_path);
if(resolved_path) hDLL=LoadLibraryEx(resolved_path,NULL,LOAD_WITH_ALTERED_SEARCH_PATH);
if(hDLL==NULL)
critical_error(5,fichdll); // Librería no encontrada
critical_error(5,fichdll); // Librería no encontrada
}
// Inicializa y ejecuta la funcion ExportaFuncs de la DLL
@ -115,7 +115,7 @@ int carga_dll(char* nombre)
strcat(fichdll,".so");
hDLL=dlopen(fichdll2,RTLD_NOW);
if(!hDLL)
critical_error(5,fichdll); // Librería no encontrada
critical_error(5,fichdll); // Librería no encontrada
}
// Inicializa y ejecuta la funcion ExportaFuncs de la DLL

View file

@ -44,13 +44,13 @@ struct objeto * ob2;*/
int creaobj;
byte decl_struct=0; // 1 si se está declarando un struct
byte decl_struct=0; // 1 si se está declarando un struct
byte slocal=0; // para las structs. 0=global, 1=local
int nregs;
int offset;
// no creo que haga falta (sólo serviría para comprobar errores en las dll)
// no creo que haga falta (sólo serviría para comprobar errores en las dll)
// -> nos ahorramos la tabla de objetos
/*int crea_objeto(byte * nombre)
@ -80,7 +80,7 @@ int offset;
}*/
// Errores específicos en la ejecución de una DLL
// Errores específicos en la ejecución de una DLL
void dll_error(int error, ...)
{
@ -185,7 +185,7 @@ int EDIV_Export_Const(char* cadena, int valor)
return 0;
}
// sólamente se tendrá que hacer algo en la versión con trazador
// sólamente se tendrá que hacer algo en la versión con trazador
/* creaobj=crea_objeto((byte*)cadena);

View file

@ -18,18 +18,18 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
/* Errores en tiempo de ejecución */
/* Errores en tiempo de ejecución */
/* POR HACER: En Windows se muestra un MsgBox para los errores, pero en Linux se hace
* un simple printf. Esto no es problema en los errores no críticos de la versión debug
* un simple printf. Esto no es problema en los errores no críticos de la versión debug
* (ya que los errores los muestra la DLL de Delphi), o si siempre ejecutamos los juegos
* desde una consola, pero el usuario final los ejecutará haciendo doble clic sobre el
* programa. Por tanto en Linux también tenemos que mostrar una MsgBox, y no podemos usar
* el propio buffer de SDL para imprimirlos (ya que uno de los errores no críticos es la
* falta de memoria), así que habrá que tirar de X a lo basto, recomiendo mirar el código
* desde una consola, pero el usuario final los ejecutará haciendo doble clic sobre el
* programa. Por tanto en Linux también tenemos que mostrar una MsgBox, y no podemos usar
* el propio buffer de SDL para imprimirlos (ya que uno de los errores no críticos es la
* falta de memoria), así que habrá que tirar de X a lo basto, recomiendo mirar el código
* fuente de XBill ya que implementa MsgBoxes de una forma reducida usando Motif o Athena
* (basada en Xaw). XBill también puede usar GTK pero esa librería ya es demasiado grande
* (la librería a usar debe ser linkada de forma estática)
* (basada en Xaw). XBill también puede usar GTK pero esa librería ya es demasiado grande
* (la librería a usar debe ser linkada de forma estática)
*/
#ifdef _WIN32
@ -44,9 +44,9 @@
/* Error ( numero, parametros [...] )
*
* Genera un error en tiempo de ejecución, no crítico (en debug se llama al trazador)
* ATENCIÓN: Ahora mismo está en forma de RELEASE, para la versión DEBUG del stub se deberá
* invocar al trazador (llamando a la función adecuada, que aún no está hecha, en debug.dll)
* Genera un error en tiempo de ejecución, no crítico (en debug se llama al trazador)
* ATENCIÓN: Ahora mismo está en forma de RELEASE, para la versión DEBUG del stub se deberá
* invocar al trazador (llamando a la función adecuada, que aún no está hecha, en debug.dll)
* Otra nota: he puesto exactamente los mismos errores de DIV2, ya que tenemos que mantener
* la compatibilidad con el ignore_error... 100% compatible, recordad.. :P
*/
@ -81,7 +81,7 @@ void error(int num, ...)
/* critical_error ( numero, parametros [...] )
*
* Interrumpe el programa con un mensaje de error. No es posible trazar.
* Esta función es igual para release que para debug, ya que no se puede trazar en el punto
* Esta función es igual para release que para debug, ya que no se puede trazar en el punto
* en que se produce un error de este tipo.
*/
@ -107,16 +107,16 @@ void critical_error(int num, ...)
/* custom_error (tipo, mensaje)
*
* Permite a las DLLs generar sus propios errores, para que no dependan de los
* que hay definidos en el stub. El parámetro tipo permite indicar si se trata de
* un error crítico (que debe interrumpir la ejecución del programa) o un error
* que hay definidos en el stub. El parámetro tipo permite indicar si se trata de
* un error crítico (que debe interrumpir la ejecución del programa) o un error
* runtime (que llama al trazador si estamos en modo debug). A ser posible hay
* que usar los que incluye el stub, ya que estos errores no pueden usarse con
* ignore_error (no tienen un código asociado), aunque se ven afectados por
* ignore_error (no tienen un código asociado), aunque se ven afectados por
* compiler_options _ignore_errors.
* NOTA: una DLL puede incluir su propio sistema de gestión de errores, por tanto
* puede asignar códigos a sus propios errores e incluso incluir su propia versión
* NOTA: una DLL puede incluir su propio sistema de gestión de errores, por tanto
* puede asignar códigos a sus propios errores e incluso incluir su propia versión
* de ignore_error.
* DESVENTAJA: se pierde la capacidad multilingüe, a menos que la incluya la propia DLL.
* DESVENTAJA: se pierde la capacidad multilingüe, a menos que la incluya la propia DLL.
*/
void custom_error(tipoerror tipo, char* mensaje)

View file

@ -56,8 +56,8 @@ int ini_interprete()
// Posicion de inicio del code
iloc=mem[2]; // Inicio de la imagen de las variables locales
iloc_len=mem[6]+mem[5]; // Longitud de las locales (p£blicas y privadas)
iloc_pub_len=mem[6]; // Longitud de las variables locales p£blicas
iloc_len=mem[6]+mem[5]; // Longitud de las locales (p£blicas y privadas)
iloc_pub_len=mem[6]; // Longitud de las variables locales p£blicas
inicio_privadas=iloc_pub_len;
imem=mem[1]; // Principio del codigo
/*
@ -274,12 +274,12 @@ int proceso( int num, int padre )
sp--;
break;
case ldiv://15
if(pila[sp]==0) error(145); // división entre cero
if(pila[sp]==0) error(145); // división entre cero
pila[sp-1] /= pila[sp] ;
sp--;
break;
case lmod://16
if(pila[sp]==0) error(145); // división entre cero
if(pila[sp]==0) error(145); // división entre cero
pila[sp-1] %= pila[sp] ;
sp--;
break;
@ -360,11 +360,11 @@ int proceso( int num, int padre )
break;
case ltyp://32
if ( procs_s[num_proc].tipo != 0 ) {
critical_error(3); // redefinición del tipo de proceso
critical_error(3); // redefinición del tipo de proceso
}
procs_s[num_proc].id = (mem[2] + ( num_proc * iloc_len ))|1;
if(procs_s[num_proc].id>imem_max-iloc_len)
critical_error(8); // demasiados procesos en ejecución
critical_error(8); // demasiados procesos en ejecución
memcpy(&mem[procs_s[num_proc].id],&mem[iloc],iloc_pub_len<<2);
reserved("process_id",procs_s[num_proc].id)=procs_s[num_proc].id;
if(padre!=-1) {
@ -413,14 +413,14 @@ int proceso( int num, int padre )
case lipt://38
pila[sp] = ++mem[ pila[sp] ] ;
break ;
case lpti://39 COMPORTAMIENTO EXTRAÑO SI SE PONE EN UNA LINEA
case lpti://39 COMPORTAMIENTO EXTRAÑO SI SE PONE EN UNA LINEA
mem[ pila[sp] ]++;
pila[sp] = mem[ pila[sp] ]-1 ;
break ;
case ldpt://40
pila[sp] = --mem[ pila[sp] ] ;
break ;
case lptd://41 COMPORTAMIENTO EXTRAÑO SI SE PONE EN UNA LINEA
case lptd://41 COMPORTAMIENTO EXTRAÑO SI SE PONE EN UNA LINEA
mem[ pila[sp] ]--;
pila[sp] = mem[ pila[sp] ]+1 ;
break ;
@ -846,14 +846,14 @@ int proceso( int num, int padre )
nstring=((nstring+1)&3);
break;
case lstrdec: /* cambio de tamaño "en el aire" (no da error, hace lo que puede) */
case lstrdec: /* cambio de tamaño "en el aire" (no da error, hace lo que puede) */
oo=strlen((char*)&mem[pila[sp-1]]);
if (oo<1028) {
strcpy((char*)&mem[nullstring[nstring]],(char*)&mem[pila[sp-1]]);
if (pila[sp]>0) { /* Quitar caracteres */
if (pila[sp]>=oo) memb[nullstring[nstring]*4]=0;
else memb[nullstring[nstring]*4+oo-pila[sp]]=0;
} else if (pila[sp]<0) { /* Añadir (?) caracteres (por homogeneidad) */
} else if (pila[sp]<0) { /* Añadir (?) caracteres (por homogeneidad) */
pila[sp]=oo-pila[sp]; /* Nueva longitud */
if (pila[sp]>1025) pila[sp]=1025;
for (;oo<pila[sp];oo++) {
@ -865,7 +865,7 @@ int proceso( int num, int padre )
nstring=((nstring+1)&3);
break;
case lstrsub: /* cambio de tamaño a un string */
case lstrsub: /* cambio de tamaño a un string */
oo=strlen((char*)&mem[pila[sp-1]]);
/* #ifdef DEBUG
if ((mem[pila[sp-1]-1]&0xFFF00000)!=0xDAD00000) {
@ -882,7 +882,7 @@ int proceso( int num, int padre )
if (pila[sp]>0) { // Quitar caracteres
if (pila[sp]>=oo) memb[pila[sp-1]*4]=0;
else memb[pila[sp-1]*4+oo-pila[sp]]=0;
} else if (pila[sp]<0) { /* Añadir (?) caracteres (por homogeneidad) */
} else if (pila[sp]<0) { /* Añadir (?) caracteres (por homogeneidad) */
pila[sp]=oo-pila[sp]; /* Nueva longitud */
for (;oo<pila[sp];oo++) {
memb[pila[sp-1]*4+oo]=' ';
@ -1011,7 +1011,7 @@ int proceso( int num, int padre )
sp--; mem[procs_s[num_proc].id+_param_offset]++;
break;
/* Comprobación de punteros nulos */
/* Comprobación de punteros nulos */
case lnul:
/* #ifdef DEBUG
if (!pila[sp]) {
@ -1068,18 +1068,18 @@ int proceso( int num, int padre )
/*
* int localiza_lin (int ip)
* Localiza el imem actual (ip) en la tabla LIN (es decir, localiza en qué línea y
* Localiza el imem actual (ip) en la tabla LIN (es decir, localiza en qué línea y
* columna del PRG nos encontramos).
*
* Retorna:
* ((El índice en lin[])-1)/4 <- sentiende no?
* ((El índice en lin[])-1)/4 <- sentiende no?
*/
int localiza_lin(int ip)
{
lin_item* last;
int i;
/* Primero, para ahorrar tiempo, comprueba si aún seguimos dentro de la misma
/* Primero, para ahorrar tiempo, comprueba si aún seguimos dentro de la misma
sentencia, aunque sea distinto opcode */
last=(lin_item*)(&lin[last_lin*4]);
if(last->inicio<=ip && last->fin>=ip) {
@ -1087,8 +1087,8 @@ int localiza_lin(int ip)
return last_lin;
}
/* Si no, recorre la tabla LIN a partir de donde estábamos, no desde el principio,
ya que es más probable que hayamos saltado a una sentencia posterior que a una
/* Si no, recorre la tabla LIN a partir de donde estábamos, no desde el principio,
ya que es más probable que hayamos saltado a una sentencia posterior que a una
anterior */
for(i=last_lin;i<lin[0];i++) {
if(lin[i*4+1]<=ip && lin[i*4+2]>=ip)
@ -1101,7 +1101,7 @@ int localiza_lin(int ip)
return i;
}
/* Si aún no lo hemos encontrado, mal rollito.. bug seguro, avisemos al programador */
/* Si aún no lo hemos encontrado, mal rollito.. bug seguro, avisemos al programador */
#ifdef _DEBUG
printf("PANIC! No se en que parte del PRG estoy! imem=%d, last_lin=%d\n",ip,last_lin);
#endif

View file

@ -33,46 +33,46 @@
#endif /* _WIN32 */
//-----------------------------------------------------------------------------
// MNEMÓNICOS BYTECODE EML
// MNEMÓNICOS BYTECODE EML
//-----------------------------------------------------------------------------
//Mnemónico-Códg.-Operandos (Generación de código EML, "*" = "aún no usado")
//Mnemónico-Códg.-Operandos (Generación de código EML, "*" = "aún no usado")
#define lnop 0 // * No operación
#define lnop 0 // * No operación
#define lcar 1 // valor Carga una constante en pila
#define lasi 2 // Saca valor, offset y mete el valor en [offset]
#define lori 3 // Or lógico
#define lori 3 // Or lógico
#define lxor 4 // Xor, or exclusivo
#define land 5 // And lógico, operador sobre condiciones
#define ligu 6 // Igual, operador logico de comparación
#define land 5 // And lógico, operador sobre condiciones
#define ligu 6 // Igual, operador logico de comparación
#define ldis 7 // Distinto, true si los 2 valores son diferentes
#define lmay 8 // Mayor, comparación con signo
#define lmay 8 // Mayor, comparación con signo
#define lmen 9 // Menor, idem
#define lmei 10 // Menor o igual
#define lmai 11 // Mayor o igual
#define ladd 12 // Suma dos constantes
#define lsub 13 // Resta, operación binaria
#define lmul 14 // Multiplicación
#define ldiv 15 // División de enteros
#define lmod 16 // Módulo, resto de la división
#define lneg 17 // Negación, cambia de signo una constante
#define lsub 13 // Resta, operación binaria
#define lmul 14 // Multiplicación
#define ldiv 15 // División de enteros
#define lmod 16 // Módulo, resto de la división
#define lneg 17 // Negación, cambia de signo una constante
#define lptr 18 // Pointer, saca offset y mete [offset]
#define lnot 19 // Negación binaria, bit a bit
#define lnot 19 // Negación binaria, bit a bit
#define laid 20 // Suma id a la constante de la pila
#define lcid 21 // Carga id en la pila
#define lrng 22 // rango Realiza una comparación de rango
#define ljmp 23 // offset Salta a una dirección de mem[]
#define ljpf 24 // offset Salta si un valor es falso a una dirección
#define lfun 25 /* código Llamada a un proceso interno, ej. signal() (obsoleto, ver lext) */
#define lrng 22 // rango Realiza una comparación de rango
#define ljmp 23 // offset Salta a una dirección de mem[]
#define ljpf 24 // offset Salta si un valor es falso a una dirección
#define lfun 25 /* código Llamada a un proceso interno, ej. signal() (obsoleto, ver lext) */
#define lcal 26 // offset Crea un nuevo proceso en el programa
#define lret 27 // Auto-eliminación del proceso
#define lret 27 // Auto-eliminación del proceso
#define lasp 28 // Desecha un valor apilado
#define lfrm 29 // Detiene por este frame la ejecución del proceso
#define lcbp 30 // num_par Inicializa el puntero a los parámetros locales
#define lcpa 31 // Saca offset, lee parámetro [offset] y bp++
#define lfrm 29 // Detiene por este frame la ejecución del proceso
#define lcbp 30 // num_par Inicializa el puntero a los parámetros locales
#define lcpa 31 // Saca offset, lee parámetro [offset] y bp++
#define ltyp 32 // bloque Define el tipo de proceso actual (colisiones)
#define lpri 33 // offset Salta a la dirección, y carga var. privadas
#define lcse 34 // offset Si switch <> expresión, salta al offset
#define lpri 33 // offset Salta a la dirección, y carga var. privadas
#define lcse 34 // offset Si switch <> expresión, salta al offset
#define lcsr 35 // offset Si switch no esta en el rango, salta al offset
#define lshr 36 // Rotacion a la derecha (modo C, >>)
#define lshl 37 // Rotacion a la izquierda (modo C, <<)
@ -80,26 +80,26 @@
#define lpti 39 // Pointer e incremento
#define ldpt 40 // Decremento y pointer
#define lptd 41 // Pointer y decremento
#define lada 42 // Add-asignación
#define lsua 43 // Sub-asignación
#define lmua 44 // Mul-asignación
#define ldia 45 // Div-asignación
#define lmoa 46 // Mod-asignación
#define lana 47 // And-asignación
#define lora 48 // Or-asignación
#define lxoa 49 // Xor-asignación
#define lsra 50 // Shr-asignación
#define lsla 51 // Shl-asignación
#define lpar 52 // num_par_pri Define el número de parámetros privados
#define lrtf 53 // Auto-eliminación del proceso, devuelve un valor
#define lada 42 // Add-asignación
#define lsua 43 // Sub-asignación
#define lmua 44 // Mul-asignación
#define ldia 45 // Div-asignación
#define lmoa 46 // Mod-asignación
#define lana 47 // And-asignación
#define lora 48 // Or-asignación
#define lxoa 49 // Xor-asignación
#define lsra 50 // Shr-asignación
#define lsla 51 // Shl-asignación
#define lpar 52 // num_par_pri Define el número de parámetros privados
#define lrtf 53 // Auto-eliminación del proceso, devuelve un valor
#define lclo 54 // offset Crea un clon del proceso actual
#define lfrf 55 // Pseudo-Frame (frame a un porcentaje, frame(100)==frame)
#define limp 56 // offset text Importa una DLL externa
#define lext 57 // código Llama a una función externa
#define lext 57 // código Llama a una función externa
#define lchk 58 // Comprueba la validez de un identificador
#define ldbg 59 // Invoca al debugger
// Instrucciones añadidas para la optimización (DIV 2.0)
// Instrucciones añadidas para la optimización (DIV 2.0)
#define lcar2 60 /* car + car */
#define lcar3 61 /* car + car + car */
@ -120,7 +120,7 @@
#define lcarsub 76 /* car + sub */
#define lcardiv 77 /* car + div */
// Instrucciones añadidas para el manejo de caracteres
// Instrucciones añadidas para el manejo de caracteres
#define lptrchr 78 // Pointer, saca (index, offset) y mete [offset+byte index]
#define lasichr 79 // Saca (valor, index, offset) y mete el valor en [offset+byte index]
@ -128,25 +128,25 @@
#define lptichr 81 // Pointer e incremento
#define ldptchr 82 // Decremento y pointer
#define lptdchr 83 // Pointer y decremento
#define ladachr 84 // Add-asignación
#define lsuachr 85 // Sub-asignación
#define lmuachr 86 // Mul-asignación
#define ldiachr 87 // Div-asignación
#define lmoachr 88 // Mod-asignación
#define lanachr 89 // And-asignación
#define lorachr 90 // Or-asignación
#define lxoachr 91 // Xor-asignación
#define lsrachr 92 // Shr-asignación
#define lslachr 93 // Shl-asignación
#define lcpachr 94 // Saca offset, lee parámetro [offset] y bp++
#define ladachr 84 // Add-asignación
#define lsuachr 85 // Sub-asignación
#define lmuachr 86 // Mul-asignación
#define ldiachr 87 // Div-asignación
#define lmoachr 88 // Mod-asignación
#define lanachr 89 // And-asignación
#define lorachr 90 // Or-asignación
#define lxoachr 91 // Xor-asignación
#define lsrachr 92 // Shr-asignación
#define lslachr 93 // Shl-asignación
#define lcpachr 94 // Saca offset, lee parámetro [offset] y bp++
// Instrucciones añadidas para el manejo de cadenas
// Instrucciones añadidas para el manejo de cadenas
#define lstrcpy 95 // Saca si, di, y hace strcpy(mem[di],[si]) (deja di en pila)
#define lstrfix 96 // Amplia una cadena antes de meter un char en ella
#define lstrcat 97 // Concatena dos cadenas (opera como strcpy)
#define lstradd 98 // Suma dos strings "en el aire" y deja en pila el puntero al aire
#define lstrdec 99 // Añade o quita caracteres a una cadena
#define lstrdec 99 // Añade o quita caracteres a una cadena
#define lstrsub 100 // Quita caracteres a una cadena (-=)
#define lstrlen 101 // Sustituye una cadena por su longitud
#define lstrigu 102 // Comparacion de igualdad de dos cadenas
@ -155,9 +155,9 @@
#define lstrmen 105 // Cadena menor
#define lstrmei 106 // Cadena mayor o igual
#define lstrmai 107 // Cadena menor o igual
#define lcpastr 108 // Carga un parámetro en una cadena
#define lcpastr 108 // Carga un parámetro en una cadena
// Instrucciones añadidas para el manejo de Words
// Instrucciones añadidas para el manejo de Words
#define lptrwor 109 // Pointer, saca (index, offset) y mete [offset+byte index]
#define lasiwor 110 // Saca (valor, index, offset) y mete el valor en [offset+byte index]
@ -165,39 +165,39 @@
#define lptiwor 112 // Pointer e incremento
#define ldptwor 113 // Decremento y pointer
#define lptdwor 114 // Pointer y decremento
#define ladawor 115 // Add-asignación
#define lsuawor 116 // Sub-asignación
#define lmuawor 117 // Mul-asignación
#define ldiawor 118 // Div-asignación
#define lmoawor 119 // Mod-asignación
#define lanawor 120 // And-asignación
#define lorawor 121 // Or-asignación
#define lxoawor 122 // Xor-asignación
#define lsrawor 123 // Shr-asignación
#define lslawor 124 // Shl-asignación
#define lcpawor 125 // Saca offset, lee parámetro [offset] y bp++
#define ladawor 115 // Add-asignación
#define lsuawor 116 // Sub-asignación
#define lmuawor 117 // Mul-asignación
#define ldiawor 118 // Div-asignación
#define lmoawor 119 // Mod-asignación
#define lanawor 120 // And-asignación
#define lorawor 121 // Or-asignación
#define lxoawor 122 // Xor-asignación
#define lsrawor 123 // Shr-asignación
#define lslawor 124 // Shl-asignación
#define lcpawor 125 // Saca offset, lee parámetro [offset] y bp++
/* Miscelánea */
/* Miscelánea */
#define lnul 126 // Comprueba que un puntero no sea NULL
/* Instrucciones añadidas en eDIV */
/* Instrucciones añadidas en eDIV */
#define lextasp 127 /* ext + asp, sustituye a funasp */
//-----------------------------------------------------------------------------
// Variables locales del sistema de sprites (las primeras no son p£blicas)
// Variables locales del sistema de sprites (las primeras no son p£blicas)
//-----------------------------------------------------------------------------
#define _Id 0 //Para comprobar validez de accesos externos
#define _IdScan 1 //Recorrido del resto de los procesos (p.ej.colisiones)
#define _Bloque 2 //Identificador del tipo de proceso (para colisiones)
#define _BlScan 3 //Ultimo tipo de proceso scaneado en el £ltimo recorrido
#define _BlScan 3 //Ultimo tipo de proceso scaneado en el £ltimo recorrido
#define _Status 4 //Estado (0 dead, 1 killed, 2 alive, 3 sleept, 4 freezed)
#define _NumPar 5 //N£mero de par metros del proceso
#define _Param 6 //Puntero a los par metros pasados al proceso (en pila)
#define _IP 7 //Puntero de ejecuci¢n (la siguiente al frame anterior)
#define _NumPar 5 //N£mero de par metros del proceso
#define _Param 6 //Puntero a los par metros pasados al proceso (en pila)
#define _IP 7 //Puntero de ejecuci¢n (la siguiente al frame anterior)
#define _SP 8 //Puntero de pila (stack pointer del proceso)
#define _Executed 9 //Indica para cada frame si el proceso ya se ejecut¢
#define _Executed 9 //Indica para cada frame si el proceso ya se ejecut¢
#define _Painted 10 //Indica si el proceso ya ha sido pintado
// Las siguientes 2 variables son duales, segun el proceso sea de m7 o m8
@ -211,30 +211,30 @@
#define _Frame 13 //Cuanto frame lleva el proceso (frame(n))
#define _x0 14 //Caja ocupada por el sprite cada
#define _y0 15 // vez que se pinta para realizar
#define _x1 16 // volcado y restauraci¢n de fondo
#define _x1 16 // volcado y restauraci¢n de fondo
#define _y1 17 // parcial (dump_type==0 y restore_background==0)
#define _FCount 18 //Cuenta de llamadas a funcion (para saltarse retornos en frame)
#define _Caller 19 //ID del proceso o funcion llamador (0 si ha sido el kernel)
#define _Father 20 //Id del padre del proceso (0 si no existe)
#define _Son 21 //Id del £ltimo hijo que ha creado (0 sne)
#define _Son 21 //Id del £ltimo hijo que ha creado (0 sne)
#define _SmallBro 22 //Id del hermano menor del proceso (0 sne)
#define _BigBro 23 //Id del hermanos mayor (m s viejo) del proceso (0 sne)
#define _BigBro 23 //Id del hermanos mayor (m s viejo) del proceso (0 sne)
#define _Priority 24 //Prioridad de proceso (positivo o negativo)
#define _Ctype 25 //Indica si es relativo a pantalla, parallax o mode 7
#define _X 26 //Coordenada x (del centro gravitatorio del gr fico)
#define _X 26 //Coordenada x (del centro gravitatorio del gr fico)
#define _Y 27 //Coordenada y (idem)
#define _Z 28 //Coordenada z (Prioridad para la impresi¢n)
#define _Graph 29 //C¢digo del gr fico (se corresponde con los ficheros)
#define _Z 28 //Coordenada z (Prioridad para la impresi¢n)
#define _Graph 29 //C¢digo del gr fico (se corresponde con los ficheros)
#define _Flags 30 //Define espejados horizontales y verticales
#define _Size 31 //Tama¤o (%) del gr fico
#define _Angle 32 //Angulo de rotaci¢n del gr fico (0 gr fico normal)
#define _Region 33 //Regi¢n con la que hacer el clipping del gr fico
#define _File 34 //FPG que contiene los gr ficos del proceso
#define _XGraph 35 //Puntero a tabla: n§graficos,graf_angulo_0,...
#define _Size 31 //Tamao (%) del gr fico
#define _Angle 32 //Angulo de rotaci¢n del gr fico (0 gr fico normal)
#define _Region 33 //Regi¢n con la que hacer el clipping del gr fico
#define _File 34 //FPG que contiene los gr ficos del proceso
#define _XGraph 35 //Puntero a tabla: n§graficos,graf_angulo_0,...
#define _Height 36 //Altura de los procesos en el modo 7 (pix/4)
#define _Cnumber 37 //Indica en que scroll o m7 se ver  el gr fico
#define _Resolution 38 //Resoluci¢n de las coordenadas x,y para este proceso
#define _Cnumber 37 //Indica en que scroll o m7 se ver  el gr fico
#define _Resolution 38 //Resoluci¢n de las coordenadas x,y para este proceso
#define _Radius 39 //Radio del objeto en m8
#define _M8_Wall 40 //Pared con la que colisiona
#define _M8_Sector 41 //Sector en el que esta

View file

@ -19,7 +19,7 @@
*/
/**** ¡¡¡ OJO CON LAS COMAS !!! ****/
/**** ¡¡¡ OJO CON LAS COMAS !!! ****/
#ifdef _WIN32
@ -37,11 +37,11 @@ int detecta_idioma_iso(char* lang)
{
int i;
static char getid[NUM_LANGUAGES][3] = {
"es", // español
"es", // español
"it", // italiano
"pt", // portugués
"en", // inglés
"ca", // catalán
"pt", // portugués
"en", // inglés
"ca", // catalán
"eu" // euskera
};
if(lang==NULL) return DEFAULT_LANGUAGE;
@ -61,11 +61,11 @@ int detecta_idioma()
#ifdef _WIN32
int i;
static int getid[NUM_LANGUAGES] = {
0x0a, // español
0x0a, // español
0x10, // italiano
0x16, // portugués
0x09, // inglés
0x03, // catalán
0x16, // portugués
0x09, // inglés
0x03, // catalán
0x2d // euskera
};
LANGID lang;
@ -96,8 +96,8 @@ char* translate(int id_cadena)
/*
* NOTA: los huecos vacíos (184..199) son de errores no usados en DIV2, por favor
* aprovechadlos para añadir nuevos errores.
* NOTA: los huecos vacíos (184..199) son de errores no usados en DIV2, por favor
* aprovechadlos para añadir nuevos errores.
*/
char* translate_runtime_error(int num)

View file

@ -1,5 +1,5 @@
/* Fenix - Compilador/intérprete de videojuegos
* Copyright (C) 1999 José Luis Cebrián Pagüe
/* Fenix - Compilador/intérprete de videojuegos
* Copyright (C) 1999 José Luis Cebrián Pagüe
*
* Adaptado a eDiv por Sion Entertainment
*
@ -23,7 +23,7 @@
#include "main.h"
#include "lower.h" // <- hacer un h con las declaraciones
/* Tabla de conversión de caracteres MS-DOS a Windows */
/* Tabla de conversión de caracteres MS-DOS a Windows */
int dos_chars=0;
@ -46,7 +46,7 @@ byte dos_to_win[256] = {
173, 177, 61, 190, 182, 167, 247, 184, 176, 168, 183, 185, 179, 178, 166, 160
};
/* Tabla de conversión de caracteres Windows a MS-DOS */
/* Tabla de conversión de caracteres Windows a MS-DOS */
byte win_to_dos[256] =
{
@ -87,7 +87,7 @@ void set_c_lower (const byte * from, const byte * to)
void inicializa_lower()
{
/* ¡Esto hay que revisarlo bastante!
/* ¡Esto hay que revisarlo bastante!
*/
memset (lower, 0, 256); // es necesario
@ -98,16 +98,16 @@ void inicializa_lower()
"abcdefghijklmnopqrstuvwxyz");
#ifdef RESPETAR_ACENTOS
set_c_lower ("ÁÉÍÓÚÑÇÀÈÌÒÙÄËÏÖÜÝÂÊÎÔÛÆÃÅÕ",
"áéíóúñçàèìòùäëïöüýâêîôûæãåõ");
set_c_lower("áéíóúñçàèìòùäëïöüýâêîôûæãåõ",
"áéíóúñçàèìòùäëïöüýâêîôûæãåõ");
set_c_lower ("ÁÉÍÓÚÑÇÀÈÌÒÙÄËÏÖÜÝÂÊÎÔÛÆÃÅÕ",
"áéíóúñçàèìòùäëïöüýâêîôûæãåõ");
set_c_lower("áéíóúñçàèìòùäëïöüýâêîôûæãåõ",
"áéíóúñçàèìòùäëïöüýâêîôûæãåõ");
#else
set_c_lower ("ÁÉÍÓÚÑÇÀÈÌÒÙÄËÏÖÜÝÂÊÎÔÛÆÃÅÕ",
"aeiouncaeiouaeiouyaeiouæaao");
set_c_lower ("áéíóúñÑçÇàèìòùäëïöüýâêîôûæãåõÁÉÍÓÚ",
"aeiounnccaeiouaeiouyaeiouÆaaoaeiou");
set_c_lower ("ÁÉÍÓÚÑÇÀÈÌÒÙÄËÏÖÜÝÂÊÎÔÛÆÃÅÕ",
"aeiouncaeiouaeiouyaeiouæaao");
set_c_lower ("áéíóúñÑçÇàèìòùäëïöüýâêîôûæãåõÁÉÍÓÚ",
"aeiounnccaeiouaeiouyaeiouÆaaoaeiou");
#endif
set_c_lower("1234567890#$_ºª","1234567890#$_ºª");
set_c_lower("1234567890#$_ºª","1234567890#$_ºª");
}

View file

@ -24,7 +24,7 @@
//#include <SDL/SDL.h>
#include "shared.h"
//#define DEBUG_DLL // para mostrar información al cargar las DLLs
//#define DEBUG_DLL // para mostrar información al cargar las DLLs
#define swap(a,b) {(a)^=(b);(b)^=(a);(a)^=(b);}
@ -49,9 +49,9 @@ int debug; // 1 = el programa esta compilado en modo debug
int num_proc; // Numero de proceso activo ( indice procs_s[] )
int imem; // indice de mem
int imem_max; // máximo indice de mem
int imem_max; // máximo indice de mem
int * mem; // Memoria principal de la máquina destino
int * mem; // Memoria principal de la máquina destino
// iguales que mem pero de tipo word y byte
word * memw;
@ -100,10 +100,10 @@ int linsize;
// PROTOTIPOS
///
void error(int num, ...); // Mensaje de error no crítico (trazable)
void critical_error(int num, ...); // Mensaje de error crítico
void error(int num, ...); // Mensaje de error no crítico (trazable)
void critical_error(int num, ...); // Mensaje de error crítico
void custom_error(tipoerror tipo, char* mensaje); /* Errores personalizados de las DLLs */
void stub_quit(int n); // Salir del stub
void* e_malloc(size_t size); // identico a malloc pero con errormsg utomático
void* e_malloc(size_t size); // identico a malloc pero con errormsg utomático
#endif /* __MAIN_H */

View file

@ -111,7 +111,7 @@ void dll_func() // ke original, no? XD
for(i=0;i<2;i++) {
fichero_dll=readdir(directorio);
if(fichero_dll==0) {
printf("No se encuentra ninguna librería\n");
printf("No se encuentra ninguna librería\n");
exit(1);
}
}
@ -121,7 +121,7 @@ void dll_func() // ke original, no? XD
if(fichero_dll==0)
break;
if(fichero_dll->d_type==DT_REG) {
printf("Librería encontrada: so/%s\n",fichero_dll->d_name);
printf("Librería encontrada: so/%s\n",fichero_dll->d_name);
strcpy(fichdll,"so/");
strcat(fichdll,fichero_dll->d_name);
// dlls[numdlls].nfuncs=0;
@ -134,7 +134,7 @@ void dll_func() // ke original, no? XD
}
}
if(numdlls==0) {
printf("No se encuentra ninguna librería\n");
printf("No se encuentra ninguna librería\n");
exit(1);
}
#endif
@ -157,7 +157,7 @@ void dll_func2()
#endif
strcat(fichdll,dlls[i].nombre);
if(leedll()) {
printf("Error al cargar librería %s\n",dlls[i].nombre);
printf("Error al cargar librería %s\n",dlls[i].nombre);
exit(1);
}
}
@ -234,7 +234,7 @@ int leedll()
ExportaFuncs=(TYPEOF_ExportaFuncs *) dlsym(hDLL,"ExportaFuncs");
if((errordll=dlerror())!=NULL) {
printf("No se encuentra ExportaFuncs en %s - Librería no válida (%s)\n",fichdll,errordll);
printf("No se encuentra ExportaFuncs en %s - Librería no válida (%s)\n",fichdll,errordll);
dlclose(hDLL);
return 1;
}

View file

@ -50,7 +50,7 @@
/* Main ( argc, argv )
*
* Rutina principal. Lee el bytecode del ejecutable, lo descomprime y lo carga en memoria
* (La mayoría de las variables y buffers se mantienen con el mismo nombre que en el compilador:
* (La mayoría de las variables y buffers se mantienen con el mismo nombre que en el compilador:
* mem, imem_max, etc)
*/
@ -88,8 +88,8 @@ int main(int argc, char* argv[])
/*sdl_version=SDL_Linked_Version();
#ifdef _DEBUG
printf("Versión SDL del exe: %d.%d.%d\n",SDL_MAJOR_VERSION,SDL_MINOR_VERSION,SDL_PATCHLEVEL);
printf("Versión de SDL instalada: %d.%d.%d\n",sdl_version->major,sdl_version->minor,sdl_version->patch);
printf("Versión SDL del exe: %d.%d.%d\n",SDL_MAJOR_VERSION,SDL_MINOR_VERSION,SDL_PATCHLEVEL);
printf("Versión de SDL instalada: %d.%d.%d\n",sdl_version->major,sdl_version->minor,sdl_version->patch);
#endif
if(sdl_version->major<SDL_MAJOR_VERSION
|| (sdl_version->major==SDL_MAJOR_VERSION &&
@ -126,7 +126,7 @@ int main(int argc, char* argv[])
printf("%s\n",argv[0]);
if((f=open(argv[0],O_RDONLY | O_BINARY))==-1)
#endif*/
critical_error(1); // error leyendo el código del programa
critical_error(1); // error leyendo el código del programa
}
lseek(f,-4,SEEK_END);
@ -148,7 +148,7 @@ int main(int argc, char* argv[])
if (mimem[3]>0) {
imem_max=mimem[8]+mimem[3]*(iloc_len)+iloc_len+2;
} else {
/* si max_process==0, calcula un límite de memoria */
/* si max_process==0, calcula un límite de memoria */
imem_max=mimem[8]+128*(iloc_len)+iloc_len+2;
if (imem_max<256*1024) imem_max=256*1024;
if (imem_max>512*1024) imem_max=512*1024;
@ -212,7 +212,7 @@ int main(int argc, char* argv[])
free(ptr);
free(vartemp);
close(f);
critical_error(1); // error leyendo el código del programa
critical_error(1); // error leyendo el código del programa
}
varindex=(varindex_t*)e_malloc(num_indexed_vars*sizeof(varindex_t));
@ -251,7 +251,7 @@ int main(int argc, char* argv[])
close(f);
free(prog);
free(progcomp);
critical_error(1); // error leyendo el código del programa
critical_error(1); // error leyendo el código del programa
}
free(progcomp);
read(f,&linsize,4);
@ -280,10 +280,10 @@ int main(int argc, char* argv[])
// - Inicializar SDL
// - Inicializarlo todo (incluyendo trazador si DBG esta definido)
// - Rular el kernel y ke interprete el programa
// - Si hay un error, llamar a error() y que se encargue de todo. Si está
// definido DBG, debe ser posible retomar la ejecución despues del error
// - Al terminar la ejecución, descargarlo TODO (empezando por los recursos y
// acabando por el código interno)
// - Si hay un error, llamar a error() y que se encargue de todo. Si está
// definido DBG, debe ser posible retomar la ejecución despues del error
// - Al terminar la ejecución, descargarlo TODO (empezando por los recursos y
// acabando por el código interno)
// - Restaurar el estado del sistema si es necesario y finalizar SDL
// Nota: las DLL's se cargan en el transcurso del programa (las instrucciones
@ -406,15 +406,15 @@ int main(int argc, char* argv[])
} else {
close(f);
free(ptr);
critical_error(1); // error leyendo el código del programa
critical_error(1); // error leyendo el código del programa
}
} else {
close(f);
critical_error(1); // error leyendo el código del programa
critical_error(1); // error leyendo el código del programa
}
} else { close(f); error(1); } // error leyendo el código del programa
} else { close(f); error(1); } // error leyendo el código del programa
return 0;
}
@ -435,7 +435,7 @@ void stub_quit(int n)
}
// idéntico a malloc, pero con errormsg utomático
// idéntico a malloc, pero con errormsg utomático
void* e_malloc(size_t size)
{
void* ret;

View file

@ -22,7 +22,7 @@
/**
* @file builtinfont.c
* Convierte una fuente en bmp (8bpp) de 6x8 en un .h para poderse usar como
* fuente de sistema ( 0) en el stub.
* fuente de sistema ( 0) en el stub.
* NOTA: Este programa es menos indulgente que el de Riseven leyendo los .bmp :p
*/
@ -110,7 +110,7 @@ int main(int argc, char* argv[])
printf("Error al crear %s\n",nombreh);
exit(EXIT_FAILURE);
}
fprintf(fp,"/**\n * @file %s\n * Definición de la fuente %s (generado por builtinfont)\n */\n\n",nombreh,nombre);
fprintf(fp,"/**\n * @file %s\n * Definición de la fuente %s (generado por builtinfont)\n */\n\n",nombreh,nombre);
fprintf(fp,"#ifndef __EDIV__%s_h__\n#define __EDIV__%s_h__\n\n",nombre,nombre);
fprintf(fp,"static unsigned char %s[256*8] = {\n",nombre);

View file

@ -53,7 +53,7 @@ void procesa_indice();
/*
* esta es llamada cuando encontramos <%subindex%>. Se le indica el fichero
* actual y busca la entrada correspondiente en el index.dok. Entonces parsea
* la porcion de arbol que engloba y genera un subíndice como los de SGML.
* la porcion de arbol que engloba y genera un subíndice como los de SGML.
*/
void procesa_subindice(char* actual);

View file

@ -1,17 +1,17 @@
/* IconChanger
* Pequeña utilidad-complemento para eDIV que permite sustituir el icono del stub de
* Pequeña utilidad-complemento para eDIV que permite sustituir el icono del stub de
* win32 por otro. El icono nuevo debe ser exactamente igual que el original del stub,
* es decir, tiene que cumplir las siguientes condiciones:
* - Contener 6 imágenes en total:
* - Contener 6 imágenes en total:
* + 16x16 a 4, 8 y 24 bits de color
* + 32x32 a 4, 8 y 24 bits de color
* - "Pesar" exactamente 8.854 bytes.
* Este programa es muy simple así que no se molesta en comprobar el formato del fichero,
* únicamente comprueba su tamaño. Si metes un icono que no es adecuado.. allá ..
* Puede ser útil en el futuro currarnos un programa decente que soporte cualquier tipo
* de iconos, que cambiara el tamaño del exe, etc etc, ya sería la reostia, pero por
* Este programa es muy simple así que no se molesta en comprobar el formato del fichero,
* únicamente comprueba su tamaño. Si metes un icono que no es adecuado.. allá ..
* Puede ser útil en el futuro currarnos un programa decente que soporte cualquier tipo
* de iconos, que cambiara el tamaño del exe, etc etc, ya sería la reostia, pero por
* ahora con esto nos sobra.
* Pekeño inconveniente: sólo se puede cambiar el icono 1 vez :p Si se kiere cambiar el
* Pekeño inconveniente: sólo se puede cambiar el icono 1 vez :p Si se kiere cambiar el
* icono por segunda vez, hay que recompilar el programa. En realidad no importa, ya que
* en verdad es lo que pasa en todos los compiladores...
* Si se kiere cambiar el icono y un virus te ha comido el ediv.exe o el .prg, pos tiras
@ -21,7 +21,7 @@
*/
#ifndef _WIN32
#error IconChanger es sólamente para Win32
#error IconChanger es sólamente para Win32
#endif
#include <stdio.h>
@ -31,9 +31,9 @@
#include "iconchanger.h"
#define ICO_SIZE 8854 // Tamaño que debe tener el .ico
#define ICO_SIZE 8854 // Tamaño que debe tener el .ico
#define ICO_START 0x66 // Offset donde se empieza a leer el .ico
#define ICO_LEN 0x2230 // Tamaño del bloque a copiar del .ico al .exe
#define ICO_LEN 0x2230 // Tamaño del bloque a copiar del .ico al .exe
void* e_malloc(size_t size)
@ -71,10 +71,10 @@ int main(int argc, char* argv[])
tamanyo=ftell(f);
if(tamanyo!=ICO_SIZE) {
fclose(f);
printf("ERROR: El icono no es del formato válido\n\n");
printf("Te refrescaré la memoria:\nEl icono (.ico) DEBE contener 6 imágenes en total, a saber:\n");
printf(" - 3 imágenes de 16x16 (a 4, 8 y 24 bits de color).\n");
printf(" - 3 imágenes de 32x32 (a 4, 8 y 24 bits de color).\n");
printf("ERROR: El icono no es del formato válido\n\n");
printf("Te refrescaré la memoria:\nEl icono (.ico) DEBE contener 6 imágenes en total, a saber:\n");
printf(" - 3 imágenes de 16x16 (a 4, 8 y 24 bits de color).\n");
printf(" - 3 imágenes de 32x32 (a 4, 8 y 24 bits de color).\n");
printf("No puede faltar ninguna, ya que el archivo debe ocupar EXACTAMENTE %d bytes.\n\n",ICO_SIZE);
exit(4);
}

View file

@ -1,7 +1,7 @@
/*
* Esto contiene la imagen del icono por defecto del stub en su versión
* Esto contiene la imagen del icono por defecto del stub en su versión
* 16x16x16 (obtenida con Resource Hacker y gif2h), la cual se busca en el
* stub para saber dónde hay que escribir el nuevo icono.
* stub para saber dónde hay que escribir el nuevo icono.
*/
static unsigned char image[]={