From 17321e69a8def6a03df16d1ff5dbf9a7d94107fe0f1844d4d6d2bb42be115526 Mon Sep 17 00:00:00 2001 From: Gabriel Lorenzo Date: Tue, 24 Sep 2002 04:38:38 +0000 Subject: [PATCH] muchos bugs corregidos!! LEER CHANGELOG KE PA ESO ESTA --- ediv/CHANGE_LOG.txt | 6 +- ediv/bin/ediv.cfg | 2 +- ediv/src/dlls/dlls.suo | Bin 19968 -> 18944 bytes ediv/src/dlls/edivstd/edivstd.c | 2 +- ediv/src/dlls/graphics/graphics.h | 1 + ediv/src/dlls/graphics/main.c | 17 ++-- ediv/src/shared/extern.h | 4 +- ediv/src/shared/varindex.h | 136 ------------------------------ ediv/src/stub/ediv_export.c | 2 +- ediv/src/stub/fatal.c | 1 + ediv/src/stub/inte.c | 4 +- ediv/src/stub/inte.h | 4 +- ediv/src/stub/kernel.c | 2 + ediv/src/stub/stub.c | 2 +- ediv/src/visual c/ediv_ws.suo | Bin 24576 -> 22016 bytes 15 files changed, 31 insertions(+), 152 deletions(-) diff --git a/ediv/CHANGE_LOG.txt b/ediv/CHANGE_LOG.txt index dadf6ec..e36b568 100644 --- a/ediv/CHANGE_LOG.txt +++ b/ediv/CHANGE_LOG.txt @@ -21,7 +21,11 @@ * 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) + 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 -------- diff --git a/ediv/bin/ediv.cfg b/ediv/bin/ediv.cfg index 4227b8d..325cc28 100644 --- a/ediv/bin/ediv.cfg +++ b/ediv/bin/ediv.cfg @@ -3,7 +3,7 @@ motd_host=divsite.net ; Hostname de donde coger el motd [default_compiler_options] -max_process=20 ; Por poner algo xD +max_process=1024 ; Por poner algo xD free_sintax=0 ; No hay sintaxis libre extended_conditions=0 ; No hay condiciones extendidas case_sensitive=0 ; Sin case sensitive diff --git a/ediv/src/dlls/dlls.suo b/ediv/src/dlls/dlls.suo index aa6f6ad2a9f7f8e76b7662411b04d450808855d50c1934629f8bddb1eae367e6..52ded97ab42b37a073354b3799572bbc654e53ab5d1838a24564f36897a1ebc5 100644 GIT binary patch delta 643 zcmYjO&ubGw6n>NJCQGxMnlz1-lpbmh221I$gIJA0DVVlk3f}CY+Ey*B8q!fp4-#nc z)JygS6f9l@51woXPhO;Z@F27nN^kuyR^PrSz3{Emnc))=oEWrr>xG_cRGIAvYoKgJaM9m8C*3|=w6Tc;rOR;AeO zc!Y@8ouVN2ov)EN@oMt5F!(t6)9ykN(5*!KMqUM-+k$s{W1P?4_tJM9aS5!`reK-A z7nTZIw~}2IVQVAZ?W!PC3Bil)pzN;LSpcavFd^}9wFkJ|>Kj#`vzsP=N)7N~ZZbMf zH+erdqu%w7$8TKLZ7{TGCdqR6m$3(c?~XLZ4j+v?FvGvnnDMvA-b6=rGmq#cYz&6kb$yF|4-)kt zTA=GR3%u3rER?X#jlvIAzvi2*+Qo{UfK+?_Uo|N1IU)l@C;5k};MPV=l_t$7d(&xt WTP|dDgH`0Op{pg_dS-l39ykYB?8!a= delta 950 zcmb7@O-NKx6vxk<_huZNd80FqI--S!#uREZqh=+3kR=XkjBF znt0S=6|0Xsdc~L;cEle%H%@oX3WbQG)jXsIHIa$C3f8dLY4!3CwM7%ol(McasKwl1 zRe8`nW1U4H4vYrN;WU#FJfhVJg=5+i(?f-a99P5%UU9szXaAMJNM=k4ewAO!_nhTp zu11aW;LuVomL+soJI8E(PX7KHdR9o-U2xd8x{~gY-2)+OtEgv(?71mnqZ_>S`wPv!-TK+dF@eYqA+6to%>1vP0`m*fz-sf*6jB^n?dH=+tz`W!{*4E0kF zLY)W^#iUnyB9QuEkmB)l92el!;e^M5LuTuP*bRt!rQWiy*%vTmLm&3+?UKWgE2&rvbVZ6#&OFm>_w-9>z?q>yh0_tcV~%IE-gHTiJ! zrFPT0QU&!O9iaeSMrwbcqLL_=EXtg~jMml)`Ic6oqO#y=PwVyq8FGI8m}&%5ET UmVcTNZ89soFWt$RT0c1S3pdIalK=n! diff --git a/ediv/src/dlls/edivstd/edivstd.c b/ediv/src/dlls/edivstd/edivstd.c index 5950ba5..a1ebc52 100644 --- a/ediv/src/dlls/edivstd/edivstd.c +++ b/ediv/src/dlls/edivstd/edivstd.c @@ -23,7 +23,7 @@ * DIV, tal como las opciones de compilaci๓n, estructura reserved, etc. */ -#include +#include "export.h" //#include "../../shared/varindex.h" #include "main.h" diff --git a/ediv/src/dlls/graphics/graphics.h b/ediv/src/dlls/graphics/graphics.h index 46741be..2dea296 100644 --- a/ediv/src/dlls/graphics/graphics.h +++ b/ediv/src/dlls/graphics/graphics.h @@ -49,3 +49,4 @@ int eDIV_GET_REAL_POINT(FUNCTION_PARAMS) ; int eDIV_GRAPHIC_INFO(FUNCTION_PARAMS) ; int eDIV_FADE(FUNCTION_PARAMS) ; +int Dibuja(SDL_Surface *src , SDL_Rect srcrect , SDL_Rect dstrect , int z , int trans ); diff --git a/ediv/src/dlls/graphics/main.c b/ediv/src/dlls/graphics/main.c index 40a7869..6f200fb 100644 --- a/ediv/src/dlls/graphics/main.c +++ b/ediv/src/dlls/graphics/main.c @@ -144,6 +144,7 @@ int ExportaFuncs(EXPORTAFUNCS_PARAMS) GLOBAL_STRUCT("video_modes",31); _INT("wide",0); _INT("height",0); + _INT("bpp",0); // NUEVO _INT("mode",0); END_STRUCT; @@ -440,9 +441,9 @@ int eDIV_COLLISION(FUNCTION_PARAMS) r1.h = files[f1].mapa[g1].Surface->h ; id2 = a ; g2 = local("graph",id2) ; + f2 = local("file",id2); if ( files[f2].existe == 0 || files[f2].mapa[g2].existe == 0 ) return -1 ; - f2 = local("file",id2) ; r2.x = local("x",id2) ; r2.y = local("y",id2) ; r2.w = files[f2].mapa[g2].Surface->w ; @@ -470,9 +471,9 @@ int eDIV_COLLISION(FUNCTION_PARAMS) r1.h = files[f1].mapa[g1].Surface->h ; id2 = a ; g2 = local("graph",id2) ; + f2 = local("file",id2) ; if ( files[f2].existe == 0 || files[f2].mapa[g2].existe == 0 ) return -1 ; - f2 = local("file",id2) ; r2.x = local("x",id2) ; r2.y = local("y",id2) ; r2.w = files[f2].mapa[g2].Surface->w ; @@ -1208,6 +1209,7 @@ int eDIV_LOAD_FPG(FUNCTION_PARAMS2) } fclose(r);*/ fclose(f); + return 0; } int eDIV_GET_POINT(FUNCTION_PARAMS2) @@ -1270,6 +1272,7 @@ int eDIV_GRAPHIC_INFO(FUNCTION_PARAMS2) case 3: return files[f].mapa[g].cpoint[0].y ; } + return -1; } @@ -1291,7 +1294,7 @@ int eDIV_FADE(FUNCTION_PARAMS2) FILE * fichero ; FILE * memo ; -void frame(FUNCTION_PARAMS2 ) +void frame(FUNCTION_PARAMS) { static int una_vez = 1 ; int i , temp , id , f , g , r , z , trans; @@ -1299,7 +1302,6 @@ void frame(FUNCTION_PARAMS2 ) fichero = fopen( "draw.txt" , "w" ) ; - if ( define_region == 1) { @@ -1316,7 +1318,7 @@ void frame(FUNCTION_PARAMS2 ) //SDL_FillRect( screen , NULL , 0 ) ; SDL_BlitSurface( fondo , NULL , screen , NULL ) ; -// Draws + // Draws z = global("draw_z"); for ( i = 0 ; i <= last_draw ; i++ ) { @@ -1337,7 +1339,8 @@ void frame(FUNCTION_PARAMS2 ) dstrect.y = draws[i].y ; dstrect.w = 0 ; // Se ignora dstrect.h = 0 ; // Se ignora - Dibuja( files[f].mapa[g].Surface , srcrect , dstrect , z ) ; + //Dibuja( files[f].mapa[g].Surface , srcrect , dstrect , z , 0 ) ; + Dibuja( draws[i].Surface , srcrect , dstrect , z , draws[i].t ) ; } } } @@ -1432,6 +1435,8 @@ void frame(FUNCTION_PARAMS2 ) SDL_Flip(screen) ; + fclose(fichero); + } void first_load(FUNCTION_PARAMS2) diff --git a/ediv/src/shared/extern.h b/ediv/src/shared/extern.h index 3f40c07..0919a29 100644 --- a/ediv/src/shared/extern.h +++ b/ediv/src/shared/extern.h @@ -245,8 +245,8 @@ struct _fun_params{ int *pila ; int *sp ; int *mem ; - int *varindex ; - struct _procs_s *procs_s ; + varindex_t *varindex ; + struct _procs_s (*procs_s)[4096] ; int *num_procs ; int *proc_orden ; int *proceso_actual ; diff --git a/ediv/src/shared/varindex.h b/ediv/src/shared/varindex.h index b6235e3..efc68d9 100644 --- a/ediv/src/shared/varindex.h +++ b/ediv/src/shared/varindex.h @@ -54,141 +54,5 @@ varindex_t* varindex; #define reservedptr(nombre) GetVarOffset(v_reserved,nombre) #define localptr(nombre) GetVarOffset(v_local,nombre) -/* -////////////////////////////// -/// GLOBALES /// -////////////////////////////// - -#define _glo_timer 0 -#define _glo_max_process_time 1 -#define _glo_argc 2 -#define _glo_argv 3 - - -////////////////////////////// -/// LOCALES /// -////////////////////////////// - -// Estructura reserved - -#define _res_process_id 4 -#define _res_id_scan 5 -#define _res_process_type 6 -#define _res_type_scan 7 -#define _res_status 8 -#define _res_parameters 9 -#define _res_param_offset 10 -#define _res_program_index 11 -#define _res_stack_pointer 12 -#define _res_is_executed 13 -#define _res_is_painted 14 -#define _res_m8_object 15 -#define _res_old_ctype 16 -#define _res_frame_percent 17 -#define _res_box_x0 18 -#define _res_box_y0 19 -#define _res_box_x1 20 -#define _res_box_y1 21 -#define _res_f_count 22 -#define _res_caller_id 23 - -// Jerarquํa de procesos -#define _loc_father 24 -#define _loc_son 25 -#define _loc_smallbro 26 -#define _loc_bigbro 27 - -// Variables locales varias -#define _loc_priority 28 -#define _loc_ctype 29 -#define _loc_x 30 -#define _loc_y 31 -#define _loc_z 32 -#define _loc_graph 33 -#define _loc_size 34 -#define _loc_angle 35 -#define _loc_region 36 -#define _loc_file 37 -#define _loc_xgraph 38 -#define _loc_height 39 -#define _loc_cnumber 40 -#define _loc_resolution 41 -#define _loc_flags 42 - -#define _glo_draw_z 43 -#define _glo_scroll 44 -#define _glo_fps 45 -*/ - -/*enum { - -////////////////////////////// -/// GLOBALES /// -////////////////////////////// - - _glo_timer, - _glo_max_process_time, - _glo_argc, - _glo_argv, - _glo_draw_z, - _glo_scroll, - _glo_fps, - - -////////////////////////////// -/// LOCALES /// -////////////////////////////// - -// Estructura reserved - - _res_process_id, - _res_id_scan, - _res_process_type, - _res_type_scan, - _res_status, - _res_parameters, - _res_param_offset, - _res_program_index, - _res_stack_pointer, - _res_is_executed, - _res_is_painted, - _res_m8_object, - _res_old_ctype, - _res_frame_percent, - _res_box_x0, - _res_box_y0, - _res_box_x1, - _res_box_y1, - _res_f_count, - _res_caller_id, - -// Jerarquํa de procesos - _loc_father, - _loc_son, - _loc_smallbro, - _loc_bigbro, - -// Variables locales varias - _loc_priority, - _loc_ctype, - _loc_x, - _loc_y, - _loc_z, - _loc_graph, - _loc_size, - _loc_angle, - _loc_region, - _loc_file, - _loc_xgraph, - _loc_height, - _loc_cnumber, - _loc_resolution, - _loc_flags, - _loc_transparency, - - - ___last // por si acaso - -};*/ #endif // __VARINDEX_H \ No newline at end of file diff --git a/ediv/src/stub/ediv_export.c b/ediv/src/stub/ediv_export.c index e0cf564..d349cab 100644 --- a/ediv/src/stub/ediv_export.c +++ b/ediv/src/stub/ediv_export.c @@ -758,7 +758,7 @@ int Call_Entrypoint(int ep, ...) case EDIV_frame: case EDIV_first_load: { - void (*funcion_ep)(void); + void (*funcion_ep)(struct _fun_params* fp); funcion_ep=entrypoints[i].hfuncion; funcion_ep(&fp) ; } diff --git a/ediv/src/stub/fatal.c b/ediv/src/stub/fatal.c index 82351cb..c3fd60b 100644 --- a/ediv/src/stub/fatal.c +++ b/ediv/src/stub/fatal.c @@ -109,6 +109,7 @@ static void eDIV_Parachute(int sig) #endif fprintf(stderr,"\ndbg: num_procesos:%d, proceso actual:%d\n",num_proc_orden,proceso_actual); fprintf(stderr,"dbg: imem:%d, imem_max:%d, mem:0x%X\n",imem,imem_max,mem); + fprintf(stderr,"dbg: iloc:%d, iloc_len:%d, iloc_pub_len:%d, inicio_privadas:%d\n",iloc,iloc_len,iloc_pub_len,inicio_privadas); fprintf(stderr,"dbg: sp:%d, pila:0x%X, pila_max:%d\n",sp,pila,pila_max); if(pila) { int s,e,i; diff --git a/ediv/src/stub/inte.c b/ediv/src/stub/inte.c index 6d76541..dd86887 100644 --- a/ediv/src/stub/inte.c +++ b/ediv/src/stub/inte.c @@ -271,7 +271,7 @@ int proceso( int num ) case lfun://25 NO USADO break ; case lcal://26 - assert(num_proc_orden<153); + //assert(num_proc_orden<153); devolver++ ; v1 = busca_proc_libre() ; procs_s[v1].imem = mem[imem++] ; @@ -311,6 +311,8 @@ int proceso( int num ) break; case ltyp://32 procs_s[num_proc].id = mem[2] + ( num_proc * iloc_len ) ; + reserved("process_id",procs_s[num_proc].id)=procs_s[num_proc].id; + memcpy(&mem[procs_s[num_proc].id],&mem[iloc],iloc_pub_len<<2); if ( procs_s[num_proc].tipo != 0 ) critical_error(3); // redefinici๓n del tipo de proceso procs_s[num_proc].tipo = mem[ imem++ ] ; diff --git a/ediv/src/stub/inte.h b/ediv/src/stub/inte.h index 6858c2d..3e0ed0d 100644 --- a/ediv/src/stub/inte.h +++ b/ediv/src/stub/inte.h @@ -183,9 +183,9 @@ -//อออออออออออออออออออออออออออออออออออออออออออออออออออออออออออออออออออออออออออออ +//----------------------------------------------------------------------------- // Variables locales del sistema de sprites (las primeras no son pฃblicas) -//อออออออออออออออออออออออออออออออออออออออออออออออออออออออออออออออออออออออออออออ +//----------------------------------------------------------------------------- #define _Id 0 //Para comprobar validez de accesos externos #define _IdScan 1 //Recorrido del resto de los procesos (p.ej.colisiones) diff --git a/ediv/src/stub/kernel.c b/ediv/src/stub/kernel.c index dc367f3..58c6491 100644 --- a/ediv/src/stub/kernel.c +++ b/ediv/src/stub/kernel.c @@ -24,6 +24,8 @@ * */ +// se supone ke todo esto sirve para algo? (Er_Makina) + #include #include diff --git a/ediv/src/stub/stub.c b/ediv/src/stub/stub.c index 09999c8..6971798 100644 --- a/ediv/src/stub/stub.c +++ b/ediv/src/stub/stub.c @@ -307,7 +307,7 @@ int main(int argc, char* argv[]) fprintf(file_tiempo , "fps: %d\n" , 1000/(tiempo - tiempo_pre) ) ; */ - // PETA EN AMD???? + // PETA EN AMD???? <-- y esto? a mi no me peta.. (Er_Makina) tiempo_i ++ ; if ( tiempo_i > 99 ) tiempo_i = 0 ; tiempo[ tiempo_i ] = SDL_GetTicks() ; diff --git a/ediv/src/visual c/ediv_ws.suo b/ediv/src/visual c/ediv_ws.suo index d60601b9bd92bb20e188bb5945274b83dc8e6e26865429391624fa8508a61816..a2d205917a249f2d08a10fb5ac12c8239132f6f3bf38355cbcfe9dfc4124dfc3 100644 GIT binary patch delta 441 zcmZoTz}T>caYF=?;J^R>|4TA3Fo0+tq68FB24WQ;Rs~`;AXW!r4ItJ8VsRke z7#P7gi6w_G;rI96=Hx?+%s{aNvYV?|ycl_aX8jig@kzuAJtKe4A@I-5Gg6E&&+?)5yvSc1JHzH*f^{q)o>(=jB2Zdq@=r1E$u0s0lS{+{ct8#Txe5e8UfTRc z{DLqKKTuQvDgzPK_F>}A1v(&?AsT3F>|{k2;mIj7N}C(>m>8LWE^pDdne5=`u*igI wW8iwmi3x#|%Pe#@=LB3~oMd)_gAc_lGakmtk1Px}7X;~WPmXb3vdB*e04nv3IRF3v delta 1927 zcmchX$xl;J6voee9Vl1}6lpPa76GHskqVIr)q+MPVxrLnG0Gqq8H}ii6k11c)*feA z7#6y40^i;cb%6_1)*3hd0lHw}{QPcd2@7;3-k0CIr{~_+oO`}=PvoJ942!{?$}&3< z%>%zQO>@L&Y0rnf04$Wgt6LqWTo`$P?;5l8b72f^4T`9~$+Bqp)zGfm=RyZxS+06a zzfqViuu}p4NaHbmHjf*&nXbTb38+=ZUXj-h>nP{|$3Q0tfiBPu!XN^knu0*3!= zM_~1t@TwsX?ZtdvuC>u2?5~0KQGJs7N{D;hksemsP3pJwZoL@c4qK-o2g?Ke)wanj zPcH+QJl!FCl{r1`NI2DT``Zk&OiJ36t?KxS&59ll;-6!*+pua^nete5@7GDtPn3#8VOT6vA7K zJ)T&4-5#&6&`)G1qi$3n0h+c@Azjmb8EtIb%c9T-ehVISCW$ZnCQymk-dQJO3n$W9 zO|?jOGaW#3n~>y#Q~=M6$BgRGwCq0weH>>v0ZxKb;50Y`dO$BY3(kS_-~zY^qTn*< z2Umf-1C03^xDIZBo8T6>O=P4yF#32b$vL#UQ4F}0sDH#HwU;KN%AwKisZC&iPJ1!8M~xOf2wxDKMZ@TGj#k(V!TUmo?XRBP7n60(Nn_{^=v zQkyAt6Hb(KH8g2KY1jWBO{65tAPM(79pcBdaW&E&REVsdYFtHW%Lwb>If@t?XQXZ> z>l{~B({lK>bDmD2FVn_1(FUfA?LX9XEWTXC=P)i8L~g;aEwW{Rb{?~27;La? zJZiBgm%`csGT^t*%E1Tm!CTC$`Ak7pMhPzF0i?Et*3fK{eU8|@+9A8o->aq>%1B*i zN|8kODO7wD-6t`!e-Mu=0*oiarYGt;MV<6UUh kZW?{yvwnK^=mSTJi=x3{HB$6Gg{|AH>SLc(3