hay un bug misterioso.. que os cuente cictec..
This commit is contained in:
parent
fbe03ef4e8
commit
f1f803404d
|
@ -2,7 +2,8 @@
|
||||||
|
|
||||||
>> hacer fuente 0
|
>> 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
|
>> 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
|
24/9/2002
|
||||||
---------
|
---------
|
||||||
* A馻dido indexado de variables din醡ico!! (縞ontento Rise?) :D
|
* 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
|
ignore_errors=0 ; No ignorar errores
|
||||||
no_strfix=0 ;
|
no_strfix=0 ;
|
||||||
no_id_check=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_range_check=0 ;
|
||||||
no_null_check=0 ;
|
no_null_check=0 ;
|
||||||
no_check=0 ;
|
no_check=0 ;
|
||||||
|
|
Binary file not shown.
|
@ -37,6 +37,7 @@ struct objeto * ob;
|
||||||
struct objeto * ob2;
|
struct objeto * ob2;
|
||||||
|
|
||||||
int creaobj;
|
int creaobj;
|
||||||
|
int numparams;
|
||||||
|
|
||||||
byte decl_struct=0; // 1 si se está declarando un struct
|
byte decl_struct=0; // 1 si se está declarando un struct
|
||||||
byte struct_reserved=0; // 1 si se está declarando la estructura reserved
|
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;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(nparam<0) {
|
||||||
|
dll_error(5,cadena);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
creaobj=crea_objeto((byte*)cadena);
|
creaobj=crea_objeto((byte*)cadena);
|
||||||
|
|
||||||
#ifdef DEBUG_DLL
|
#ifdef DEBUG_DLL
|
||||||
|
|
|
@ -267,6 +267,7 @@ struct _fun_params{
|
||||||
//int sp;
|
//int sp;
|
||||||
|
|
||||||
void* extfuncs[MAX_EXTERN_FUNCS]; // tabla de punteros a las funciones de las DLLs (stub)
|
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 {
|
struct _entrypoints {
|
||||||
int tipo; // Ver #defines de entrypoints más arriba
|
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;
|
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 ] ;
|
/**/procs_s[num_proc].num_params = mem[ imem-1 ] ;
|
||||||
break;
|
break;
|
||||||
case lcpa://31 POR HACER #-#
|
case lcpa://31 POR HACER?
|
||||||
mem[pila[sp--]]=pila[reserved("param_offset",procs_s[num_proc].id)++];
|
mem[pila[sp--]]=pila[reserved("param_offset",procs_s[num_proc].id)++];
|
||||||
break;
|
break;
|
||||||
case ltyp://32
|
case ltyp://32
|
||||||
|
@ -320,7 +320,7 @@ int proceso( int num )
|
||||||
reserved("process_type",procs_s[num_proc].id) = procs_s[num_proc].tipo ;
|
reserved("process_type",procs_s[num_proc].id) = procs_s[num_proc].tipo ;
|
||||||
inicio_privadas=mem[6];
|
inicio_privadas=mem[6];
|
||||||
break ;
|
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);
|
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];
|
inicio_privadas+=(mem[imem]-imem-1); imem=mem[imem];
|
||||||
break ;
|
break ;
|
||||||
|
@ -400,7 +400,7 @@ int proceso( int num )
|
||||||
pila[ sp-1 ] = mem[ pila[ sp-1 ] ] <<= pila[sp] ;
|
pila[ sp-1 ] = mem[ pila[ sp-1 ] ] <<= pila[sp] ;
|
||||||
sp--;
|
sp--;
|
||||||
break;
|
break;
|
||||||
case lpar://52 POR HACER
|
case lpar://52 POR HACER?
|
||||||
//imem++;
|
//imem++;
|
||||||
inicio_privadas+=mem[imem++];
|
inicio_privadas+=mem[imem++];
|
||||||
break;
|
break;
|
||||||
|
@ -428,12 +428,78 @@ int proceso( int num )
|
||||||
break ;
|
break ;
|
||||||
case ldbg://58
|
case ldbg://58
|
||||||
#ifdef DBG
|
#ifdef DBG
|
||||||
//Call_Entrypoint(EDIV_debug,imem,nombreprg,lin,0);
|
Call_Entrypoint(EDIV_debug,imem,nombreprg,lin,0);
|
||||||
#endif
|
#endif
|
||||||
break ;
|
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
|
#ifdef DBG
|
||||||
//Call_Entrypoint(EDIV_trace,imem,nombreprg,lin,0);
|
Call_Entrypoint(EDIV_trace,imem,nombreprg,lin,0);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -782,7 +782,7 @@ char* translate_runtime_error(int num)
|
||||||
|
|
||||||
char* translate_critical_error(int num)
|
char* translate_critical_error(int num)
|
||||||
{
|
{
|
||||||
static char *e[NUM_LANGUAGES][9] = {
|
static char *e[NUM_LANGUAGES][10] = {
|
||||||
|
|
||||||
/* 0 - ESPAÑOL */
|
/* 0 - ESPAÑOL */
|
||||||
|
|
||||||
|
@ -794,7 +794,8 @@ char* translate_critical_error(int num)
|
||||||
/* 5 */ "Librería no encontrada: %s",
|
/* 5 */ "Librería no encontrada: %s",
|
||||||
/* 6 */ "%s no es una librería válida de eDIV",
|
/* 6 */ "%s no es una librería válida de eDIV",
|
||||||
/* 7 */ "No se pudo inicializar SDL",
|
/* 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 */
|
/* 1 - ITALIANO */
|
||||||
|
|
||||||
|
@ -807,6 +808,7 @@ char* translate_critical_error(int num)
|
||||||
/* 6 */ "%s non è una libreria valida di eDIV",
|
/* 6 */ "%s non è una libreria valida di eDIV",
|
||||||
/* 7 */ "No se pudo inicializar SDL", // TODO
|
/* 7 */ "No se pudo inicializar SDL", // TODO
|
||||||
/* 8 */ "Demasiados procesos en ejecución", // 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) */
|
/* 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",
|
/* 6 */ "%s no es una librería válida de eDIV",
|
||||||
/* 7 */ "No se pudo inicializar SDL",
|
/* 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", // TODO
|
||||||
|
|
||||||
/* 3 - INGLÉS */
|
/* 3 - INGLÉS */
|
||||||
|
|
||||||
|
@ -831,6 +834,7 @@ char* translate_critical_error(int num)
|
||||||
/* 6 */ "%s is not a valid eDIV library",
|
/* 6 */ "%s is not a valid eDIV library",
|
||||||
/* 7 */ "Cannot initialize SDL",
|
/* 7 */ "Cannot initialize SDL",
|
||||||
/* 8 */ "Too many processes in execution",
|
/* 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 */
|
/* 4 - CATALÁN */
|
||||||
|
|
||||||
|
@ -843,6 +847,7 @@ char* translate_critical_error(int num)
|
||||||
/* 6 */ "%s no és una llibreria vàlida d' eDIV",
|
/* 6 */ "%s no és una llibreria vàlida d' eDIV",
|
||||||
/* 7 */ "No se pudo inicializar SDL", // TODO
|
/* 7 */ "No se pudo inicializar SDL", // TODO
|
||||||
/* 8 */ "Demasiados procesos en ejecución", // 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 */
|
/* 5 - EUSKERA */
|
||||||
|
|
||||||
|
@ -855,6 +860,7 @@ char* translate_critical_error(int num)
|
||||||
/* 6 */ "%s ez da eDIV-en liburutegi zuzen bat",
|
/* 6 */ "%s ez da eDIV-en liburutegi zuzen bat",
|
||||||
/* 7 */ "No se pudo inicializar SDL", // TODO
|
/* 7 */ "No se pudo inicializar SDL", // TODO
|
||||||
/* 8 */ "Demasiados procesos en ejecución", // 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];
|
return e[idioma][num];
|
||||||
|
|
|
@ -56,6 +56,7 @@ int main(int argc, char* argv[])
|
||||||
byte * ptr;
|
byte * ptr;
|
||||||
unsigned long len,len_descomp;
|
unsigned long len,len_descomp;
|
||||||
byte* vartemp;
|
byte* vartemp;
|
||||||
|
const SDL_version* sdl_version;
|
||||||
#ifdef DBG
|
#ifdef DBG
|
||||||
int start_lin;
|
int start_lin;
|
||||||
int linsize;
|
int linsize;
|
||||||
|
@ -68,6 +69,21 @@ int main(int argc, char* argv[])
|
||||||
|
|
||||||
eDIV_InstallParachute();
|
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++ )
|
for ( i = 0 ; i < 100 ; i++ )
|
||||||
tiempo[ i ] = 0 ;
|
tiempo[ i ] = 0 ;
|
||||||
tiempo_i = 0 ;
|
tiempo_i = 0 ;
|
||||||
|
|
|
@ -179,6 +179,9 @@
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\ediv\parser.h">
|
RelativePath="..\..\ediv\parser.h">
|
||||||
</File>
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\..\shared\shared.h">
|
||||||
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\shared\varindex.h">
|
RelativePath="..\..\shared\varindex.h">
|
||||||
</File>
|
</File>
|
||||||
|
|
Binary file not shown.
Loading…
Reference in a new issue