añadido soporte de word
release 0.1.3
This commit is contained in:
parent
8f290a84ac
commit
5481e87aa1
|
@ -60,7 +60,7 @@
|
||||||
</Configuration>
|
</Configuration>
|
||||||
<Configuration
|
<Configuration
|
||||||
Name="Release|Win32"
|
Name="Release|Win32"
|
||||||
OutputDirectory="../../../bin"
|
OutputDirectory="r:\dll\dinmem"
|
||||||
IntermediateDirectory="Release"
|
IntermediateDirectory="Release"
|
||||||
ConfigurationType="2"
|
ConfigurationType="2"
|
||||||
CharacterSet="2">
|
CharacterSet="2">
|
||||||
|
|
|
@ -60,7 +60,7 @@
|
||||||
</Configuration>
|
</Configuration>
|
||||||
<Configuration
|
<Configuration
|
||||||
Name="Release|Win32"
|
Name="Release|Win32"
|
||||||
OutputDirectory="../../../bin"
|
OutputDirectory="r:\dll\edivstd"
|
||||||
IntermediateDirectory="Release"
|
IntermediateDirectory="Release"
|
||||||
ConfigurationType="2"
|
ConfigurationType="2"
|
||||||
CharacterSet="2">
|
CharacterSet="2">
|
||||||
|
|
|
@ -22,6 +22,10 @@ int ExportaFuncs(EXPORTAFUNCS_PARAMS)
|
||||||
FUNCTION("fseek",3,eDiv_Fseek) ;
|
FUNCTION("fseek",3,eDiv_Fseek) ;
|
||||||
FUNCTION("flush",0,eDiv_Flush) ;
|
FUNCTION("flush",0,eDiv_Flush) ;
|
||||||
FUNCTION("fclose",1,eDiv_Fclose) ;
|
FUNCTION("fclose",1,eDiv_Fclose) ;
|
||||||
|
|
||||||
|
// FUNCTION("load",2,eDIV_Load);
|
||||||
|
// FUNCTION("save",3,eDIV_Save);
|
||||||
|
|
||||||
return TRUE ;
|
return TRUE ;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -59,7 +59,7 @@
|
||||||
</Configuration>
|
</Configuration>
|
||||||
<Configuration
|
<Configuration
|
||||||
Name="Release|Win32"
|
Name="Release|Win32"
|
||||||
OutputDirectory="../../../bin"
|
OutputDirectory="r:\dll\file"
|
||||||
IntermediateDirectory="Release"
|
IntermediateDirectory="Release"
|
||||||
ConfigurationType="2"
|
ConfigurationType="2"
|
||||||
CharacterSet="2">
|
CharacterSet="2">
|
||||||
|
|
|
@ -60,7 +60,7 @@
|
||||||
</Configuration>
|
</Configuration>
|
||||||
<Configuration
|
<Configuration
|
||||||
Name="Release|Win32"
|
Name="Release|Win32"
|
||||||
OutputDirectory="../../../bin"
|
OutputDirectory="r:\dll\graphics"
|
||||||
IntermediateDirectory="Release"
|
IntermediateDirectory="Release"
|
||||||
ConfigurationType="2"
|
ConfigurationType="2"
|
||||||
CharacterSet="2">
|
CharacterSet="2">
|
||||||
|
|
|
@ -60,7 +60,7 @@
|
||||||
</Configuration>
|
</Configuration>
|
||||||
<Configuration
|
<Configuration
|
||||||
Name="Release|Win32"
|
Name="Release|Win32"
|
||||||
OutputDirectory="../../../bin"
|
OutputDirectory="r:\dll\input"
|
||||||
IntermediateDirectory="Release"
|
IntermediateDirectory="Release"
|
||||||
ConfigurationType="2"
|
ConfigurationType="2"
|
||||||
CharacterSet="2">
|
CharacterSet="2">
|
||||||
|
|
|
@ -59,7 +59,7 @@
|
||||||
</Configuration>
|
</Configuration>
|
||||||
<Configuration
|
<Configuration
|
||||||
Name="Release|Win32"
|
Name="Release|Win32"
|
||||||
OutputDirectory="../../../bin"
|
OutputDirectory="r:\dll\math"
|
||||||
IntermediateDirectory="Release"
|
IntermediateDirectory="Release"
|
||||||
ConfigurationType="2"
|
ConfigurationType="2"
|
||||||
CharacterSet="2">
|
CharacterSet="2">
|
||||||
|
|
|
@ -59,7 +59,7 @@
|
||||||
</Configuration>
|
</Configuration>
|
||||||
<Configuration
|
<Configuration
|
||||||
Name="Release|Win32"
|
Name="Release|Win32"
|
||||||
OutputDirectory="../../../bin"
|
OutputDirectory="r:\dll\text"
|
||||||
IntermediateDirectory="Release"
|
IntermediateDirectory="Release"
|
||||||
ConfigurationType="2"
|
ConfigurationType="2"
|
||||||
CharacterSet="2"
|
CharacterSet="2"
|
||||||
|
|
|
@ -1,3 +1,7 @@
|
||||||
|
4/4/2003
|
||||||
|
--------
|
||||||
|
* Añadido soporte para datos WORD. (Er_Makina)
|
||||||
|
|
||||||
3/4/2003
|
3/4/2003
|
||||||
--------
|
--------
|
||||||
* ARREGLADO EL BUG DEL KILL!!! :PPP por fin!!! por supuesto, como todo
|
* ARREGLADO EL BUG DEL KILL!!! :PPP por fin!!! por supuesto, como todo
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/*
|
/*
|
||||||
* eDiv Compiler
|
* eDiv Compiler
|
||||||
* Copyright (C) 2000-2002 Sion, Ltd.
|
* Copyright (C) 2000-2003 Sion, Ltd.
|
||||||
* http://www.sionhq.com
|
* http://www.sionhq.com
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
@ -757,7 +757,7 @@ char* translate(int id_cadena)
|
||||||
case 0: /* español */
|
case 0: /* español */
|
||||||
{
|
{
|
||||||
static char* msg[] = {
|
static char* msg[] = {
|
||||||
/* 0 */ " **** Compilador eDIV " VERSION " ****\nCopyleft (c) 2000-2002 Sion, Ltd.\nhttp://ediv.divsite.net\n",
|
/* 0 */ " **** Compilador eDIV " VERSION " ****\nCopyleft (c) 2000-2003 Sion, Ltd.\nhttp://ediv.divsite.net\n",
|
||||||
/* 1 */ "ATENCION: Esta version de eDIV esta inacabada.\nPor favor informe de cualquier bug a: ediv@divsite.net\n",
|
/* 1 */ "ATENCION: Esta version de eDIV esta inacabada.\nPor favor informe de cualquier bug a: ediv@divsite.net\n",
|
||||||
/* 2 */ "Ayuda de opciones de comando:\n\n",
|
/* 2 */ "Ayuda de opciones de comando:\n\n",
|
||||||
/* 3 */ "%s [opciones] archivo.prg [ejecutable]\n\n",
|
/* 3 */ "%s [opciones] archivo.prg [ejecutable]\n\n",
|
||||||
|
@ -825,7 +825,7 @@ char* translate(int id_cadena)
|
||||||
case 1: /* italiano */
|
case 1: /* italiano */
|
||||||
{
|
{
|
||||||
static char* msg[] = {
|
static char* msg[] = {
|
||||||
/* 0 */ " **** Compilatore eDIV " VERSION " ****\nCopyleft (c) 2000-2002 Sion, Ltd.\nhttp://ediv.divsite.net\n",
|
/* 0 */ " **** Compilatore eDIV " VERSION " ****\nCopyleft (c) 2000-2003 Sion, Ltd.\nhttp://ediv.divsite.net\n",
|
||||||
/* 1 */ "ATTENZIONE: Questa versione di eDIV è incompleta.\nPer favore informa su qualunque bug a: ediv@divsite.net\n",
|
/* 1 */ "ATTENZIONE: Questa versione di eDIV è incompleta.\nPer favore informa su qualunque bug a: ediv@divsite.net\n",
|
||||||
/* 2 */ "Guida opzioni di comando:\n\n",
|
/* 2 */ "Guida opzioni di comando:\n\n",
|
||||||
/* 3 */ "%s [opzioni] archivio.prg [eseguibile]\n\n",
|
/* 3 */ "%s [opzioni] archivio.prg [eseguibile]\n\n",
|
||||||
|
@ -893,7 +893,7 @@ char* translate(int id_cadena)
|
||||||
case 2: /* portugués */
|
case 2: /* portugués */
|
||||||
{
|
{
|
||||||
static char* msg[] = {
|
static char* msg[] = {
|
||||||
/* 0 */ " **** Compilador eDIV " VERSION " ****\nCopyleft (c) 2000-2002 Sion, Ltd.\nhttp://ediv.divsite.net\n",
|
/* 0 */ " **** Compilador eDIV " VERSION " ****\nCopyleft (c) 2000-2003 Sion, Ltd.\nhttp://ediv.divsite.net\n",
|
||||||
/* 1 */ "ATENÇÃO: Esta versão de eDIV está inacabada.\nPor favor informe-nos de qualquer bug a: ediv@divsite.net\n",
|
/* 1 */ "ATENÇÃO: Esta versão de eDIV está inacabada.\nPor favor informe-nos de qualquer bug a: ediv@divsite.net\n",
|
||||||
/* 2 */ "Ajuda de opções de comando:\n\n",
|
/* 2 */ "Ajuda de opções de comando:\n\n",
|
||||||
/* 3 */ "%s [opções] arquivo.prg [executavel]\n\n",
|
/* 3 */ "%s [opções] arquivo.prg [executavel]\n\n",
|
||||||
|
@ -963,7 +963,7 @@ char* translate(int id_cadena)
|
||||||
case 3: /* inglés */
|
case 3: /* inglés */
|
||||||
{
|
{
|
||||||
static char* msg[] = {
|
static char* msg[] = {
|
||||||
/* 0 */ " **** eDIV Compiler " VERSION " ****\nCopyleft (c) 2000-2002Sion, Ltd.\nhttp://ediv.divsite.net\n",
|
/* 0 */ " **** eDIV Compiler " VERSION " ****\nCopyleft (c) 2000-2003Sion, Ltd.\nhttp://ediv.divsite.net\n",
|
||||||
/* 1 */ "WARNING: This version of eDIV is unfinished.\nPlease report any bug to: ediv@divsite.net\n",
|
/* 1 */ "WARNING: This version of eDIV is unfinished.\nPlease report any bug to: ediv@divsite.net\n",
|
||||||
/* 2 */ "Command line help:\n\n",
|
/* 2 */ "Command line help:\n\n",
|
||||||
/* 3 */ "%s [options] file.prg [executable]\n\n",
|
/* 3 */ "%s [options] file.prg [executable]\n\n",
|
||||||
|
@ -1031,7 +1031,7 @@ char* translate(int id_cadena)
|
||||||
case 4: /* catalán */
|
case 4: /* catalán */
|
||||||
{
|
{
|
||||||
static char* msg[] = {
|
static char* msg[] = {
|
||||||
/* 0 */ " **** Compilador eDIV " VERSION " ****\nCopyleft (c) 2000-2002 Sion, Ltd.\nhttp://ediv.divsite.net\n",
|
/* 0 */ " **** Compilador eDIV " VERSION " ****\nCopyleft (c) 2000-2003 Sion, Ltd.\nhttp://ediv.divsite.net\n",
|
||||||
/* 1 */ "ATENCIÓ: Aquesta versió d' eDIV està sense acabar.\nSi us plau, informi de qualsevol bug a: ediv@divsite.net\n",
|
/* 1 */ "ATENCIÓ: Aquesta versió d' eDIV està sense acabar.\nSi us plau, informi de qualsevol bug a: ediv@divsite.net\n",
|
||||||
/* 2 */ "Ajuda d' opcions de comand:\n\n",
|
/* 2 */ "Ajuda d' opcions de comand:\n\n",
|
||||||
/* 3 */ "%s [opcions] arxiu.prg [executable]\n\n",
|
/* 3 */ "%s [opcions] arxiu.prg [executable]\n\n",
|
||||||
|
@ -1098,7 +1098,7 @@ char* translate(int id_cadena)
|
||||||
case 5: /* euskera */
|
case 5: /* euskera */
|
||||||
{
|
{
|
||||||
static char* msg[] = {
|
static char* msg[] = {
|
||||||
/* 0 */ " **** eDIV konpiladorea " VERSION " ****\nCopyleft (c) 2000-2002 Sion, Ltd.\nhttp://ediv.divsite.net\n",
|
/* 0 */ " **** eDIV konpiladorea " VERSION " ****\nCopyleft (c) 2000-2003 Sion, Ltd.\nhttp://ediv.divsite.net\n",
|
||||||
/* 1 */ "KONTUZ: eDIV bertsio hau ez dago bukaturik.\nMesedez eman berri edozein akatzi buruz helbide honetan: ediv@divsite.net\n",
|
/* 1 */ "KONTUZ: eDIV bertsio hau ez dago bukaturik.\nMesedez eman berri edozein akatzi buruz helbide honetan: ediv@divsite.net\n",
|
||||||
/* 2 */ "Komandoei buruzko laguntza:\n\n",
|
/* 2 */ "Komandoei buruzko laguntza:\n\n",
|
||||||
/* 3 */ "%s [aukerak] archivo.prg [exekutagarria]\n\n",
|
/* 3 */ "%s [aukerak] archivo.prg [exekutagarria]\n\n",
|
||||||
|
|
|
@ -25,8 +25,8 @@
|
||||||
#ifndef __EDIV_SHARED_H_
|
#ifndef __EDIV_SHARED_H_
|
||||||
#define __EDIV_SHARED_H_
|
#define __EDIV_SHARED_H_
|
||||||
|
|
||||||
#define VERSION "0.1.1 (Orion)" /* Version y codename */
|
#define VERSION "0.1.3 (Betelgeuse)" /* Version y codename */
|
||||||
#define la_clave "Open_eDiv" /* Clave de cifrado */
|
#define la_clave "81ab50e9c20d" /* Clave de cifrado */
|
||||||
|
|
||||||
#define uchar char
|
#define uchar char
|
||||||
#define byte unsigned char
|
#define byte unsigned char
|
||||||
|
@ -35,7 +35,7 @@
|
||||||
#define ulong unsigned int
|
#define ulong unsigned int
|
||||||
#define dword unsigned int
|
#define dword unsigned int
|
||||||
|
|
||||||
#define magic "eDIV Stub\x1a\x0d\x0a\xff"
|
#define magic "eDIVstub0\x1a\x0d\x0a\xff"
|
||||||
|
|
||||||
#define long_header 9 /* Longitud de la cabecera al inicio de los programas */
|
#define long_header 9 /* Longitud de la cabecera al inicio de los programas */
|
||||||
|
|
||||||
|
|
|
@ -652,6 +652,355 @@ int proceso( int num, int padre )
|
||||||
sp-=2;
|
sp-=2;
|
||||||
mem[procs_s[num_proc].id+_param_offset]++;
|
mem[procs_s[num_proc].id+_param_offset]++;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
/* OPERACIONES CON DATOS DE TIPO WORD */
|
||||||
|
|
||||||
|
case lptrwor:
|
||||||
|
pila[sp-1]=(unsigned int)memw[pila[sp-1]*2+pila[sp]];
|
||||||
|
sp--;
|
||||||
|
break;
|
||||||
|
case lasiwor:
|
||||||
|
pila[sp-2]=(unsigned int)(memw[pila[sp-2]*2+pila[sp-1]]=(word)pila[sp]);
|
||||||
|
sp-=2;
|
||||||
|
break;
|
||||||
|
case liptwor:
|
||||||
|
pila[sp-1]=(unsigned int)++memw[pila[sp-1]*2+pila[sp]];
|
||||||
|
sp--;
|
||||||
|
break;
|
||||||
|
case lptiwor:
|
||||||
|
utemp=pila[sp-1];
|
||||||
|
pila[sp-1]=(unsigned int)memw[utemp*2+pila[sp]]++;
|
||||||
|
sp--;
|
||||||
|
break;
|
||||||
|
case ldptwor:
|
||||||
|
pila[sp-1]=(unsigned int)--memw[pila[sp-1]*2+pila[sp]];
|
||||||
|
sp--;
|
||||||
|
break;
|
||||||
|
case lptdwor:
|
||||||
|
utemp=pila[sp-1];
|
||||||
|
pila[sp-1]=(unsigned int)memw[utemp*2+pila[sp]]--;
|
||||||
|
sp--;
|
||||||
|
break;
|
||||||
|
case ladawor:
|
||||||
|
pila[sp-2]=(unsigned int)(memw[pila[sp-2]*2+pila[sp-1]]+=(word)pila[sp]);
|
||||||
|
sp-=2;
|
||||||
|
break;
|
||||||
|
case lsuawor:
|
||||||
|
pila[sp-2]=(unsigned int)(memw[pila[sp-2]*2+pila[sp-1]]-=(word)pila[sp]);
|
||||||
|
sp-=2;
|
||||||
|
break;
|
||||||
|
case lmuawor:
|
||||||
|
pila[sp-2]=(unsigned int)(memw[pila[sp-2]*2+pila[sp-1]]*=(word)pila[sp]);
|
||||||
|
sp-=2;
|
||||||
|
break;
|
||||||
|
case ldiawor:
|
||||||
|
/* #ifdef DEBUG
|
||||||
|
if (pila[sp]==0) {
|
||||||
|
memw[pila[sp-2]*2+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)(memw[pila[sp-2]*2+pila[sp-1]]/=(word)pila[sp]);
|
||||||
|
sp-=2;
|
||||||
|
break;
|
||||||
|
case lmoawor:
|
||||||
|
/* #ifdef DEBUG
|
||||||
|
if (pila[sp]==0) {
|
||||||
|
memw[pila[sp-2]*2+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)(memw[pila[sp-2]*2+pila[sp-1]]%=(word)pila[sp]);
|
||||||
|
sp-=2;
|
||||||
|
break;
|
||||||
|
case lanawor:
|
||||||
|
pila[sp-2]=(unsigned int)(memw[pila[sp-2]*2+pila[sp-1]]&=(word)pila[sp]);
|
||||||
|
sp-=2;
|
||||||
|
break;
|
||||||
|
case lorawor:
|
||||||
|
pila[sp-2]=(unsigned int)(memw[pila[sp-2]*2+pila[sp-1]]|=(word)pila[sp]);
|
||||||
|
sp-=2;
|
||||||
|
break;
|
||||||
|
case lxoawor:
|
||||||
|
pila[sp-2]=(unsigned int)(memw[pila[sp-2]*2+pila[sp-1]]^=(word)pila[sp]);
|
||||||
|
sp-=2;
|
||||||
|
break;
|
||||||
|
case lsrawor:
|
||||||
|
pila[sp-2]=(unsigned int)(memw[pila[sp-2]*2+pila[sp-1]]>>=(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]]<imem_max+258*4)
|
||||||
|
memw[pila[sp-1]*2+pila[sp]]=memw[pila[mem[procs_s[num_proc].id+_param_offset]]*2];
|
||||||
|
else
|
||||||
|
memw[pila[sp-1]*2+pila[sp]]=(word)pila[mem[procs_s[num_proc].id+_param_offset]];
|
||||||
|
} sp-=2; mem[procs_s[num_proc].id+_param_offset]++; break;
|
||||||
|
|
||||||
|
|
||||||
|
/* OPERACIONES CON DATOS DE TIPO STRING */
|
||||||
|
/* Nota: un puntero a cadena menor a 256 se trata siempre como "%c" */
|
||||||
|
|
||||||
|
#ifdef esto_pa_la_0_1_4
|
||||||
|
|
||||||
|
case lstrcpy:
|
||||||
|
/* #ifdef DEBUG
|
||||||
|
if ((mem[pila[sp-1]-1]&0xFFF00000)!=0xDAD00000) {
|
||||||
|
sp--; v_function=-2; e(164);
|
||||||
|
if (call_to_debug) { process_stoped=id; return; }
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if ((unsigned)pila[sp]>255) if ((mem[pila[sp-1]-1]&0xFFFFF)+1<strlen((char*)&mem[pila[sp]])) {
|
||||||
|
sp--; v_function=-2; e(140);
|
||||||
|
if (call_to_debug) { process_stoped=id; return; }
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
#endif*/
|
||||||
|
if ((unsigned)pila[sp]>255) 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 (;oo<pila[sp-1];oo++) {
|
||||||
|
memb[pila[sp-2]*4+oo]=' ';
|
||||||
|
} memb[pila[sp-2]*4+oo+1]=0;
|
||||||
|
} break;
|
||||||
|
|
||||||
|
case lstrcat:
|
||||||
|
/* #ifdef DEBUG
|
||||||
|
if ((mem[pila[sp-1]-1]&0xFFF00000)!=0xDAD00000) {
|
||||||
|
sp--; v_function=-2; e(164);
|
||||||
|
if (call_to_debug) { process_stoped=id; return; }
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if ((unsigned)pila[sp]>255) oo=strlen((char*)&mem[pila[sp]]); else oo=1;
|
||||||
|
if ((mem[pila[sp-1]-1]&0xFFFFF)+1<strlen((char*)&mem[pila[sp-1]])+oo) {
|
||||||
|
sp--; v_function=-2; e(140);
|
||||||
|
if (call_to_debug) { process_stoped=id; return; }
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
#endif*/
|
||||||
|
if ((unsigned)pila[sp]>255) 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 (;oo<pila[sp];oo++) {
|
||||||
|
memb[nullstring[nstring]*4+oo]=' ';
|
||||||
|
} memb[nullstring[nstring]*4+oo]=0;
|
||||||
|
}
|
||||||
|
} else mem[nullstring[nstring]]=0;
|
||||||
|
pila[--sp]=nullstring[nstring];
|
||||||
|
nstring=((nstring+1)&3);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case lstrsub: /* cambio de tamaño a un string */
|
||||||
|
oo=strlen((char*)&mem[pila[sp-1]]);
|
||||||
|
/* #ifdef DEBUG
|
||||||
|
if ((mem[pila[sp-1]-1]&0xFFF00000)!=0xDAD00000) {
|
||||||
|
sp--; v_function=-2; e(164);
|
||||||
|
if (call_to_debug) { process_stoped=id; return; }
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if ((mem[pila[sp-1]-1]&0xFFFFF)+1<oo-pila[sp]) {
|
||||||
|
sp--; v_function=-2; e(140);
|
||||||
|
if (call_to_debug) { process_stoped=id; return; }
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
#endif*/
|
||||||
|
if (pila[sp]>0) { // 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 (;oo<pila[sp];oo++) {
|
||||||
|
memb[pila[sp-1]*4+oo]=' ';
|
||||||
|
} memb[pila[sp-1]*4+oo]=0;
|
||||||
|
} sp--;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case lstrlen:
|
||||||
|
if ((unsigned)pila[sp]>255) 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]<pila[sp]);
|
||||||
|
}
|
||||||
|
} sp--; break;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case lstrmei:
|
||||||
|
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 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)+1<strlen((char*)&mem[pila[mem[id+_Param]]])) {
|
||||||
|
sp--; mem[id+_Param]++; v_function=-2; e(140);
|
||||||
|
if (call_to_debug) { process_stoped=id; return; }
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif*/
|
||||||
|
if ((unsigned)pila[mem[id+_Param]]>255)
|
||||||
|
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
|
#ifdef DBG
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/*
|
/*
|
||||||
* eDiv Compiler
|
* eDiv Compiler
|
||||||
* Copyleft (C) 2000-2002 Sion Entertainment
|
* Copyleft (C) 2000-2003 Sion Entertainment
|
||||||
* http://www.sion-e.com
|
* http://www.sion-e.com
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
|
|
@ -58,7 +58,7 @@
|
||||||
</Configuration>
|
</Configuration>
|
||||||
<Configuration
|
<Configuration
|
||||||
Name="Release|Win32"
|
Name="Release|Win32"
|
||||||
OutputDirectory="Release"
|
OutputDirectory="r:\ediv"
|
||||||
IntermediateDirectory="Release"
|
IntermediateDirectory="Release"
|
||||||
ConfigurationType="1"
|
ConfigurationType="1"
|
||||||
CharacterSet="2">
|
CharacterSet="2">
|
||||||
|
|
Binary file not shown.
|
@ -60,7 +60,7 @@
|
||||||
</Configuration>
|
</Configuration>
|
||||||
<Configuration
|
<Configuration
|
||||||
Name="Release|Win32"
|
Name="Release|Win32"
|
||||||
OutputDirectory="Release"
|
OutputDirectory="r:\encrypt"
|
||||||
IntermediateDirectory="Release"
|
IntermediateDirectory="Release"
|
||||||
ConfigurationType="1"
|
ConfigurationType="1"
|
||||||
CharacterSet="2">
|
CharacterSet="2">
|
||||||
|
@ -72,7 +72,10 @@
|
||||||
AdditionalIncludeDirectories="../../shared"
|
AdditionalIncludeDirectories="../../shared"
|
||||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
|
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
|
||||||
StringPooling="TRUE"
|
StringPooling="TRUE"
|
||||||
RuntimeLibrary="4"
|
MinimalRebuild="FALSE"
|
||||||
|
BasicRuntimeChecks="0"
|
||||||
|
RuntimeLibrary="2"
|
||||||
|
BufferSecurityCheck="TRUE"
|
||||||
EnableFunctionLevelLinking="TRUE"
|
EnableFunctionLevelLinking="TRUE"
|
||||||
UsePrecompiledHeader="0"
|
UsePrecompiledHeader="0"
|
||||||
WarningLevel="3"
|
WarningLevel="3"
|
||||||
|
|
|
@ -67,7 +67,7 @@ makelib.bat win32.rel
|
||||||
</Configuration>
|
</Configuration>
|
||||||
<Configuration
|
<Configuration
|
||||||
Name="Release|Win32"
|
Name="Release|Win32"
|
||||||
OutputDirectory="Release"
|
OutputDirectory="r:\stub"
|
||||||
IntermediateDirectory="Release"
|
IntermediateDirectory="Release"
|
||||||
ConfigurationType="1"
|
ConfigurationType="1"
|
||||||
CharacterSet="2">
|
CharacterSet="2">
|
||||||
|
@ -161,7 +161,7 @@ makelib.bat win32.dbg
|
||||||
</Configuration>
|
</Configuration>
|
||||||
<Configuration
|
<Configuration
|
||||||
Name="Release con trazador|Win32"
|
Name="Release con trazador|Win32"
|
||||||
OutputDirectory="Release con trazador"
|
OutputDirectory="r:\stub.rel"
|
||||||
IntermediateDirectory="Release con trazador"
|
IntermediateDirectory="Release con trazador"
|
||||||
ConfigurationType="1"
|
ConfigurationType="1"
|
||||||
CharacterSet="2">
|
CharacterSet="2">
|
||||||
|
|
|
@ -56,7 +56,7 @@
|
||||||
</Configuration>
|
</Configuration>
|
||||||
<Configuration
|
<Configuration
|
||||||
Name="Release|Win32"
|
Name="Release|Win32"
|
||||||
OutputDirectory="../../../bin"
|
OutputDirectory="r:\b2f"
|
||||||
IntermediateDirectory="Release"
|
IntermediateDirectory="Release"
|
||||||
ConfigurationType="1"
|
ConfigurationType="1"
|
||||||
CharacterSet="2">
|
CharacterSet="2">
|
||||||
|
@ -67,7 +67,7 @@
|
||||||
OmitFramePointers="TRUE"
|
OmitFramePointers="TRUE"
|
||||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
|
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
|
||||||
StringPooling="TRUE"
|
StringPooling="TRUE"
|
||||||
RuntimeLibrary="4"
|
RuntimeLibrary="2"
|
||||||
EnableFunctionLevelLinking="TRUE"
|
EnableFunctionLevelLinking="TRUE"
|
||||||
UsePrecompiledHeader="0"
|
UsePrecompiledHeader="0"
|
||||||
WarningLevel="3"
|
WarningLevel="3"
|
||||||
|
|
|
@ -54,7 +54,7 @@
|
||||||
</Configuration>
|
</Configuration>
|
||||||
<Configuration
|
<Configuration
|
||||||
Name="Release|Win32"
|
Name="Release|Win32"
|
||||||
OutputDirectory="../../../bin"
|
OutputDirectory="r:\doku"
|
||||||
IntermediateDirectory="Release"
|
IntermediateDirectory="Release"
|
||||||
ConfigurationType="1"
|
ConfigurationType="1"
|
||||||
CharacterSet="2">
|
CharacterSet="2">
|
||||||
|
|
|
@ -56,7 +56,7 @@ int main(int argc, char* argv[])
|
||||||
int i,j;
|
int i,j;
|
||||||
int ok=0;
|
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) {
|
if(argc!=3) {
|
||||||
printf("Modo de uso:\n\n %s <programa.exe> <icono.ico>\n\n",argv[0]);
|
printf("Modo de uso:\n\n %s <programa.exe> <icono.ico>\n\n",argv[0]);
|
||||||
exit(2);
|
exit(2);
|
||||||
|
|
|
@ -54,7 +54,7 @@
|
||||||
</Configuration>
|
</Configuration>
|
||||||
<Configuration
|
<Configuration
|
||||||
Name="Release|Win32"
|
Name="Release|Win32"
|
||||||
OutputDirectory="../../../bin"
|
OutputDirectory="r:\iconchanger"
|
||||||
IntermediateDirectory="Release"
|
IntermediateDirectory="Release"
|
||||||
ConfigurationType="1"
|
ConfigurationType="1"
|
||||||
CharacterSet="2">
|
CharacterSet="2">
|
||||||
|
|
Loading…
Reference in a new issue