Subversion Repositories Kolibri OS

Rev

Rev 7565 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
7564 pavelyakov 1
 
7565 pavelyakov 2
:dword std_set(dword count, args)
7564 pavelyakov 3
{
4
	dword name = 0;
5
	dword value = 0;
6
	WHILE(count > 0)
7565 pavelyakov 7
	{
7564 pavelyakov 8
		name = DSDWORD[args];
9
		args += 4;
10
		value = DSDWORD[args];
11
		args += 4;
12
		variables.set(name, value);
13
		count -= 2;
7565 pavelyakov 14
	}
7564 pavelyakov 15
}
16
17
 
18
{
19
	IF(!count) RETURN 0;
7565 pavelyakov 20
	RETURN variables.get(DSDWORD[args]);
7564 pavelyakov 21
}
22
23
 
7563 pavelyakov 24
{
25
	dword tmp = 0;
26
	IF(!count) RETURN "";
7565 pavelyakov 27
	tmp = malloc(15);
7563 pavelyakov 28
	itoa_(tmp,DSDWORD[args]);
29
	RETURN tmp;
30
}
31
32
 
7565 pavelyakov 33
:dword std_add(dword count, args)
7563 pavelyakov 34
{
35
	dword ret = 0;
36
	WHILE(count)
37
	{
7562 pavelyakov 38
		ret += DSDWORD[args];
7563 pavelyakov 39
		args+=4;
40
		count--;
41
	}
7562 pavelyakov 42
	RETURN ret;
7563 pavelyakov 43
}
44
45
 
46
{
47
	dword ret = 0;
48
	IF(count)
49
	{
50
		ret = DSDWORD[args];
51
		count--;
52
		args+=4;
53
	}
7562 pavelyakov 54
	WHILE(count)
7563 pavelyakov 55
	{
7562 pavelyakov 56
		ret -= DSDWORD[args];
7563 pavelyakov 57
		args += 4;
7565 pavelyakov 58
		count--;
59
	}
60
	RETURN ret;
61
}
62
63
 
64
:dword std_print(dword count, args)
65
{
66
	dword ret = 0;
67
	consoleInit();
7566 pavelyakov 68
	WHILE(count)
7565 pavelyakov 69
	{
70
		IF(!DSDWORD[args]) con_printf stdcall ("nil");
7566 pavelyakov 71
		ELSE con_printf stdcall (DSDWORD[args]);
72
		args+=4;
7563 pavelyakov 73
		count--;
74
	}
7562 pavelyakov 75
	RETURN ret;
7563 pavelyakov 76
}
77
78
 
7565 pavelyakov 79
{
80
	dword buf = 0;
81
	consoleInit();
7566 pavelyakov 82
	buf = malloc(100);
7565 pavelyakov 83
	WHILE(count)
84
	{
85
		con_printf stdcall (DSDWORD[args]);
86
		args+=4;
87
		count--;
88
	}
89
	con_gets stdcall(buf, 100);
90
	RETURN EAX;
91
}
92
93
 
7563 pavelyakov 94
{
95
	functions.init(100);
96
97
 
98
	functions.set("print", #std_print);
7565 pavelyakov 99
	functions.set("input", #std_input);
100
7563 pavelyakov 101
 
102
	functions.set("str", #std_str);
103
104
 
105
	functions.set("exit", #ExitProcess);
106
107
 
108
	functions.set("+", #std_add);
109
	functions.set("-", #std_sub);
110
111
 
7564 pavelyakov 112
	functions.set("set", #std_set);
113
	functions.set("get", #std_get);
114
115
 
7563 pavelyakov 116
}
117
118
 
119
{
120
	functions.get(name);
121
	IF(EAX) RETURN EAX(count, args);
7564 pavelyakov 122
	RETURN 0;
7563 pavelyakov 123
}
7564 pavelyakov 124