Rev 2242 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 2242 | Rev 2266 | ||
---|---|---|---|
1 | //CODED by Veliant, Leency. GNU GPL licence. |
1 | //CODED by Veliant, Leency. GNU GPL licence. |
2 | 2 | ||
3 | #startaddress 0 |
3 | #startaddress 0 |
4 | #code32 TRUE |
4 | #code32 TRUE |
5 | 5 | ||
6 | byte os_name[8] = {'M','E','N','U','E','T','0','1'}; |
6 | byte os_name[8] = {'M','E','N','U','E','T','0','1'}; |
7 | dword os_version = 0x00000001; |
7 | dword os_version = 0x00000001; |
8 | dword start_addr = #main; |
8 | dword start_addr = #main; |
9 | dword final_addr = #stop+32; |
9 | dword final_addr = #stop+32; |
10 | dword alloc_mem = 0x00100000; |
10 | dword alloc_mem = 0x00100000; |
11 | dword x86esp_reg = 0x00100000; // 0x0007fff0; |
11 | dword x86esp_reg = 0x00100000; // 0x0007fff0; |
12 | dword I_Param = #param; |
12 | dword I_Param = #param; |
13 | dword I_Path = #program_path; |
13 | dword I_Path = #program_path; |
- | 14 | ||
14 | char param[4096]=""; |
15 | char param[4096]=""; |
15 | char program_path[4096]=""; |
16 | char program_path[4096]=""; |
16 | 17 | ||
17 | 18 | ||
18 | //Events |
19 | //Events |
19 | #define evMouse 6 |
20 | #define evMouse 6 |
20 | #define evButton 3 |
21 | #define evButton 3 |
21 | #define evKey 2 |
22 | #define evKey 2 |
22 | #define evReDraw 1 |
23 | #define evReDraw 1 |
23 | 24 | ||
24 | //Button options |
25 | //Button options |
25 | #define BT_DEL 0x80000000 |
26 | #define BT_DEL 0x80000000 |
26 | #define BT_HIDE 0x40000000 |
27 | #define BT_HIDE 0x40000000 |
27 | #define BT_NOFRAME 0x20000000 |
28 | #define BT_NOFRAME 0x20000000 |
28 | 29 | ||
29 | #define OLD -1 |
30 | #define OLD -1 |
30 | #define true 1 |
31 | #define true 1 |
31 | #define false 0 |
32 | #define false 0 |
32 | 33 | ||
33 | 34 | ||
34 | 35 | ||
35 | struct mouse{ |
36 | struct mouse{ |
36 | unsigned int x,y,lkm,pkm,hor,vert; |
37 | unsigned int x,y,lkm,pkm,hor,vert; |
37 | void get(); |
38 | void get(); |
38 | }; |
39 | }; |
39 | 40 | ||
40 | int TestBit(EAX, CL) |
41 | inline fastcall int TestBit(EAX, CL) |
41 | { |
42 | { |
42 | $shr eax,cl |
43 | $shr eax,cl |
43 | $and eax,1 |
44 | $and eax,1 |
44 | } |
45 | } |
45 | 46 | ||
46 | void mouse::get() |
47 | void mouse::get() |
47 | { |
48 | { |
48 | EAX = 37; |
49 | EAX = 37; |
49 | EBX = 1; |
50 | EBX = 1; |
50 | $int 0x40 |
51 | $int 0x40 |
51 | $mov ebx, eax |
52 | $mov ebx, eax |
52 | $shr eax, 16 |
53 | $shr eax, 16 |
53 | $and ebx,0x0000FFFF |
54 | $and ebx,0x0000FFFF |
54 | x = EAX; |
55 | x = EAX; |
55 | y = EBX; |
56 | y = EBX; |
56 | 57 | ||
57 | EAX = 37; |
58 | EAX = 37; |
58 | EBX = 2; |
59 | EBX = 2; |
59 | $int 0x40 |
60 | $int 0x40 |
60 | $mov ebx, eax |
61 | $mov ebx, eax |
61 | $and eax, 0x00000001 |
62 | $and eax, 0x00000001 |
62 | $shr ebx, 1 |
63 | $shr ebx, 1 |
63 | $and ebx, 0x00000001 |
64 | $and ebx, 0x00000001 |
64 | lkm = EAX; |
65 | lkm = EAX; |
65 | pkm = EBX; |
66 | pkm = EBX; |
66 | 67 | ||
67 | EAX = 37; //scroll |
68 | EAX = 37; //scroll |
68 | EBX = 7; |
69 | EBX = 7; |
69 | $int 0x40 |
70 | $int 0x40 |
70 | $mov ebx, eax |
71 | $mov ebx, eax |
71 | $shr eax, 16 |
72 | $shr eax, 16 |
72 | $and ebx,0x0000FFFF |
73 | $and ebx,0x0000FFFF |
73 | //hor = EAX; |
74 | //hor = EAX; |
74 | vert = EBX; |
75 | vert = EBX; |
75 | } |
76 | } |
76 | 77 | ||
77 | //--------------------------------------------------------------------------- |
78 | //--------------------------------------------------------------------------- |
78 | struct proc_info{ |
79 | struct proc_info{ |
79 | dword use_cpu; |
80 | dword use_cpu; |
80 | word pos_in_stack,num_slot,rezerv1; |
81 | word pos_in_stack,num_slot,rezerv1; |
81 | char name[11]; |
82 | char name[11]; |
82 | char rezerv2; |
83 | char rezerv2; |
83 | dword adress,use_memory,ID,left,top,width,height; |
84 | dword adress,use_memory,ID,left,top,width,height; |
84 | word status_slot,rezerv3; |
85 | word status_slot,rezerv3; |
85 | dword work_left,work_top,work_width,work_height; |
86 | dword work_left,work_top,work_width,work_height; |
86 | char status_window; |
87 | char status_window; |
87 | void GetInfo(dword ECX); |
88 | void GetInfo(dword ECX); |
88 | byte reserved[1024-71]; |
89 | byte reserved[1024-71]; |
89 | #define SelfInfo -1 |
90 | #define SelfInfo -1 |
90 | }; |
91 | }; |
91 | 92 | ||
92 | void proc_info::GetInfo(dword EBX, ECX) |
93 | void proc_info::GetInfo(dword EBX, ECX) |
93 | { |
94 | { |
94 | EAX = 9; |
95 | EAX = 9; |
95 | $int 0x40 |
96 | $int 0x40 |
96 | } |
97 | } |
97 | 98 | ||
98 | int GetSlot(dword ECX) |
99 | inline fastcall int GetSlot(dword ECX) |
99 | { |
100 | { |
100 | EAX = 18; |
101 | EAX = 18; |
101 | EBX = 21; |
102 | EBX = 21; |
102 | $int 0x40 |
103 | $int 0x40 |
103 | } |
104 | } |
104 | 105 | ||
105 | int ActiveProcess() |
106 | inline fastcall int ActiveProcess() |
106 | { |
107 | { |
107 | EAX = 18; |
108 | EAX = 18; |
108 | EBX = 7; |
109 | EBX = 7; |
109 | $int 0x40 |
110 | $int 0x40 |
110 | } |
111 | } |
111 | 112 | ||
112 | //------------------------------------------------------------------------------- |
113 | //------------------------------------------------------------------------------- |
113 | 114 | ||
114 | inline fastcall dword WaitEvent(){ |
115 | inline fastcall dword WaitEvent(){ |
115 | EAX = 10; // wait here for event |
116 | EAX = 10; // wait here for event |
116 | $int 0x40 |
117 | $int 0x40 |
117 | } |
118 | } |
118 | 119 | ||
119 | inline fastcall void SetEventMask(dword EBX) |
120 | inline fastcall void SetEventMask(dword EBX) |
120 | { |
121 | { |
121 | EAX = 40; |
122 | EAX = 40; |
122 | $int 0x40 |
123 | $int 0x40 |
123 | } |
124 | } |
124 | 125 | ||
125 | inline fastcall word GetKey(){ //Gluk fix |
126 | inline fastcall word GetKey(){ //Gluk fix |
126 | $push edx |
127 | $push edx |
127 | @getkey: |
128 | @getkey: |
128 | $mov eax,2 |
129 | $mov eax,2 |
129 | $int 0x40 |
130 | $int 0x40 |
130 | $cmp eax,1 |
131 | $cmp eax,1 |
131 | $jne getkeyi |
132 | $jne getkeyi |
132 | $mov ah,dh |
133 | $mov ah,dh |
133 | $jmp getkeyii //jz? |
134 | $jmp getkeyii //jz? |
134 | @getkeyi: |
135 | @getkeyi: |
135 | $mov dh,ah |
136 | $mov dh,ah |
136 | $jmp getkey |
137 | $jmp getkey |
137 | @getkeyii: |
138 | @getkeyii: |
138 | $pop edx |
139 | $pop edx |
139 | EAX = EAX >> 8; |
140 | EAX = EAX >> 8; |
140 | } |
141 | } |
141 | 142 | ||
142 | inline fastcall word GetButtonID(){ |
143 | inline fastcall word GetButtonID(){ |
143 | EAX = 17; // Get ID |
144 | EAX = 17; // Get ID |
144 | $int 0x40 |
145 | $int 0x40 |
145 | EAX = EAX >> 8; |
146 | EAX = EAX >> 8; |
146 | } |
147 | } |
147 | 148 | ||
148 | inline fastcall void ExitProcess(){ |
149 | inline fastcall void ExitProcess(){ |
149 | EAX = -1; // close this program |
150 | EAX = -1; // close this program |
150 | $int 0x40 |
151 | $int 0x40 |
151 | } |
152 | } |
152 | 153 | ||
153 | inline fastcall void Pause(dword EBX){ |
154 | inline fastcall void Pause(dword EBX){ |
154 | $mov eax, 5 // 㧠, ¢ á®âëå ¤®«ïå ᥪã¤ë |
155 | $mov eax, 5 // 㧠, ¢ á®âëå ¤®«ïå ᥪã¤ë |
155 | $int 0x40 |
156 | $int 0x40 |
156 | } |
157 | } |
157 | 158 | ||
158 | //------------------------------------------------------------------------------ |
159 | //------------------------------------------------------------------------------ |
159 | void DefineAndDrawWindow(dword x,y,sizeX,sizeY, |
160 | void DefineAndDrawWindow(dword x,y,sizeX,sizeY,byte mainAreaType, |
160 | byte mainAreaType, dword mainAreaColor,byte headerType,dword headerColor,EDI) |
161 | dword mainAreaColour,byte headerType,dword headerColour,EDI) |
161 | { |
162 | { |
162 | EAX = 12; |
163 | EAX = 12; // function 12:tell os about windowdraw |
163 | EBX = 1; |
164 | EBX = 1; |
164 | $int 0x40 |
165 | $int 0x40 |
165 | 166 | ||
166 | EBX = x << 16 + sizeX; |
167 | EBX = x << 16 + sizeX; |
167 | ECX = y << 16 + sizeY; |
168 | ECX = y << 16 + sizeY; |
168 | EDX = mainAreaType << 24 | mainAreaColor; |
169 | EDX = mainAreaType << 24 | mainAreaColour; |
169 | ESI = headerType << 24 | headerColor; |
170 | ESI = headerType << 24 | headerColour; |
170 | $xor eax,eax |
171 | $xor eax,eax |
171 | $int 0x40 |
172 | $int 0x40 |
172 | 173 | ||
173 | EAX = 12; |
174 | EAX = 12; // function 12:tell os about windowdraw |
174 | EBX = 2; |
175 | EBX = 2; |
175 | $int 0x40 |
176 | $int 0x40 |
176 | } |
177 | } |
177 | 178 | ||
178 | inline fastcall void CreateThread(dword ECX,EDX) |
179 | inline fastcall void CreateThread(dword ECX,EDX) |
179 | { |
180 | { |
180 | EAX = 51; |
181 | EAX = 51; |
181 | EBX = 1; |
182 | EBX = 1; |
182 | $int 0x40 |
183 | $int 0x40 |
183 | } |
184 | } |
184 | 185 | ||
185 | inline fastcall void DrawTitle(dword ECX){ |
186 | inline fastcall void DrawTitle(dword ECX){ |
186 | EAX = 71; |
187 | EAX = 71; |
187 | EBX = 1; |
188 | EBX = 1; |
188 | $int 0x40; |
189 | $int 0x40; |
189 | } |
190 | } |
190 | 191 | ||
191 | inline fastcall dword GetSkinWidth(){ |
192 | inline fastcall dword GetSkinWidth(){ |
192 | EAX = 48; |
193 | EAX = 48; |
193 | EBX = 4; |
194 | EBX = 4; |
194 | $int 0x40 |
195 | $int 0x40 |
195 | } |
196 | } |
196 | 197 | ||
197 | inline fastcall void MoveSize(dword EBX,ECX,EDX,ESI){ |
198 | inline fastcall void MoveSize(dword EBX,ECX,EDX,ESI){ |
198 | EAX = 67; |
199 | EAX = 67; |
199 | $int 0x40 |
200 | $int 0x40 |
200 | } |
201 | } |
201 | 202 | ||
202 | //------------------------------------------------------------------------------ |
203 | //------------------------------------------------------------------------------ |
203 | 204 | ||
204 | inline fastcall dword strlen(EDI){ |
205 | inline fastcall dword strlen(EDI){ |
205 | asm { |
206 | asm { |
206 | xor ecx, ecx |
207 | xor ecx, ecx |
207 | xor eax, eax |
208 | xor eax, eax |
208 | dec ecx |
209 | dec ecx |
209 | repne scasb |
210 | repne scasb |
210 | sub eax, 2 |
211 | sub eax, 2 |
211 | sub eax, ecx |
212 | sub eax, ecx |
212 | } |
213 | } |
213 | } |
214 | } |
214 | 215 | ||
215 | 216 | ||
216 | inline fastcall copystr(dword ESI,EDI) |
217 | inline fastcall copystr(dword ESI,EDI) |
217 | { |
218 | { |
218 | $cld |
219 | $cld |
219 | l1: |
220 | l1: |
220 | $lodsb |
221 | $lodsb |
221 | $stosb |
222 | $stosb |
222 | $test al,al |
223 | $test al,al |
223 | $jnz l1 |
224 | $jnz l1 |
224 | } |
225 | } |
225 | 226 | ||
226 | char buffer[11]=""; |
227 | char buffer[11]=""; |
227 | inline fastcall dword IntToStr(dword ESI) |
228 | inline fastcall dword IntToStr(dword ESI) |
228 | { |
229 | { |
229 | $mov edi, #buffer |
230 | $mov edi, #buffer |
230 | $mov ecx, 10 |
231 | $mov ecx, 10 |
231 | $test esi, esi |
232 | $test esi, esi |
232 | $jns f1 |
233 | $jns f1 |
233 | $mov al, '-' |
234 | $mov al, '-' |
234 | $stosb |
235 | $stosb |
235 | $neg esi |
236 | $neg esi |
236 | f1: |
237 | f1: |
237 | $mov eax, esi |
238 | $mov eax, esi |
238 | $push -'0' |
239 | $push -'0' |
239 | f2: |
240 | f2: |
240 | $xor edx, edx |
241 | $xor edx, edx |
241 | $div ecx |
242 | $div ecx |
242 | $push edx |
243 | $push edx |
243 | $test eax, eax |
244 | $test eax, eax |
244 | $jnz f2 |
245 | $jnz f2 |
245 | f3: |
246 | f3: |
246 | $pop eax |
247 | $pop eax |
247 | $add al, '0' |
248 | $add al, '0' |
248 | $stosb |
249 | $stosb |
249 | $jnz f3 |
250 | $jnz f3 |
250 | $mov eax, #buffer |
251 | $mov eax, #buffer |
251 | $ret |
252 | $ret |
252 | } |
253 | } |
253 | 254 | ||
254 | inline fastcall int strcmp(ESI, EDI) |
255 | inline fastcall int strcmp(ESI, EDI) |
255 | { |
256 | { |
256 | loop() |
257 | loop() |
257 | { |
258 | { |
258 | IF (DSBYTE[ESI] |
259 | IF (DSBYTE[ESI] |
259 | IF (DSBYTE[ESI]>DSBYTE[EDI]) RETURN 1; |
260 | IF (DSBYTE[ESI]>DSBYTE[EDI]) RETURN 1; |
260 | IF (DSBYTE[ESI]=='\0') RETURN 0; |
261 | IF (DSBYTE[ESI]=='\0') RETURN 0; |
261 | ESI++; |
262 | ESI++; |
262 | EDI++; |
263 | EDI++; |
263 | } |
264 | } |
264 | } |
265 | } |
265 | 266 | ||
266 | 267 | ||
267 | inline fastcall unsigned int find_symbol(ESI,BL) |
268 | inline fastcall unsigned int find_symbol(ESI,BL) |
268 | { |
269 | { |
269 | int jj=0, last=-1; |
270 | int jj=0, last=-1; |
270 | do{ |
271 | do{ |
271 | jj++; |
272 | jj++; |
272 | $lodsb |
273 | $lodsb |
273 | IF(AL==BL) last=jj; |
274 | IF(AL==BL) last=jj; |
274 | } while(AL!=0); |
275 | } while(AL!=0); |
275 | return last; |
276 | return last; |
276 | } |
277 | } |
277 | 278 | ||
278 | 279 | ||
279 | inline fastcall ChangeCase(dword EDX) |
280 | inline fastcall ChangeCase(dword EDX) |
280 | { |
281 | { |
281 | AL=DSBYTE[EDX]; |
282 | AL=DSBYTE[EDX]; |
282 | IF(AL>='a')&&(AL<='z')DSBYTE[EDX]=AL&0x5f; |
283 | IF(AL>='a')&&(AL<='z')DSBYTE[EDX]=AL&0x5f; |
283 | IF (AL>=160) && (AL<=175) DSBYTE[EDX] = AL - 32; //à-ï |
284 | IF (AL>=160) && (AL<=175) DSBYTE[EDX] = AL - 32; //à-ï |
284 | IF (AL>=224) && (AL<=239) DSBYTE[EDX] = AL - 80; //à-ï |
285 | IF (AL>=224) && (AL<=239) DSBYTE[EDX] = AL - 80; //à-ï |
285 | do{ |
286 | do{ |
286 | EDX++; |
287 | EDX++; |
287 | AL=DSBYTE[EDX]; |
288 | AL=DSBYTE[EDX]; |
288 | IF(AL>='A')&&(AL<='Z'){DSBYTE[EDX]=AL|0x20; CONTINUE;} |
289 | IF(AL>='A')&&(AL<='Z'){DSBYTE[EDX]=AL|0x20; CONTINUE;} |
289 | IF(AL>='')&&(AL<='')DSBYTE[EDX]=AL|0x20; // -¯ |
290 | IF(AL>='')&&(AL<='')DSBYTE[EDX]=AL|0x20; // -¯ |
290 | IF (AL>=144) && (AL<=159) DSBYTE[EDX] = AL + 80; //à-ï |
291 | IF (AL>=144) && (AL<=159) DSBYTE[EDX] = AL + 80; //à-ï |
291 | }while(AL!=0); |
292 | }while(AL!=0); |
292 | } |
293 | } |
293 | 294 | ||
294 | 295 | ||
295 | //------------------------------------------------------------------------------ |
296 | //------------------------------------------------------------------------------ |
296 | inline fastcall void PutPixel(dword EBX,ECX,EDX){ |
297 | inline fastcall void PutPixel(dword EBX,ECX,EDX){ |
297 | EAX=1; |
298 | EAX=1; |
298 | $int 0x40 |
299 | $int 0x40 |
299 | } |
300 | } |
300 | 301 | ||
301 | void DefineButton(dword x,y,w,h,EDX,ESI){ |
302 | void DefineButton(dword x,y,w,h,EDX,ESI){ |
302 | EAX = 8; |
303 | EAX = 8; |
303 | EBX = x<<16+w; |
304 | EBX = x<<16+w; |
304 | ECX = y<<16+h; |
305 | ECX = y<<16+h; |
305 | $int 0x40 |
306 | $int 0x40 |
306 | } |
307 | } |
307 | 308 | ||
308 | inline fastcall void DeleteButton(dword EDX) |
309 | inline fastcall void DeleteButton(dword EDX) |
309 | { |
310 | { |
310 | EAX = 8; |
311 | EAX = 8; |
311 | EDX += BT_DEL; |
312 | EDX += BT_DEL; |
312 | $int 0x40; |
313 | $int 0x40; |
313 | } |
314 | } |
314 | 315 | ||
315 | void WriteText(dword x,y,byte fontType, dword color, EDX, ESI) |
316 | void WriteText(dword x,y,byte fontType, dword color, EDX, ESI) |
316 | { |
317 | { |
317 | EAX = 4; |
318 | EAX = 4; |
318 | EBX = x<<16+y; |
319 | EBX = x<<16+y; |
319 | ECX = fontType<<24+color; |
320 | ECX = fontType<<24+color; |
320 | $int 0x40; |
321 | $int 0x40; |
321 | } |
322 | } |
322 | 323 | ||
323 | void DrawBar(dword x,y,w,h,EDX) |
324 | void DrawBar(dword x,y,w,h,EDX) |
324 | { |
325 | { |
325 | #speed |
326 | #speed |
326 | EAX = 13; |
327 | EAX = 13; |
327 | EBX = x<<16+w; |
328 | EBX = x<<16+w; |
328 | ECX = y<<16+h; |
329 | ECX = y<<16+h; |
329 | $int 0x40 |
330 | $int 0x40 |
330 | #codesize |
331 | #codesize |
331 | } |
332 | } |
332 | 333 | ||
333 | void DrawRegion_3D(dword x,y,width,height,color1,color2) |
334 | void DrawRegion_3D(dword x,y,width,height,color1,color2) |
334 | { |
335 | { |
335 | DrawBar(x,y,width+1,1,color1); //¯®«®á £®à ᢥàåã |
336 | DrawBar(x,y,width+1,1,color1); //¯®«®á £®à ᢥàåã |
336 | DrawBar(x,y+1,1,height-1,color1); //¯®«®á á«¥¢ |
337 | DrawBar(x,y+1,1,height-1,color1); //¯®«®á á«¥¢ |
337 | DrawBar(x+width,y+1,1,height,color2); //¯®«®á á¯à ¢ |
338 | DrawBar(x+width,y+1,1,height,color2); //¯®«®á á¯à ¢ |
338 | DrawBar(x,y+height,width,1,color2); //¯®«®á £®à ᨧã |
339 | DrawBar(x,y+height,width,1,color2); //¯®«®á £®à ᨧã |
339 | } |
340 | } |
340 | 341 | ||
341 | void DrawFlatButton(dword x,y,width,height,id,color,text) |
342 | void DrawFlatButton(dword x,y,width,height,id,color,text) |
342 | { |
343 | { |
343 | DrawRegion_3D(x,y,width,height,0x94AECE,0x94AECE); |
344 | DrawRegion_3D(x,y,width,height,0x94AECE,0x94AECE); |
344 | DrawRegion_3D(x+1,y+1,width-2,height-2,0xFFFFFF,0xC7C7C7); |
345 | DrawRegion_3D(x+1,y+1,width-2,height-2,0xFFFFFF,0xC7C7C7); |
345 | DrawBar(x+2,y+2,width-3,height-3,color); //§ «¨¢ª |
346 | DrawBar(x+2,y+2,width-3,height-3,color); //§ «¨¢ª |
346 | IF (id<>0) DefineButton(x+1,y+1,width-2,height-2,id+BT_HIDE,0xEFEBEF); //ª®¯ª |
347 | IF (id<>0) DefineButton(x+1,y+1,width-2,height-2,id+BT_HIDE,0xEFEBEF); //ª®¯ª |
347 | WriteText(-strlen(text)*6+width/2+x+1,height/2-3+y,0x80,0,text,0); |
348 | WriteText(-strlen(text)*6+width/2+x+1,height/2-3+y,0x80,0,text,0); |
348 | } |
349 | } |
349 | 350 | ||
350 | void PutPaletteImage(dword EBX,w,h,x,y, EDI) |
351 | void PutPaletteImage(dword EBX,w,h,x,y, EDI) |
351 | { |
352 | { |
352 | EAX = 65; |
353 | EAX = 65; |
353 | ECX = w<<16+h; |
354 | ECX = w<<16+h; |
354 | EDX = x<<16+y; |
355 | EDX = x<<16+y; |
355 | ESI = 8; |
356 | ESI = 8; |
356 | EBP = 0; |
357 | EBP = 0; |
357 | $int 0x40 |
358 | $int 0x40 |
358 | } |
359 | } |
359 | 360 | ||
360 | void PutImage(dword EBX,w,h,x,y) |
361 | void PutImage(dword EBX,w,h,x,y) |
361 | { |
362 | { |
362 | EAX = 7; |
363 | EAX = 7; |
363 | ECX = w<<16+h; |
364 | ECX = w<<16+h; |
364 | EDX = x<<16+y; |
365 | EDX = x<<16+y; |
365 | $int 0x40 |
366 | $int 0x40 |
366 | } |
367 | } |
367 | 368 | ||
368 | //------------------------------------------------------------------------------ |
369 | //------------------------------------------------------------------------------ |
369 | /*void WriteDebug(dword EDX) |
370 | inline fastcall void WriteDebug(dword EDX) |
370 | { |
371 | { |
371 | $mov eax, 63 |
372 | $mov eax, 63 |
372 | $mov ebx, 1 |
373 | $mov ebx, 1 |
373 | next_char: |
374 | next_char: |
374 | $mov ecx, DSDWORD[edx] |
375 | $mov ecx, DSDWORD[edx] |
375 | $or cl, cl |
376 | $or cl, cl |
376 | $jz done |
377 | $jz done |
377 | $int 0x40 |
378 | $int 0x40 |
378 | $inc edx |
379 | $inc edx |
379 | $jmp next_char |
380 | $jmp next_char |
380 | done: |
381 | done: |
381 | $mov cl, 13 |
382 | $mov cl, 13 |
382 | $int 0x40 |
383 | $int 0x40 |
383 | $mov cl, 10 |
384 | $mov cl, 10 |
384 | $int 0x40 |
385 | $int 0x40 |
385 | } |
386 | } |
386 | 387 | ||
387 | inline fastcall void WriteFullDebug(dword ESI) |
388 | inline fastcall void WriteFullDebug(dword ESI) |
388 | { |
389 | { |
389 | WriteDebug(""); |
390 | WriteDebug(""); |
390 | WriteDebug(ESI); |
391 | WriteDebug(ESI); |
391 | 392 | ||
392 | WriteDebug("Number of files:"); |
393 | WriteDebug("Number of files:"); |
393 | WriteDebug(IntToStr(count)); |
394 | WriteDebug(IntToStr(count)); |
394 | 395 | ||
395 | WriteDebug("but_num:"); |
396 | WriteDebug("but_num:"); |
396 | WriteDebug(IntToStr(but_num)); |
397 | WriteDebug(IntToStr(but_num)); |
397 | 398 | ||
398 | WriteDebug("curbtn"); |
399 | WriteDebug("curbtn"); |
399 | WriteDebug(IntToStr(curbtn)); |
400 | WriteDebug(IntToStr(curbtn)); |
400 | 401 | ||
401 | WriteDebug("ra_kadrom:"); |
402 | WriteDebug("ra_kadrom:"); |
402 | WriteDebug(IntToStr(za_kadrom)); |
403 | WriteDebug(IntToStr(za_kadrom)); |
403 | 404 | ||
404 | Pause(200); |
405 | Pause(200); |
405 | }*/16+y; |
- | |
406 | ><16+y; |
406 | }16+y; |
- | 407 | ><16+y; |
|
407 | >16+h; |
408 | >16+h; |
408 | ><16+h; |
409 | ><16+h; |
409 | >16+y; |
410 | >16+y; |
410 | ><16+y; |
411 | ><16+y; |
411 | >16+h; |
412 | >16+h; |
412 | ><16+h; |
413 | ><16+h; |
413 | >>16+h; |
414 | >>16+h; |
414 | ><16+h; |
415 | ><16+h; |
415 | >16+w; |
416 | >16+w; |
416 | ><16+w; |
417 | ><16+w; |
417 | >24+color; |
418 | >24+color; |
418 | ><24+color; |
419 | ><24+color; |
419 | >16+y; |
420 | >16+y; |
420 | ><16+y; |
421 | ><16+y; |
421 | >16+h; |
422 | >16+h; |
422 | ><16+h; |
423 | ><16+h; |
423 | >16+w; |
424 | >16+w; |
424 | ><16+w; |
425 | ><16+w; |
425 | >=159)>='')DSBYTE[EDX]=AL|0x20;>='Z'){DSBYTE[EDX]=AL|0x20;>=239)>=175)>='z')DSBYTE[EDX]=AL&0x5f; |
426 | >=159)>='')DSBYTE[EDX]=AL|0x20;>='Z'){DSBYTE[EDX]=AL|0x20;>=239)>=175)>='z')DSBYTE[EDX]=AL&0x5f; |
426 | >><>><>><>><> |
427 | >><>><>><>><> |