1,24 → 1,76 |
dword StdCall(dword count, name, args) |
:dword std_print(dword count, args) |
{ |
dword tmp = 0; |
if(!strcmp(name, "print")) |
consoleInit(); |
WHILE(count) |
{ |
consoleInit(); |
con_printf stdcall (DSDWORD[args]); |
args+=4; |
count--; |
} |
else if(!strcmp(name, "input")) |
{ |
} |
|
} |
else if(!strcmp(name, "str")) |
:dword std_str(dword count, args) |
{ |
dword tmp = 0; |
tmp = malloc(15); |
itoa_(tmp,DSDWORD[args]); |
return tmp; |
RETURN tmp; |
} |
else if(!strcmp(name, "exit")) |
|
:dword std_add(dword count, args) |
{ |
ExitProcess(); |
dword ret = 0; |
WHILE(count) |
{ |
ret += DSDWORD[args]; |
args+=4; |
count--; |
} |
return 0; |
RETURN ret; |
} |
|
:dword std_sub(dword count, args) |
{ |
dword ret = 0; |
IF(count) |
{ |
ret = DSDWORD[args]; |
count--; |
args+=4; |
} |
WHILE(count) |
{ |
ret -= DSDWORD[args]; |
args+=4; |
count--; |
} |
RETURN ret; |
} |
|
void Init() |
{ |
functions.init(100); |
|
/* Console functions */ |
functions.set("print", #std_print); |
|
/* String functions */ |
functions.set("str", #std_str); |
|
/* System functions */ |
functions.set("exit", #ExitProcess); |
|
/* Math functions */ |
functions.set("+", #std_add); |
functions.set("-", #std_sub); |
|
variables.init(100); |
} |
|
dword StdCall(dword count, name, args) |
{ |
dword tmp = 0; |
functions.get(name); |
IF(EAX)RETURN EAX(count, args); |
RETURN 0; |
} |