From ddee9110a6ed8078d589a3f8e80d6338f1f5c015aff06a4e621679af8a79c36c Mon Sep 17 00:00:00 2001 From: Gabriel Lorenzo Date: Tue, 25 Jan 2005 13:51:13 +0000 Subject: [PATCH] ... --- ediv/CHANGE_LOG.txt | 54 +- ediv/old/CHANGE_LOG.txt | 1055 ++++++++++++++++++++++ ediv/old/authors.txt | 65 ++ ediv/old/bugs.txt | 3 + ediv/old/todo.txt | 63 ++ ediv/src/ediv/language.c | 1048 +-------------------- ediv/src/ediv/ltlex.c | 16 +- ediv/src/ediv/parser.c | 2 +- ediv/src/shared/language.h | 16 +- ediv/src/shared/shared.h | 2 +- ediv/src/stub/inte.c | 3 +- ediv/src/stub/language.c | 831 +---------------- ediv/src/visual c/ediv/ediv.vcproj | 20 +- ediv/src/visual c/ediv_ws.sln | 19 +- ediv/src/visual c/ediv_ws.suo | Bin 24064 -> 16384 bytes ediv/src/visual c/encrypt/encrypt.vcproj | 18 +- ediv/src/visual c/stub/stub.vcproj | 30 +- ediv/todo.txt | 27 +- 18 files changed, 1374 insertions(+), 1898 deletions(-) create mode 100644 ediv/old/CHANGE_LOG.txt create mode 100644 ediv/old/authors.txt create mode 100644 ediv/old/bugs.txt create mode 100644 ediv/old/todo.txt diff --git a/ediv/CHANGE_LOG.txt b/ediv/CHANGE_LOG.txt index 1aaf345..bd97357 100644 --- a/ediv/CHANGE_LOG.txt +++ b/ediv/CHANGE_LOG.txt @@ -1,3 +1,49 @@ +22/1/2005 +--------- + * Ahora, en teoría, bmp2fnt compilará correctamente en Linux. (Er_Makina) + * Quitados un par de warnings de doku.c (Er_Makina) + * He añadido una utilidad, builtinfont, que toma un .bmp con una fuente monocroma 6x8 + y crea un .h con la información binaria correspondiente. Es para hacer la fuente de + sistema de la text.dll. He incluido junto al codigo fuente de la text.dll dos bmp's, + sys06x08_msdos y sys06x08_latin1. La primera es la fuente de DIV2 de toda la vida, + y la segunda es similar pero convertida a latin1 (el juego de caracteres de Windows). + Así podremos usar acentos, etc con la fuente de sistema. Habrá que incluir las dos + en la text.dll y añadir una global o una función para poder elegir en el programa + cuál de las dos queremos usar. (Er_Makina) + +21/1/2005 +--------- + * Ahora, tras cargar una fuente, ésta se convierte al formato de color del modo actual. + Aunque seguramente no sirva de mucho, porque creo que vamos a cambiar bastante la + text.dll (Er_Makina) + * Ahora se carga la paleta por defecto en el primer frame, y no en set_mode (el cambiar + de modo no implica cargar la paleta por defecto). (Er_Makina) + +20/1/2005 +--------- + * ¡Mejorado brutalmente el sistema de traducciones! He metido cada idioma en un .h, + y ahora es mucho más facil editarlos e incorporarlos en eDIV. Están en + shared/language. es.h y en.h contienen instrucciones para que puedan ser usados como + plantillas de traducción. Ah, y he señalado con FIXME las partes que están sin + traducir. (Er_Makina) + * He cambiado la versión de 0.1.3 (Betelgeuse) a 0.1.3b (Rigel), sólo para distinguir + el nuevo eDIV del antiguo. (Nota: Betelgeuse es la estrella Alpha Orion, y Rigel es + Beta Orion. Creo que está claro por qué coger estrellas de la constelación de Orión, + verdad? ;) (Er_Makina) + +19/1/2005 +--------- + * ¿Vuelve eDIV? |RooT| y yo no hemos tenido noticias de eDIV ni de Julius desde que + abandonamos Sion, y hemos hablado acerca de retomar el proyecto por nuestra cuenta. + Aún tenemos que hablar con Riseven, y ponernos un poco de acuerdo a ver si vamos a seguir + adelante, pero yo por si acaso voy adelantando algunas cosillas. (Er_Makina) + * Para empezar, he creado la carpeta "old" para meter allí los ficheros que voy a cargarme, + por si acaso. La última versión de eDIV es la 0.1.3.030602b (Betelgeuse). Estoy seguro de + que en Sion no lo han tocado desde entonces, ya que estaban bastante ocupados con Julius. + Voy a hacer un diagnóstico general del proyecto, a ver por dónde hay que empezar a meter + mano. Limpiaré bugs.txt y todo.txt y meteré allí la información nueva. (Er_Makina) + * Limpiada un poco la rutina del ALT+P. (Er_Makina) + 2/6/2003 -------- * Modificada la función Dibuja (otra vez :P) ahora permite indicarle los flags (aunque sólo @@ -162,9 +208,9 @@ 29/10/2002 ---------- - * Añadido un Capturador de Pantalla que crea screenshoots pulsando ATL+P + * Añadido un Capturador de Pantalla que crea screenshoots pulsando ALT+P en la ejecución de un PROGRAMA. Se guarda con el nombre del programa - estoy arreglando para que se guarde en JPG y se puedan guardar varias caputras de el (|RooT|) + estoy arreglando para que se guarde en JPG y se puedan guardar varias capturas de el (|RooT|) * Añadido al EXPORT.H y EXTERN.H a la estructura 'fp' la variable screen. Para poder acceder a la SCREEN desde el STUB (|RooT|) * Bug arreglado: el programa se bloqueaba al llegar a cierta cantidad de @@ -186,11 +232,11 @@ * Añadida la variable SIZE. ¡¡OJO!! La función Dibuja ha cambiado!! Ahora es int Dibuja(SDL_Surface *src , SDL_Rect srcrect , SDL_Rect dstrect , int z , int trans,int size,int angle); por defecto no hay size=0, ni angle=0. - ya que size=0, es equivalente ha size=100; Esto lo hago para posibles despistes como por ejemplo + ya que size=0, es equivalente a size=100; Esto lo hago para posibles despistes como por ejemplo en la TEXT, que llama a la función dibuja y ese parametro como es 0, pues si no, no se veria el texto al no ser que se colocara el 100, en la función dibuja. (|RooT|) * Añadida una global SMOOTH, para hacer o no, smooth, a la hora de ampliar graficos (|RooT|) - * Limpieza de la graphics (Codigos viego, Comentarios inservibles,...) (|RooT|) + * Limpieza de la graphics (Codigos viejos, Comentarios inservibles,...) (|RooT|) * He colocado un SDL_FreeSurface para liberar Surfaces y que no chupara tanta RAM (|RooT|) 27/10/2002 diff --git a/ediv/old/CHANGE_LOG.txt b/ediv/old/CHANGE_LOG.txt new file mode 100644 index 0000000..1aaf345 --- /dev/null +++ b/ediv/old/CHANGE_LOG.txt @@ -0,0 +1,1055 @@ +2/6/2003 +-------- + * Modificada la función Dibuja (otra vez :P) ahora permite indicarle los flags (aunque sólo + hace caso a los flags 1 y 2) y sí, funcionan :D (Er_Makina) + * Ya funciona perfectamente el rotozoomer, y respeta el centro del gráfico :D (Er_Makina) + * Algunas variables del mouse ya funcionan (Er_Makina) + * Las regiones daban fallos, ya está solucionado (Er_Makina) + +1/6/2003 +-------- + * He dividido la graphics en varios .c, buena falta le hacía :P (Er_Makina) + * He pasado define_region() a la graphics, estaba en la edivstd (Er_Makina) + * Documentada casi toda la graphics con el doxygen, solo falta SDL_rotozoom.c + y .h, k se me olvido xD incluyo proyecto para el doxywizard, en + ediv/doc/dlls/graphics (Er_Makina) + +29/5/2003 +--------- + * Añadida la estructura fp->graphics. Ahora cualquier DLL puede saber si hay + una librería gráfica inicializada (en cuyo caso estará activado el bit + GR_ACTIVE de fp->graphics->resflags) y conocer el modo de vídeo actual. + fp->graphics->flags se usa para los flags que se setean desde set_mode + (de momento sólo está GR_FULLSCREEN, o _fullscreen desde el lenguaje). + fp->graphics->resflags se usa para los flags internos del sistema ("res" + viene de "reserved" :P) actualmente están GR_ACTIVE y GR_CHANGED. Esta + última se activa cuando modificamos el modo de vídeo con set_mode, y se + apaga en el entrypoint frame de la graphics. De esta forma las demás + DLL's podrán darse cuenta de cuándo se cambia el modo de vídeo y actuar + en consecuencia (por ejemplo, la text.dll tendrá que eliminar los textos, + la scroll.dll tendrá que eliminar las ventanas de scroll, etc). Por cierto, + la estructura también contiene sendos punteros al backbuffer y al buffer del + fondo, pero apuntan directamente al bitmap, no son SDL_Surface's, ya que como + explico mas abajo el SDK y el stub son independientes de SDL ahora. (Er_Makina) + * Ya se inicializa la paleta cuando iniciamos un modo de 8 bpp. Pone la paleta + por defecto del DIV2. (Er_Makina) + * Corregido el put_pixel, que estaba bastante chapuza :P ahora usa SDL_MapRGB. + (Er_Makina) + * Añadido nuevo (en verdad no tan nuevo) ejemplo, torus3.prg, es igual que + torus.prg solo que inicializa el modo de video a 800x600x8 en fullscreen, y + el toroide se ve grandote, centrado y ocupando toda la pantalla. (Er_Makina) + * El stub ya es totalmente independiente de SDL (weno, todavía keda una cosilla + por cambiar, el sistema de fpg's) el caso es que ahora es en la graphics donde + se gestiona todo lo relacionado con SDL, incluidos los eventos (la X de la + ventana, evitar ke el windows lo de por blokeado..), el ALT+X, el ALT+P, etc. + Esto facilitará el hacer graphics ke usen distintas librerías (DX, OGL...) + (Er_Makina) + * He mejorado el ALT+P, ahora la captura no se guarda siempre en el mismo BMP, + sino que añade al nombre del fichero un numero de cuatro cifras que va + aumentando según esté disponible (0000, 0001, 0002...) (Er_Makina) + +28/5/2003 +--------- + * Vuelvo a las andadas xD (|RooT|) + +27/5/2003 +--------- + * Añadida la función fp->Custom_Error(int tipoerror, char* mensaje) al + SDK. Permite a las DLL's definir sus propios mensajes de error, tanto + runtime como critical. Ver los comentarios de custom_error() en error.c + del stub para ver cómo funciona. (Er_Makina) + * Añadido set_mode(). De momento es necesario ke se inicialice un modo de + 24 o 32 bits para poder ver algo en pantalla. Los flags aún no funcionan. + Hay que modificar otras cosas para que rule bien (regiones, eliminar + textos, etc) y hay que avisar a las DLL's de cuando se produce el cambio. + (Er_Makina) + +26/5/2003 +--------- + * Ya están comprobados todos los nuevos opcodes de string, parece ke + rulan bien :) Encontré un bug en el opcode optimizado caraidcpa, + ya está arreglado. (Er_Makina) + * Añadido el opcode extasp (optimización de ext + asp). (Er_Makina) + * Adaptada finalmente la strings.dll, ya es perfectamente usable :) + Ya soporta todas las funciones de cadenas de DIV2, excepto calculate(), + y además, atoi() (en DIV2 sólo había calculate() pero a veces nos + puede interesar que se haga una simple conversion sin que se evalúen + expresiones) y atof(), para cuando metamos floats. + Por cierto, si en alguna de estas funciones usamos un número menor + de 256 en vez de una cadena como parámetro, lo tomará como una cadena + que sólo contiene un caracter con ese ascii. :) por ejemplo, + strcat("hol",65) devolverá "holA". (Er_Makina) + +25/5/2003 +--------- + * Añadido soporte para datos STRING. Aún quedan por comprobar algunos + opcodes, los estoy señalando en el string.txt. Hay que averiguar el + origen del bug de Huevox (ver bug1.prg y bug1sol.prg). Curiosamente, + (o cabreantemente :P) el EML generado para los dos PRG es idéntico, + pero aún así se comportan de forma distinta. (Er_Makina) + +4/4/2003 +-------- + * Añadido soporte para datos WORD. (Er_Makina) + +3/4/2003 +-------- + * ARREGLADO EL BUG DEL KILL!!! :PPP por fin!!! por supuesto, como todo + gran bug, la causa era una gran chorrada.. en fin.. el robots.prg ya + es casi hasta jugable (si no fuera por las colisiones ke colisionan + como les da la gana xD) (Er_Makina) + * Añadidos torus.prg y torus2.prg en el directorio bin/test (Er_Makina) + +30/3/2003 +--------- + * Corregidos los operadores -- y ++ con las variables BYTE. eran de esos + opcodes que originalmente se hacian en una linea pero al pasar a VS hay + ke partirlos en dos (y en este caso, añadir una variable temporal) >:P + (Er_Makina) + +5/3/2003 +-------- + * Hay algún fallo cuando se elimina un proceso, tiene que ver con la + eliminación de procesos de procs_s y proc_orden y la creación y + ejecución de nuevos procesos (probad a rular robots.prg y pasaros el + primer nivel, os dará un error "redefinición del tipo de proceso" cuando + intentéis mover el personaje). (Er_Makina) + +4/3/2003 +-------- + * signal() arreglado, ya funcionan las señales tree (Er_Makina) + +18/12/2002 +---------- + * Mas comentarizacion siguiendo las normas del ANSI C (Daijo) + * Todas las cabeceras han de definirse: #define __EDIV_CABECERA_H_ (Daijo) + * Cambiado *edivcentral.com por ediv.divsite.net (Daijo) + * Eliminado todo el codigo de las DLLs de la distribucion de codigo (Daijo) + +13/12/2002 +---------- + * Nueva funcion en la graphics.dll: get_rgb(color,&r,&g,&b). obtiene las + componentes RGB de un color dado. naturalmente es similar a la funcion + homonima que hice en su dia para div2 ;) ojo, no esta preparada para + 8 bpp (en esta profundidad debera devolver valores de 0..63, ademas de + diferenciar la paleta activa de la paleta cargada) (Er_Makina) + +12/12/2002 +---------- + * Corregido fallo en la math.c... el seno de 90º no es infinito, sino 1 ¬¬ + suspenso en mates para el k lo hizo... (Er_Makina) + * Incluido ejemplo torus.prg, probadlo, es precioso =) (ojo, si no se usa + el math.dll con el fallo del seno corregido, en vez de un toroide sale + una especie de comecocos) (Er_Makina) + +2/12/2002 +--------- + * He añadido en la web una sección desde donde se puede ver este changelog. + El script pilla el fichero directamente del CVS, o de divsite si no está + disponible, y parsea el fichero y lo muestra con un aspecto muy majo :) + Podéis seguir escribiendo los mensajes como hasta ahora, no os olvidéis + de firmarlos. Para que el script funcione bien la firma tiene que ser lo + último que se encuentre en el mensaje, cuidado no se os escape un punto + después de la firma, o algo asi. (Er_Makina) + +30/10/2002 +---------- + * Añadido la variable RESOLUTION, que a la hora de compilar el TUTOR2.PRG daba problemas. + Ya se puede usar RESOLUTION =) (|RooT|) + * Corregido en la graphics donde ponia "trasparente" por "traNsparente". + (Er_Makina) + * ¡Funciona Signal! =) Solo falta testearlo... (Er_Makina) + +29/10/2002 +---------- + * Añadido un Capturador de Pantalla que crea screenshoots pulsando ATL+P + en la ejecución de un PROGRAMA. Se guarda con el nombre del programa + estoy arreglando para que se guarde en JPG y se puedan guardar varias caputras de el (|RooT|) + * Añadido al EXPORT.H y EXTERN.H a la estructura 'fp' la variable + screen. Para poder acceder a la SCREEN desde el STUB (|RooT|) + * Bug arreglado: el programa se bloqueaba al llegar a cierta cantidad de + procesos. El problema estaba en que los procesos no desechaban los parámetros + de la pila después de leerlos. He cuidado que funcione bien tanto con + optimización como sin ella :D (Er_Makina) + * Para evitar cosas como esta (desbordamientos de pila) he puesto un "PANIC!" + en modo _DEBUG cuando se termina de ejecutar un frame y quedan cosas en la + pila. (Er_Makina) + * Bug arreglado: los procesos no devolvían el id. La causa del bug era la misma + que el de más arriba :) (Er_Makina) + * Ahora se dibujan todos los blits con la Z correcta. He quitado el sistema + que había antes (orden[]) y lo he reemplazado por un qsort justo antes de + dibujarlo todo, además supongo que es más rápido que ir insertando cosas + cada vez que se llamaba a Dibuja(). (Er_Makina) + +28/10/2002 +---------- + * Añadida la variable SIZE. + ¡¡OJO!! La función Dibuja ha cambiado!! Ahora es int Dibuja(SDL_Surface *src , SDL_Rect srcrect , + SDL_Rect dstrect , int z , int trans,int size,int angle); por defecto no hay size=0, ni angle=0. + ya que size=0, es equivalente ha size=100; Esto lo hago para posibles despistes como por ejemplo + en la TEXT, que llama a la función dibuja y ese parametro como es 0, pues si no, no se veria el + texto al no ser que se colocara el 100, en la función dibuja. (|RooT|) + * Añadida una global SMOOTH, para hacer o no, smooth, a la hora de ampliar graficos (|RooT|) + * Limpieza de la graphics (Codigos viego, Comentarios inservibles,...) (|RooT|) + * He colocado un SDL_FreeSurface para liberar Surfaces y que no chupara tanta RAM (|RooT|) + +27/10/2002 +---------- + * Añadidos los fp->Runtime_Error, excepto en la graphics, strings (¿hace + falta?) y scroll (obviamente). (Er_Makina) + * Añadido unit_size en file.dll. (Er_Makina) + +24/10/2002 +---------- + * Ahora los id's de los procesos son siempre impares. (Er_Makina) + * Arreglado collision. He sustituido el algoritmo de choque entre dos cajas, + aunque no hacía falta, pero quizás así queda un poco más limpio. (Er_Makina) + * Añadido timer[], pero sólo en Win32. Hay que adaptarlo a Linux. (Er_Makina) + * tutor0b ya rula.. el robots asesinos ya parece que rula bien pero no puedo + mover al personaje, no se por qué... fallo en la input? (Er_Makina) + +21/10/2002 +---------- + * delete_text() daba un runtime error si no existia el texto a eliminar. en + div2 no sucede esto, solo da error si el numero esta fuera de rango, asi que + lo he corregido. (Er_Makina) + +20/10/2002 +---------- + * Ahora si no hay archivos .dll o .so solo muestra el mensaje de error, pero NO + sale de la compilacion (Daijo) + * Cambio todos los free/malloc de dll_load.c por e_free y e_malloc (Daijo) + * Cambio todos los free de los archivos que quedaban por e_free (Daijo) + * Mas comentarizacion (Daijo) + + +19/10/2002 +---------- + * Añado la rutina e_free() en ediv.c. Se encarga de comprobar si hay un puntero + en uso, y si es cierto lo libera primero y luego le asigna NULL. (Daijo) + * Añado el archivo errors.h a la carpeta shared con el motivo de que sea mas + claro identificar errores mediante un nombre en lugar de un numero. (Daijo) + * Limpio el archivo extern.h y comentarizo segun las normas de ANSI C99. (Daijo) + * Elimino varias variables no utilizadas en las dll's. (Daijo) + * Ahora el stub con trazador es aplicación de consola, desde la que podemos + trazar el programa con un "mini-trazador" que lleva incorporado. Así podemos + descubrir fácilmente dónde petan los programas (por ejemplo, robots.prg + peta en el collision). Por cierto, lo que muestra el trazador entre corchetes + al principio de cada línea es el imem donde comienza la sentencia. + (Er_Makina) + * Haciendo el mini_trazador he modificado inicio_sentencia(), ahora no tiene + bucle, sólo un par de asignaciones, así que en teoría eDIV debería compilar + ya correctamente en Windows 98. (Er_Makina) + * Cuando eDIV compila con la opción -d (y compilado en modo Debug), genera un + fichero ediv.lin donde se muestra la información que usa el trazador para + localizar el código correspondiente al imem actual. (Er_Makina) + +18/10/2002 +---------- + * Añadido el entrypoint "quit". Usadlo para liberar los recursos de la dll. + (Er_Makina) + * Arreglado get_id, que (en teoria) no se reseteaba al hacer frame. Ademas he + hecho que use las variables de la estructura reserved. (Er_Makina) + * Ahora se inicializan las locales son, father, bigbro y smallbro. (Er_Makina) + * Añadido exit() (accede a stub_quit mediante fp->Stub_Quit). (Er_Makina) + +17/10/2002 +---------- + * Eliminados archivos parser.* y compiler.* de la carpeta STUB ya que no los + utilizabamos (Daijo) + * Eliminados archivos de la libreria grafica de Fenix de GRAPHICS (Daijo) + * Añadidos los fp->RuntimeError(x) y eliminados printf\exit en el eDIV_LOAD_FPG + (Daijo) + +10/10/2002 +---------- + * Corregido pequeño bug en load_bmp, que no seteaba correctamente el centro del + grafico (Er_Makina) + * Ya funciona el mouse. Faltan algunas cosas de la estructura mouse por añadir. + La ruedecilla del ratón no funciona, hay que leerla en SDL_PollEvents (en el + stub :P) (Er_Makina) + * Añadido "type mouse". Debe actualizarse collision() para que reconozca colisio- + nes con el ratón (si recibe como parámetro un 0 es que se ha usado type mouse) + (Er_Makina) + +7/10/2002 +--------- + * Limpieza de codigo y comentarizacion en compiler.* (Daijo) + * Actualizados proyectos para Visual Studio .NET, ahora al + compilar en release no da errores. (Daijo) + * En Windows XP el ejecutable generado con eDIV *NO* se ejecuta, + ¿sugerencias de por qué se produce el fallo? (Daijo) + * Esto último ya está arreglado (Er_Makina) + +6/10/2002 +--------- + * Añadida estructura mouse en la input.dll. Lo malo es que peta al hacer + el blit :P supongo que no uso bien fp->Dibuja. (Er_Makina) + +28/9/2002 +--------- + * El título por defecto de la ventana del juego compilado es el nombre in- + dicado en la sentencia program. (Er_Makina) + +26/9/2002 +--------- + * Algunos bugfixes y cambios menores. CicTec y yo andamos tras la pista de + algunos bugs: + - En Windows 98, ediv peta cuando compila algunos programas que no tienen + compiler_options y no tienen una línea en blanco (o de comentarios) + antes del program. Al parecer el fallo está en inicio_sentencia(). + - Al pasar de 512 procesos y cerrar el juego, se produce un error. Aparen- + temente salta al llegar a SDL_Quit, así que he deducido que puede ser + porque no se liberan los recursos (surfaces, etc) antes de salir. Para + permitir esto, añadiré un entrypoint "quit" que será llamado desde + stub_quit (lo dejo para mañana). Aunque, curiosamente, este fallo no se + produce si no usamos procesos con más de un parámetro. + - Al llegar a x procesos (600, 900...) el programa se queda bloqueado. + (Er_Makina) + +25/9/2002 +--------- + * Añadido un control para evitar que haya más de "max_process" procesos. Si + ocurre, se produce un critical_error. A veces permite un pequeño margen, + en función de la memoria disponible. (Er_Makina) + * Aconsejo usar en cualquier momento stub_quit() en lugar de exit(), ya que + ahí se libera varindex y se ejecuta SDL_Quit. (Er_Makina) + * Añadidos los opcodes optimizados al stub. He puesto no_optimization a 0 en + el ediv.cfg. He compilado los test y parece que rulan perfectamente. + (Er_Makina) + * Corregido un pequeño fallo en el opcode ljpf. (Er_Makina) + * Se permite sobrecarga de funciones en las DLLs. Se pueden declarar varias + funciones con el mismo nombre siempre que tengan distinto número de pará- + metros. Dentro de la función se puede saber cuántos parámetros se han re- + cibido con fp->num_params. Ver doc/ExportaFuncs.txt para más detalles + (ya lo pasaré a .dok :P) (Er_Makina) + +24/9/2002 +--------- + * ¡¡Añadido indexado de variables dinámico!! (¿contento Rise?) :D + +------------------------------+ + | LEER ESTO CON MUCHA ATENCIÓN | + +------------------------------+ + 1) Compilad la documentación (doc/html/makedokNT.bat) y leed bien el + varindex-howto.html. Las macros a que hace referencia se encuentran en + varindex.h (para el stub) y export.h (para las dll's), por si quereis + verlas. + 2) NO INCLUYÁIS VARINDEX.H EN LAS DLL's, sólamente export.h + + Ya tenéis acceso a cualquier variable, tabla o estructura de cualquier dll + desde cualquier otra dll. Falta hacer un sistema de dependencias, rara vez + se va a dar el caso de que una dll dependa de otra (a excepción de la + graphics o la edivstd), pero vendrá muy bien de todas formas y aseguraremos + la robustez de ediv, especialmente de cara a dll's hechas por usuarios. + Al compilar, ediv (compilado como Debug) guarda en varindex.out la tabla + de variables sin comprimir, que podeis comparar con la lista que muestra + el stub en stdout al arrancar, por si hay que comprobar errores. (Er_Makina) + * Naturalmente ha sido necesario adaptar el stub y todas las dlls. De paso he + aprovechado para cambiar alguna cosilla por ahí para quitar warnings (uf + la graphics tiene cada warnings mas peligrosos.. variables sin inicializar.. + de to) :P (Er_Makina) + * ¡¡Corregido bug de los 154 procesos!! (Er_Makina) + * ¡¡Ya se inicializan las variables locales!! (Er_Makina) + * Cambiado max_process en ediv.cfg de 20 a 1024 (Er_Makina) + * Por hacer: controlar el máximo de procesos permitidos. (Er_Makina) + +9/9/2002 +-------- + * Le he añadido icono al stub, y también he hecho un programa (iconchanger) + para cambiárselo después de haber compilado un programa con ediv. mola + eh? :) incluyo también un icono de pacman de ejemplo ke me kedó mu majo. + (Er_Makina) + * Agregados all_drawing y all_text a sus correspondientes dll's. (Er_Makina) + * He incluido en la estructura fp funciones para errores (Runtime_Error y + Critical_Error). ¡¡Empezad a usarlas YA!! Tenéis una lista completa de los + errores en el language.c del stub. Podéis añadir nuevos errores aprovechando + los huecos, pero no añadáis a menos que estéis seguros de que ese error no + existe ya (si la descripción no es como os gusta, pos la cambiáis un poco, + hala). (Er_Makina) + +6/9/2002 +-------- + * Mejorado ligeramente el sistema de indexado de variables, ya no estan + esos #defines tan engorrosos porke los identificadores van con enum. + Recordad recompilar si insertais alguna variable nueva. ¡Ojo! Tienen que + estar ordenadas por global, reserved y local, no vale saltearlas, de esta + forma se localizan mas rapidamente. (Er_Makina) + +27/6/2002 +--------- + * Modificado el formato de los exes en modo debug. En lugar de la ruta + absoluta hacia el prg, se guarda el codigo fuente completo comprimido + (primero el tamaño descomprimido, luego el tamaño comprimido y luego el + codigo comprimido) (Er_Makina) + +26/6/2002 +--------- + * El ediv_export daba error si se declaraban dos objetos con igual nombre en + distintos niveles de struct (problema con el "height" de la estructura + "video_modes" de la graphics.dll y la local "height" de edivstd.dll). + Creo que el problema está corregido (ver crea_objeto() en parser.c) pero + hace falta testearlo un poco más (Er_Makina) + +16/3/2002 +--------- + * El MOTD ya puede ser recibido correctamente en Linux, no es unicamente para + sistemas Windows (Daijo) + +22/2/2002 +--------- + * Corregido bug al leer las Dlls. Estas si contenian caracteres en mayúsculas + no las encontraba, solo encontraba aquellas cuyo nombre estaba escrito en + minusculas. Ahora las carga perfectamente, incluso en Linux, aunque es mas + probable ver mIDlL.dLL en Windows, que mISo.sO en lnx :). + (Daijo) + + * Por ahora pongo al trazador un textbox normal y corriente, sin resaltado ni + nada (lo del resaltado de sintaxis va a tener tela...) (Er_Makina) + + +21/2/2002 +--------- + * Quitados los archivos _ml.* y añadidos los utils.*, estos ultimos servirán + para albergar todas las rutinas utiles que creemos. Actualmente contiene + 'strcasecmp' y 'strncasecmp' definidas para Win32, en los sistemas **IX ya + existian. (Daijo) + + +19/2/2002 +--------- + + * Comenzada la debug.dll. Se trata de una aplicación Qt que se ejecuta con el + entrypoint "debug". Tiene prioridad -512, ya que nunca debe ser añadida + manualmente, el compilador la añade siempre automáticamente cuando se compila + con la opción -d. Sólo funciona con el stub que tiene el trazador activado + (*.dbg), recordad compilarlo antes de probar el trazador. También he añadido + el entrypoint "trace", útil para trazar el programa sentencia por sentencia. + Naturalmente, el trazador aun está en bragas x) tengo el diseño hecho aparte, + de momento es un calco del trazador de DIV2 pero luego le iremos añadiendo + cosas (quickwatches y cosas de esas molonas). (Er_Makina) + + * Corregidos algunos serios bugs relacionados con la carga de DLL's (otra vez + :P) (Er_Makina) + + +18/2/2002 +--------- + + * Ahora en la 2ª fase del compilador y en el stub se le añade la extensión a + una DLL antes de cargarla. Esto no taba problemas en Windows 2000, pero + podía darlos en Windows XP/9x/Me. (Er_Makina) + + * Añadido Call_Entrypoint. Teneis que recompilar todas las DLL's que tengais + para que funcionen correctamente. (Er_Makina) + + +17/2/2002 +--------- + + * Una nueva dll llamada prueba.dll, para hacer tonterias como escribir mensajes + y numeros en un archivo, y mostrar msgbox. (Er_Makina) + + * He conseguido que rule el prueba.prg ;) va perfectamente, voy a ver si es + capaz de ejecutar correctamente programas mas complejos, usando variables + globales, privadas, locales, etc (Er_Makina) + + * Añadido #ifndef _CABECERA_H - #define _CABECERA_H - ... - #endif para evitar + includes recursivos. No habia ningun problema con esto, pero es mejor + evitarlos desde un principio. (Daijo) + + +16/2/2002 +--------- + + * Completadas algunas instrucciones EML del intérprete. (Er_Makina) + + * Arreglado un bug por el cual no se cargaban las dlls adecuadas. (Er_Makina) + + +15/2/2002 +--------- + + * Bug arreglado: cuando en Win32 se encontraba la primera DLL, se contabilizaba + aunque no fuera válida. (Er_Makina) + + * Ahora el nombre de las DLL's se almacena sin extensión. (Er_Makina) + + * En el ediv.cfg ahora hay una sección llamada dll_priority, donde se pueden + ajustar prioridades a las DLL's, las cuales se superponen a las prioridades + por defecto de cada DLL. (Er_Makina) + + * Si una DLL tiene como prioridad 512 (P_SIEMPRE), se tomará siempre como + necesaria. Si tiene -512 (P_NUNCA), se ignora la DLL. (Er_Makina) + + * El directorio donde se encuentran las DLL's puede configurarse en el ediv.cfg + (Er_Makina) + + * En edivcentral.com he creado una carpeta llamada "actual" donde hay + documentos que cambian frecuentemente, útiles para mantenerse informado sobre + el desarrollo de eDIV. Allí están el TODO, el ChangeLog, el MOTD, y también + el language.txt. Se puede acceder a ellos en www.edivcentral.com/actual. El + changelog se puede ver rápidamente en changelog.edivcentral.com. + (Er_Makina + Daijo) + + * El sistema de prioridades de las DLL's ya funciona perfectamente, la tabla de + DLL's se ordena en memoria segun las prioridades antes de decidir cual se usa + y cual no. De esta forma se escriben ya ordenadas en el bytecode. (Er_Makina) + + +14/2/2002 +--------- + + * Bug arreglado: en WinNT el stub fallaba al cargar una DLL. He puesto + que use las funciones de windows (LoadLibrary y compañia), pero + dll_load.c sigue siendo necesaria para cargar dll's embebidas en el + exe. (Er_Makina) + + * El stub ya carga el indice de variables. OJO: aun no esta hecho lo de + las prioridades de las DLL's, por lo que es posible recibir ceros al + intentar localizar una variable, aunque pertenezca al edivstd. + (Er_Makina) + + +31/1/2002 +--------- + + * Ya rula el indexado de variables por el lado del compilador. Se guarda + el indice comprimido en el exe, justo despues del bytecode, asi que hay + que adaptar el stub en consecuencia. (Er_Makina) + + +23/1/2002 +--------- + + * Adaptado ediv_export.c al stub. Kizas me haya saltado algo y tenga + algunos bugs, ya me encargare de comprobarlo con algunas "chivatas" ;) + (Er_Makina) + + +13/1/2002 +--------- + + * El compilador lee un archivo de configuración (ediv.cfg) de donde + obtiene las opciones de compilación por defecto, el servidor para el + MOTD, un idioma forzado y el directorio de las dll's. Falta por incluir + una sección [dll_priority] donde indicar las prioridades por defecto de + las dll's. Éstas irán, por ahora, de -512 a 512. El valor por defecto + es 0. Una dll con 512 de prioridad se cargará siempre aunque no se + indique ninguna referencia a una función de la dll en el PRG (éste es + el caso de la edivstd y la graphics). Una prioridad de -512 hace que + la dll no se cargue nunca (útil para tener varias dll's que hagan lo + mismo, por ejemplo una sound que use fmod y otra que use sdl). + (Daijo & Er_Makina) + + * He incluido errores run-time leves y graves en el stub (mirar error.c). + En error.c explico también el planteamiento de poner msgbox en linux + para los errores. Los mensajes de error leves son los mismos que en + div2, esto es importante para mantener la compatibilidad con + ignore_error(). (Er_Makina) + + * He mejorado la comunicación HTTP/1.1 para obtener el MOTD. Ahora + detecta si la información recibida es de texto plano, y no admite fi- + cheros de más de 1024 bytes. (Er_Makina) + + * Implementado el sistema de entrypoints en el compilador y extern.h, + queda meterlo en el stub. (Er_Makina) + + * Carga de dll's a medio hacer en el stub (ya funciona la instrucción IMP), + le falta un ediv_export.c, por tanto no compila. El stub busca las dll's + primero en el directorio actual y luego en dll\ (so/ en el caso de Linux). + (Er_Makina) + + * dll_load.c y dll_load.h movidos a la carpeta shared. (Er_Makina) + + * Arreglado pequeño desastre con el fichero extern.h (Er_Makina) + + * Varios pequeños bugs arreglados. (Er_Makina) + + +1/12/2001 +--------- + + * Ligeramente modificado el SDK, las funciones ediv_export ya no retornan + un puntero C a los datos exportados, sino un puntero DIV, es decir, la + posición en mem[] o loc[] donde han sido colocados. Esto permitirá hacer + el sistema de indexado para que unas DLLs (o el stub) puedan acceder a + datos de otras, y para que se pueda acceder a los datos locales mediante + mem[id+offset]. (Er_Makina) + + * También he metido algunos #defines para hacer las funciones predefinidas + o autoejecutables de las DLL, se declararán con una función tipo + EDIV_Export_Auto(id_funcion,handle). Aun no tengo muy claro como fun- + cionará el asunto en general, imagino que todo se desencadenará a partir + de EDIV_post_process y a partir de ahí todas las DLLs irán llamando a las + correspondientes autoejecutables de las demás. Si alguien no entiende esto, + que me lo pregunte y me rallaré mas xD (Er_Makina) + + * Añadida capacidad para leer un MOTD situado en www.edivcentral.com/motd.txt + con la opción -n, --news (de momento sólo rula en Win32) (Daijo + Er_Makina) + + +30/11/2001 +---------- + + * Añadido archivo language.txt en el directorio raiz, para que sea mas facil + hacer traducciones. El que haga alguna traducción nueva, que la mande + a ediv@divsite.net para que la implementemos en el language.c. (Er_Makina) + + +29/11/2001 +---------- + + * Añadido soporte multi-idioma (ojo, la traduccion al portugues esta por + terminar, y el #ifdef de detectar_idioma lo puse mal como WIN322 o algo asi + pa probar como rularia en linux. Probad a trastear con la variable de + entorno LANG... ;) (Er_Makina) + + +26/11/2001 +---------- + * He limpiado el encrypt.c del proyecto encrypt, ahora es hasta legible xD. + (Daijo) + + * Los incluides, workspaces y librerias de ZLIB y SDL han sido eliminadas como + parte del codigo de eDiv. (Daijo) + + * El archivo 'ediv 2ª etapa.txt' tambien lo he quitado. (Daijo) + + * He arreglado unas incompatibilidades del STUB con las cabeceras de Windows, +en + concreto con WINBASE.H que tenia definiciones de lstrcpy, lstrcat y lstrlen. + Ahora si esta definido windows, las 'undefine' antes de ser vueltas a definir + en el stub :). (Daijo) + + * Nuevo workspace 'modules.dsw' en 'Visual C' con las DLL. (Daijo) + + * _ml.c lo voy a reescribir, por lo tanto he eliminado casi todo su codigo y el + codigo en ediv.c que utilizaban alguna funcion suya. (Daijo) + + * Hay unos cuantos folders menos que no usabamos (limpieza rules xD). (Daijo) + +21/11/2001 +---------- + * He comentado del kernel.c las lineas que servian para el programa de rebote +de + la bola. No las elimineis, ya que esas lineas estan en bien. Lo que aun no se + es porque cuando hay mas de un proceso activo el stub peta. Cuando lo +solucione + volvere a activar esas lineas. ( Riseven ) + +20/11/2001 +---------- + * Viendo la descripcion de las variables locales predefinidas, he visto que +exis- + ten variables locales privadas del interprete que sirven para el +funcionamien- + to del interprete. Estas variables cuinciden casi exactamente con las que + hice en procs_s[], esto debe ser buena señal no? al parecer el funcionamiento + interno del interprete de dani y el que estoy haciendo se parecen mas de lo + que hubiera imaginado en un principio. Mejor, asi es menos probable que nos + aparezcan errores inesperados de incompatibilidad :) + ( Riseven ) + + * He hecho que el stub cargue "bola.bmp" en imgs[0] para poder utilizar de +grafi- + co 0, todos los procesos se visualizan en la posicion que indice su X e Y. + El stub peta si al llegar al frame hay mas de un proceso activo, aun no muy + bien el motivo. ( Riseven ) + + * He notado que la iloc_len es mas pequeña de lo que deberia ser, solo en + variables locales predefinidas ya hay 42, mientras que iloc_len vale 37. + ( Riseven ) + + * He medido la velocidad del eDiv para modod 320x200, con un proceso cuyo graph + es una imagen de 25x25 pixels y e obtenido estos resultados: + CON DOUBLEBUFFERING SIN DOUBLEBUFFERING + Modo ventana: 106 fps 122 fps + Modo fullscreen: 64 fps 157 fps + ( Riseven ) + +19/11/2001 +---------- + * Ya funciona correctamente la eliminacion de procesos ( antes siempre se +elimi- + naba el primer proceso ) esto era debido a que interprete() estaba mal. + ( Riseven ) + + * Tras pelearme un poco con el ADA y JPF que ambos contenian fallos e +conseguido + que funcione correctamente el FROM :) No se muy bien que cosas soporta ya el + interprete, y que cosas utilizan mnemonicos no definidos aun. + ( Riseven ) + + * Se me olvidaba, es NECESARIO utilizar ya + que aun no he hecho ningun mnemonico optimizado. ( Riseven ) + + * En stdout.txt podreis ver un debugger improvisado ;) , en cada paso escribe + el indice de codigo ( imem ), el numero de proceso activo ( num_proc, no con- + fundir con Id del proceso ), el indice de pila ( sp ) y el valor actual de la + pila ( pila[sp] ) + ( Riseven ) + + * Añadidas las variables locales al interprete, falta testearlo. Se trata de +los + mnemonicos AID y CID. AID suma id a la pila, y CID carga id en la pila. Esto + es debido a k las variables locales funcionan sumando id+offset_variable, +donde + id es el offset donde empiezan las variables locales del proceso +correspondien- + te, y offset_variable es el offset relativo. Los offset_relativos son iguales + para distintos procesos, si el offset relativo de X para un proceso es 19, +para + otra variable tb sera 19. ( Riseven ) + + * RNG ya esta hecho, bueno, en realidad no hace nada, pero si esta definido +DEBUG + si que hacia algunas cosas que no e puesto, no se si nos seran necesarias +para + nuestro debugger, si esto es asi ya sabeis donde faltan algunas rutinas :P + ( Riseven ) + + * Ya se soporta SWITCHs :), los mnemonicos asociados son CSE Y CSR, y estan sin + testear. ( Riseven ) + + * Ya estan casi todos los menmonicos basicos, solo faltan algunos complicados +como + CPA, FUN o EXT, y algunos otros orientados unicamente a debug como RNG, DBG o +CHK. + Tecnicamente, si no se utilizan cadenas y utilizando la no_optimization, el + interprete ahora deberia estar preparado para soportarlo CASI TODO :). + ( Riseven ) + +18/11/2001 +---------- + * He metido unos 30+ mnemonicos de EML, la mayoria de ellos testeados. + ( Riseven ) + +16/11/2001 +---------- + * Creada procs_s[], esta estructura guarda informacion de los procesos activos, + posee datos como el indice actual del proceso ( en el k se quedo al llamar + a FRAME ), el graph, priority, x , y, id, y demas variables k tenga k + utilizar el kernel, para evitar tener k acceder a mem[] para buscar esos +datos. + Tambien guarda el tipo de proceso k es. ( Riseven ) + + * Incluidos los mnemonicos en el inte.h , copiados de compiler.h ( Riseven ) + + * Se inicializan las variables de posicion de codigo, globales, locales +publicas + y locales privadas. Se crea el proceso main y se mete a la lista de ejecucion + de procesos con lista_mete(). Creada la lista de ejecucion de procesos, se + llama proc_orden[], y guarda los procesos ordenados por priority, exactamente + lo que guarda es el indice correspondiente de procs_s[] ( Riseven ) + +15/11/2001 +---------- + + * He comentado todo el code en C del eDivNoid, no borreis los comentarios, k + me vienen bien para programar el interprete ( Riseven ) + +8/11/2001 +--------- + + * Implementada compilación cruzada: ahora es posible indicar el sistema + al que se quiere compilar con la opción -s, seguida del nombre del sistema + (deberá existir un fichero de stub con el nombre de ese sistema, ver si- + guiente punto) (Er_Makina) + + * Implementado sistema de doble stub: uno con extensión .rel para compila- + ciones definitivas y otro con extensión .dbg para compilaciones de debug. + Para elegir si compilar el .rel o el .dbg se debe elegir "Select + configuration..." en el menú Build de Visual C y elegir por ejemplo + "Win32 Debug" para la versión .rel y "Win32 Debug con trazador" para la + versión .dbg. La diferencia entre los dos es que el .dbg se compila con + la macro DBG definida, y por tanto se activan las rutinas de depurado de + eDIV. (Er_Makina) + + * El script makelib.bat también ha sido modificado para implementar lo de + los nuevos stubs y AHORA SE EJECUTA AUTOMÁTICAMENTE DESPUÉS DE COMPILAR + EL STUB, por lo que ya no hace falta hacerlo manualmente. Esto está + configurado en la pestaña "post-build step" en las opciones del proyecto + stub. (Er_Makina) + + * Añadidas rutinas de stub y kernel de Riseven y |RooT|. (Daijo) + + +7/11/2001 +--------- + + * Cambiado el 'magic' de la edivrun.lib de "dj!" a "eDIV Stub" (Er_Makina) + Nota: PROHIBIDO CAMBIARLO OTRA VEZ :PPPPPP + + * El stub ahora descomprime el código y lo guarda en memoria. (Er_Makina) + + * La clave de encriptación, el 'magic' de la edivrun.lib y otros datos + que son comunes a varios programas ahora se encuentran en el archivo + shared.h para poder modificar algun dato sin tener que hacerlo en varios + ficheros a la vez (Daijo) + + * encrypt.c ordenado con sangrados de texto (Daijo) + + * Nota: los programas que usan la zlib fallan al ejecutarlos en una makina + con micro AMD y Windows XP. No sucede cuando se compila con Visual C++ 7 + (Framework .NET beta2) (Daijo) + + +29/6/2001 +--------- + + * Corregidos miles de bugs de la versión para Win32. ':) Ahora se lee el + fichero prg en modo "rb" en vez de "r" ya que el gracioso de güindows + en modo "r" te sustituye los CRLF por LF a secas >:( y el programa no + resultaba tan grande como el tamaño del propio archivo, por lo que + encontraba "caracteres no reconocidos" (basura) antes de llegar al EOF + (el carácter de ASCII 0). + + * Añadida opción -c o --check que hace que no se guarde el exe. Útil para + comprobar sintaxis, sacar listados, etc sin sobreescribir el exe actual + o simplemente sin malgastar espacio (y el trabajo de borrar el exe) xD + + * Comenzada documentación... de solo mirar el indice ya da la sensación + de estar leyendo una tesis doctoral... xD También comencé una referencia + de EML pero me acabé aburriendo así que ya lo terminaré un día que esté + realmente aburrido y no tenga ganas de hacer otra cosa :p + Por cierto, la introducción me ha salido muy chunga, parece como si + hubiera escrito un anuncio del div3 o algo asi :( así que el que quiera + modificarla que lo haga por favor, o mejor dicho hacedlo, ke seguro ke + teneis mas inspiracion ke yo xD + + (Er_Makina) + + +28/6/2001 +--------- + + * Re-construidos proyectos para Win32, he puesto los includes de la zlib y + SDL en /inc, y sus libs correspondientes en /zlib. En /src/visual c está + el workspace con el ediv, stub y encrypt. Cada dll tiene su propio work- + space en el directorio de su source. + + * Añadida la ruta absoluta del PRG en Win32 al compilar en modo debug. + + * Ligeramente modificado el formato de los EXE, ahora se añade el tamaño de + los datos comprimidos después del tamaño de los datos descomprimidos. El + numerito tiene formato de unsigned long, que no recuerdo ahora mismo + cuantos bytes eran. + + * Parece que hay un fallo en Win32 al reconocer qué DLLs se usan en el PRG. + Al compilar C.PRG, sólo reconoce que se usa edivstd.dll, cuando en reali- + dad debería usar también sample.dll. Esto se puede arreglar con una + sesión de debug pero ahora no tengo tiempo, mañana me ocuparé de eso. + (o esta noche si no me entra sueño xD) + + * He modificado un poco el export.h para hacerlo más compatible con win32. + He comentarizado también el asunto del DllMain, tanto en el export.h como + en las DLLs, ya que aparte de darme problemas en win32, no tenía utilidad + en Linux. + + (Er_Makina) + + +27/6/2001 +--------- + + * Arreglado un bug por el cual se echaba a perder todo el eml. En un sitio + escribí mem en vez de imem y... ^_^ También he arreglado la generación de + la rutina de carga de DLLs, ahora recuerdo que no se puede volver de un + JMP con un RET xD + + * Arreglado ELSEIF. No volveré a ser tan chapuzas, lo juro xD + Y esta vez lo he comprobado bien, repasando el desensamblado y todo :) + + * Se escribe stub_size al final del ejecutable + + * La opción -d (--debug) ya funciona. El formato del ejecutable de debug es + el siguiente: primero el stub y el EML, como en los ejecutables normales. + Luego, la ruta absoluta del PRG (hay que terminar la función escribe_lin + para hacer esto en win32). Luego la información que relaciona el bytecode + con el texto (lin), es decir, indica donde empieza y donde termina cada + sentencia tanto en el bytecode (mem[]) como en el prg. Naturalmente esto + es útil para el trazador. Luego viene la tabla de objetos (dbg), como en el + fichero .tab pero más críptico, obviamente. Primero está el volcado de la + tabla de objetos, sustituyendo los nombres por offsets a su nombre + correspondiente en el volcado de vnom (vector de nombres), que es lo que + viene justo después. Por último, se escriben 3 valores: el comienzo de la + sección "lin" en el fichero (justo donde termina el bytecode y empieza la + ruta del prg), el comienzo de la sección "dbg", y stub_size. Ah, el + ejecutable se marca como debug en el bit 6 de mem[0] (+64). + + (Er_Makina) + + +26/6/2001 +--------- + + * Opciones de línea de comando. Ahora se puede elegir generar una tabla de + objetos *.tab (--table) y/o el listado EML (--list). La opción --debug no + está disponible todavia. He metido estas nuevas opciones en listados.c + + * Arreglado el estropicio que borró todos los mensajes de error a partir + del 55, por un despiste mio, que me puse un ediv.c que me pasó daijo y no + estaba actualizado + + * Desactivado el sistema de "multi-error", lo he metido en #ifdefs por si + alguien en algun futuro quiere activarlo o por si le hace ilu. + + * Arreglado horrible bug por el cual no se borraba vhash[] y las propias + dlls daban errores del tipo "el nombre no es nuevo" después de la + precompilación. + + y creo ke ya ta... (Er_Makina) + + +25/6/2001 +--------- + + * Terminado el proceso de remcompilación para ahorrar la memoria de las + DLLs no usadas + + * Ya se crea el EXE, por ahora tiene la misma estructura que los EXE de + DIV2 + + (Er_Makina) + + +24/6/2001 +--------- + + * Modularizadas las rutinas de carga de DLLs (Daijo) + + * Terminada sección PRIVATE, código principal y PROCESOS (función + sintactico()). (Er_Makina) + + * Terminadas todas las sentencias (función sentencia()) y añadido ELSEIF, + ojo que LTLEX.DEF ha sido modificado, y obviamente los #defines de p_xxxx + de PARSER.H tambien (Er_Makina) + + +22/6/2001 +--------- + + * Completadas las variables y constantes predefinidas en edivstd.dll + + * Terminada sección LOCAL + + * He comprobado y arreglado algunos errores, el 39 y algun otro que no me + acuerdo + + (Er_Makina) + + +21/6/2001 +--------- + + * Terminada sección GLOBAL con todas sus declaraciones. ':) + + * Corregidos algunos detalles y fallos de las expresiones constantes. + + * POR HACER: Provocar y comprobar TODOS los errores :p + + * Ah he hecho un icono del ediv, ediv.ico ^_^ + + (Er_Makina) + + +20/6/2001 +--------- + + * EVALUADOR DE EXPRESIONES CONSTANTES TERMINADO :D + Bueno, en realidad casi, tan sólo falta comprobar todos los errores. Como + el DIV original detenía la compilación al encontrar un error y eDIV no, + hay que añadir código después de las llamadas a error() para hacer que el + parsing siga como si no hubiera pasado nada. A veces esto se arregla con + poner simplemente lexico(); pero la mayoría de las veces hay que hacer + algo más para ignorar el error. + + * Tambien he incluido el generador de código y el optimizador peephole, y + de hecho ya sería capaz de compilar cosas, aunque sólo a la memoria (es + decir, al buffer mem[]). De momento solo reconoce el compiler_options. + Paciencia. + + * Como podeis ver, ya hay unos cuantos mensajes de error, un problema es + que no sabemos cómo tenía el DIV original organizados los errores, así + que hay que investigar por qué se produce el error y qué mensaje le + viene bien. He usado mensajes originales del DIV2, fijándome en el + errores.html que me hice a partir de la ayuda del DIV2. Por desgracia no + están en orden :( + + * En el DIV2 hay errores que tienen varios códigos para un solo mensaje, + esto es para que la ayuda de ese error sea más específica en el contexto + en que se ha producido el error. Aquí yo he puesto un solo código para + cada mensaje, si más tarde queremos hacer la ayuda multi-contexto ya se + cambiará. + + * Aun no podemos considerar expresion.c terminado, ya que queda el código + para la evaluación de sentencias de asignación, expresiones variables y + condiciones. + + * Se que el codigo, tal como esta ahora es ilegible, (especialmente + expresion.c y parser.c), pero me hubiera llevado semanas ordenarlo tal + como lo he hecho con plexico() por ejemplo, ya me pondré un día a hacerlo + y de paso destriparlo bien y poner todos los comentarios que pueda (por + ahora he puesto comentarios a todos los errores, para saber cuáles son) + + * Ah, y he hecho una dll llamada "edivstd" se que ya la odiais de solo ver + el nombre, pero es necesaria una libreria "estandar" para cosas tan basicas + e inclasificables como las opciones de compilacion (ya implementadas, por + cierto :D ), la estructura local reserved, las locales father, smallbro, + bigbro, etc. Estas cosas pertenecen al gestor de procesos y eso es algo + que viene incluido en el stub. + + (Er_Makina) + + +18/6/2001 +--------- + + * La versión de Linux ya carga y registra los *.so al igual que la de win + hacía con las *.dll. Terminado el ediv_export.c, ya soporta datos locales + aunque aún hay que retocar un poco la exportación de funciones. Por + cierto, se me olvidó decir que eliminé el rollo del /src/gcc-linux porque + ahora que tenemos makefiles decentes ya no sirve para nada. (Er_Makina) + + +17/6/2001 +--------- + + * La versión de Linux ya tiene todos sus makefiles y ya encuentra las *.so. + He modificado ligeramente el export.h para hacerlo compatible y he inclu- + ido una dll de muestra, sample. Aun no he probado a compilarla en win32. + (Er_Makina) + + +15/6/2001 +--------- + + * Incluyo los ficheros necesarios para compilar bajo Linux, en src/gcc-linux + Hay que leer el archivo "MUY IMPORTANTE" que se encuentra en ese directorio. + Estos archivos solo son para desarrollo, es decir que requieren las rutas + relativas del CVS y por tanto NO DEBEN SER INCLUIDOS EN LOS PAQUETES DIS- + TRIBUIDOS. Algún día meteré ahí un directorio con un script que genere + automáticamente el paquete de código fuente para Linux, al estilo GNU. + (Er_Makina) + + +14/6/2001 +--------- + + * Pakeo rapido, version con soporte para linux aunque aun por terminar. Ya esta + hecha la sustitucion de _findfirst y _findnext aunque aun queda por terminar +de + implementar el soporte .so. + Por hacer: terminar soporte .so y hacer el SDK para los .so (quizas haga + falta un export.h distinto?) a ser posible que se pueda utilizar el mismo src + para hacer una .dll y un .so, please mejor dicho esto es OBLIGATORIO + (Er_Makina) + + +15/4/2001 +---------- + + * Añadido CheckWindowsVersion a Dll_Load.c. Ahora esta funcion se + llama justo antes de InitializeDllLoad para ajustar g_bIsWinNT a + 1 o 0, dependiendo si usamos WINNT/WIN2K o Win'9x/Me. (Daijo) + diff --git a/ediv/old/authors.txt b/ediv/old/authors.txt new file mode 100644 index 0000000..52c379e --- /dev/null +++ b/ediv/old/authors.txt @@ -0,0 +1,65 @@ +Programadores +------------- + +- Er_Makina (ermakina@ya.com) +- Riseven (riseven@hotmail.com) +- |RooT| (alfaher@terra.es) +- Daijo (daijo@softhome.net) +- CicTec (francescoamato5@tin.it) + + +Traductores +----------- + +- CicTec (italiano) (francescoamato5@tin.it) +- tareko (português) (miauz@clix.pt) +- Er_Makina (inglés) (ermakina@ya.com) +- BenKo (català) (benkojedi@hotmail.com) +- Jorge Urreta (euskera) (jurreta@navegalia.com) +- Bb_LaRiOs (francés) (daniel@danielesteban.com) + +Betatesters +----------- + +- CicTec (francescoamato5@tin.it) +- Matías Iacono (gmakers@yahoo.com) +- EHSN (EHSN@softhome.net) +- chinodiv (zacsoft@hotmail.com) +- [hallg] (hallg_@hotmail.com) +- loxo (loxo_war@ono.com) +- djpipo (djpipo@mundofree.com) +- Tomás Baenas (tomas.baenas@terra.es) +- Pato (pgsimon@yahoo.com) +- Jags Andrew (jags90@yahoo.com) +- BenKo (benkojedi@hotmail.com) +- Ferminho (ferminho@hotmail.com) +- Bb_LaRiOs (daniel@danielesteban.com) +- Satv +- Joyal +- SHeLe +- fidojones +- Paradigma Studios (mx.geocities.com/paradigma_studios) + + +Webmaster +--------- + +- Er_Makina (ermakina@ya.com) + + +Agradecimientos +--------------- + +- Daniel Navarro +- José Luis Cebrián +- Beorn +- Equipo de Hammer Technologies: + + · Juanjo Garrido + · Luis Fernando Fernández + · Fernando Pérez + · Antonio Marchal + · Luis Sureda + · Manuel Cabañas + · Daniel Muñoz + · etc... diff --git a/ediv/old/bugs.txt b/ediv/old/bugs.txt new file mode 100644 index 0000000..45e373f --- /dev/null +++ b/ediv/old/bugs.txt @@ -0,0 +1,3 @@ +fallo de rango en Rand +teclado -> se sale solo +teclado -> se bloquea ( ¿todo o solo el teclado? ) diff --git a/ediv/old/todo.txt b/ediv/old/todo.txt new file mode 100644 index 0000000..aaac4b1 --- /dev/null +++ b/ediv/old/todo.txt @@ -0,0 +1,63 @@ +yo me lio con estos ficheros todo, asi k pongo mi propia seccion todo ( Riseven ) xDD +- cambiar el trasparency (255-0) a (0-255) <-- hecho +- valores por defecto de las variables locales <-- hecho +- indexado de estructuras <-- hecho +- variables privadas <-- ¿? hecho, no? +- nuevo valor de flags ( +8 -> modo 50% / Trasparency ) <-- hecho + + +Cosas por hacer cuanto antes: + +- eso de cerrar la ventanita con la X, que se pueda activar/desactivar de alguna forma +- fade_on() y fade_off() deben devolver fading, es decir esto debe funcionar: + while(fade_on()) frame; end +- Añadir mnemónicos al kernel del stub (acabar los normales y añadir los de byte, word y string) +- Hacer desaparecer la tabla procs_s y sustituirla por variables indexadas +- Revisar muchísimo el kernel del stub (compilar cosas, debugear...) +- Actualizar los makefiles y proyectos de KDevelop, y comprobar que rule + bien bajo Linux +- Hacer unos msgbox decentes para Linux, con X11 a pelo o con una libreria + pekeñita (ver error.c del stub) +- Adaptar la rutina de MOTD a Linux <- ya rula? +- Documentarlo todo, ahora tenemos el DOKU, kien no lo tenga ke se lo pida + a Er_Makina :) +- A la hora de implementar la funcion qsort(), hay que introducir una nueva + función a ediv_export y modificar la toma y compilación de parámetros en + expresion.c + + +Cosas a implementar a medio plazo: +- Compilar para otros sistemas, como MacOS X (sourceforge rlz) + lo dificil será encontrar gente pa testear :P +- Trazador +- Macroinstrucciones EML? + (nota: si se hacen, SE AÑADEN a los opcodes que ya hay, podriamos hacer + un "nivel 2 de compilacion". de lo ke paso totalmente es de sustituir los + opcodes actuales, lo que supondria reescribir el compilador y el stub) + +- Tablas de strings: + + string str[3,4][20] <-- inicializa una tabla de strings de 3x4 registros + de 20 caracteres cada uno + +- Tipos definidos por usuario, como en Fenix <- ¿? + + +Cosas ya hechas: + +- Archivos de configuracion, ediv.cfg (opciones de compilacion, server de + MOTD, etc) y priority.cfg (prioridades de DLLs) +- Depurar bestialmente ediv_export y cosas relacionadas (y añadir funciones + autoejecutables estilo post_process_buffer) +- Al final todo el asunto de los graficos lo gestionará la graphics.dll, ten- + drá prioridad 512 (máxima) y utilizará el sistema de entrypoints +- Meter en el STUB las rutinas de |RooT| y Riseven +- Rediseñar el sistema de stubs para dar cabida a versiones con y sin debugger: + + Win32.dbg + Win32.rel + Linux.dbg + Linux.rel + + Indicar al compilador a qué sistema compilar usando el parámetro -s, --system + (compilación cruzada), por defecto el sistema actual diff --git a/ediv/src/ediv/language.c b/ediv/src/ediv/language.c index e6b591d..d0363af 100644 --- a/ediv/src/ediv/language.c +++ b/ediv/src/ediv/language.c @@ -19,9 +19,6 @@ */ -/**** ¡¡¡ OJO CON LAS COMAS !!! ****/ - - #ifdef _WIN32 # include #else @@ -94,467 +91,8 @@ char* translate_error(int num) static char *e[NUM_LANGUAGES][74] = { - /* 0 - ESPAÑOL */ - - /* 0 */ "", - /* 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", - /* 6 */ "Excedida la capacidad de la tabla de objetos", - /* 7 */ "Esperando '='", - /* 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", - /* 14 */ "No se puede calcular el offset del dato", - /* 15 */ "No se puede calcular el offset", - /* 16 */ "No se puede realizar el incremento", - /* 17 */ "Local no se puede acceder", - /* 18 */ "Esperando ')'", - /* 19 */ "Esperando ']'", - /* 20 */ "No es un tipo de proceso", - /* 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", - /* 27 */ "Esperando el nombre de la 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", - /* 34 */ "Nombre desconocido: %s", - /* 35 */ "Se esperaba una coma", - /* 36 */ "Se esperaba otro parámetro", - /* 37 */ "No se puede acceder a datos PRIVATE externos", - /* 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", - /* 43 */ "Estructura de longitud negativa", - /* 44 */ "Esperando PROGRAM", - /* 45 */ "Esperando el nombre del programa", - /* 46 */ "Se esperaba un literal", - /* 47 */ "Una estructura debe contener, al menos, un elemento", - /* 48 */ "Demasiados valores para la tabla", - /* 49 */ "Literal demasiado largo", - /* 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", - /* 55 */ "Demasiados valores para la estructura", - /* 56 */ "Esperando BEGIN", - /* 57 */ "Esperando END", - /* 58 */ "Esperando UNTIL", - /* 59 */ "Esperando una variable", /* (para el FROM) */ - /* 60 */ "Esperando TO", - /* 61 */ "Sentencia FROM incorrecta", /* (from==to) */ - /* 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", - /* 71 */ "Esperando PROCESS o FUNCTION", - /* 72 */ "Parámetro no válido", - /* 73 */ "ELSEIF no aparece dentro de un bloque IF", - - /* 1 - ITALIANO */ - - /* 0 */ "", - /* 1 */ "Si aspettava '*/'", - /* 2 */ "Capacità vettore nomi oltrepassata", - /* 3 */ "Si aspettava '\"'", - /* 4 */ "Simbolo non riconosciuto", - /* 5 */ "Carattere non riconosciuto", - /* 6 */ "Capacità tabella oggetti oltrepassata", - /* 7 */ "Aspettando '='", - /* 8 */ "Aspettando un'opzione di compilazione", - /* 9 */ "Aspettando ';'", - /* 10 */ "Si aspettava un operando", - /* 11 */ "Espressione incorretta", - /* 12 */ "Assegnazione a catena incorretta", - /* 13 */ "Assegnazione incorretta", - /* 14 */ "Impossibile calcolare l'offset del dato", - /* 15 */ "Impossibile calcolare l'offset", - /* 16 */ "Non è possibile realizzare l'incremento", - /* 17 */ "Impossibile accedere a local", - /* 18 */ "Aspettando ')'", - /* 19 */ "Aspettando ']'", - /* 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", - /* 27 */ "Aspettando il nome della struttura", - /* 28 */ "Dichiarazione incorretta di puntatore a struttura", - /* 29 */ "Aspettando il nome della catena", - /* 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", - /* 34 */ "Nome sconosciuto: %s", - /* 35 */ "Si aspettava una virgola", - /* 36 */ "Si aspettava un altro parametro", - /* 37 */ "Non è possibile accedere a dati PRIVATE esterni", - /* 38 */ "Numero di parametri incorretto", - /* 39 */ "Aspettando un elemento della struttura", - /* 40 */ "Tabella di lunghezza negativa", - /* 41 */ "La lunghezza non coincide con la dichiarazione precedente", - /* 42 */ "Impossibile inizializzare un parametro", - /* 43 */ "Struttura di lunghezza negativa", - /* 44 */ "Aspettando PROGRAM", - /* 45 */ "Aspettando il nome del programma", - /* 46 */ "Si aspettava un stringa", - /* 47 */ "Una struttura deve contenere almeno un elemento", - /* 48 */ "Troppi valori per la tabella", - /* 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", - /* 53 */ "Inizializzazione incorretta", - /* 54 */ "Si aspettava un'espressione costante", - /* 55 */ "Troppi valori per la struttura", - /* 56 */ "Aspettando BEGIN", - /* 57 */ "Aspettando END", - /* 58 */ "Aspettando UNTIL", - /* 59 */ "Aspettando una variabile", - /* 60 */ "Aspettando TO", - /* 61 */ "Sentenza FROM incorretta", - /* 62 */ "Il valore STEP non è valido", - /* 63 */ "Aspettando CASE, DEFAULT o END", - /* 64 */ "Aspettando ':'", - /* 65 */ "BREAK non appare dentro un bugle", - /* 66 */ "CONTINUE non appare dentro un bugle", - /* 67 */ "Si aspettava una sentenza", - /* 68 */ "Espressione insensata", - /* 69 */ "Assegnazione dentro una condizione", - /* 70 */ "Aspettando un nome di processo o funzione", - /* 71 */ "Aspettando PROCESS o FUNCTION", - /* 72 */ "Parametro non valido", - /* 73 */ "ELSEIF non appare dentro un blocco IF", - - /* 2 - PORTUGUÉS */ - - /* 0 */ "", - /* 1 */ "Esperava-se '*/'", - /* 2 */ "Capacidade do vector de nomes excedida", - /* 3 */ "Esperava-se '\"'", - /* 4 */ "Símbolo desconhecido", - /* 5 */ "Caracter desconhecido", - /* 6 */ "Capacidade da tabela de objectos excedida", - /* 7 */ "Esperando '='", - /* 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", - /* 18 */ "Esperando ')'", - /* 19 */ "Esperando ']'", - /* 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", - /* 27 */ "Esperando o nome da estructura", - /* 28 */ "Declaração incorrecta de ponteiro a uma estructura", - /* 29 */ "Esperando o nome da cadeia", - /* 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", - /* 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", - /* 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", - /* 43 */ "Estructura de longitude negativa", - /* 44 */ "Esperando PROGRAM", - /* 45 */ "Esperando o nome do programa", - /* 46 */ "Esperava-se um literal", - /* 47 */ "Uma estructura deve conter, pelo menos, um elemento", - /* 48 */ "Demasiados valores para a tabela", - /* 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", - /* 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", - /* 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", - /* 71 */ "Esperando PROCESS ou FUNCTION", - /* 72 */ "Parametro não válido", - /* 73 */ "ELSEIF não aparece dentro de um bloco IF", - - /* 3 - INGLÉS */ - - /* 0 */ "", - /* 1 */ "End Of File reached inside a comment", - /* 2 */ "Name vector out of bounds", - /* 3 */ "Literal not closed", - /* 4 */ "Symbol not recognized", - /* 5 */ "Character not recognized", - /* 6 */ "Object table out of bounds", - /* 7 */ "Expecting '='", - /* 8 */ "Expecting a compiler option", - /* 9 */ "Expecting ';'", - /* 10 */ "Expecting operand", - /* 11 */ "Incorrect expression", - /* 12 */ "Incorrect assignment to a string", - /* 13 */ "Incorrect assignment", - /* 14 */ "Can't calculate data's offset", - /* 15 */ "Can't calculate offset", - /* 16 */ "Can't do the increment", - /* 17 */ "Can't access local", - /* 18 */ "Expecting ')'", - /* 19 */ "Expecting ']'", - /* 20 */ "It isn't a process type", - /* 21 */ "Expecting a process' name", - /* 22 */ "Expecting '('", - /* 23 */ "Expecting name", - /* 24 */ "Can't calculate size", - /* 25 */ "Incorrect expression", - /* 26 */ "Can't receive a struct as a parameter", - /* 27 */ "Expecting the name for the struct", - /* 28 */ "Incorrect declaration of struct pointer", - /* 29 */ "Expecting the name for the string", - /* 30 */ "The name isn't new", - /* 31 */ "Negative-lenght string", - /* 32 */ "String too large", - /* 33 */ "Can't receive an array as a parameter", - /* 34 */ "Unknown name: %s", - /* 35 */ "Expecting ','", - /* 36 */ "Expecting another parameter", - /* 37 */ "Can't access external PRIVATE data", - /* 38 */ "Incorrect number of parameters", - /* 39 */ "Expecting a struct item", - /* 40 */ "Negative-lenght array", - /* 41 */ "The lenght doesn't match with previous declaration", - /* 42 */ "Can't initialize a parameter", - /* 43 */ "Negative-lenght struct", - /* 44 */ "Expecting PROGRAM", - /* 45 */ "Expecting program's name", - /* 46 */ "Expecting literal", - /* 47 */ "A struct must contain, at least, one item", - /* 48 */ "Too many values for the array", - /* 49 */ "Literal too long", - /* 50 */ "BYTE value out of bounds (0...255)", - /* 51 */ "WORD value out of bounds (0...65535)", - /* 52 */ "Can't duplicate 0 or less times", - /* 53 */ "Incorrect initialization", - /* 54 */ "Expecting a constant expression", - /* 55 */ "Too many values for the struct", - /* 56 */ "Expecting BEGIN", - /* 57 */ "Expecting END", - /* 58 */ "Expecting UNTIL", - /* 59 */ "Expecting variable", - /* 60 */ "Expecting TO", - /* 61 */ "Incorrect FROM statement", - /* 62 */ "Incorrect STEP value", - /* 63 */ "Expecting CASE, DEFAULT or END", - /* 64 */ "Expecting ':'", - /* 65 */ "BREAK does not appear in a loop", - /* 66 */ "CONTINUE does not appear in a loop", - /* 67 */ "Expecting statement", - /* 68 */ "Expression without sense", - /* 69 */ "Assignment within a condition", - /* 70 */ "Expecting name for the process or function", - /* 71 */ "Expecting PROCESS or FUNCTION", - /* 72 */ "Parameter not valid", - /* 73 */ "ELSEIF does not appear in a IF block", - - /* 4 - CATALÁN */ - - /* 0 */ "", - /* 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", - /* 6 */ "Excedida la capacitat de la tabla d' objectes", - /* 7 */ "Esperant '='", - /* 8 */ "Esperant una opció de compilació", - /* 9 */ "Esperant ';'", - /* 10 */ "S' esperava un operand", - /* 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", - /* 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", - /* 27 */ "Esperant el nom de la estructura", - /* 28 */ "Declaració incorrecta de punter a una estructura", - /* 29 */ "Esperant el nom de la cadena", - /* 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", - /* 34 */ "Nombre desconegut: %s", - /* 35 */ "S' esperava una coma", - /* 36 */ "S' esperaba altre paràmetre", - /* 37 */ "No es pot accedir a dades PRIVATE externes", - /* 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", - /* 43 */ "Estructura de longitud negativa", - /* 44 */ "Esperant PROGRAM", - /* 45 */ "Esperant el nom del programa", - /* 46 */ "S' esperava un literal", - /* 47 */ "Una estructura ha de contenir, almenys, un element", - /* 48 */ "Massa valors per a la tabla", - /* 49 */ "Literal massa llarg", - /* 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", - /* 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", - /* 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ó", - /* 71 */ "Esperant PROCESS o FUNCTION", - /* 72 */ "Paràmetre no vàlid", - /* 73 */ "ELSEIF no apareix dins d' un bloc IF", - - /* 5 - EUSKERA */ - - /* 0 */ "", - /* 1 */ "Bukaerara heldu izan da azalpen baten barruan", - /* 2 */ "Gainditu da izenen bektorearen kapazitatea", - /* 3 */ "Itxi gabeko literala", - /* 4 */ "Ezesaguneko ikurra", - /* 5 */ "Ezesaguneko karakterra", - /* 6 */ "Gainditu da objektuen taularen kapazitatea", - /* 7 */ "'='-ren zai...", - /* 8 */ "konpilazio aukera baten zai...", - /* 9 */ "';'-ren zai...", - /* 10 */ "Eragigai bat espero zen", - /* 11 */ "Okerreko espresioa", - /* 12 */ "Okerreko kateko esleipena", - /* 13 */ "Okerreko esleipena", - /* 14 */ "Ezin da datuaren offset-a kalkulatu", - /* 15 */ "Ezin da offset-a kalkulatu", - /* 16 */ "Ezin da gehikuntza gauzatu", - /* 17 */ "Ezin da lokala atzitu", - /* 18 */ "')'-ren zai...", - /* 19 */ "']'-ren zai...", - /* 20 */ "Ez da prozesu mota bat", - /* 21 */ "Prozesu baten izenaren zai...", - /* 22 */ "'('-ren zai...", - /* 23 */ "Izen baten zai...", - /* 24 */ "Ezin da neurria kalkulatu", - /* 25 */ "Okerreko espresioa", - /* 26 */ "Estruktura bat ezin da parametro moduan jaso", - /* 27 */ "Estruktura baten izenaren zai...", - /* 28 */ "Okerreko estrukturako eragile deklarazioa", - /* 29 */ "Kate baten izenaren zai...", - /* 30 */ "Izena ez da berria", - /* 31 */ "Neurri negatiboko testu katea", - /* 32 */ "Luzeera gehiehizko testu katea", - /* 33 */ "Ezin da taula bat parametro moduan espezifikatu", - /* 34 */ "Izen ezesaguna: %s", - /* 35 */ "Koma bat espero zen", - /* 36 */ "Beste parametro bat espero zen", - /* 37 */ "Ezin da kanpoko PRIVATE daturik atzitu", - /* 38 */ "Okerreko parametro kopurua", - /* 39 */ "Estrukturaren atal baten zai...", - /* 40 */ "Neurri negatiboko taula", - /* 41 */ "Neurria ez dator bat lehenagoko deklarazioarekin", - /* 42 */ "Ezin da parametro bat hasieratu", - /* 43 */ "Neurri negatiboko estruktura", - /* 44 */ "PROGRAM-ren zai...", - /* 45 */ "Programaren izenaren zai...", - /* 46 */ "Literal bat espero zen", - /* 47 */ "Estruktura batek atal bat gutxienez eduki behar du", - /* 48 */ "Balio gehiegi taularentzat", - /* 49 */ "Gehiegizko luzeerako literala", - /* 50 */ "BYTE balioa barrutiaz kanpo (0...255)", - /* 51 */ "WORD balioa barrutiaz kanpo (0...65535)", - /* 52 */ "Ezin da bikoiztu 0 bider edo gutxiago", - /* 53 */ "Okerreko hasieraketa", - /* 54 */ "Espresio konstantea espero zen", - /* 55 */ "Bailo gehiegi estrukturarentzat", - /* 56 */ "BEGIN-en zai...", - /* 57 */ "END-en zai...", - /* 58 */ "UNTIL-en zai..", - /* 59 */ "Aldagai baten zai...", - /* 60 */ "TO-ren zai...", - /* 61 */ "Okerreko FROM Sententzia", - /* 62 */ "Okerreko STEP balioa", - /* 63 */ "CASE, DEFAULT edo END-en zai...", - /* 64 */ "':'-ren zai...", - /* 65 */ "BREAK ez dago begizta baten barruan", - /* 66 */ "CONTINUE ez dago begizta baten barruan", - /* 67 */ "Sententzia bat espero zen", - /* 68 */ "Zentzurik gabeko espresioa", - /* 69 */ "Esleipena baldintza baten barruan", - /* 70 */ "Prozesu edo funtzio baten izenaren zai...", - /* 71 */ "PROCESS edo FUNCTION-en zai", - /* 72 */ "Okerreko parametroa", - /* 73 */ "ELSEIF ez dago IF barruan" +#define TRANSLATE TRANSLATE_ERROR +#include "language_aux.h" }; @@ -566,41 +104,8 @@ char* translate_warning(int num) static char *e[NUM_LANGUAGES][3] = { - /* 0 - ESPAÑOL */ - - /* 0 */ "", - /* 1 */ "SETUP_PROGRAM: Característica desfasada", - /* 2 */ "IMPORT: Sintaxis antigua, se ignora", - - /* 1 - ITALIANO */ - - /* 0 */ "", - /* 1 */ "SETUP_PROGRAM: Caratteristica sfasata", - /* 2 */ "IMPORT: Sintassi antica, si ignora", - - /* 2 - PORTUGUÉS */ - - /* 0 */ "", - /* 1 */ "SETUP_PROGRAM: Caracteristica ambígua", - /* 2 */ "IMPORT: Sintaxe antiga, ignorado", - - /* 3 - INGLÉS */ - - /* 0 */ "", - /* 1 */ "SETUP_PROGRAM: Ambiguous feature", - /* 2 */ "IMPORT: Old syntax, ignored", - - /* 4 - CATALÁN */ - - /* 0 */ "", - /* 1 */ "SETUP_PROGRAM: Característica desfasada", - /* 2 */ "IMPORT: Sintaxi antiga, s' ignora", - - /* 5 - EUSKERA */ - - /* 0 */ "", - /* 1 */ "SETUP_PROGRAM: Zaharkituriko karakteristika", - /* 2 */ "IMPORT: Antzinako sintaxia, alde batean utziko da" +#define TRANSLATE TRANSLATE_WARNING +#include "language_aux.h" }; @@ -611,83 +116,8 @@ char* translate_dll_error(int num) { static char *e[NUM_LANGUAGES][10] = { - /* 0 - ESPAÑOL */ - - /* 1 */ "Sobrepasado buffer de nombres de objeto", - /* 2 */ "Objeto '%s': El nombre no es nuevo", - /* 3 */ "Demasiados objetos declarados", - /* 4 */ "Funcion '%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'", - /* 9 */ "EndStruct sin Struct", - /* 10 */ "Una estructura debe contener al menos un elemento", - - /* 1 - ITALIANO */ - - /* 1 */ "Limite buffer nomi oggetto oltrepassato", - /* 2 */ "Oggetto '%s': Il nome non è nuovo", - /* 3 */ "Troppi oggetti dichiarati", - /* 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", - /* 8 */ "Grandezza illegale di string '%s'", - /* 9 */ "EndStruct senza Struct", - /* 10 */ "Una struttura deve contenere almeno un elemento", - - /* 2 - PORTUGUÉS */ - - /* 1 */ "Buffer de nomes de objecto ultrapassado", - /* 2 */ "Objecto '%s': O nome não é novo", - /* 3 */ "Demasiados objectos declarados", - /* 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", - /* 8 */ "Tamanho ilegal da string '%s'", - /* 9 */ "EndStruct sem Struct", - /* 10 */ "Uma estructura deve conter ao menos um elemento", - - /* 3 - INGLÉS */ - - /* 1 */ "Object name buffer out of bounds", - /* 2 */ "Object '%s': The name isn't new", - /* 3 */ "Too many objects declared", - /* 4 */ "Function '%s': The name isn't new", - /* 5 */ "Error declaring object '%s'", - /* 6 */ "Object '%s': Illegal declaration inside a struct", - /* 7 */ "Object '%s': Member declaration outside a struct", - /* 8 */ "Illegal size for string '%s'", - /* 9 */ "EndStruct without Struct", - /* 10 */ "A struct must contain at least one item", - - /* 4 - CATALÁN */ - - /* 1 */ "Sobrepassat buffer de noms d' objecte", - /* 2 */ "Objecte '%s': El nom no és nou", - /* 3 */ "Massa objectes declarats", - /* 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'", - /* 9 */ "EndStruct sense Struct", - /* 10 */ "Una estructura ha de contenir almenys un element", - - /* 5 - EUSKERA */ - - /* 1 */ "Objektu izenen buffer-aren kapazitatea gainditurik", - /* 2 */ "'%s'objektua: Izena ez da berria", - /* 3 */ "Gehiegizko deklaraturiko objektuak", - /* 4 */ "'%s' funtzioa: izena ez da berria", - /* 5 */ "Akatz bat sortu da '%s' objektua deklaratzean", - /* 6 */ "'%s'objektua: Debekaturiko deklarazioa struct barruan", - /* 7 */ "'%s'objektua: Atal baten deklarazioan struct kanpo", - /* 8 */ "'%s' String-eko okerreko neurria", - /* 9 */ "Struct gabeko EndStruct", - /* 10 */ "Estruktura batek atal bat gutxienez eduki behar du" +#define TRANSLATE TRANSLATE_DLL_ERROR +#include "language_aux.h" }; return e[idioma][num]; @@ -697,471 +127,21 @@ char* translate_ltlex_error(int num) { static char *e[NUM_LANGUAGES][5] = { - /* 0 - ESPAÑOL */ - - /* 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", - - /* 1 - ITALIANO */ - - /* 0 */ "", - /* 1 */ "Archivio ltlex.def non trovato", - /* 2 */ "Si aspettava un valore esadecimale (&00..&FF)", - /* 3 */ "Troppi simboli definiti", - /* 4 */ "Simbolo non valido", - - /* 2 - PORTUGUÉS */ - - /* 0 */ "", - /* 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", - - /* 3 - INGLÉS */ - - /* 0 */ "", - /* 1 */ "File ltlex.def not found", - /* 2 */ "Expecting an hexadecimal value (&00..&FF)", - /* 3 */ "Too many symbols defined", - /* 4 */ "Symbol not valid", - - /* 4 - CATALÁN */ - - /* 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", - - /* 5 - EUSKERA */ - - /* 0 */ "", - /* 1 */ "Ezin da ltlex.def fitxategia aurkitu", - /* 2 */ "Balio hamaseitar bat espero zen (&00..&FF)", - /* 3 */ "Deklraturiko ikur gehiegi", - /* 4 */ "Okerreko ikurra" +#define TRANSLATE TRANSLATE_LTLEX_ERROR +#include "language_aux.h" }; return e[idioma][num]; } -char* translate(int id_cadena) +char* translate(int num) { - switch(idioma) { + static char *e[NUM_LANGUAGES][74] = { - case 0: /* español */ - { - static char* msg[] = { - /* 0 */ " **** Compilador eDIV " VERSION " ****\nCopyleft (c) 2000-2003 Sion, Ltd.\nhttp://ediv.divsite.net\n", - /* 1 */ "ATENCION: Esta version de eDIV esta inacabada.\nPor favor informe de cualquier bug a: ediv@divsite.net\n", - /* 2 */ "Ayuda de opciones de comando:\n\n", - /* 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", - /* 7 */ " -l, --list Guarda el listado EML como \n", - /* 8 */ " -t, --table Guarda la tabla de objetos como \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", - /* 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", - /* 23 */ "edivc: Salida con errores\n", - /* 24 */ "edivc: ERROR: Memoria insuficiente\n", - /* 25 */ "%s:%d:%d: ERROR %d: ", - /* 26 */ "%s:%d: Advertencia: ", - /* 27 */ "Precompilando...\n", - /* 28 */ "Compilando...\n", - /* 29 */ "Error creando archivo de intercambio\n", - /* 30 */ "Generando listados...\n", - /* 31 */ "Guardando ejecutable...\n", - /* 32 */ "Guardando información de depurado...\n", - /* 33 */ "Error escribiendo ejecutable\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", - /* 38 */ "\tbloque(%u), anterior(%u)\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", - #ifdef _WIN32 - /* 43 */ "No se encuentra ninguna DLL\n", - /* 44 */ "", - #else - /* 43 */ "No se encuentra ninguna librería\n", - /* 44 */ "Directorio %s/ no encontrado\n", - #endif - /* 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", - #endif - /* 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" - }; - return msg[id_cadena]; - } +#define TRANSLATE TRANSLATE_COMPILER +#include "language_aux.h" - case 1: /* italiano */ - { - static char* msg[] = { - /* 0 */ " **** Compilatore eDIV " VERSION " ****\nCopyleft (c) 2000-2003 Sion, Ltd.\nhttp://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", - /* 5 */ " -h, --help Mostra questa guida ed esce\n", - /* 6 */ " -d, --debug Genera informazioni addizionali di depurazione\n", - /* 7 */ " -l, --list Salva il listato EML come \n", - /* 8 */ " -t, --table Salva la tabella oggetti come \n", - /* 9 */ " -c, --check Non genera l'eseguibile (per comprovare sintassi, etc.)\n", - /* 10 */ " -s, --system Sistema Operativo di destinazione (per difetto %s)\n", - /* 11 */ " -v, --version Mostra la versione ed esce\n\n", - /* 12 */ "Parametro --system: deve indicare il sistema di destinazione\nConsulta la documentazione per ottenere aiuto\n", - /* 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", - /* 17 */ "edivc: Errore aprendo l'archivio %s.\n", - /* 18 */ "edivc: Compilando: %s\n", - /* 19 */ "edivc: ERRORE: Non si incontra %s\n", - /* 20 */ "edivc: ERRORE: Formato incorretto di %s\n", - /* 21 */ "edivc: Interrotto (%d avvertenze)\n", - /* 22 */ "edivc: Completato con successo (%d avvertenze)\n", - /* 23 */ "edivc: Uscita con errori\n", - /* 24 */ "edivc: ERRORE: Memoria insufficiente\n", - /* 25 */ "%s:%d:%d: ERRORE %d: ", - /* 26 */ "%s:%d: Avvertenza: ", - /* 27 */ "Precompilando...\n", - /* 28 */ "Compilando...\n", - /* 29 */ "Errore creando l'archivio d'intercambio\n", - /* 30 */ "Generando listati...\n", - /* 31 */ "Salvando eseguibile...\n", - /* 32 */ "Salvando informazioni di depurazione...\n", - /* 33 */ "Errore scrivendo l'eseguibile\n", - /* 34 */ "Compilazione completata.\n", - /* 35 */ "%s: ERRORE: ", - /* 36 */ "Errore creando l'archivio %s\n", - /* 37 */ "Listato oggetti di %s - eDIV versione " VERSION "\n\n", - /* 38 */ "\tblocco(%u), precedente(%u)\n", - /* 39 */ "Codice EML di %s - eDIV versione " VERSION "\n", - /* 40 */ "edivc: ERRORE: %s\n\n", - /* 41 */ "edivc: %s (linea %d) ERRORE: %s\n\n", - /* 42 */ "edivc: Interrotto - Sono stati trovati errori\n", - #ifdef _WIN32 - /* 43 */ "Non si trova nessuna DLL\n", - /* 44 */ "", - #else - /* 43 */ "Non si trova nenssuna libreria\n", - /* 44 */ "Percorso %s/ non trovato\n", - #endif - /* 45 */ "Errore nel caricare la libreria %s\n", - #ifdef _WIN32 - /* 46 */ "Non posso caricare %s\n", - /* 47 */ "Non si trova ExportaFuncs in %s - DLL non valida\n", - #else - /* 46 */ "Non posso caricare %s (%s)\n", - /* 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" - }; - return msg[id_cadena]; - } - - case 2: /* portugués */ - { - static char* msg[] = { - /* 0 */ " **** Compilador eDIV " VERSION " ****\nCopyleft (c) 2000-2003 Sion, Ltd.\nhttp://ediv.divsite.net\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", - /* 7 */ " -l, --list Guarda o listado EML como \n", - /* 8 */ " -t, --table Guarda a tabela de objectos como \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", - /* 17 */ "edivc: Erro ao abrir arquivo %s.\n", - /* 18 */ "edivc: Compilando: %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", - /* 25 */ "%s:%d:%d: ERROR %d: ", - /* 26 */ "%s:%d: Advertencia: ", - /* 27 */ "Precompilando...\n", - /* 28 */ "Compilando...\n", - /* 29 */ "Erro ao criar arquivo de intercambio\n", - /* 30 */ "Generando listados...\n", - /* 31 */ "Guardando executavel...\n", - /* 32 */ "Guardando informação de depuração...\n", - /* 33 */ "Erro ao escrever executavel\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", - /* 38 */ "\tbloco(%u), anterior(%u)\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", - /* 44 */ "", - #else - /* 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", - #else - /* 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", - /* 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" - }; - return msg[id_cadena]; - } - - case 3: /* inglés */ - { - static char* msg[] = { - /* 0 */ " **** eDIV Compiler " VERSION " ****\nCopyleft (c) 2000-2003Sion, Ltd.\nhttp://ediv.divsite.net\n", - /* 1 */ "WARNING: This version of eDIV is unfinished.\nPlease report any bug to: ediv@divsite.net\n", - /* 2 */ "Command line help:\n\n", - /* 3 */ "%s [options] file.prg [executable]\n\n", - /* 4 */ "Options list:\n", - /* 5 */ " -h, --help Shows this help and exits\n", - /* 6 */ " -d, --debug Generates additional debug information\n", - /* 7 */ " -l, --list Saves the EML listing as \n", - /* 8 */ " -t, --table Saves the object table as \n", - /* 9 */ " -c, --check Doesn't create an executable (for syntax checking, etc)\n", - /* 10 */ " -s, --system Target Operating System (by default %s)\n", - /* 11 */ " -v, --version Shows program version and exits\n\n", - /* 12 */ "Parameter --system: you must indicate a target system\nConsult the documentation in order to obtain help\n", - /* 13 */ "Erroneous parameter: %s\nUse -h command-line option to view the help screen\n", - /* 14 */ "Parameter -s: you must indicate a target system\nConsult the documentation in order to obtain help\n", - /* 15 */ "Erroneous parameter: -%c\nUse -h command-line option to view the help screen\n", - /* 16 */ "You didn't specified an input file\nUse -h command-line option to view the help screen\n", - /* 17 */ "edivc: Error opening file %s.\n", - /* 18 */ "edivc: Compiling: %s\n", - /* 19 */ "edivc: ERROR: File %s not found\n", - /* 20 */ "edivc: ERROR: Incorrect file format of %s\n", - /* 21 */ "edivc: Break (%d warnings)\n", - /* 22 */ "edivc: Finished succesfully (%d warnings)\n", - /* 23 */ "edivc: Exit with errors\n", - /* 24 */ "edivc: ERROR: Out of memory\n", - /* 25 */ "%s:%d:%d: ERROR %d: ", - /* 26 */ "%s:%d: Warning: ", - /* 27 */ "Precompiling...\n", - /* 28 */ "Compiling...\n", - /* 29 */ "Error creating swap file\n", - /* 30 */ "Generating listings...\n", - /* 31 */ "Writing executable...\n", - /* 32 */ "Writing debug information...\n", - /* 33 */ "Error writing executable\n", - /* 34 */ "Compilation finished.\n", - /* 35 */ "%s: ERROR: ", - /* 36 */ "Error creating file %s\n", - /* 37 */ "Object listing of %s - eDIV version " VERSION "\n\n", - /* 38 */ "\tblock(%u), previous(%u)\n", - /* 39 */ "EML code of %s - eDIV version " VERSION "\n", - /* 40 */ "edivc: ERROR: %s\n\n", - /* 41 */ "edivc: %s (line %d) ERROR: %s\n\n", - /* 42 */ "edivc: Break - errors found\n", - #ifdef _WIN32 - /* 43 */ "No DLL's found\n", - /* 44 */ "", - #else - /* 43 */ "No libraries found\n", - /* 44 */ "Directoriy %s/ not found\n", - #endif - /* 45 */ "Error loading library %s\n", - #ifdef _WIN32 - /* 46 */ "Can't load %s\n", - /* 47 */ "ExportaFuncs not found in %s - DLL not valid\n", - #else - /* 46 */ "Can't load %s (%s)\n", - /* 47 */ "ExportaFuncs not found in %s - Library not valid (%s)\n", - #endif - /* 48 */ " -n, --news Shows last news from eDivCentral.com and exits\n", - /* 49 */ "Error: news server is not set up in ediv.cfg\n", - /* 50 */ "Error: received file if of an unexpected format\n" - }; - return msg[id_cadena]; - } - - case 4: /* catalán */ - { - static char* msg[] = { - /* 0 */ " **** Compilador eDIV " VERSION " ****\nCopyleft (c) 2000-2003 Sion, Ltd.\nhttp://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", - /* 7 */ " -l, --list Guarda el llistat EML com a \n", - /* 8 */ " -t, --table Guarda la tabla d' objectes com a \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", - /* 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", - /* 23 */ "edivc: Sortida amb errors\n", - /* 24 */ "edivc: ERROR: Memòria insuficient\n", - /* 25 */ "%s:%d:%d: ERROR %d: ", - /* 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", - /* 33 */ "Error escriguent executable\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", - /* 38 */ "\tbloque(%u), anterior(%u)\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", - /* 42 */ "edivc: Interromput - s' han trobat errors\n", - #ifdef _WIN32 - /* 43 */ "No es troba cap DLL\n", - /* 44 */ "", - #else - /* 43 */ "No es troba cap llibreria\n", - /* 44 */ "Directori %s/ no trobat\n", - #endif - /* 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", - #else - /* 46 */ "No es pot cargar %s (%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" - }; - return msg[id_cadena]; - } - case 5: /* euskera */ - { - static char* msg[] = { - /* 0 */ " **** eDIV konpiladorea " VERSION " ****\nCopyleft (c) 2000-2003 Sion, Ltd.\nhttp://ediv.divsite.net\n", - /* 1 */ "KONTUZ: eDIV bertsio hau ez dago bukaturik.\nMesedez eman berri edozein akatzi buruz helbide honetan: ediv@divsite.net\n", - /* 2 */ "Komandoei buruzko laguntza:\n\n", - /* 3 */ "%s [aukerak] archivo.prg [exekutagarria]\n\n", - /* 4 */ "Aukeren zerrenda:\n", - /* 5 */ " -h, --help Laguntza hau erakuste du eta irteten da\n", - /* 6 */ " -d, --debug Depurazioari buruzko gehigarrizko informazioa erakusten du\n", - /* 7 */ " -l, --list EML listatua moduan grabatzen du\n", - /* 8 */ " -t, --table Objektuen taula moduan grabatzen du\n", - /* 9 */ " -c, --check Ez du exekutagarririk egiten (sintaxia zihurtatzeko eta abar.)\n", - /* 10 */ " -s, --system Helburuko sistema eragilea (balio lehentsia %s)\n", - /* 11 */ " -v, --version Bertsioa erakusten du eta irteten da\n\n", - /* 12 */ "--system parametroa: sistema bat adierazi behar duzu\nkontsultatu dokumentazioa laguntza jasotzeko\n", - /* 13 */ "Okerreko parametroa: %s\nerabili -h aukera laguntza jasotzeko\n", - /* 14 */ "-s parametroa: sistema bat adierazi behar duzu\nkontsultatu dokumentazioa laguntza jasotzeko\n", - /* 15 */ "Okerreko parametroa: %s\nerabili -h aukera laguntza jasotzeko\n", - /* 16 */ "Ez duzu fitxategi bat adierazi\nErabili -h aukera laguntza jasotzeko\n", - /* 17 */ "edivc: Akatz bat sortu da %s fitxategia irekitzerakoan.\n", - /* 18 */ "edivc: Konpilatzen: %s\n", - /* 19 */ "edivc: AKATZA: Ezin da %s aurkitu\n", - /* 20 */ "edivc: AKATZA: %s-ko okerreko formatua\n", - /* 21 */ "edivc: Gelditurki (%d abisu)\n", - /* 22 */ "edivc: Ondo bukatuta (%d abisu)\n", - /* 23 */ "edivc: Akaztuneko irteera\n", - /* 24 */ "edivc: AKATZA: Ez dago behar beste memoria\n", - /* 25 */ "%s:%d:%d: AKATZA %d: ", - /* 26 */ "%s:%d: Abisua: ", - /* 27 */ "Prekonpilatzen...\n", - /* 28 */ "Konpilatzen...\n", - /* 29 */ "Akatz bat sortu da memoria virtualeko fitxategia sortzerakoan\n", - /* 30 */ "Listatuak sortzen...\n", - /* 31 */ "Exekutagarria sortzen...\n", - /* 32 */ "Depurazio informazioa grabatzen...\n", - /* 33 */ "Akatz bar sortu da exekutagarria sortzerakoan\n", - /* 34 */ "Konpilazioa bukaturik.\n", - /* 35 */ "%s: AKATZA: ", - /* 36 */ "Akatz bar sortu da %s fitxategia sortzerakoan\n", - /* 37 */ "%s-ren objektu zerrenda - eDIV bertsio " VERSION "\n\n", - /* 38 */ "\tbloque(%u), anterior(%u)\n", - /* 39 */ "%s-ko EML kodea - eDIV bertsio " VERSION "\n", - /* 40 */ "edivc: ERROR: %s\n\n", - /* 41 */ "edivc: %s (%d lerro) AKATZA: %s\n\n", - /* 42 */ "edivc: Gelditurik - akatzak aurkitu izan dira\n", - #ifdef _WIN32 - /* 43 */ "Ezin da DLL-rik aurkitu\n", - /* 44 */ "", - #else - /* 43 */ "Ezin da liburutegirik aurkitu\n", - /* 44 */ "Ezin da %s/ direktorioa aurkitu\n", - #endif - /* 45 */ "Akatz bat sortu da %s liburutegia kargatzerakoan\n", - #ifdef _WIN32 - /* 46 */ "Ezin dut %s kargatu\n", - /* 47 */ "%s-en ez da ExportaFuncs aurkitzen - Okerreko DLL\n", - #else - /* 46 */ "Ezin da %s (%s) kargatu\n", - /* 47 */ "%s-en ez da ExportaFuncs aurkitzen - Okerreko DLL\n", - #endif - /* 48 */ " -n, --news eDivCentral.com-eko asken berriak erakusten du eta irteten da\n", - /* 49 */ "Akatza: ez da berri zerbitzaririk prestatu ediv.cfg fitxategian\n", - /* 50 */ "Akatza: jasotako fitxategia ez da itxarotako motakoa\n" - }; - return msg[id_cadena]; - } - } - return ""; + }; + return e[idioma][num]; } diff --git a/ediv/src/ediv/ltlex.c b/ediv/src/ediv/ltlex.c index a8ba909..1abfb5a 100644 --- a/ediv/src/ediv/ltlex.c +++ b/ediv/src/ediv/ltlex.c @@ -120,9 +120,13 @@ void analiza_ltlex(void){ lex_case[*buf]=(struct lex_ele*)l_lit; } else { /* Analiza un nuevo símbolo */ if ((e=lex_case[*buf])==0) { - if (num_nodos++==max_nodos) ltlex_error(3); - e=lex_case[*buf]=ilex_simb++; (*e).caracter=*buf++; - } else buf++; + if (num_nodos++==max_nodos) + ltlex_error(3); + e=lex_case[*buf]=ilex_simb++; + (*e).caracter=*buf++; + } + else + buf++; while (*buf!=' ' && *buf!=tab && *buf!=cr) { if (lower[*buf]) ltlex_error(4); if ((*e).siguiente==0) @@ -136,8 +140,10 @@ void analiza_ltlex(void){ if (num_nodos++==max_nodos) ltlex_error(3); else e=(*e).alternativa=ilex_simb++; } - } (*e).caracter=*buf++; - } (*e).token=t; + } + (*e).caracter=*buf++; + } + (*e).token=t; } break; }} while (cont); diff --git a/ediv/src/ediv/parser.c b/ediv/src/ediv/parser.c index 2c8f372..dfa505b 100644 --- a/ediv/src/ediv/parser.c +++ b/ediv/src/ediv/parser.c @@ -451,7 +451,7 @@ void sintactico(void) final_sentencia(); // - // Import (DESFASADO), se ignora + // Import (OBSOLETO), se ignora // // {p_import p_lit {;}} // diff --git a/ediv/src/shared/language.h b/ediv/src/shared/language.h index 388eb72..72ba5d2 100644 --- a/ediv/src/shared/language.h +++ b/ediv/src/shared/language.h @@ -35,11 +35,25 @@ #define DEFAULT_LANGUAGE 3 +#ifdef TRANSLATE +#undef TRANSLATE +#endif + +#define TRANSLATE_ERROR 1 +#define TRANSLATE_WARNING 2 +#define TRANSLATE_DLL_ERROR 3 +#define TRANSLATE_LTLEX_ERROR 4 +#define TRANSLATE_COMPILER 5 +#define TRANSLATE_STUB 6 +#define TRANSLATE_RUNTIME_ERROR 7 +#define TRANSLATE_CRITICAL_ERROR 8 + + int idioma; /* comunes */ int detecta_idioma(); -char* translate(int id_cadena); +char* translate(int num); char* translate_dll_error(int num); /* compilador */ diff --git a/ediv/src/shared/shared.h b/ediv/src/shared/shared.h index e3969ea..9e5de51 100644 --- a/ediv/src/shared/shared.h +++ b/ediv/src/shared/shared.h @@ -25,7 +25,7 @@ #ifndef __EDIV_SHARED_H_ #define __EDIV_SHARED_H_ -#define VERSION "0.1.3 (Betelgeuse)" /* Version y codename */ +#define VERSION "0.1.3b (Rigel)" /* Version y codename */ #define la_clave "81ab50e9c20d" /* Clave de cifrado */ #define uchar char diff --git a/ediv/src/stub/inte.c b/ediv/src/stub/inte.c index 6317cba..2e1d028 100644 --- a/ediv/src/stub/inte.c +++ b/ediv/src/stub/inte.c @@ -363,7 +363,8 @@ int proceso( int num, int padre ) 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 + if(procs_s[num_proc].id>imem_max-iloc_len) + 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) { diff --git a/ediv/src/stub/language.c b/ediv/src/stub/language.c index c617188..a35ebc1 100644 --- a/ediv/src/stub/language.c +++ b/ediv/src/stub/language.c @@ -87,53 +87,8 @@ char* translate(int id_cadena) { static char *msg[NUM_LANGUAGES][5]= { - /* 0 - ESPAÑOL */ - - /* 0 */ "ERROR %d: ", - /* 1 */ "eDIV: Error en ejecución", - /* 2 */ "eDIV: Error crítico", - /* 3 */ "Error en %s: ", - /* 4 */ "eDIV: Error en librería dinámica", - - /* 1 - ITALIANO */ - - /* 0 */ "ERRORE %d: ", - /* 1 */ "eDIV: Errore in esecuzione", - /* 2 */ "eDIV: Errore critico", - /* 3 */ "Errore in %s: ", - /* 4 */ "eDIV: Errore in libreria dinamica", - - /* 2 - PORTUGUÉS (FIXMI: traducir) */ - - /* 0 */ "ERROR %d: ", - /* 1 */ "eDIV: Error en ejecución", - /* 2 */ "eDIV: Error crítico", - /* 3 */ "Error en %s: ", - /* 4 */ "eDIV: Error en librería dinámica", - - /* 3 - INGLÉS */ - - /* 0 */ "ERROR %d: ", - /* 1 */ "eDIV: Run-time error", - /* 2 */ "eDIV: Critical error", - /* 3 */ "Error in %s: ", - /* 4 */ "eDIV: Error in dynamic library", - - /* 4 - CATALÁN (FIXMI: traducir) */ - - /* 0 */ "ERROR %d: ", - /* 1 */ "eDIV: Error en ejecución", - /* 2 */ "eDIV: Error crítico", - /* 3 */ "Error en %s: ", - /* 4 */ "eDIV: Error en librería dinámica", - - /* 5 - EUSKERA (FIXMI: traducir) */ - - /* 0 */ "ERROR %d: ", - /* 1 */ "eDIV: Error en ejecución", - /* 2 */ "eDIV: Error crítico", - /* 3 */ "Error en %s: ", - /* 4 */ "eDIV: Error en librería dinámica" +#define TRANSLATE TRANSLATE_STUB +#include "language_aux.h" }; return msg[idioma][id_cadena]; @@ -149,629 +104,8 @@ char* translate_runtime_error(int num) { static char *e[NUM_LANGUAGES][101]= { - /* 0 - ESPAÑOL */ - - /* 100 */ "No hay memoria suficiente para ejecutar el programa.", - /* 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.", - /* 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.", - /* 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.", - /* 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.", - /* 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.", - /* 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.", - /* 140 */ "Acceso fuera de rango.", - /* 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.", - /* 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.", - /* 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.", - /* 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.", - /* 168 */ "Demasiados errores ignorados.", - /* 169 */ "Demasiados archivos abiertos.", - /* 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.", - /* 174 */ "Porcentaje de tinta fuera de rango (0..15).", - /* 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.", - /* 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.", - /* 184 */ "", - /* 185 */ "", - /* 186 */ "", - /* 187 */ "", - /* 188 */ "", - /* 189 */ "", - /* 190 */ "", - /* 191 */ "", - /* 192 */ "", - /* 193 */ "", - /* 194 */ "", - /* 195 */ "", - /* 196 */ "", - /* 197 */ "", - /* 198 */ "", - /* 199 */ "", - /* 200 */ "Archivo con datos corrompidos, no se pudo cargar.", - - /* 1 - ITALIANO */ - - /* 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.", - /* 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.", - /* 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.", - /* 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.", - /* 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.", - /* 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.", - /* 134 */ "Numero di bottone incorretto (deve essere tra 0 e 3).", - /* 135 */ "Numero di asse incorretto (deve essere tra 0 e 3).", - /* 136 */ "Direzione della tabella di paletta fuori della memoria.", - /* 137 */ "Non si possono comprovare regioni in grafici di m-7.", - /* 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.", - /* 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.", - /* 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.", - /* 151 */ "Grandezza di casella invalida (deve essere tra 1 e 256).", - /* 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.", - /* 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.", - /* 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.", - /* 168 */ "Troppi errori ignorati.", - /* 169 */ "Troppi archivi aperti.", - /* 170 */ "Identificatore archivio (handle) non valido.", - /* 171 */ "Valore fuori rango.", - /* 172 */ "Troppi oggetti grafici visualizzati.", - /* 173 */ "Tipo di oggetto grafico sconosciuto.", - /* 174 */ "Percentuale d'inchiostro fuori rango (0..15).", - /* 175 */ "Numero di oggetto grafico non valido.", - /* 176 */ "Errore variabile mode 8: Textura di mappa [a] non trovata in file [b]." - /* 177 */ "Textura di mappa.", - /* 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.", - /* 184 */ "", - /* 185 */ "", - /* 186 */ "", - /* 187 */ "", - /* 188 */ "", - /* 189 */ "", - /* 190 */ "", - /* 191 */ "", - /* 192 */ "", - /* 193 */ "", - /* 194 */ "", - /* 195 */ "", - /* 196 */ "", - /* 197 */ "", - /* 198 */ "", - /* 199 */ "", - /* 200 */ "Archivio con dati corrotti, non si è potuto caricare.", - - /* 2 - PORTUGUÉS (FIXMI: traducir) */ - - /* 100 */ "No hay memoria suficiente para ejecutar el programa.", - /* 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.", - /* 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.", - /* 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.", - /* 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.", - /* 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.", - /* 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.", - /* 140 */ "Acceso fuera de rango.", - /* 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.", - /* 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.", - /* 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.", - /* 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.", - /* 168 */ "Demasiados errores ignorados.", - /* 169 */ "Demasiados archivos abiertos.", - /* 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.", - /* 174 */ "Porcentaje de tinta fuera de rango (0..15).", - /* 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.", - /* 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.", - /* 184 */ "", - /* 185 */ "", - /* 186 */ "", - /* 187 */ "", - /* 188 */ "", - /* 189 */ "", - /* 190 */ "", - /* 191 */ "", - /* 192 */ "", - /* 193 */ "", - /* 194 */ "", - /* 195 */ "", - /* 196 */ "", - /* 197 */ "", - /* 198 */ "", - /* 199 */ "", - /* 200 */ "Archivo con datos corrompidos, no se pudo cargar.", - - /* 3 - INGLÉS - Gracias a los chicos de FastTrak ;) */ - - /* 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.", - /* 103 */ "A not valid archive of palette was loaded.", - /* 104 */ "Too many files FPG opened at the same time.", - /* 105 */ "The file was not loaded, archive not found.", - /* 106 */ "A not valid FPG file was loaded.", - /* 107 */ "Not valid number of scroll (must be between 0 and 9).", - /* 108 */ "Not valid number of region (out of rank).", - /* 109 */ "Not valid code of file.", - /* 110 */ "Not valid code of graphic.", - /* 111 */ "A file FPG was used before load it.", - /* 112 */ "A code of graphic is needed for the scroll.", - /* 113 */ "Too many letter font have been loaded.", - /* 114 */ "The font can't be loaded, archive not found.", - /* 115 */ "A not valid archive of font was loaded.", - /* 116 */ "Not valid identifier code of letter fonts.", - /* 117 */ "Not valid text's code of centrate.", - /* 118 */ "Too many active texts in the program.", - /* 119 */ "Not valid text identifier.", - /* 120 */ "Region of screen defined incorrectly.", - /* 121 */ "A nonexistent graphic was used.", - /* 122 */ "A block out of memory was written.", - /* 123 */ "An archive of writeness can't be opened.", - /* 124 */ "The archive can't be written (see space in disk).", - /* 125 */ "The block out of the memory was readen.", - /* 126 */ "The readness archive can't be opened.", - /* 127 */ "The archive can't be readen.", - /* 128 */ "The sound effect can't be loaded.", - /* 129 */ "The asked sound effect can't be played.", - /* 130 */ "The asked animation can't be started.", - /* 131 */ "Not valid number of mode 7 (must be between 0 and 9).", - /* 132 */ "The code of graphic for mode 7 is needed.", - /* 133 */ "Not valid checkpoint number.", - /* 134 */ "Incorrect botton number (must be between 0 and 3).", - /* 135 */ "Incorrect axis number (must be between 0 and 3).", - /* 136 */ "Adress of palette board out of the memory.", - /* 137 */ "Regions in graphics of m-7 can't be checked.", - /* 138 */ "Incorrect code of graphic information.", - /* 139 */ "Collisions in graphics of m-7 can't be checked.", - /* 140 */ "Access out of rank.", - /* 141 */ "A not valid process was accessed.", - /* 142 */ "The process seems to be blocked, waiting FRAME.", - /* 143 */ "The map can't be loaded, archive not found.", - /* 144 */ "A not valid archive of map was loaded.", - /* 145 */ "A division by zero was made.", - /* 146 */ "The size of the region is incorrect.", - /* 147 */ "Can't be loaded FLI/FLC, archive not found.", - /* 148 */ "Incorrect value of timeout (must be between 1 and 60).", - /* 149 */ "Incorrect number of players (must be between 2 and 8).", - /* 150 */ "Only global data can be send.", - /* 151 */ "Not valid size of square (must be between 1 and 256).", - /* 152 */ "Not valid map of search (from 1x1 to 128x128).", - /* 153 */ "Incorrect size of map (from 1x1 to 32768x32768).", - /* 154 */ "Incorrect number of color (must be between 0 and 255).", - /* 155 */ "The center is outside of the graphic's limits.", - /* 156 */ "The object is outside of the map and will be eliminated.", - /* 157 */ "Texture of the map not found.", - /* 158 */ "The size of the texture is incorrect.", - /* 159 */ "The world can't be loaded, archive not found.", - /* 160 */ "The world can't be loaded, archive not valid.", - /* 161 */ "Not valid flag number.", - /* 162 */ "Not valid dispositive (only 1-IPX,2-SERIAL,3-MODEM).", - /* 163 */ "Not valid size of box (only from 1 to 199).", - /* 164 */ "The string of destination text is not valid.", - /* 165 */ "A wrong cursor has been accessed.", - /* 166 */ "The mode of access to the archive is not valid.", - /* 167 */ "The module can't be loaded.", - /* 168 */ "Too many ignored errors.", - /* 169 */ "Too many open archives.", - /* 170 */ "Identifier of archive (handle) not valid.", - /* 171 */ "Value out of rank.", - /* 172 */ "Too many graphic objects visualizated.", - /* 173 */ "Type of graphic object unknown.", - /* 174 */ "Percentage of ink out of rank (0..15).", - /* 175 */ "Number of graphic object not valid.", - /* 176 */ "Variable error of vpe: Texture of map [a] not found in the file [b]", - /* 177 */ "Texture of map", - /* 178 */ "Doesn't found in file", - /* 179 */ "Too many petitions of dynamic memory has been made.", - /* 180 */ "The cursor doesn't relate with any of the reserved blocks.", - /* 181 */ "No blocks of less than one position can be reserved.", - /* 182 */ "A block out of memory was (des)encript.", - /* 183 */ "Can't be loaded another palette when the current one is forced.", - /* 184 */ "", - /* 185 */ "", - /* 186 */ "", - /* 187 */ "", - /* 188 */ "", - /* 189 */ "", - /* 190 */ "", - /* 191 */ "", - /* 192 */ "", - /* 193 */ "", - /* 194 */ "", - /* 195 */ "", - /* 196 */ "", - /* 197 */ "", - /* 198 */ "", - /* 199 */ "", - /* 200 */ "Archive with corrupted data, can't be loaded.", - - /* 4 - CATALÁN */ - - /* 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.", - /* 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.", - /* 111 */ "Es va intentar usar un arxiu FPG abans de carregar-lo.", - /* 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.", - /* 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.", - /* 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.", - /* 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.", - /* 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.", - /* 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).", - /* 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.", - /* 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.", - /* 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.", - /* 168 */ "Massa errors ignorats.", - /* 169 */ "Massa arxius oberts.", - /* 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.", - /* 174 */ "Percentatge de tinta fora de rang (0..15).", - /* 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.", - /* 184 */ "", - /* 185 */ "", - /* 186 */ "", - /* 187 */ "", - /* 188 */ "", - /* 189 */ "", - /* 190 */ "", - /* 191 */ "", - /* 192 */ "", - /* 193 */ "", - /* 194 */ "", - /* 195 */ "", - /* 196 */ "", - /* 197 */ "", - /* 198 */ "", - /* 199 */ "", - /* 200 */ "Arxiu amb dades corrompudes, no es va poder carregar.", - - /* 5 - EUSKERA */ - - /* 100 */ "Ez dago behar beste memoria programa egikaritzeko.", - /* 101 */ "Key() deitu duzu existitzen ez den tekla kode batekin.", - /* 102 */ "Ezin da paleta kargatu, ez bait da fitxategia aurkitu.", - /* 103 */ "Okerreko paleta fitxategi bat kargatzen saiatu zara.", - /* 104 */ "FPG fitxategi gehiegi aldi berean kargaturik.", - /* 105 */ "Ezin da fitxategia kargatu, ez bait da aurkitzen.", - /* 106 */ "Okerreko FPG fitxategi bat kargatzen saiatu zara.", - /* 107 */ "Okerreko scroll zenbakia (0 eta 9 artean egon behar du).", - /* 108 */ "Okerreko erregio zenbakia (Barrutiaren kanpo dago).", - /* 109 */ "Okerreko fitxategi zenbakia.", - /* 110 */ "Okerreko irudi zenbakia.", - /* 111 */ "FPG fitxategi bat erabiltzen saiatu zara kargatu baino lehen.", - /* 112 */ "Irudi kode bat behar da scroll-arentzat.", - /* 113 */ "Letra-tipo gehiegi kargatu dira.", - /* 114 */ "Ezin da letra-tipoa kargatu, ez bait da aurkitzen.", - /* 115 */ "Okerreko letra-tipoa kargatzen saiatu zara.", - /* 116 */ "Okerreko letra-tipo kode identifidorea.", - /* 117 */ "Okerreko testua zentratzeko kodea.", - /* 118 */ "Testu gehiegi aktibaturik programan.", - /* 119 */ "Okerreko testu identifikadorea.", - /* 120 */ "Pantaila erregio txarto mugatua.", - /* 121 */ "Existitzen ez den irudi bat erabiltzen saiatu zara.", - /* 122 */ "Multzo bat memoriaz kanpo idazten saiatu zara.", - /* 123 */ "Ezin izan da fitxategia idazteko ireki.", - /* 124 */ "Ezin izan da fitxategia idatzi (begiratu diskoan dagoen lekuari).", - /* 125 */ "Multzo bat memoriaz kanpotik irakurtzen saiatu zara.", - /* 126 */ "Ezin izan da fitxategia irakurtzeko ireki.", - /* 127 */ "Ezin izan da fitxategia irakurri.", - /* 128 */ "Ezin izan da soinu efektua kargatu.", - /* 129 */ "Ezin izan da aukeratutako soinu efektua jo.", - /* 130 */ "Ezin izan da aukeratutako animazioa iniziatu.", - /* 131 */ "Okerreko 7 modu zenbakia (0 eta 9 artean egon behar du).", - /* 132 */ "Irudi kode bat behar da 7 moduarentzat.", - /* 133 */ "Okerreko kotroleko puntua.", - /* 134 */ "Okerreko botoi zenbakia (0 eta 3 artean egon behar du).", - /* 135 */ "Okerreko ardatz zenbakia (0 eta 3 artean egon behar du).", - /* 136 */ "Paletaren taularen helbidea memoriaz kanpo dago.", - /* 137 */ "7 moduan ezin da irudi erregiorik egiaztatu.", - /* 138 */ "Okerreko irudi informazio kodea.", - /* 139 */ "7 moduan ezin da irudien arteko talkarik egiaztatu.", - /* 140 */ "Barrutiaren kanpoko atzipena.", - /* 141 */ "Okerreko prozesu bat atziten saiatu zara.", - /* 142 */ "Prozesuak blokeaturik dirudi, FRAME-aren zai.", - /* 143 */ "Ezin izan da mapa kargatu, ez bait da aurkitzen.", - /* 144 */ "Okerreko mapa fitxategi bat kargatzen saiatu zara.", - /* 145 */ "Zeroz zatitzen saiatu zara.", - /* 146 */ "Okerreko erregio neurria.", - /* 147 */ "Ezin da FLI/FLC fitxategia kargatu, ez bait da aurkitzen.", - /* 148 */ "Okerreko timeout zenbakia (1 eta 60 artean egon behar du).", - /* 149 */ "Okerreko jokalari zenbaia (2 eta 8 artean egon behar du).", - /* 150 */ "Datu orrokorrak bakarrik bidali daitezke.", - /* 151 */ "Okerreko lauki neurria (1 eta 256 artean egon behar du).", - /* 152 */ "Okerreko bilaketa mapa zenbakia (1x1 eta 128x128 artean egon behar du).", - /* 153 */ "Okerreko mapa neurria (1x1 eta 32768x32768 artean egon behar du).", - /* 154 */ "Okerreko kolore zenbakia (0 eta 255 artean egon behar du).", - /* 155 */ "Erdia iruditik kanpo dago.", - /* 156 */ "Objektua mapatik kanpo dago eta ezabaturik izango da.", - /* 157 */ "Ezin da aurkitu maparen egitura.", - /* 158 */ "Egituraren neurria okerrekoa da.", - /* 159 */ "Ezin izan da mundua kargatu, ez bait da aurkitzen.", - /* 160 */ "Ezin izan da mundua kargatu, okerreko fitxategia da.", - /* 161 */ "Okerreko bandera zenbakia.", - /* 162 */ "Okerreko dispositiboa (1-IPX,2-SERIAL edo 3-MODEM soilik).", - /* 163 */ "Okerreko pakete neurria (1 eta 199 artean egon behar du).", - /* 164 */ "Okerreko helburuko testua.", - /* 165 */ "Balio gabeko erakusle bat atziten saiatu zara.", - /* 166 */ "Okerreko fitxategi atzipen modua.", - /* 167 */ "Ezin izan da modulua kargatu.", - /* 168 */ "Alde batera utzitako akatz gehiegi.", - /* 169 */ "Irekitako fitxategi gehiegi.", - /* 170 */ "Okerreko fitxategi identifikadorea (handle).", - /* 171 */ "Barrutiaren kanpoko datua.", - /* 172 */ "Erakutsitako irudi objektu gehiegi.", - /* 173 */ "Irudi objektu mota ezesaguna.", - /* 174 */ "Barrutiaren kanpoko tinta porzentaia (0..15).", - /* 175 */ "Okerreko irudi objektu zenbakia.", - /* 176 */ "Vpe akatz aldakorra: ezin da [a] maparen egitura [b] fitxategian aurkitu.", - /* 177 */ "Maparen egitura.", - /* 178 */ "ezin da fitxategian aurkitu.", - /* 179 */ "Memoria dinamiko gehiegi eskatu da.", - /* 180 */ "Erakuslea ez dator bat erreserbaturiko multzo bakar batekin.", - /* 181 */ "Ezin da posizio bat baino gutxiko multzorik erreserbatu.", - /* 182 */ "Memoriarik gabeko multzo bat (des)enkriptatzen saiatu zara.", - /* 183 */ "Ezin da beste paleta bat kargatu oraingokoa derrigorturik dagoenean.", - /* 184 */ "", - /* 185 */ "", - /* 186 */ "", - /* 187 */ "", - /* 188 */ "", - /* 189 */ "", - /* 190 */ "", - /* 191 */ "", - /* 192 */ "", - /* 193 */ "", - /* 194 */ "", - /* 195 */ "", - /* 196 */ "", - /* 197 */ "", - /* 198 */ "", - /* 199 */ "", - /* 200 */ "Hondaturiko fitxategia, ezin da kargatu." +#define TRANSLATE TRANSLATE_RUNTIME_ERROR +#include "language_aux.h" }; @@ -784,83 +118,9 @@ char* translate_critical_error(int num) { static char *e[NUM_LANGUAGES][10] = { - /* 0 - ESPAÑOL */ +#define TRANSLATE TRANSLATE_CRITICAL_ERROR +#include "language_aux.h" - /* 0 */ "", - /* 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", - /* 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", - - /* 1 - ITALIANO */ - - /* 0 */ "", - /* 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", - /* 5 */ "Libreria non trovata: %s", - /* 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", - - /* 2 - PORTUGUÉS (FIXMI: traducir) */ - - /* 0 */ "", - /* 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", - /* 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", // TODO - - /* 3 - INGLÉS */ - - /* 0 */ "", - /* 1 */ "Error reading program bytecode", - /* 2 */ "Erroneous bytecode format", - /* 3 */ "Process type redefinition", - /* 4 */ "Can't allocate stack memory", - /* 5 */ "Library not found: %s", - /* 6 */ "%s is not a valid eDIV library", - /* 7 */ "Cannot initialize SDL", - /* 8 */ "Too many processes in execution", - /* 9 */ "This program requires SDL version %d.%d.%d\nSDL version detected in this system: %d.%d.%d", - - /* 4 - CATALÁN */ - - /* 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", - /* 5 */ "Llibreria no trobada: %s", - /* 6 */ "%s no és una llibreria vàlida d' eDIV", - /* 7 */ "No se pudo inicializar SDL", // TODO - /* 8 */ "Demasiados procesos en ejecución", // TODO - /* 9 */ "Se requiere SDL versión %d.%d.%d\nVersión detectada en el sistema: %d.%d.%d", // TODO - - /* 5 - EUSKERA */ - - /* 0 */ "", - /* 1 */ "Akatz bat sortu da programaren kodea irakurtzean", - /* 2 */ "Akatz bat dago kodearen formatuan", - /* 3 */ "Prozesu motaren berdefinizioa", - /* 4 */ "Ezin izan da memoriarik erreserbatu pilarentzat", - /* 5 */ "Ezin da liburutegia aurkitu: %s", - /* 6 */ "%s ez da eDIV-en liburutegi zuzen bat", - /* 7 */ "No se pudo inicializar SDL", // TODO - /* 8 */ "Demasiados procesos en ejecución", // TODO - /* 9 */ "Se requiere SDL versión %d.%d.%d\nVersión detectada en el sistema: %d.%d.%d" // TODO }; return e[idioma][num]; @@ -871,83 +131,8 @@ char* translate_dll_error(int num) { static char *e[NUM_LANGUAGES][10] = { - /* 0 - ESPAÑOL */ - - /* 1 */ "Sobrepasado buffer de nombres de objeto", - /* 2 */ "Objeto '%s': El nombre no es nuevo", - /* 3 */ "Demasiados objetos declarados", - /* 4 */ "Funcion '%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'", - /* 9 */ "EndStruct sin Struct", - /* 10 */ "Una estructura debe contener al menos un elemento", - - /* 1 - ITALIANO */ - - /* 1 */ "Sorpassato buffer dei nomi oggetto", - /* 2 */ "Oggetto '%s': Il nome non è nuovo", - /* 3 */ "Troppi oggetti dichiarati", - /* 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", - /* 8 */ "Grandezza illegale di string '%s'", - /* 9 */ "EndStruct senza Struct", - /* 10 */ "Una struttura deve contenere almeno un elemento", - - /* 2 - PORTUGUÉS */ - - /* 1 */ "Buffer de nomes de objecto ultrapassado", - /* 2 */ "Objecto '%s': O nome não é novo", - /* 3 */ "Demasiados objectos declarados", - /* 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", - /* 8 */ "Tamanho ilegal da string '%s'", - /* 9 */ "EndStruct sem Struct", - /* 10 */ "Uma estructura deve conter ao menos um elemento", - - /* 3 - INGLÉS */ - - /* 1 */ "Object name buffer out of bounds", - /* 2 */ "Object '%s': Name already exists", - /* 3 */ "Too many objects declared", - /* 4 */ "Function '%s': Name already exists", - /* 5 */ "Error declaring object '%s'", - /* 6 */ "Object '%s': Illegal declaration inside a struct", - /* 7 */ "Object '%s': Member declaration outside a struct", - /* 8 */ "Illegal size for string '%s'", - /* 9 */ "EndStruct without Struct", - /* 10 */ "A struct must contain at least one item", - - /* 4 - CATALÁN */ - - /* 1 */ "Sobrepassat buffer de noms d' objecte", - /* 2 */ "Objecte '%s': El nom no és nou", - /* 3 */ "Massa objectes declarats", - /* 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'", - /* 9 */ "EndStruct sense Struct", - /* 10 */ "Una estructura ha de contenir almenys un element", - - /* 5 - EUSKERA */ - - /* 1 */ "Objektu izenen buffer-aren kapazitatea gainditurik", - /* 2 */ "'%s'objektua: Izena ez da berria", - /* 3 */ "Gehiegizko deklaraturiko objektuak", - /* 4 */ "'%s' funtzioa: izena ez da berria", - /* 5 */ "Akatz bat sortu da '%s' objektua deklaratzean", - /* 6 */ "'%s'objektua: Debekaturiko deklarazioa struct barruan", - /* 7 */ "'%s'objektua: Atal baten deklarazioan struct kanpo", - /* 8 */ "'%s' String-eko okerreko neurria", - /* 9 */ "Struct gabeko EndStruct", - /* 10 */ "Estruktura batek atal bat gutxienez eduki behar du" +#define TRANSLATE TRANSLATE_DLL_ERROR +#include "language_aux.h" }; return e[idioma][num]; diff --git a/ediv/src/visual c/ediv/ediv.vcproj b/ediv/src/visual c/ediv/ediv.vcproj index 2ca813f..71cdde6 100644 --- a/ediv/src/visual c/ediv/ediv.vcproj +++ b/ediv/src/visual c/ediv/ediv.vcproj @@ -1,7 +1,7 @@ - + @@ -32,7 +32,7 @@ Name="VCCustomBuildTool"/> + + + + + + + + Ti7 zZAM*O-z)EQON@!psP%#@i^CmaVzvY|-kO-`oerm5EQ_H&Z&w=d5WnQf_a48)drIC^ z$)x(^oMziXL>a7=Pmf+wDLuAfv9~MGO!t%tiiK@Fryp=C9keB9$Zl&rKh_UB3Lx0H zD*Q&T<*-dxxA|fL+hP!};Lu4fHt(+d3;!?9nc4WV9stQ_7Kntv;i*z&jQZ@ z?LY_63G4>CfNmfR$XR=__W->>AHW{VX^$u(U`BvZU`!NmTRdS=ti==*25=5I56l3f zkLPxwFRY>YC(Gcgb_fc3BXL8lsjzS6d?Gp-@x9c4Soq4mv5B}b?Hh~wMiY^-X=6sn zv57nH#f)*eiz@aR)02rBMu+IrA(O7D_*H?$bD+>-~dtilQ_{6EsUg&w?5RrjQ8X4N!4v zrqjr%fw+rp7dgp}EJ{f!yzCE+=sWBVzUta!8v-{96bqMfHz>t^_k{w5vgqcZ`zY@% z4O@26E|gRoXWSRFFDsfeZ^CIe%>1NiPBn94(}2UB`@?D=3MIRc$>MI$uS!cd6-RWw z8*1bmWhdPolIStK@+>7lm2Ku%{NBbgkwzh($kyo{iPs3V;A=#$i*5%0OJqwg%|>|* zA1iO>g>rK~S04Veyw>z0t>#X6pAC*!BYA1KQc^?&JM_R{{>B`YzE!cubUj(AQogvk z1$G~(^qlX2aw-oPFR=Pc`z|ms#E&SwQmrXo-2T`iU3QG3=}gUQS~|Hssa;>dQ4Ra8 z;w4L}NA2N6!*Q#`aaF|24M{c33IFkRmW6M@=II^8nZ_?&hvt`jD@*V6ykGs}{LkN} zPq1ri024*$d)6R--gKXnt;s^dx1O#Re$-UT*P6Ga+QRH=v-8(&bsJ^s$atDUG$(0@ ztMpP+2{Lu7wUmErb@4Ut7Cu-}$G>~474gZpemtQEX2OoxtmcIDthjch_ zU-7(F&!Lw3^t`rTT^$}wg>K8x!U46aC*Md1E9%#A)%?&~hYL)B-T4a|HwKXLCJeA3 z22YTh_`bK=mQUE4v*dX`ZfxDA#zk7ZS~!C!{RmB?SfVujS#44aOOpSsb!K2CtuszT zD6A+NDh{t^$ksPds=bGM96@!46YT>IGd`b9WGaZX&=pE);FmV-cz;ng|j(VY}r=*zt>LUchdC#e5bSsKPu@87G!%pJDZ70Y0;F> zpvz=xG;1vd|8QYhSjpWkAVriX#GkUhwOVQdpD&`9_F$yvfN! Jy?nQ$^DncOBCP-b literal 24064 zcmeI4dvIJ;9mh}77ShtzLMhY&WuYy!Kx3Npky1oAk3MKaL(>OJv}}@1ns$?o+4Mz= ziV7&AB8u{#_!x%KaU91P^)GbP8HYcdI{xE0<1q4v;^-eR;|mcQKi_li-FtVtkGo+T zlIfnz_ujkro_ij@^Lw6iZhm|2%0GSchbvw&dFgI5$DE&>Z!Qbnuj5*n z4Y(G(7l=1jaK6sF*6(uZ7V_Q-)`E55HgG$*1FQ#8$|zSy?YX1CK9lBe!o*Cc8Ra}~ zPDA17=^8l3r=|F$R9f=u$Byq?_shCD%A`Ri?KcUNF~`gvGt7Cy9N?Iw75@E<%U1Nb z8V#iS#k)Ee&6xKEn3H^w`=@(3*a(%BPsAuT#B}gQ)dOhd$~Ry~`Y= z&Mwnoy6JV=jM@4p7=uX(0higo9Eu^^~_kOF~Lh`SC z(g8YujjOAPJol%y-#y~2%G_D!NcI=;1l4J;PrNm@YIvup4*X_P(RFq`@8nU zdiswfN9@l<9m9!KdMMU8Fg%eKLz(%9l6|r5>G2UO)(hIxBV*~&%=l(7c-7IcT4UhGu6XOH1eZ!-ojk$bBax^)f5KWAq?b`V0a4MCK4J1>s?)3OX zVk|M1OeJmU;rx2XOMeyfktWaUC@UvDIKcQ0GN#gpNybQ2FP!SQy%1amGDxrE{xQZa z#d{Cfd+Xs)jl1L`|B2ogzjnZ-z0@_pngM-h8=Axo!dQ~%jpg;V+Zy1(SjlVr1uZezX^JGgkN^t z$`mO5D_^4?r~zfN+sE@bzAnO(^6Qt@)rcQsq|#7abSTx1wbXw(<+$EQt6#h#ouiar zeE5hiSoR$=anWo&AwLi`sv+*SCN9^>4R*9)R})zEC@hCF;-iJ!<```{zaI z-$ma?s9S!>A+IfIv{|t+xWnuJBFc>ZfZtBd?o>H99L`l*=mDDdAyIaOPl;&_P z`_OLnP#k(l2BnMChM3h0F}PAb$`D8C!~|NYi#+}IZiXj=v^9qP3u`KA(c@OHrFqtf z_3Xq__L8d~E8T0~p5ScE)9*_C(l;r3Ge}E%>8sPW{_mO9D%V!gDx9SIWLuixOUQyXCA_bC!A?_)Q1lrAE-r-(B#A zJlj!xuSNKi&f4j%c|?sIo|@x~gFjFZ;W2bBL9<&nUd^G3Tpd0>1fIAe&r z(lh=Omp}iA{?FDORsTyOnq&k?d+|Pw!U580#dN&OS@^he3iZE_qJHHS*G}&h0cWh% zOu`G5wF3XEPI6HR{S`a-y;0psG{3VuEpTTeny}5%T^68?_6?9ZkN`zc)#b&&2dShT z(rssuv=;Q-c4RA#tV#ZyhI5j*g{P9gR{GJ3MqH1?wvvAXa=VGYt-P_BU+s}4QNBZA zE#dqGQL4d4u+?naHXD0Zv&2TCR;K|R2PmSDhZ95IBy|sg0q%@f#2bo~tJ}(eH>%S@ zr%9{HHMw-GgoB+VRkJMtwJK?clcbH-F3Dy|mfDe(tw>2bM`zRG$cyf6MPl@{g<~@^ z)dn_kY(Wa;b5v&2s#)th9f@kT<(-T~9J-2@TNnvZRGx&cTey<$>OkwQXN>ervGn45 zd;a+1YYV%cSo7@9>c6q<4bAlBJA5|C>qH~zHedYsXmpXC1-R@j)+n#z--FBKuPkl^eBb{;CPKXZZn zE4=HY3xj%5&obzg<93$o%=k<9#MeE0boUFtf9{ce=YRTL+p666e-wWI54rF6T=4#V zG5L*CnLY7a9L%~j67BRu0L3^*X}5Dx`leWVn4qd7{JT(1(@_td!W$09_Axlkk9hS| zX=?QJM_DnH8}CBBtajOoRK%Qx<;}$t!86V7Pw=OCogv!k=Dj&F)(z&Lnph?^n15xj z{_R~|VcxJ;bIgA@%j2D6{+rG9X7=iT*{ip*S8sb)SC~ofO3}&=%M+S;(7c25`kdc; zVJlrf6j8O&>VEuH%}^z?YZq$uTF^ET~!$79rapKR&i}vqgr9A6&f|^-`UK6 zuBS)goKtANl=b+;lg`K0d{^n@ufJ6if3#3!w>QOb0FG6y@;0TB{q{I-y4b8=(59QG z5PyZ^AKy>~C02ITK>X$RUFRrocatgQ^*`4xM0q z7A+nsr^{>h(_iDN+0T66sM=mfuIBQ8xtY~V%>&b#Z>|Sc9eKV~J=#LPnS#}F9`&WJ z|NL0Zm&QuZ3-Eum_Ouj4^?y3a+u$wc1al0P*6i}Deyt~HPCsh>r^y@mUvBNnl~(zY z`m=NIQR~-yx?g{>NtLKASx*0#k$EwQTK^Y9^}D@qs;y@KF1GzEq@(UXrx`Bo_nKPN zzrn8MN&<3s78TxabUQPK#hw)3qvY0$WwFNW+*m)m*R(RAh;5WLW&f_`7ScRRFhijk zAkAy2HuZ4WTY+}djs6>o@7x}#+nF#d+%nBH>xuk?+>#{oT8~i*ukAj=#N7)(GNBZH z_AJ8kZQyTz2tQj$-W!1S6DftC#reJ0-gSrYGrgyMj(!S1Tg}b&zzg?s%IxR9ovZa; z48M07-CgRtMm!HcQ+DmU%P&*+NzX4gXP>*PbAg+_H0I4xOEPg6AICmpsiHdjQV7IdUFe_tJj*p*S}ha@tT~xq2A0v zH>*0O=MUTYcv+)l&Q3)4RZS;e!G89Xce9_W10Bs?YoL8gquAFGY^`re!xq`!X{^5G z+G@8?YAtuQgg4HYHS0oq!}2`{S=}a3D*p*O>hGEB!9pG&s%>XBxtA7~-~CnU?R)8Y zC#5w)_2T=-!n>^H+o;Vle4?mNn+$Zy&Lrn9pT>)~V7IMZyA}5o?TNF&vw8l%w*EBR z^kmqr`jy}JsP%_ynrC<4V$zgCcIrCWspWy4vN6T-XfXvL#YU`P z^sRSi83MOupxEYtv$U|>2Qon!?z4>~YP%nP&*OM;JuTeKxe54NYP8L!l|OClbs>?$ zqV4uh8Jm9nY^Ie@wP~W2^?!=<)$3@dO13|h4qwmWIOqcfZJ7wRx!es$1RKyRa{w+5 zH*I2WB_w+*OY_rTW)O`6C$IXH$)U-OrD;-fjstm~Df;Nhbm*g4XmhxzC*NqAXtlaDt!5^F`F`jLJ3%69X}agsbor8NO4IBu^i%ad7^s#^`ZODa zX8KSpb7muF^`@?9JXcQ;JCpfJlYH8+ttCZ$budk_%Gy#i zV+uoa9>v!0v|74UF}0Wc^*jIfOgY!$fA5o;TKqpPb0xL-zrYGnE&eYw&z58BYw + + + + + + + + + + + + + + + + + + + + + + + + modo 50% / Trasparency ) <-- hecho - - Cosas por hacer cuanto antes: - eso de cerrar la ventanita con la X, que se pueda activar/desactivar de alguna forma -- fade_on() y fade_off() deben devolver fading, es decir esto debe funcionar: - while(fade_on()) frame; end -- Añadir mnemónicos al kernel del stub (acabar los normales y añadir los de byte, word y string) +- A la hora de implementar la funcion qsort(), hay que introducir una nueva + función a ediv_export y modificar la toma y compilación de parámetros en + expresion.c +- Revisar la text.dll +- Meter fuente nº 0 (text.dll) +- Añadir una función al SDK para que la graphics llame a una determinada función cuando + toque dibujar una determinada z. Algo así como fp->Dibuja(), pero en vez de pasarle el + sprite, que llame a la función de la dll y la deje dibujar a ella en el buffer. Podrá + sustituir a fp->Dibuja() en muchos sitios, con lo que se ahorraría velocidad y memoria. +- Convertir los scripts (los que se pueda) a Lua, para que sean compatibles entre todas + las plataformas. +-------- + - Hacer desaparecer la tabla procs_s y sustituirla por variables indexadas - Revisar muchísimo el kernel del stub (compilar cosas, debugear...) - Actualizar los makefiles y proyectos de KDevelop, y comprobar que rule @@ -21,9 +23,6 @@ Cosas por hacer cuanto antes: - Adaptar la rutina de MOTD a Linux <- ya rula? - Documentarlo todo, ahora tenemos el DOKU, kien no lo tenga ke se lo pida a Er_Makina :) -- A la hora de implementar la funcion qsort(), hay que introducir una nueva - función a ediv_export y modificar la toma y compilación de parámetros en - expresion.c Cosas a implementar a medio plazo: