From 5481e87aa18f270765e998b9d13f1058db7a6169b4f84a7134cf034087c4653c Mon Sep 17 00:00:00 2001 From: Gabriel Lorenzo Date: Sat, 5 Apr 2003 17:45:49 +0000 Subject: [PATCH] =?UTF-8?q?a=C3=B1adido=20soporte=20de=20word=20release=20?= =?UTF-8?q?0.1.3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dlls/src/dinmem/win32/dinmem.vcproj | 2 +- dlls/src/edivstd/win32/edivstd.vcproj | 2 +- dlls/src/file/file.c | 4 + dlls/src/file/win32/file.vcproj | 2 +- dlls/src/graphics/win32/graphics.vcproj | 2 +- dlls/src/input/win32/input.vcproj | 2 +- dlls/src/math/win32/math.vcproj | 2 +- dlls/src/text/win32/text.vcproj | 2 +- ediv/CHANGE_LOG.txt | 4 + ediv/src/ediv/language.c | 14 +- ediv/src/shared/shared.h | 6 +- ediv/src/stub/inte.c | 349 ++++++++++++++++++ ediv/src/stub/language.c | 2 +- ediv/src/visual c/ediv/ediv.vcproj | 2 +- ediv/src/visual c/ediv_ws.suo | Bin 17408 -> 17408 bytes ediv/src/visual c/encrypt/encrypt.vcproj | 7 +- ediv/src/visual c/stub/stub.vcproj | 4 +- util/src/bmp2fnt/win32/bmp2fnt.vcproj | 4 +- util/src/doku/win32/doku.vcproj | 2 +- util/src/iconchanger/iconchanger.c | 2 +- util/src/iconchanger/win32/iconchanger.vcproj | 2 +- 21 files changed, 388 insertions(+), 28 deletions(-) diff --git a/dlls/src/dinmem/win32/dinmem.vcproj b/dlls/src/dinmem/win32/dinmem.vcproj index 3c688d8..e60b04c 100644 --- a/dlls/src/dinmem/win32/dinmem.vcproj +++ b/dlls/src/dinmem/win32/dinmem.vcproj @@ -60,7 +60,7 @@ diff --git a/dlls/src/edivstd/win32/edivstd.vcproj b/dlls/src/edivstd/win32/edivstd.vcproj index 0c5a15e..5ab827a 100644 --- a/dlls/src/edivstd/win32/edivstd.vcproj +++ b/dlls/src/edivstd/win32/edivstd.vcproj @@ -60,7 +60,7 @@ diff --git a/dlls/src/file/file.c b/dlls/src/file/file.c index 5e9c142..c50f073 100644 --- a/dlls/src/file/file.c +++ b/dlls/src/file/file.c @@ -22,6 +22,10 @@ int ExportaFuncs(EXPORTAFUNCS_PARAMS) FUNCTION("fseek",3,eDiv_Fseek) ; FUNCTION("flush",0,eDiv_Flush) ; FUNCTION("fclose",1,eDiv_Fclose) ; + +// FUNCTION("load",2,eDIV_Load); +// FUNCTION("save",3,eDIV_Save); + return TRUE ; } diff --git a/dlls/src/file/win32/file.vcproj b/dlls/src/file/win32/file.vcproj index ad9fa86..0622ed6 100644 --- a/dlls/src/file/win32/file.vcproj +++ b/dlls/src/file/win32/file.vcproj @@ -59,7 +59,7 @@ diff --git a/dlls/src/graphics/win32/graphics.vcproj b/dlls/src/graphics/win32/graphics.vcproj index 9f9d2d6..7b52c6a 100644 --- a/dlls/src/graphics/win32/graphics.vcproj +++ b/dlls/src/graphics/win32/graphics.vcproj @@ -60,7 +60,7 @@ diff --git a/dlls/src/input/win32/input.vcproj b/dlls/src/input/win32/input.vcproj index 9664d64..c0a33fc 100644 --- a/dlls/src/input/win32/input.vcproj +++ b/dlls/src/input/win32/input.vcproj @@ -60,7 +60,7 @@ diff --git a/dlls/src/math/win32/math.vcproj b/dlls/src/math/win32/math.vcproj index f5b18a5..0c6067e 100644 --- a/dlls/src/math/win32/math.vcproj +++ b/dlls/src/math/win32/math.vcproj @@ -59,7 +59,7 @@ diff --git a/dlls/src/text/win32/text.vcproj b/dlls/src/text/win32/text.vcproj index c51408c..fbdf673 100644 --- a/dlls/src/text/win32/text.vcproj +++ b/dlls/src/text/win32/text.vcproj @@ -59,7 +59,7 @@ >=(word)pila[sp]); + sp-=2; + break; + case lslawor: + pila[sp-2]=(unsigned int)(memw[pila[sp-2]*2+pila[sp-1]]<<=(word)pila[sp]); + sp-=2; + break; + case lcpawor: + _param_offset=reservedptr("param_offset"); + if ((unsigned)pila[mem[procs_s[num_proc].id+_param_offset]]<256) { + memw[pila[sp-1]*2+pila[sp]]=(word)pila[mem[procs_s[num_proc].id+_param_offset]]; + } else { + if (pila[mem[procs_s[num_proc].id+_param_offset]]255) if ((mem[pila[sp-1]-1]&0xFFFFF)+1255) strcpy((char*)&mem[pila[sp-1]],(char*)&mem[pila[sp]]); + else sprintf((char*)&mem[pila[sp-1]],"%c\0",pila[sp]); + sp--; + break; + + case lstrfix: + if (pila[sp-1]>=(oo=strlen(&memb[pila[sp-2]*4]))) { + for (;oo255) oo=strlen((char*)&mem[pila[sp]]); else oo=1; + if ((mem[pila[sp-1]-1]&0xFFFFF)+1255) strcat((char*)&mem[pila[sp-1]],(char*)&mem[pila[sp]]); + else sprintf((char*)&mem[pila[sp-1]],"%s%c\0",(char*)&mem[pila[sp-1]],pila[sp]); + sp--; + break; + + case lstradd: /* Strcat "en el aire" (ojo, el aire tiene tambien 0xDAD00402) */ +/* #ifdef DEBUG + if ((unsigned)pila[sp-1]>255) oo=strlen((char*)&mem[pila[sp-1]]); else oo=1; + if ((unsigned)pila[sp]>255) oo+=strlen((char*)&mem[pila[sp]]); else oo+=1; + if (oo>=1028) { + sp--; v_function=-2; e(140); + if (call_to_debug) { process_stoped=id; return; } + break; + } + #endif*/ + if ((unsigned)pila[sp-1]>255) { + if ((unsigned)pila[sp]>255) { + sprintf((char*)&mem[nullstring[nstring]],"%s%s\0",(char*)&mem[pila[sp-1]],(char*)&mem[pila[sp]]); + } else { + sprintf((char*)&mem[nullstring[nstring]],"%s%c\0",(char*)&mem[pila[sp-1]],pila[sp]); + } + } else { + if ((unsigned)pila[sp]>255) { + sprintf((char*)&mem[nullstring[nstring]],"%c%s\0",pila[sp-1],(char*)&mem[pila[sp]]); + } else { + sprintf((char*)&mem[nullstring[nstring]],"%c%c\0",pila[sp-1],pila[sp]); + } + } + pila[--sp]=nullstring[nstring]; + nstring=((nstring+1)&3); + break; + + case lstrdec: /* cambio de tamaño "en el aire" (no da error, hace lo que puede) */ + oo=strlen((char*)&mem[pila[sp-1]]); + if (oo<1028) { + strcpy((char*)&mem[nullstring[nstring]],(char*)&mem[pila[sp-1]]); + if (pila[sp]>0) { // Quitar caracteres + if (pila[sp]>=oo) memb[nullstring[nstring]*4]=0; + else memb[nullstring[nstring]*4+oo-pila[sp]]=0; + } else if (pila[sp]<0) { // A¤adir (?) caracteres (por homogeneidad) + pila[sp]=oo-pila[sp]; // Nueva longitud + if (pila[sp]>1025) pila[sp]=1025; + for (;oo0) { // Quitar caracteres + if (pila[sp]>=oo) memb[pila[sp-1]*4]=0; + else memb[pila[sp-1]*4+oo-pila[sp]]=0; + } else if (pila[sp]<0) { // A¤adir (?) caracteres (por homogeneidad) + pila[sp]=oo-pila[sp]; // Nueva longitud + for (;oo255) pila[sp]=strlen((char*)&mem[pila[sp]]); else pila[sp]=1; + break; + + case lstrigu: + if ((unsigned)pila[sp-1]>255) { + if ((unsigned)pila[sp]>255) { + if (strcmp((char*)&mem[pila[sp-1]],(char*)&mem[pila[sp]])) pila[sp-1]=0; else pila[sp-1]=1; + } else { + if (strcmp((char*)&mem[pila[sp-1]],(char*)&pila[sp])) pila[sp-1]=0; else pila[sp-1]=1; + } + } else { + if ((unsigned)pila[sp]>255) { + if (strcmp((char*)&pila[sp-1],(char*)&mem[pila[sp]])) pila[sp-1]=0; else pila[sp-1]=1; + } else { + pila[sp-1]=(pila[sp-1]==pila[sp]); + } + } sp--; break; + + case lstrdis: + if ((unsigned)pila[sp-1]>255) { + if ((unsigned)pila[sp]>255) { + if (strcmp((char*)&mem[pila[sp-1]],(char*)&mem[pila[sp]])) pila[sp-1]=1; else pila[sp-1]=0; + } else { + if (strcmp((char*)&mem[pila[sp-1]],(char*)&pila[sp])) pila[sp-1]=1; else pila[sp-1]=0; + } + } else { + if ((unsigned)pila[sp]>255) { + if (strcmp((char*)&pila[sp-1],(char*)&mem[pila[sp]])) pila[sp-1]=1; else pila[sp-1]=0; + } else { + pila[sp-1]=(pila[sp-1]!=pila[sp]); + } + } sp--; break; + break; + + case lstrmay: + if ((unsigned)pila[sp-1]>255) { + if ((unsigned)pila[sp]>255) { + if (strcmp((char*)&mem[pila[sp-1]],(char*)&mem[pila[sp]])>0) pila[sp-1]=1; else pila[sp-1]=0; + } else { + if (strcmp((char*)&mem[pila[sp-1]],(char*)&pila[sp])>0) pila[sp-1]=1; else pila[sp-1]=0; + } + } else { + if ((unsigned)pila[sp]>255) { + if (strcmp((char*)&pila[sp-1],(char*)&mem[pila[sp]])>0) pila[sp-1]=1; else pila[sp-1]=0; + } else { + pila[sp-1]=(pila[sp-1]>pila[sp]); + } + } sp--; break; + break; + + case lstrmen: + if ((unsigned)pila[sp-1]>255) { + if ((unsigned)pila[sp]>255) { + if (strcmp((char*)&mem[pila[sp-1]],(char*)&mem[pila[sp]])<0) pila[sp-1]=1; else pila[sp-1]=0; + } else { + if (strcmp((char*)&mem[pila[sp-1]],(char*)&pila[sp])<0) pila[sp-1]=1; else pila[sp-1]=0; + } + } else { + if ((unsigned)pila[sp]>255) { + if (strcmp((char*)&pila[sp-1],(char*)&mem[pila[sp]])<0) pila[sp-1]=1; else pila[sp-1]=0; + } else { + pila[sp-1]=(pila[sp-1]255) { + if ((unsigned)pila[sp]>255) { + if (strcmp((char*)&mem[pila[sp-1]],(char*)&mem[pila[sp]])<=0) pila[sp-1]=1; else pila[sp-1]=0; + } else { + if (strcmp((char*)&mem[pila[sp-1]],(char*)&pila[sp])<=0) pila[sp-1]=1; else pila[sp-1]=0; + } + } else { + if ((unsigned)pila[sp]>255) { + if (strcmp((char*)&pila[sp-1],(char*)&mem[pila[sp]])<=0) pila[sp-1]=1; else pila[sp-1]=0; + } else { + pila[sp-1]=(pila[sp-1]<=pila[sp]); + } + } sp--; break; + break; + + case lstrmai: + if ((unsigned)pila[sp-1]>255) { + if ((unsigned)pila[sp]>255) { + if (strcmp((char*)&mem[pila[sp-1]],(char*)&mem[pila[sp]])>=0) pila[sp-1]=1; else pila[sp-1]=0; + } else { + if (strcmp((char*)&mem[pila[sp-1]],(char*)&pila[sp])>=0) pila[sp-1]=1; else pila[sp-1]=0; + } + } else { + if ((unsigned)pila[sp]>255) { + if (strcmp((char*)&pila[sp-1],(char*)&mem[pila[sp]])>=0) pila[sp-1]=1; else pila[sp-1]=0; + } else { + pila[sp-1]=(pila[sp-1]>=pila[sp]); + } + } sp--; break; + break; + + case lcpastr: +/* #ifdef DEBUG + if ((mem[pila[sp]-1]&0xFFF00000)!=0xDAD00000) { + sp--; mem[id+_Param]++; v_function=-2; e(164); + if (call_to_debug) { process_stoped=id; return; } + break; + } + if ((unsigned)pila[mem[id+_Param]]>255) { + if ((mem[pila[sp]-1]&0xFFFFF)+1255) + strcpy((char*)&mem[pila[sp]],(char*)&mem[pila[mem[id+_Param]]]); + else sprintf((char*)&mem[pila[sp]],"%c\0",pila[mem[id+_Param]]); + sp--; mem[id+_Param]++; + break; +#endif + + /* Comprobación de punteros nulos */ + case lnul: +/* #ifdef DEBUG + if (!pila[sp]) { + v_function=-2; e(165); + if (call_to_debug) { process_stoped=id; return; } + } + #endif*/ + break; } #ifdef DBG diff --git a/ediv/src/stub/language.c b/ediv/src/stub/language.c index ee234fd..c617188 100644 --- a/ediv/src/stub/language.c +++ b/ediv/src/stub/language.c @@ -1,6 +1,6 @@ /* * eDiv Compiler - * Copyleft (C) 2000-2002 Sion Entertainment + * Copyleft (C) 2000-2003 Sion Entertainment * http://www.sion-e.com * * This program is free software; you can redistribute it and/or modify diff --git a/ediv/src/visual c/ediv/ediv.vcproj b/ediv/src/visual c/ediv/ediv.vcproj index 25c65ca..2ca813f 100644 --- a/ediv/src/visual c/ediv/ediv.vcproj +++ b/ediv/src/visual c/ediv/ediv.vcproj @@ -58,7 +58,7 @@ diff --git a/ediv/src/visual c/ediv_ws.suo b/ediv/src/visual c/ediv_ws.suo index 375ab06967a193d8d2a5552751887b8238eaf6b93f4a3f5f3aa820d7f316a2c0..2d5685f6d2a70d0fdcaa27c409ca1ec2b170f1c6236960468e7be6399c55314c 100644 GIT binary patch delta 695 zcmZqZU~K4M+>pbKyPyu%Rde#J;upZymd_F9Gidf&SSEaXJTNs z(G>?N0D)x^3^faYd`1YD;TJzw2Qsz_x>VaQ}C1F|-A0Er|9BZf2}Jrg8X z%uvEm3KU{s5Z;_G6)GyOfZb7>Z|l!xV%Y>#H@U`0#bP^}nIC_xsk~1Em=@pkpL}7@SHZ_<$@` MAQk~)5P+!!0D!Wb3jhEB delta 488 zcmZqZU~K4M+>pbjLZxS3=KM)t62VVFg;_KT*X_*6wJQ)7w?U@&GdWMyDuU<8Wt0wtt?SYYx+0b$N4phz4@ zEr_>Cu!50s&E!gnXNNMW?asd^jGNdqMGL!*X${au?y0L8WtNBCm*z#&(8`p z%?0TEB%l-18LTI7uoRu#Vk @@ -72,7 +72,10 @@ AdditionalIncludeDirectories="../../shared" PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE" StringPooling="TRUE" - RuntimeLibrary="4" + MinimalRebuild="FALSE" + BasicRuntimeChecks="0" + RuntimeLibrary="2" + BufferSecurityCheck="TRUE" EnableFunctionLevelLinking="TRUE" UsePrecompiledHeader="0" WarningLevel="3" diff --git a/ediv/src/visual c/stub/stub.vcproj b/ediv/src/visual c/stub/stub.vcproj index 1380dee..e8f306b 100644 --- a/ediv/src/visual c/stub/stub.vcproj +++ b/ediv/src/visual c/stub/stub.vcproj @@ -67,7 +67,7 @@ makelib.bat win32.rel @@ -161,7 +161,7 @@ makelib.bat win32.dbg diff --git a/util/src/bmp2fnt/win32/bmp2fnt.vcproj b/util/src/bmp2fnt/win32/bmp2fnt.vcproj index 33768d8..f343d73 100644 --- a/util/src/bmp2fnt/win32/bmp2fnt.vcproj +++ b/util/src/bmp2fnt/win32/bmp2fnt.vcproj @@ -56,7 +56,7 @@ @@ -67,7 +67,7 @@ OmitFramePointers="TRUE" PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE" StringPooling="TRUE" - RuntimeLibrary="4" + RuntimeLibrary="2" EnableFunctionLevelLinking="TRUE" UsePrecompiledHeader="0" WarningLevel="3" diff --git a/util/src/doku/win32/doku.vcproj b/util/src/doku/win32/doku.vcproj index af768f0..c9f7dcd 100644 --- a/util/src/doku/win32/doku.vcproj +++ b/util/src/doku/win32/doku.vcproj @@ -54,7 +54,7 @@ diff --git a/util/src/iconchanger/iconchanger.c b/util/src/iconchanger/iconchanger.c index bd36c9b..c92f01f 100644 --- a/util/src/iconchanger/iconchanger.c +++ b/util/src/iconchanger/iconchanger.c @@ -56,7 +56,7 @@ int main(int argc, char* argv[]) int i,j; int ok=0; - printf("eDIV IconChanger - Copyright (c) Sion Ltd. 2002\n\n"); + printf("eDIV IconChanger - Copyright (c) Sion Ltd. 2002-2003\n\n"); if(argc!=3) { printf("Modo de uso:\n\n %s \n\n",argv[0]); exit(2); diff --git a/util/src/iconchanger/win32/iconchanger.vcproj b/util/src/iconchanger/win32/iconchanger.vcproj index 8acf9f1..1ba69e2 100644 --- a/util/src/iconchanger/win32/iconchanger.vcproj +++ b/util/src/iconchanger/win32/iconchanger.vcproj @@ -54,7 +54,7 @@