seno de 90º en math.dll... :P
This commit is contained in:
parent
051b811cd5
commit
f74c9f815a
|
@ -1,3 +1,11 @@
|
||||||
|
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
|
2/12/2002
|
||||||
---------
|
---------
|
||||||
* He añadido en la web una sección desde donde se puede ver este changelog.
|
* He añadido en la web una sección desde donde se puede ver este changelog.
|
||||||
|
|
Binary file not shown.
|
@ -41,6 +41,7 @@ int seno[90001] ;
|
||||||
|
|
||||||
int ExportaFuncs(EXPORTAFUNCS_PARAMS)
|
int ExportaFuncs(EXPORTAFUNCS_PARAMS)
|
||||||
{
|
{
|
||||||
|
CONST("pi",180000);
|
||||||
|
|
||||||
FUNCTION("abs",1,eDiv_Abs);
|
FUNCTION("abs",1,eDiv_Abs);
|
||||||
FUNCTION("pow",2,eDiv_Pow);
|
FUNCTION("pow",2,eDiv_Pow);
|
||||||
|
@ -380,7 +381,8 @@ void first_load()
|
||||||
{
|
{
|
||||||
seno[i] = ftomil( sin( (i / 1000)*PIOVER180 ) );
|
seno[i] = ftomil( sin( (i / 1000)*PIOVER180 ) );
|
||||||
}
|
}
|
||||||
seno[90000] = 0x7FFFFFFF ;
|
//seno[90000] = 0x7FFFFFFF ;
|
||||||
|
seno[90000]=1000;
|
||||||
srand(time(NULL));
|
srand(time(NULL));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -25,7 +25,7 @@
|
||||||
#ifndef __SHARED_H
|
#ifndef __SHARED_H
|
||||||
#define __SHARED_H
|
#define __SHARED_H
|
||||||
|
|
||||||
#define VERSION "0.1 (Orion)"
|
#define VERSION "0.1.1 (Orion)"
|
||||||
#define la_clave "Open_eDiv"
|
#define la_clave "Open_eDiv"
|
||||||
|
|
||||||
#define uchar char
|
#define uchar char
|
||||||
|
|
|
@ -183,6 +183,7 @@ int proceso( int num, int padre )
|
||||||
int actual_lin;
|
int actual_lin;
|
||||||
#endif
|
#endif
|
||||||
int _status=reservedptr("status");
|
int _status=reservedptr("status");
|
||||||
|
int _param_offset;
|
||||||
|
|
||||||
num_proc = num ;
|
num_proc = num ;
|
||||||
imem = procs_s[num_proc].imem ;
|
imem = procs_s[num_proc].imem ;
|
||||||
|
@ -281,7 +282,7 @@ int proceso( int num, int padre )
|
||||||
case lcid://21
|
case lcid://21
|
||||||
pila[++sp] = procs_s[num_proc].id ;
|
pila[++sp] = procs_s[num_proc].id ;
|
||||||
break ;
|
break ;
|
||||||
case lrng://22
|
case lrng://22 POR HACER (debug)
|
||||||
imem++;
|
imem++;
|
||||||
break ;
|
break ;
|
||||||
case ljmp://23
|
case ljmp://23
|
||||||
|
@ -479,7 +480,7 @@ int proceso( int num, int padre )
|
||||||
#endif
|
#endif
|
||||||
break ;
|
break ;
|
||||||
|
|
||||||
// OPCODES OPTIMIZADOS
|
/* OPCODES OPTIMIZADOS */
|
||||||
|
|
||||||
case lcar2://60
|
case lcar2://60
|
||||||
pila[++sp]=mem[imem++];
|
pila[++sp]=mem[imem++];
|
||||||
|
@ -545,7 +546,107 @@ int proceso( int num, int padre )
|
||||||
case lcardiv://77 no hay nunca "cardiv 0"
|
case lcardiv://77 no hay nunca "cardiv 0"
|
||||||
pila[sp]/=mem[imem++];
|
pila[sp]/=mem[imem++];
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
/* OPERACIONES CON DATOS DE TIPO BYTE */
|
||||||
|
|
||||||
|
case lptrchr:
|
||||||
|
pila[sp-1]=(unsigned int)memb[pila[sp-1]*4+pila[sp]];
|
||||||
|
sp--;
|
||||||
|
break;
|
||||||
|
case lasichr:
|
||||||
|
pila[sp-2]=(unsigned int)(memb[pila[sp-2]*4+pila[sp-1]]=(byte)pila[sp]);
|
||||||
|
sp-=2;
|
||||||
|
break;
|
||||||
|
case liptchr:
|
||||||
|
pila[sp-1]=(unsigned int)++memb[pila[sp-1]*4+pila[sp]];
|
||||||
|
sp--;
|
||||||
|
break;
|
||||||
|
case lptichr:
|
||||||
|
pila[sp-1]=(unsigned int)memb[pila[sp-1]*4+pila[sp]]++;
|
||||||
|
sp--;
|
||||||
|
break;
|
||||||
|
case ldptchr:
|
||||||
|
pila[sp-1]=(unsigned int)--memb[pila[sp-1]*4+pila[sp]];
|
||||||
|
sp--;
|
||||||
|
break;
|
||||||
|
case lptdchr:
|
||||||
|
pila[sp-1]=(unsigned int)memb[pila[sp-1]*4+pila[sp]]--;
|
||||||
|
sp--;
|
||||||
|
break;
|
||||||
|
case ladachr:
|
||||||
|
pila[sp-2]=(unsigned int)(memb[pila[sp-2]*4+pila[sp-1]]+=(byte)pila[sp]);
|
||||||
|
sp-=2;
|
||||||
|
break;
|
||||||
|
case lsuachr:
|
||||||
|
pila[sp-2]=(unsigned int)(memb[pila[sp-2]*4+pila[sp-1]]-=(byte)pila[sp]);
|
||||||
|
sp-=2;
|
||||||
|
break;
|
||||||
|
case lmuachr:
|
||||||
|
pila[sp-2]=(unsigned int)(memb[pila[sp-2]*4+pila[sp-1]]*=(byte)pila[sp]);
|
||||||
|
sp-=2;
|
||||||
|
break;
|
||||||
|
case ldiachr:
|
||||||
|
/*#ifdef DBG
|
||||||
|
if (pila[sp]==0) {
|
||||||
|
memb[pila[sp-2]*4+pila[sp-1]]=0;
|
||||||
|
sp-=2; pila[sp]=0;
|
||||||
|
v_function=-2; e(145);
|
||||||
|
if (call_to_debug) { process_stoped=id; return; }
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
#endif*/
|
||||||
|
pila[sp-2]=(unsigned int)(memb[pila[sp-2]*4+pila[sp-1]]/=(byte)pila[sp]);
|
||||||
|
sp-=2;
|
||||||
|
break;
|
||||||
|
case lmoachr:
|
||||||
|
/*#ifdef DBG
|
||||||
|
if (pila[sp]==0) {
|
||||||
|
memb[pila[sp-2]*4+pila[sp-1]]=0;
|
||||||
|
sp-=2; pila[sp]=0;
|
||||||
|
v_function=-2; e(145);
|
||||||
|
if (call_to_debug) { process_stoped=id; return; }
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
#endif*/
|
||||||
|
pila[sp-2]=(unsigned int)(memb[pila[sp-2]*4+pila[sp-1]]%=(byte)pila[sp]);
|
||||||
|
sp-=2;
|
||||||
|
break;
|
||||||
|
case lanachr:
|
||||||
|
pila[sp-2]=(unsigned int)(memb[pila[sp-2]*4+pila[sp-1]]&=(byte)pila[sp]);
|
||||||
|
sp-=2;
|
||||||
|
break;
|
||||||
|
case lorachr:
|
||||||
|
pila[sp-2]=(unsigned int)(memb[pila[sp-2]*4+pila[sp-1]]|=(byte)pila[sp]);
|
||||||
|
sp-=2;
|
||||||
|
break;
|
||||||
|
case lxoachr:
|
||||||
|
pila[sp-2]=(unsigned int)(memb[pila[sp-2]*4+pila[sp-1]]^=(byte)pila[sp]);
|
||||||
|
sp-=2;
|
||||||
|
break;
|
||||||
|
case lsrachr:
|
||||||
|
pila[sp-2]=(unsigned int)(memb[pila[sp-2]*4+pila[sp-1]]>>=(byte)pila[sp]);
|
||||||
|
sp-=2;
|
||||||
|
break;
|
||||||
|
case lslachr:
|
||||||
|
pila[sp-2]=(unsigned int)(memb[pila[sp-2]*4+pila[sp-1]]<<=(byte)pila[sp]);
|
||||||
|
sp-=2;
|
||||||
|
break;
|
||||||
|
case lcpachr:
|
||||||
|
_param_offset=reservedptr("param_offset");
|
||||||
|
if ((unsigned int)pila[mem[procs_s[num_proc].id+_param_offset]]<256) {
|
||||||
|
memb[pila[sp-1]*4+pila[sp]]=(byte)pila[mem[procs_s[num_proc].id+_param_offset]];
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if (pila[mem[procs_s[num_proc].id+_param_offset]]<imem_max+258*4)
|
||||||
|
memb[pila[sp-1]*4+pila[sp]]=memb[pila[mem[procs_s[num_proc].id+_param_offset]]*4];
|
||||||
|
else
|
||||||
|
memb[pila[sp-1]*4+pila[sp]]=(byte)pila[mem[procs_s[num_proc].id+_param_offset]];
|
||||||
|
}
|
||||||
|
sp-=2;
|
||||||
|
mem[procs_s[num_proc].id+_param_offset]++;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef DBG
|
#ifdef DBG
|
||||||
Call_Entrypoint(EDIV_trace,imem,nombre_program,lin,0);
|
Call_Entrypoint(EDIV_trace,imem,nombre_program,lin,0);
|
||||||
#ifdef _DEBUG
|
#ifdef _DEBUG
|
||||||
|
@ -596,7 +697,7 @@ int localiza_lin(int ip)
|
||||||
sentencia, aunque sea distinto opcode */
|
sentencia, aunque sea distinto opcode */
|
||||||
last=(lin_item*)(&lin[last_lin*4]);
|
last=(lin_item*)(&lin[last_lin*4]);
|
||||||
if(last->inicio<=ip && last->fin>=ip) {
|
if(last->inicio<=ip && last->fin>=ip) {
|
||||||
printf("(%d) last_lin\n",ip);
|
//printf("(%d) last_lin\n",ip);
|
||||||
return last_lin;
|
return last_lin;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -340,13 +340,12 @@ int main(int argc, char* argv[])
|
||||||
stub_quit(0);
|
stub_quit(0);
|
||||||
if(teclas[SDLK_p] && (teclas[SDLK_RALT] || teclas[SDLK_LALT]))
|
if(teclas[SDLK_p] && (teclas[SDLK_RALT] || teclas[SDLK_LALT]))
|
||||||
{
|
{
|
||||||
strcpy(capturef,fp.nombre_program);
|
strcpy(capturef,fp.nombre_program);
|
||||||
strcat(capturef,".bmp");
|
strcat(capturef,".bmp");
|
||||||
SDL_SaveBMP(fp.screen,capturef);
|
SDL_SaveBMP(fp.screen,capturef);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
interprete();
|
interprete();
|
||||||
|
|
||||||
#ifdef _DEBUG
|
#ifdef _DEBUG
|
||||||
if(sp!=0) printf("PANIC! Quedan restos en la pila!! (sp=%d)\n",sp);
|
if(sp!=0) printf("PANIC! Quedan restos en la pila!! (sp=%d)\n",sp);
|
||||||
|
|
Binary file not shown.
Loading…
Reference in a new issue