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