From f74c9f815a8e43b3e37d8f57542412301fe34d1809bbe878fe0f9482e90053f6 Mon Sep 17 00:00:00 2001 From: Gabriel Lorenzo Date: Thu, 12 Dec 2002 22:41:39 +0000 Subject: [PATCH] =?UTF-8?q?seno=20de=2090=C2=BA=20en=20math.dll...=20:P?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ediv/CHANGE_LOG.txt | 8 +++ ediv/src/dlls/dlls.suo | Bin 23552 -> 23552 bytes ediv/src/dlls/math/math.c | 4 +- ediv/src/shared/shared.h | 2 +- ediv/src/stub/inte.c | 107 +++++++++++++++++++++++++++++++++- ediv/src/stub/stub.c | 9 ++- ediv/src/visual c/ediv_ws.suo | Bin 20480 -> 18944 bytes 7 files changed, 120 insertions(+), 10 deletions(-) diff --git a/ediv/CHANGE_LOG.txt b/ediv/CHANGE_LOG.txt index a3449c6..b777301 100644 --- a/ediv/CHANGE_LOG.txt +++ b/ediv/CHANGE_LOG.txt @@ -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 --------- * He añadido en la web una sección desde donde se puede ver este changelog. diff --git a/ediv/src/dlls/dlls.suo b/ediv/src/dlls/dlls.suo index 9c203999fc8cf3a22fabe0a8bc0faed5d68864cdf3e46e075398d4df4ae1a155..aa530d5a683e4bef871b7083cd1cc04e7cc4fc67caa1575b44296daa6e5d407e 100644 GIT binary patch delta 938 zcmZvb&rcIk5Xa}O+tReVE!0vlVuH9RiTIcVn5go3Wx zo1Uk2ooxz<)U*P*Y|oo1S41q_*e|ja!`17dI^tEml^2pNg*Lwr15xBZ!H2@& z`=J3{$l_IFY+^ehQ_*DYdbm`|)C#W%O$Q0>pln4GzFAGl#m$~)C}%K0ejN;6sR;~FXHMOvUPk#lR?!gy@>TF z?LUyV4*w0`fNvq?C!P-cmm66Rw2uKtz>&O~xb(`hF^3}GX)4j|e{4v`( zyXuV|s5xZ&Yu}n0HEL^XiAB-cUQ^pX9AT~>e#3J^Q_+Jp6K(JCNx|QTJPrRHFnh#Q zL?<=TH)Tnnfu&MM%@Xcj3jO7LGKB-E*08 delta 940 zcmZ{jL1+_E5QgV%H)-5%wn^HoDXmg$ialsav=pT!R+Jptl5S%UQUoa)tq{|YtR+^l z@#5Xg)k97q=s{eBoIL174`Rim2YdF=Dg>+->;ICCM2RoF-8bLNo6MX4ZMi1OHSs*F z8r2_>zE2Nci!LH6PxFR4tM_85V(w#b&^N|=>YQKnxTHZps!^Wtsa*2R>w$k96~F52 zd8*yVMidg+4F>cpRa-Z($49*2Eo(<9FUeUgB;4FxM7`Dn?1+Zr(8NiD&%N*c4-Y zyLXn~XmO|BYbm;c&3?>Q6^8wUS_sD**9oy0efn-IkgFAM7MhX6cxeF@a z-{t$^;?#?Yb6Rs-!qTNCdfPUxCqDQ^KS-pFI`uQ#UNhQJMdxdBM>R(~`*!AD3I3My z4E|4ig+d%yc**xuYv$3;IlK##!W`@DOIwOyW9bN2eHxb+v;An9)M6cNE7CBUoT1@L zdTFQ|r%A(*?OlN@LsL?w3>s{6e(th1uDlmeX@5V;?=Bub;KP+XOD8Bc{aIZEKpY8*?BaB4K*Ji742 ZtIO|AswM}^&&gi4^gh6WzZ6*3#cyyY53&FN diff --git a/ediv/src/dlls/math/math.c b/ediv/src/dlls/math/math.c index 8ddb1e0..c8a0226 100644 --- a/ediv/src/dlls/math/math.c +++ b/ediv/src/dlls/math/math.c @@ -41,6 +41,7 @@ int seno[90001] ; int ExportaFuncs(EXPORTAFUNCS_PARAMS) { + CONST("pi",180000); FUNCTION("abs",1,eDiv_Abs); FUNCTION("pow",2,eDiv_Pow); @@ -380,7 +381,8 @@ void first_load() { seno[i] = ftomil( sin( (i / 1000)*PIOVER180 ) ); } - seno[90000] = 0x7FFFFFFF ; + //seno[90000] = 0x7FFFFFFF ; + seno[90000]=1000; srand(time(NULL)); } diff --git a/ediv/src/shared/shared.h b/ediv/src/shared/shared.h index e073774..abe8568 100644 --- a/ediv/src/shared/shared.h +++ b/ediv/src/shared/shared.h @@ -25,7 +25,7 @@ #ifndef __SHARED_H #define __SHARED_H -#define VERSION "0.1 (Orion)" +#define VERSION "0.1.1 (Orion)" #define la_clave "Open_eDiv" #define uchar char diff --git a/ediv/src/stub/inte.c b/ediv/src/stub/inte.c index ab30da5..5ca74f6 100644 --- a/ediv/src/stub/inte.c +++ b/ediv/src/stub/inte.c @@ -183,6 +183,7 @@ int proceso( int num, int padre ) int actual_lin; #endif int _status=reservedptr("status"); + int _param_offset; num_proc = num ; imem = procs_s[num_proc].imem ; @@ -281,7 +282,7 @@ int proceso( int num, int padre ) case lcid://21 pila[++sp] = procs_s[num_proc].id ; break ; - case lrng://22 + case lrng://22 POR HACER (debug) imem++; break ; case ljmp://23 @@ -479,7 +480,7 @@ int proceso( int num, int padre ) #endif break ; - // OPCODES OPTIMIZADOS + /* OPCODES OPTIMIZADOS */ case lcar2://60 pila[++sp]=mem[imem++]; @@ -545,7 +546,107 @@ int proceso( int num, int padre ) case lcardiv://77 no hay nunca "cardiv 0" pila[sp]/=mem[imem++]; 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]]inicio<=ip && last->fin>=ip) { - printf("(%d) last_lin\n",ip); + //printf("(%d) last_lin\n",ip); return last_lin; } diff --git a/ediv/src/stub/stub.c b/ediv/src/stub/stub.c index 108f9fb..61ff410 100644 --- a/ediv/src/stub/stub.c +++ b/ediv/src/stub/stub.c @@ -340,13 +340,12 @@ int main(int argc, char* argv[]) stub_quit(0); if(teclas[SDLK_p] && (teclas[SDLK_RALT] || teclas[SDLK_LALT])) { - strcpy(capturef,fp.nombre_program); - strcat(capturef,".bmp"); - SDL_SaveBMP(fp.screen,capturef); - + strcpy(capturef,fp.nombre_program); + strcat(capturef,".bmp"); + SDL_SaveBMP(fp.screen,capturef); } - interprete(); + interprete(); #ifdef _DEBUG if(sp!=0) printf("PANIC! Quedan restos en la pila!! (sp=%d)\n",sp); diff --git a/ediv/src/visual c/ediv_ws.suo b/ediv/src/visual c/ediv_ws.suo index 45fda0f5b5cd864bf52b4af4469419f9e8d4f43c760eea7ba785d233f47a51c2..8c266ccd303aacdb4e2d79a7f0a9f971a2ea1ef6d22c49b179e94930ba413c6d 100644 GIT binary patch delta 1023 zcmaJ=Ur1A76hGg(ci!plyxU}MC^@G&3k=(quxxJH{Ih9NDiQ?czqPETX@AHPoX?h} z$A=)S)k8=Tlo!IMu#o;x8a@R+6um`(`QS?h*7;PT=+e2Id(ZFu`+oQP&X-KFMVPHsbX2u2ckM9vk}%uED{u*X;Dss?48X`+OMwp3Y+O{V zhCH&kW^y!b4l|=ni1X#bIg3_u01jB9xX-vt%p&j!zgdRZoH}4l%U}WyZ*8@H;s4M@ z;^y&Z)9HVb1kDYf&Zoht_e(GIn zxM^+X9#cbkrB-Q;sNAGDUhqr^9H8R0o4LVto+1mRZ*k1qJJxn++LzQjBG3xWuph$o z#Au0bh|`|MpdT|uH_nQZWS|nNUjN69ri*(T)NuJALua57O##n%{RqaReYSkf9meJ8 zq?~|uY8xm1?GQ($BH?stCT|{x4puN#jhIo-KJT# z(SN-5D)v@N8mx-`Q$_pm8E1oSh9MfFYorRF1$`CGN;AU+#U>u4lp}aMoNbsP>p5u| zPszMNDO02-@{r(1M*+I3bD0HCmAJ)n=!bI57i^dx+9Cfn#u%#Uvbi-m;ZkT+n!oR} ze0}oZJun6wpZH(8D%Ua2+VhsNW0tIoyGdSf;*RaJ(eND_M@ XMY!Us;p6Ow61pNDsD#~Q`N97S*3k!_ delta 1497 zcmaKsSxl2z6vxjk{aOlNTWG6oMeT-5#w9FHjFhdUw1|>`F*-)$3X;JxI@FnnkXT=Q zP~!xSZxgq~_(F_I6Q7K6i<&4ZF5~Wq%ae-67~>cN^S_0vqn+O5_uX^uxy!ldp7X_a zi`af~bf<=Q>Qpgwtf5(SYv+qB_Gn$EQ~67l-r9CXWDrqoPJFYrR;W72!=sJ+wfX!` zSt$1MT-^oj5Qf>NpDOy|W%?aTrg3!Y$TYQH&HiSsl8b>sZa2W{SGNR6Q9*oL~GIeq%BGtv1T=-Y2d#tUg;{ZX70gYB5a$Ac55F(;hbVe z>m>-6!Bubt{0**wesCS!05`!c@E5oZ?tr`C9=H!4fC2Cb$P*rq_D|411<$~9Io8#% zu6I^U$3OXl9Q2>ymFUm;KXJXO#2TeGT0_fd6|NG+RoiGI8_SCMap_D;If9%;K`McL zBm|u6tmX+-^*pJvdF+IgZ^h>Wd)OTQ)jct#`O8zXJGhe7z`?PuloR9U118~ir?h?E zWRR}~SZSmPMR=%u@k}B+z0mXtJk9X1C;i%5!Jgm>9d2DtooqIBq>RN-`BFBAjD~gu zayu|^e~#7g1EkqNm73y#G@1KDc4Z8*ak9)ta}mZ$fh-6#9&q~DTRq;Yhq3^1jsO|+ zCh~J#bsl@QHn%su!*Atf4f2WFkgILDaKg1hUz%loJ+myYPab|G;FuXlOW-P;o(`!7 zPFwj+)gL^qM$K-bO~_`s|1aE9)xt*uN?w{$