Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
7309 | pavelyakov | 1 | |
2 | |||
3 | load_const(DSDWORD[x],DSBYTE[x+4],DSDWORD[x+5]); |
||
4 | } |
||
5 | |||
6 | |||
7 | |||
8 | |||
9 | { |
||
10 | dword addr = txt; |
||
11 | WHILE(DSBYTE[addr]) addr++; |
||
12 | IF(!LenStdout) |
||
13 | { |
||
14 | LenStdout = addr-txt; |
||
15 | CreateFile(LenStdout,txt,"/sys/stdout"); |
||
16 | } |
||
17 | ELSE |
||
18 | { |
||
19 | AddFile(LenStdout,addr-txt,txt,"/sys/stdout"); |
||
20 | LenStdout+=addr-txt; |
||
21 | } |
||
22 | } |
||
23 | :dword std__stdStr(dword count) |
||
24 | { |
||
25 | return _str(popFast()); |
||
26 | } |
||
27 | :dword stdcall std__stdout(dword count) |
||
28 | { |
||
29 | std__str(count); |
||
30 | popStack(); |
||
31 | _stdout(DSDWORD[EAX]); |
||
32 | } |
||
33 | :dword stdcall std__len(dword c) |
||
34 | { |
||
35 | popFast(); |
||
36 | load_const(DSDWORD[EAX+5],PY_INT,0); |
||
37 | RETURN 0; |
||
38 | } |
||
39 | |||
40 | :dword stdcall std__INT40(dword c) |
||
41 | |||
42 | X = popFast(); |
||
43 | Y = DSDWORD[X+5]; |
||
44 | X = DSDWORD[X]; |
||
45 | X = DSDWORD[X]; |
||
46 | X = DSDWORD[X]; |
||
47 | test(X,1); |
||
48 | |||
49 | RETURN 0; |
||
50 | |||
51 | |||
52 | :void hexAddress(dword x,y) |
||
53 | |||
54 | dword i = 0; |
||
55 | i = 8; |
||
56 | WHILE(i) |
||
57 | { |
||
58 | DSBYTE[x] = DSBYTE[y&0xF+#arraySymbolHEX]; |
||
59 | y>>=4; |
||
60 | x--; |
||
61 | i--; |
||
62 | } |
||
63 | } |
||
64 | #define rSize DSBYTE[#RDATA+5] |
||
65 | #define rData DSBYTE[#RDATA] |
||
66 | #define rType DSBYTE[#RDATA+4] |
||
67 | |||
68 | :dword stdcall std__str(dword c) |
||
69 | |||
70 | dword n = 0; |
||
71 | dword m = 0; |
||
72 | dword l = 0; |
||
73 | dword v = 0; |
||
74 | dword f = " |
||
75 | dword t = 0; |
||
76 | dword o = 0; |
||
77 | |||
78 | v = popFast(); |
||
79 | |||
80 | { |
||
81 | copyVariable(v); |
||
82 | return 0; |
||
83 | } |
||
84 | |||
85 | switch(DSBYTE[v+4]) |
||
86 | |||
87 | case PY_BOOL: |
||
88 | if(DSDWORD[v]) |
||
89 | { |
||
90 | load_const("True",PY_STR,4); |
||
91 | return 0; |
||
92 | } |
||
93 | load_const("False",PY_STR,5); |
||
94 | return 0; |
||
95 | break; |
||
96 | case PY_INT: |
||
97 | m = malloc(MEMBUF); |
||
98 | l = itoa(DSDWORD[v],m); |
||
99 | load_const(m,PY_STR,l); |
||
100 | return 0; |
||
101 | break; |
||
102 | case PY_NONE: |
||
103 | load_const("None",PY_STR,4); |
||
104 | return 0; |
||
105 | break; |
||
106 | case PY_FNC: |
||
107 | hexAddress(f+24,v); |
||
108 | load_const(f,PY_STR,26); |
||
109 | return 0; |
||
110 | break; |
||
111 | } |
||
112 | } |
||
113 |