hay un bug misterioso.. que os cuente cictec..
This commit is contained in:
parent
fbe03ef4e8
commit
f1f803404d
|
@ -2,7 +2,8 @@
|
|||
|
||||
>> hacer fuente 0
|
||||
|
||||
>> carga de map, pcx, bmp y jpg completa y decente
|
||||
>> carga de map, pcx, bmp (y jpg?) completa y decente
|
||||
|
||||
>> size y angle
|
||||
|
||||
>> cargar muchos fpg's
|
||||
|
|
|
@ -1,3 +1,14 @@
|
|||
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)
|
||||
|
||||
24/9/2002
|
||||
---------
|
||||
* A馻dido indexado de variables din醡ico!! (縞ontento Rise?) :D
|
||||
|
|
|
@ -10,7 +10,7 @@ case_sensitive=0 ; Sin case sensitive
|
|||
ignore_errors=0 ; No ignorar errores
|
||||
no_strfix=0 ;
|
||||
no_id_check=0 ;
|
||||
no_optimization=1 ; Para las pruebas de momento ;)
|
||||
no_optimization=0 ; Para las pruebas de momento ;)
|
||||
no_range_check=0 ;
|
||||
no_null_check=0 ;
|
||||
no_check=0 ;
|
||||
|
|
Binary file not shown.
|
@ -37,6 +37,7 @@ struct objeto * ob;
|
|||
struct objeto * ob2;
|
||||
|
||||
int creaobj;
|
||||
int numparams;
|
||||
|
||||
byte decl_struct=0; // 1 si se está declarando un struct
|
||||
byte struct_reserved=0; // 1 si se está declarando la estructura reserved
|
||||
|
@ -64,6 +65,11 @@ int EDIV_Export(char* cadena, int nparam, void* hfuncion)
|
|||
return 0;
|
||||
}
|
||||
|
||||
if(nparam<0) {
|
||||
dll_error(5,cadena);
|
||||
return 0;
|
||||
}
|
||||
|
||||
creaobj=crea_objeto((byte*)cadena);
|
||||
|
||||
#ifdef DEBUG_DLL
|
||||
|
|
|
@ -267,6 +267,7 @@ struct _fun_params{
|
|||
//int sp;
|
||||
|
||||
void* extfuncs[MAX_EXTERN_FUNCS]; // tabla de punteros a las funciones de las DLLs (stub)
|
||||
int extparms[MAX_EXTERN_FUNCS]; // nº de parámetros de cada función externa (necesario para la sobrecarga)
|
||||
|
||||
struct _entrypoints {
|
||||
int tipo; // Ver #defines de entrypoints más arriba
|
||||
|
|
|
@ -306,7 +306,7 @@ int proceso( int num )
|
|||
reserved("param_offset",procs_s[num_proc].id)=sp-reserved("parameters",procs_s[num_proc].id)+1;
|
||||
/**/procs_s[num_proc].num_params = mem[ imem-1 ] ;
|
||||
break;
|
||||
case lcpa://31 POR HACER #-#
|
||||
case lcpa://31 POR HACER?
|
||||
mem[pila[sp--]]=pila[reserved("param_offset",procs_s[num_proc].id)++];
|
||||
break;
|
||||
case ltyp://32
|
||||
|
@ -320,7 +320,7 @@ int proceso( int num )
|
|||
reserved("process_type",procs_s[num_proc].id) = procs_s[num_proc].tipo ;
|
||||
inicio_privadas=mem[6];
|
||||
break ;
|
||||
case lpri://33 POR HACER
|
||||
case lpri://33 POR HACER?
|
||||
memcpy(&mem[procs_s[num_proc].id+inicio_privadas],&mem[imem+1],(mem[imem]-imem-1)<<2);
|
||||
inicio_privadas+=(mem[imem]-imem-1); imem=mem[imem];
|
||||
break ;
|
||||
|
@ -400,7 +400,7 @@ int proceso( int num )
|
|||
pila[ sp-1 ] = mem[ pila[ sp-1 ] ] <<= pila[sp] ;
|
||||
sp--;
|
||||
break;
|
||||
case lpar://52 POR HACER
|
||||
case lpar://52 POR HACER?
|
||||
//imem++;
|
||||
inicio_privadas+=mem[imem++];
|
||||
break;
|
||||
|
@ -428,12 +428,78 @@ int proceso( int num )
|
|||
break ;
|
||||
case ldbg://58
|
||||
#ifdef DBG
|
||||
//Call_Entrypoint(EDIV_debug,imem,nombreprg,lin,0);
|
||||
Call_Entrypoint(EDIV_debug,imem,nombreprg,lin,0);
|
||||
#endif
|
||||
break ;
|
||||
|
||||
// OPCODES OPTIMIZADOS
|
||||
|
||||
case lcar2://60
|
||||
pila[++sp]=mem[imem++];
|
||||
pila[++sp]=mem[imem++];
|
||||
break;
|
||||
case lcar3://61
|
||||
pila[++sp]=mem[imem++];
|
||||
pila[++sp]=mem[imem++];
|
||||
pila[++sp]=mem[imem++];
|
||||
break;
|
||||
case lcar4://62
|
||||
pila[++sp]=mem[imem++];
|
||||
pila[++sp]=mem[imem++];
|
||||
pila[++sp]=mem[imem++];
|
||||
pila[++sp]=mem[imem++];
|
||||
break;
|
||||
case lasiasp://63
|
||||
mem[pila[sp-1]]=pila[sp];
|
||||
sp-=2;
|
||||
break;
|
||||
case lcaraid://64
|
||||
pila[++sp]=mem[imem++]+procs_s[num_proc].id;
|
||||
break;
|
||||
case lcarptr://65
|
||||
pila[++sp]=mem[mem[imem++]];
|
||||
break;
|
||||
case laidptr://66
|
||||
pila[sp]=mem[pila[sp]+procs_s[num_proc].id];
|
||||
break;
|
||||
case lcaraidptr://67
|
||||
pila[++sp]=mem[mem[imem++]+procs_s[num_proc].id];
|
||||
break;
|
||||
case lcaraidcpa://68
|
||||
mem[mem[imem++]+procs_s[num_proc].id]=pila[reserved("param_offset",procs_s[num_proc].id)++];
|
||||
break;
|
||||
case laddptr://69
|
||||
pila[sp-1]=mem[pila[sp-1]+pila[sp]];
|
||||
sp--;
|
||||
break;
|
||||
case lfunasp://70 NO USADO
|
||||
break;
|
||||
case lcaradd://71
|
||||
pila[sp]+=mem[imem++];
|
||||
break;
|
||||
case lcaraddptr://72
|
||||
pila[sp]=mem[pila[sp]+mem[imem++]];
|
||||
break;
|
||||
case lcarmul://73
|
||||
pila[sp]*=mem[imem++];
|
||||
break;
|
||||
case lcarmuladd://74
|
||||
pila[sp-1]+=pila[sp]*mem[imem++];
|
||||
sp--;
|
||||
break;
|
||||
case lcarasiasp://75
|
||||
mem[pila[sp]]=mem[imem++];
|
||||
sp--;
|
||||
break;
|
||||
case lcarsub://76
|
||||
pila[sp]-=mem[imem++];
|
||||
break;
|
||||
case lcardiv://77 no hay nunca "cardiv 0"
|
||||
pila[sp]/=mem[imem++];
|
||||
break;
|
||||
}
|
||||
#ifdef DBG
|
||||
//Call_Entrypoint(EDIV_trace,imem,nombreprg,lin,0);
|
||||
Call_Entrypoint(EDIV_trace,imem,nombreprg,lin,0);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
|
|
@ -782,7 +782,7 @@ char* translate_runtime_error(int num)
|
|||
|
||||
char* translate_critical_error(int num)
|
||||
{
|
||||
static char *e[NUM_LANGUAGES][9] = {
|
||||
static char *e[NUM_LANGUAGES][10] = {
|
||||
|
||||
/* 0 - ESPAÑOL */
|
||||
|
||||
|
@ -794,7 +794,8 @@ char* translate_critical_error(int num)
|
|||
/* 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"
|
||||
/* 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 */
|
||||
|
||||
|
@ -807,6 +808,7 @@ char* translate_critical_error(int num)
|
|||
/* 6 */ "%s non è una libreria valida di 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
|
||||
|
||||
/* 2 - PORTUGUÉS (FIXMI: traducir) */
|
||||
|
||||
|
@ -819,6 +821,7 @@ char* translate_critical_error(int num)
|
|||
/* 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 */
|
||||
|
||||
|
@ -831,6 +834,7 @@ char* translate_critical_error(int num)
|
|||
/* 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 */
|
||||
|
||||
|
@ -843,6 +847,7 @@ char* translate_critical_error(int num)
|
|||
/* 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 */
|
||||
|
||||
|
@ -855,6 +860,7 @@ char* translate_critical_error(int num)
|
|||
/* 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];
|
||||
|
|
|
@ -56,6 +56,7 @@ int main(int argc, char* argv[])
|
|||
byte * ptr;
|
||||
unsigned long len,len_descomp;
|
||||
byte* vartemp;
|
||||
const SDL_version* sdl_version;
|
||||
#ifdef DBG
|
||||
int start_lin;
|
||||
int linsize;
|
||||
|
@ -68,6 +69,21 @@ int main(int argc, char* argv[])
|
|||
|
||||
eDIV_InstallParachute();
|
||||
|
||||
sdl_version=SDL_Linked_Version();
|
||||
#ifdef _DEBUG
|
||||
printf("Versión SDL del exe: %d.%d.%d\n",SDL_MAJOR_VERSION,SDL_MINOR_VERSION,SDL_PATCHLEVEL);
|
||||
printf("Versión de SDL instalada: %d.%d.%d\n",sdl_version->major,sdl_version->minor,sdl_version->patch);
|
||||
#endif
|
||||
if(sdl_version->major<SDL_MAJOR_VERSION
|
||||
|| (sdl_version->major==SDL_MAJOR_VERSION &&
|
||||
sdl_version->minor<SDL_MINOR_VERSION)
|
||||
|| (sdl_version->major==SDL_MAJOR_VERSION &&
|
||||
sdl_version->minor==SDL_MINOR_VERSION &&
|
||||
sdl_version->patch<SDL_PATCHLEVEL)) {
|
||||
critical_error(9,SDL_MAJOR_VERSION,SDL_MINOR_VERSION,SDL_PATCHLEVEL,
|
||||
sdl_version->major,sdl_version->minor,sdl_version->patch);
|
||||
}
|
||||
|
||||
for ( i = 0 ; i < 100 ; i++ )
|
||||
tiempo[ i ] = 0 ;
|
||||
tiempo_i = 0 ;
|
||||
|
|
|
@ -179,6 +179,9 @@
|
|||
<File
|
||||
RelativePath="..\..\ediv\parser.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\shared\shared.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\shared\varindex.h">
|
||||
</File>
|
||||
|
|
Binary file not shown.
Loading…
Reference in a new issue