Rev 3715 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 3715 | Rev 7048 | ||
---|---|---|---|
Line 93... | Line 93... | ||
93 | od_y_start equ [ebp+54] ; Window Y position |
93 | od_y_start equ [ebp+54] ; Window Y position |
94 | ;***************************************************************************** |
94 | ;***************************************************************************** |
95 | .init: |
95 | .init: |
96 | pusha |
96 | pusha |
97 | mov ebp,dword [esp+36] |
97 | mov ebp,dword [esp+36] |
98 | mcall 9,od_procinfo,-1 |
98 | mcall SF_THREAD_INFO,od_procinfo,-1 |
99 | mov ebx,[ebx+30] |
99 | mov ebx,[ebx+30] |
100 | mov edi,od_com_area_name |
100 | mov edi,od_com_area_name |
101 | add edi,7 |
101 | add edi,7 |
102 | std |
102 | std |
103 | mov ecx,4 |
103 | mov ecx,4 |
Line 114... | Line 114... | ||
114 | shr ebx,8 |
114 | shr ebx,8 |
115 | dec ecx |
115 | dec ecx |
116 | jnz @r |
116 | jnz @r |
117 | cld |
117 | cld |
Line 118... | Line 118... | ||
118 | 118 | ||
119 | mcall 68,22,od_com_area_name,8192,0x09 |
119 | mcall SF_SYS_MISC,SSF_MEM_OPEN,od_com_area_name,8192,0x09 |
Line 120... | Line 120... | ||
120 | mov od_com_area,eax |
120 | mov od_com_area,eax |
121 | 121 | ||
122 | mov esi,od_openfile_pach |
122 | mov esi,od_openfile_pach |
Line 137... | Line 137... | ||
137 | mov [eax+2],bx |
137 | mov [eax+2],bx |
Line 138... | Line 138... | ||
138 | 138 | ||
Line 139... | Line 139... | ||
139 | mov [eax],word 2 ; folder for open |
139 | mov [eax],word 2 ; folder for open |
140 | 140 | ||
Line 141... | Line 141... | ||
141 | pusha |
141 | pusha |
142 | mcall 9,od_procinfo,-1 |
142 | mcall SF_THREAD_INFO,od_procinfo,-1 |
143 | 143 | ||
144 | mov eax,[ebx+42] ;main window x size |
144 | mov eax,[ebx+42] ;main window x size |
Line 214... | Line 214... | ||
214 | mov [ebx],dword 7 |
214 | mov [ebx],dword 7 |
215 | mov eax,od_com_area_name |
215 | mov eax,od_com_area_name |
216 | mov [ebx+8],eax |
216 | mov [ebx+8],eax |
217 | mov eax,od_start_path |
217 | mov eax,od_start_path |
218 | mov [ebx+21],eax |
218 | mov [ebx+21],eax |
219 | mcall 70 |
219 | mcall SF_FILE |
Line 220... | Line 220... | ||
220 | 220 | ||
221 | shr eax,31 |
221 | shr eax,31 |
222 | test eax,eax |
222 | test eax,eax |
223 | jnz .1 |
223 | jnz .1 |
Line 227... | Line 227... | ||
227 | ; is not present the really. For this reason |
227 | ; is not present the really. For this reason |
228 | ; not use func 10 and 23, because event 1 |
228 | ; not use func 10 and 23, because event 1 |
229 | ; is not cleared without call of func 0. |
229 | ; is not cleared without call of func 0. |
230 | ; In this case is suitable only func 5 and 11, |
230 | ; In this case is suitable only func 5 and 11, |
231 | ; or 68.1 and 11 for better response. |
231 | ; or 68.1 and 11 for better response. |
232 | mcall 68,1 |
232 | mcall SF_SYS_MISC,SSF_SWITCH_TASK |
233 | mcall 5,10 ; because OS uses a new scheduler for kernel(SVN r.3534) |
233 | mcall SF_SLEEP,10 ; because OS uses a new scheduler for kernel(SVN r.3534) |
234 | mcall 11 |
234 | mcall SF_CHECK_EVENT |
235 | cmp eax,1 |
235 | cmp eax,1 |
236 | je .draw |
236 | je .draw |
237 | cmp eax,2 |
237 | cmp eax,2 |
238 | je .key |
238 | je .key |
239 | cmp eax,3 |
239 | cmp eax,3 |
240 | je .button |
240 | je .button |
241 | jmp .no_draw |
241 | jmp .no_draw |
242 | .key: |
242 | .key: |
243 | mcall 2 |
243 | mcall SF_GET_KEY |
244 | jmp .no_draw |
244 | jmp .no_draw |
245 | .button: |
245 | .button: |
246 | mcall 17 |
246 | mcall SF_GET_BUTTON |
247 | jmp .no_draw |
247 | jmp .no_draw |
248 | ;---------------------------------------------- |
248 | ;---------------------------------------------- |
249 | .draw: |
249 | .draw: |
250 | pusha |
250 | pusha |
251 | call od_draw_window |
251 | call od_draw_window |
Line 254... | Line 254... | ||
254 | pusha |
254 | pusha |
255 | call .prepare_PID |
255 | call .prepare_PID |
256 | jz @f |
256 | jz @f |
Line 257... | Line 257... | ||
257 | 257 | ||
258 | mov ecx,eax ; WINDOW SLOT |
258 | mov ecx,eax ; WINDOW SLOT |
259 | mcall 18,7 |
259 | mcall SF_SYSTEM,SSF_GET_ACTIVE_WINDOW |
260 | cmp eax,ecx ; compare ACTIVE and WINDOW SLOT |
260 | cmp eax,ecx ; compare ACTIVE and WINDOW SLOT |
Line 261... | Line 261... | ||
261 | jne @f |
261 | jne @f |
262 | 262 | ||
263 | mov eax,od_com_area |
263 | mov eax,od_com_area |
264 | mov ecx,[eax+12] |
264 | mov ecx,[eax+12] |
265 | test ecx,ecx |
265 | test ecx,ecx |
266 | jz @f |
266 | jz @f |
267 | mcall 18,3 |
267 | mcall SF_SYSTEM,SSF_FOCUS_WINDOW |
268 | @@: |
268 | @@: |
269 | popa |
269 | popa |
270 | ;---------------------------------------------- |
270 | ;---------------------------------------------- |
Line 313... | Line 313... | ||
313 | mov od_y_size, ebx |
313 | mov od_y_size, ebx |
Line 314... | Line 314... | ||
314 | 314 | ||
315 | call .prepare_PID |
315 | call .prepare_PID |
316 | jz @f |
316 | jz @f |
317 | mov ecx,eax ; WINDOW SLOT |
317 | mov ecx,eax ; WINDOW SLOT |
318 | mcall 18,3 |
318 | mcall SF_SYSTEM,SSF_FOCUS_WINDOW |
319 | @@: |
319 | @@: |
320 | OpenDialog_exit |
320 | OpenDialog_exit |
321 | ;---------------------------------------------- |
321 | ;---------------------------------------------- |
322 | .prepare_PID: |
322 | .prepare_PID: |
323 | mcall 9,od_procinfo,-1 |
323 | mcall SF_THREAD_INFO,od_procinfo,-1 |
324 | mov ecx,[ebx+30] ; PID |
324 | mov ecx,[ebx+30] ; PID |
325 | mcall 18,21 |
325 | mcall SF_SYSTEM,SSF_GET_THREAD_SLOT |
326 | test eax,eax |
326 | test eax,eax |
327 | ret |
327 | ret |
328 | ;---------------------------------------------- |
328 | ;---------------------------------------------- |
329 | .get_filter_data: |
329 | .get_filter_data: |
Line 339... | Line 339... | ||
339 | jnz @f |
339 | jnz @f |
340 | mov edi,od_com_area |
340 | mov edi,od_com_area |
341 | mov [edi+4096],dword 0 |
341 | mov [edi+4096],dword 0 |
342 | ret |
342 | ret |
343 | @@: |
343 | @@: |
- | 344 | cmp ecx,4091 ;max filter len = 8192-4100-1 |
|
- | 345 | jle @f |
|
- | 346 | ;todo ... error message: corrypt filter |
|
- | 347 | mov edi,od_com_area |
|
- | 348 | mov [edi+4096],dword 0 |
|
- | 349 | ret |
|
- | 350 | @@: |
|
344 | inc ecx |
351 | inc ecx |
345 | cld |
352 | cld |
346 | rep movsb |
353 | rep movsb |
347 | mov edi,od_com_area |
354 | mov edi,od_com_area |
348 | mov [edi+4096],dword 1 |
355 | mov [edi+4096],dword 1 |