Subversion Repositories Kolibri OS

Rev

Details | Last modification | View Log | RSS feed

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