Rev 5158 | Rev 6766 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 5158 | Rev 6763 | ||
---|---|---|---|
Line 1... | Line 1... | ||
1 | ; |
1 | ; |
2 | ; Screenshooter for Kolibri |
2 | ; Screenshooter for Kolibri |
3 | ; |
3 | ; |
- | 4 | ;--------------------------------------------------------------------- |
|
- | 5 | ; ¢â®à ¯à®£à ¬¬ë ¢â¨å®¢ ªá¨¬ (Maxxxx32) |
|
- | 6 | ; |
|
- | 7 | ; 26.11.16 - IgorA ᨬª¨ á®åà ïîâìáï ¢ ä®à¬ ⥠*.png |
|
- | 8 | ; 02.11.10 - ᯮ«ì§ã¥âáï checkbox ¢¥àᨨ 2 |
|
- | 9 | ; |
|
4 | ; version: 1.2 |
10 | ; version: 1.2 |
5 | ; last update: 08/09/2010 |
11 | ; last update: 08/09/2010 |
6 | ; written by: Marat Zakiyanov aka Mario79, aka Mario |
12 | ; written by: Marat Zakiyanov aka Mario79, aka Mario |
7 | ; changes: select path for save with OpenDialog, |
13 | ; changes: select path for save with OpenDialog, |
8 | ; bag fix for threads stacks |
14 | ; bag fix for threads stacks |
9 | ;--------------------------------------------------------------------- |
- | |
10 | ; 01.06.09 - ®¬¯®¥âë ¡¥àãâìáï ¨§ á¨á⥬®© ¡¨¡«¨®â¥ª¨ |
15 | ; 01.06.09 - |
11 | ; ¢â®à ¯à®£à ¬¬ë ¢â¨å®¢ ªá¨¬ (Maxxxx32) |
- | |
12 | ; 24.07.2008 |
16 | ; 24.07.08 - |
13 | ; 01.02.07 - ®¡®¢«ñ editbox |
17 | ; 01.02.07 - ®¡®¢«ñ editbox |
14 | ; 31.01.07 - ¢áñ ⥯¥àì à¨áã¥âáï ®â®á¨â¥«ì® ª«¨¥â᪮© ®¡« á⨠|
18 | ; 31.01.07 - ¢áñ ⥯¥àì à¨áã¥âáï ®â®á¨â¥«ì® ª«¨¥â᪮© ®¡« á⨠|
15 | ; 02.11.10 - ᯮ«ì§ã¥âáï checkbox ¢¥àᨨ 2 |
- | |
- | 19 | ||
Line 16... | Line 20... | ||
16 | 20 | ||
Line 17... | Line 21... | ||
17 | format binary as "" |
21 | format binary as "" |
18 | 22 | ||
19 | title equ 'Screenshooter v 1.2' ; £®«®¢®ª ®ª |
23 | title equ 'Screenshooter v 1.2' ; £®«®¢®ª ®ª |
20 | include '../../develop/libraries/box_lib/load_lib.mac' |
- | |
21 | include '../../develop/libraries/box_lib/trunk/box_lib.mac' |
24 | include '../../develop/libraries/box_lib/load_lib.mac' |
- | 25 | include '../../develop/libraries/box_lib/trunk/box_lib.mac' |
|
22 | ;include '../../develop/examples/editbox/trunk/editbox.inc' |
26 | include '../../config.inc' ;for nightbuild |
- | 27 | include '../../proc32.inc' |
|
- | 28 | include '../../macros.inc' |
|
23 | include '../../config.inc' ;for nightbuild |
29 | include '../../KOSfuncs.inc' |
24 | include '../../macros.inc' |
30 | include '../../develop/libraries/libs-dev/libimg/libimg.inc' |
25 | include 'txtbut.inc' |
31 | include 'txtbut.inc' |
26 | include 'label.inc' |
32 | include 'label.inc' |
Line 27... | Line -... | ||
27 | include 'textwork.inc' |
- | |
28 | include 'scrshoot.mac' |
- | |
29 | 33 | include 'textwork.inc' |
|
30 | ;include 'macros.inc' ; ¢áâ ¢«ï¥¬ ¬ ªà®áë |
34 | include 'scrshoot.mac' |
31 | ; meos_header cmdstr ; ¢áâ ¢«ï¥¬ § £®«®¢®ª ¯à®£à ¬¬ë |
35 | |
32 | use32 |
36 | use32 |
33 | org 0x0 |
37 | org 0x0 |
Line 38... | Line 42... | ||
38 | dd i_end |
42 | dd i_end |
39 | dd stacktop |
43 | dd stacktop |
40 | dd cmdstr |
44 | dd cmdstr |
41 | dd cur_dir_path |
45 | dd cur_dir_path |
Line -... | Line 46... | ||
- | 46 | ||
- | 47 | include '../../dll.inc' |
|
42 | 48 | ||
43 | align 4 |
49 | align 4 |
44 | @use_library |
50 | @use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load |
45 | use_txt_button ; | |
51 | use_txt_button ; | |
46 | use_label ; |-- GUI ª®¬¯®¥âë ¨ ¥ª®â®àë¥ ¯à®æ¥¤ãàë |
52 | use_label ; |-- GUI ª®¬¯®¥âë ¨ ¥ª®â®àë¥ ¯à®æ¥¤ãàë |
47 | use_text_work ; / |
53 | use_text_work ; / |
48 | include 'scrwin.inc' ; ¢áâ ¢«ï¥¬ ª®¤ ®ª ¯à¤¯à®á¬®âà |
54 | include 'scrwin.inc' ; ¢áâ ¢«ï¥¬ ª®¤ ®ª ¯à¤¯à®á¬®âà |
Line 52... | Line 58... | ||
52 | include 'srectwin.inc' |
58 | include 'srectwin.inc' |
53 | include 'lang.inc' |
59 | include 'lang.inc' |
Line 54... | Line 60... | ||
54 | 60 | ||
55 | macro get_sys_colors col_buf |
61 | macro get_sys_colors col_buf |
56 | { |
- | |
57 | ;mov eax,48 |
- | |
58 | push 48 |
- | |
59 | pop eax |
- | |
60 | ;mov ebx,3 |
- | |
61 | push 3 |
- | |
62 | pop ebx |
62 | { |
63 | ;mov ecx,col_buf |
- | |
64 | push col_buf |
- | |
65 | pop ecx |
- | |
66 | ;mov edx,40 |
- | |
67 | push 40 |
- | |
68 | pop edx |
- | |
69 | mcall |
63 | mcall SF_STYLE_SETTINGS, SSF_GET_COLORS, col_buf, 40 |
Line 70... | Line 64... | ||
70 | } |
64 | } |
71 | 65 | ||
72 | ;--- ç «® ¯à®£à ¬¬ë --- |
66 | ;--- ç «® ¯à®£à ¬¬ë --- |
73 | align 4 |
- | |
74 | start: |
- | |
Line 75... | Line 67... | ||
75 | ;sys_load_library library_name, cur_dir_path, library_path, system_path, \ |
67 | align 4 |
Line 76... | Line 68... | ||
76 | ;err_message_found_lib, head_f_l, myimport, err_message_import, head_f_i |
68 | start: |
77 | 69 | ||
78 | load_libraries l_libs_start,end_l_libs |
70 | load_libraries l_libs_start,end_l_libs |
79 | 71 | ||
80 | ;if return code =-1 then exit, else nornary work |
72 | ;if return code =-1 then exit, else nornary work |
81 | ; cmp eax,-1 |
73 | ; cmp eax,-1 |
82 | inc eax |
- | |
83 | test eax,eax |
74 | inc eax |
84 | jz close |
- | |
85 | ;;;;;;;;;;;;;;;; init memory 68/11 |
75 | test eax,eax |
86 | mov eax,68 |
76 | jz close |
Line 87... | Line 77... | ||
87 | mov ebx,11 |
77 | ;;;;;;;;;;;;;;;; init memory 68/11 |
88 | mcall |
78 | mcall SF_SYS_MISC, SSF_HEAP_INIT |
Line 110... | Line 100... | ||
110 | stosb |
100 | stosb |
111 | test eax,eax |
101 | test eax,eax |
112 | jnz @b |
102 | jnz @b |
Line 113... | Line 103... | ||
113 | 103 | ||
114 | ;OpenDialog initialisation |
- | |
115 | push dword OpenDialog_data |
104 | ;OpenDialog initialisation |
Line 116... | Line 105... | ||
116 | call [OpenDialog_Init] |
105 | stdcall [OpenDialog_Init], OpenDialog_data |
117 | - | ||
118 | ; prepare for PathShow |
106 | |
119 | push dword PathShow_data_1 |
107 | ; prepare for PathShow |
120 | call [PathShow_prepare] |
108 | stdcall [PathShow_prepare], PathShow_data_1 |
121 | ;--------------------------------------------------------------------- |
109 | ;--------------------------------------------------------------------- |
122 | ;mov al,[gs:1280*4*1024] |
- | |
123 | ; ãáâ ¢«¨¢ ¥¬ ipc ¡ãää¥à |
- | |
124 | push 60 |
- | |
125 | pop eax |
110 | ;mov al,[gs:1280*4*1024] |
126 | ;mov ebx,1 |
111 | ; ãáâ ¢«¨¢ ¥¬ ipc ¡ãää¥à |
127 | xor ebx,ebx |
112 | xor ebx,ebx |
128 | inc ebx |
- | |
129 | mov ecx,app_ipc |
- | |
Line 130... | Line 113... | ||
130 | mov edx,32 |
113 | inc ebx |
131 | mcall |
- | |
132 | - | ||
133 | push 66 ; ãáâ ¢«¨¢ ¥¬ £«®¡ «ìãî £®àïçãî ª« ¢¨èã |
- | |
134 | pop eax |
114 | mcall SF_IPC,, app_ipc, 32 |
135 | push eax |
115 | |
136 | mov ebx,4 |
116 | ; ãáâ ¢«¨¢ ¥¬ £«®¡ «ìãî £®àïçãî ª« ¢¨èã |
Line 137... | Line 117... | ||
137 | mov cl,55 ; 55 - PrintScrn |
117 | mov cl,55 ; 55 - PrintScrn |
138 | xor edx,edx |
118 | xor edx,edx |
139 | mcall |
119 | mcall SF_KEYBOARD, SSF_SET_SYS_HOTKEY |
Line 154... | Line 134... | ||
154 | 134 | ||
155 | ; ãáâ ¢«¨¢ ¥¬ á¨áâ¥¬ë¥ æ¢¥â ã GUI ª®¬¯®¥â®¢ |
135 | ; ãáâ ¢«¨¢ ¥¬ á¨áâ¥¬ë¥ æ¢¥â ã GUI ª®¬¯®¥â®¢ |
156 | txt_but_set_sys_color buttons,buttons_end,sc ; \ |
136 | txt_but_set_sys_color buttons,buttons_end,sc ; \ |
157 | labels_set_sys_color labels,labels_end,sc ; | |
137 | labels_set_sys_color labels,labels_end,sc ; | |
158 | check_boxes_set_sys_color2 check_boxes,check_boxes_end,sc; | |
- | |
159 | ; check_boxes_set_sys_color check_boxes,check_boxes_end,sc ; | |
138 | check_boxes_set_sys_color2 check_boxes,check_boxes_end,sc; | |
Line 160... | Line 139... | ||
160 | edit_boxes_set_sys_color editboxes,editboxes_end,sc ; / |
139 | edit_boxes_set_sys_color editboxes,editboxes_end,sc ; / |
161 | 140 | ||
162 | get_screen_prop scr ; ¯®«ãç ¥¬ ¨ä®à¬ æ¨î ®¡ íªà ¥ |
141 | get_screen_prop scr ; ¯®«ãç ¥¬ ¨ä®à¬ æ¨î ®¡ íªà ¥ |
Line 179... | Line 158... | ||
179 | 158 | ||
180 | call shoot |
159 | call shoot |
181 | jmp close |
160 | jmp close |
182 | ;------------------------------------------------------------------------------ |
161 | ;------------------------------------------------------------------------------ |
183 | draw_window_direct: |
162 | draw_window_direct: |
184 | mcall 12,1 |
163 | mcall SF_REDRAW, SSF_BEGIN_DRAW |
185 | mcall 14 |
164 | mcall SF_GET_SCREEN_SIZE |
186 | ; eax = [xsize]*65536 + [ysize] |
165 | ; eax = [xsize]*65536 + [ysize] |
187 | mov ebx,eax |
166 | mov ebx,eax |
188 | shr ebx,17 |
167 | shr ebx,17 |
189 | sub ebx,100 |
168 | sub ebx,100 |
Line 193... | Line 172... | ||
193 | and ecx,0xffff |
172 | and ecx,0xffff |
194 | shr ecx,1 |
173 | shr ecx,1 |
195 | sub ecx,50 |
174 | sub ecx,50 |
196 | shl ecx,16 |
175 | shl ecx,16 |
197 | mov cx,100 |
176 | mov cx,100 |
198 | xor eax,eax |
- | |
199 | xor esi,esi |
177 | xor esi,esi |
200 | mcall ,,,0x34ffffff,,grab_text |
178 | mcall SF_CREATE_WINDOW,,,0x34ffffff,,grab_text |
Line 201... | Line 179... | ||
201 | 179 | ||
Line 202... | Line 180... | ||
202 | mcall 4,<10,30>,0x90000000,saving |
180 | mcall SF_DRAW_TEXT, <10,30>,0x90000000,saving |
203 | 181 | ||
204 | mcall 12,2 |
182 | mcall SF_REDRAW, SSF_END_DRAW |
205 | ret |
183 | ret |
206 | ;------------------------------------------------------------------------------ |
184 | ;------------------------------------------------------------------------------ |
207 | no_boot: |
185 | no_boot: |
Line 219... | Line 197... | ||
219 | call shoot |
197 | call shoot |
220 | mov [PrintScreen],0 |
198 | mov [PrintScreen],0 |
221 | jmp still |
199 | jmp still |
222 | @@: |
200 | @@: |
223 | ; key_edit_boxes editboxes,editboxes_end |
201 | ; key_edit_boxes editboxes,editboxes_end |
224 | ; push dword edit1 |
- | |
225 | ; call [edit_box_key] |
202 | ; stdcall [edit_box_key], edit1 |
226 | - | ||
227 | push dword edit2 |
- | |
228 | call [edit_box_key] |
203 | stdcall [edit_box_key], edit2 |
229 | - | ||
230 | push dword edit3 |
- | |
231 | call [edit_box_key] |
204 | stdcall [edit_box_key], edit3 |
232 | - | ||
233 | push dword edit4 |
- | |
234 | call [edit_box_key] |
205 | stdcall [edit_box_key], edit4 |
Line 235... | Line 206... | ||
235 | 206 | ||
236 | jmp still |
207 | jmp still |
237 | button: |
208 | button: |
238 | get_pressed_button |
209 | get_pressed_button |
Line 243... | Line 214... | ||
243 | mouse: |
214 | mouse: |
244 | get_active_window |
215 | get_active_window |
245 | cmp eax,[slot_n] |
216 | cmp eax,[slot_n] |
246 | jne still |
217 | jne still |
247 | ;---------------------------------- |
218 | ;---------------------------------- |
248 | ; push dword edit1 |
- | |
249 | ; call [edit_box_mouse] |
219 | ; stdcall [edit_box_mouse], edit1 |
250 | push dword edit2 |
- | |
251 | call [edit_box_mouse] |
220 | stdcall [edit_box_mouse], edit2 |
252 | push dword edit3 |
- | |
253 | call [edit_box_mouse] |
221 | stdcall [edit_box_mouse], edit3 |
254 | push dword edit4 |
- | |
255 | call [edit_box_mouse] |
222 | stdcall [edit_box_mouse], edit4 |
256 | ;---------------------------------- |
223 | ;---------------------------------- |
257 | checkboxes_mouse2 check_boxes,check_boxes_end |
224 | checkboxes_mouse2 check_boxes,check_boxes_end |
258 | ; push dword ch1 |
- | |
259 | ; call [check_box_mouse] |
- | |
260 | ; push dword ch2 |
- | |
261 | ; call [check_box_mouse] |
- | |
262 | ; push dword ch3 |
- | |
263 | ; call [check_box_mouse] |
- | |
264 | ; push dword ch4 |
- | |
265 | ; call [check_box_mouse] |
- | |
266 | ; push dword ch5 |
- | |
267 | ; call [check_box_mouse] |
- | |
268 | ; push dword ch6 |
- | |
269 | ; call [check_box_mouse] |
- | |
270 | ; push dword use_rect |
- | |
271 | ; call [check_box_mouse] |
- | |
272 | ;----------------------------------- |
225 | ;----------------------------------- |
273 | ; mouse_check_boxes check_boxes,check_boxes_end |
226 | ; mouse_check_boxes check_boxes,check_boxes_end |
274 | ; mouse_edit_boxes editboxes,editboxes_end |
227 | ; mouse_edit_boxes editboxes,editboxes_end |
275 | jmp still |
228 | jmp still |
276 | ipc: |
229 | ipc: |
Line 299... | Line 252... | ||
299 | p_close: |
252 | p_close: |
300 | btr dword [flags],1 |
253 | btr dword [flags],1 |
Line 301... | Line 254... | ||
301 | 254 | ||
302 | bt dword [flags],3 |
255 | bt dword [flags],3 |
303 | jnc @f |
- | |
304 | mov eax,18 |
- | |
305 | mov ebx,eax |
256 | jnc @f |
306 | mov ecx,[set_rect_window_pid] |
- | |
307 | mcall |
257 | mcall SF_SYSTEM, SSF_TERMINATE_THREAD_ID, [set_rect_window_pid] |
Line 308... | Line 258... | ||
308 | @@: |
258 | @@: |
309 | 259 | ||
Line 310... | Line 260... | ||
310 | close: |
260 | close: |
311 | app_close |
261 | app_close |
312 | 262 | ||
313 | ;--------------------------------------------------------------------- |
263 | ;--------------------------------------------------------------------- |
314 | draw_PathShow: |
264 | draw_PathShow: |
315 | pusha |
265 | pusha |
316 | mcall 13,<4,302>,<35,15>,0xffffff |
266 | mcall SF_DRAW_RECT, <4,302>, <35,15>, 0xffffff |
317 | ; draw for PathShow |
267 | ; draw for PathShow |
318 | push dword PathShow_data_1 |
268 | push dword PathShow_data_1 |
Line 324... | Line 274... | ||
324 | ;-------------------------------------------------------------------- |
274 | ;-------------------------------------------------------------------- |
325 | draw_window: |
275 | draw_window: |
326 | start_draw_window ; ç «® ¯¥à¥à¨á®¢ª¨ |
276 | start_draw_window ; ç «® ¯¥à¥à¨á®¢ª¨ |
327 | ; ®¯à¥¤¥«ï¥¬ ®ª® |
277 | ; ®¯à¥¤¥«ï¥¬ ®ª® |
328 | get_skin_height |
278 | get_skin_height |
329 | mov ebx,100*65536+320 |
- | |
330 | mov ecx,100*65536+220 |
279 | mov ecx,100*65536+220 |
331 | add cx,ax |
280 | add cx,ax |
332 | mov edx,[sc.work] |
281 | mov edx,[sc.work] |
333 | or edx,0x34000000;0x33000000 |
282 | or edx,0x34000000;0x33000000 |
334 | xor esi,esi |
283 | xor esi,esi |
335 | ;xor edi,edi |
284 | ;xor edi,edi |
336 | mov edi,grab_text |
285 | mov edi,grab_text |
337 | xor eax,eax |
- | |
338 | mcall |
286 | mcall SF_CREATE_WINDOW, 100*65536+320 |
Line 339... | Line 287... | ||
339 | 287 | ||
340 | mov eax,47 ; ¢ë¢®¤¨¬ ç¨á« ¢ ®ª® |
288 | ; ¢ë¢®¤¨¬ ç¨á« ¢ ®ª® |
341 | mov bx,4 |
- | |
342 | shl ebx,16 |
289 | mov ebx,4 shl 16 |
343 | movsx ecx,word [scr.width] ; è¨à¨ íªà |
290 | movsx ecx,word [scr.width] ; è¨à¨ íªà |
344 | mov dx,95 |
- | |
345 | shl edx,16 |
291 | mov edx,95 shl 16 |
346 | mov dx,[label1.top] |
292 | mov dx,[label1.top] |
347 | push dx |
293 | push dx |
348 | mov esi,[sc.work_text] |
294 | mov esi,[sc.work_text] |
349 | mcall |
295 | mcall SF_DRAW_NUMBER |
350 | movsx ecx,word [scr.height] ; ¢ëá®â íªà |
296 | movsx ecx,word [scr.height] ; ¢ëá®â íªà |
351 | mov dx,[label2.top] |
297 | mov dx,[label2.top] |
352 | mcall |
298 | mcall |
353 | mov bx,2 |
- | |
354 | shl ebx,16 |
299 | mov ebx,2 shl 16 |
355 | movsx ecx,word [scr.bitspp] ; ¡¨â ¯¨ªá¥«ì |
300 | movsx ecx,word [scr.bitspp] ; ¡¨â ¯¨ªá¥«ì |
356 | mov dx,240 |
- | |
357 | shl edx,16 |
301 | mov edx,240 shl 16 |
358 | pop dx |
302 | pop dx |
359 | mcall |
303 | mcall |
360 | mov bx,6 |
- | |
361 | shl ebx,16 |
304 | mov ebx,6 shl 16 |
362 | mov ecx,[scr.bytesps] ; ¡ ©â áâபã |
305 | mov ecx,[scr.bytesps] ; ¡ ©â áâபã |
363 | mov dx,[label2.top] |
306 | mov dx,[label2.top] |
Line 364... | Line 307... | ||
364 | mcall |
307 | mcall |
365 | 308 | ||
Line 366... | Line 309... | ||
366 | call draw_number ; ¯à®à¨á®¢ë¢ ¥¬ ®¬¥à ᨬª |
309 | call draw_number ; ¯à®à¨á®¢ë¢ ¥¬ ®¬¥à ᨬª |
367 | call dr_st |
310 | call dr_st |
368 | 311 | ||
369 | draw_labels labels,labels_end ; ¬¥âª¨ |
- | |
370 | ; draw_edit_boxes editboxes,editboxes_end ; edit_box |
312 | draw_labels labels,labels_end ; ¬¥âª¨ |
371 | ;------ show check editbox ----------- |
- | |
372 | ; push dword edit1 |
313 | ; draw_edit_boxes editboxes,editboxes_end ; edit_box |
373 | ; call [edit_box_draw] |
- | |
374 | push dword edit2 |
314 | ;------ show check editbox ----------- |
375 | call [edit_box_draw] |
- | |
376 | push dword edit3 |
315 | ; stdcall [edit_box_draw], edit1 |
377 | call [edit_box_draw] |
316 | stdcall [edit_box_draw], edit2 |
Line 378... | Line 317... | ||
378 | push dword edit4 |
317 | stdcall [edit_box_draw], edit3 |
Line 379... | Line 318... | ||
379 | call [edit_box_draw] |
318 | stdcall [edit_box_draw], edit4 |
380 | ;------ end check all editbox ------- |
319 | ;------ end check all editbox ------- |
381 | 320 | ||
382 | call draw_PathShow |
- | |
383 | - | ||
384 | draw_txt_buttons buttons,buttons_end ; ª®¯ª¨ |
- | |
385 | ; draw_check_boxes check_boxes,check_boxes_end ; ä« ¦ª¨ |
- | |
386 | ;------ check all checkbox --------- |
- | |
387 | ; push dword ch1 |
- | |
388 | ; call [check_box_draw] |
- | |
389 | ; push dword ch2 |
- | |
390 | ; call [check_box_draw] |
- | |
391 | ; push dword ch3 |
- | |
392 | ; call [check_box_draw] |
- | |
393 | ; push dword ch4 |
- | |
394 | ; call [check_box_draw] |
- | |
395 | ; push dword ch5 |
- | |
Line 396... | Line 321... | ||
396 | ; call [check_box_draw] |
321 | call draw_PathShow |
Line 397... | Line 322... | ||
397 | ; push dword ch6 |
322 | |
Line 459... | Line 384... | ||
459 | bt dword [ch5.flags],1 ; ¢ª«î祮 «¨ ¢â®á®åà ¥¨¥ ? |
384 | bt dword [ch5.flags],1 ; ¢ª«î祮 «¨ ¢â®á®åà ¥¨¥ ? |
460 | jnc @f |
385 | jnc @f |
Line 461... | Line 386... | ||
461 | 386 | ||
462 | call [OpenDialog_data.draw_window] |
387 | call [OpenDialog_data.draw_window] |
463 | ; invoke OpenDialog |
- | |
464 | push dword OpenDialog_data |
388 | ; invoke OpenDialog |
465 | call [OpenDialog_Start] |
389 | stdcall [OpenDialog_Start], OpenDialog_data |
466 | cmp [OpenDialog_data.status],1 |
390 | cmp [OpenDialog_data.status],1 |
467 | je .1 |
391 | je .1 |
468 | ret |
392 | ret |
469 | .1: |
393 | .1: |
470 | ; prepare for PathShow |
- | |
471 | push dword PathShow_data_1 |
394 | ; prepare for PathShow |
Line 472... | Line 395... | ||
472 | call [PathShow_prepare] |
395 | stdcall [PathShow_prepare], PathShow_data_1 |
Line 473... | Line 396... | ||
473 | 396 | ||
474 | call [OpenDialog_data.draw_window] |
397 | call [OpenDialog_data.draw_window] |
Line 486... | Line 409... | ||
486 | ret |
409 | ret |
Line 487... | Line 410... | ||
487 | 410 | ||
488 | ;--- ¯®«ãç¨âì ¯ ¬ïâì ¤«ï ᨬª --- |
411 | ;--- ¯®«ãç¨âì ¯ ¬ïâì ¤«ï ᨬª --- |
489 | get_mem_for_shoot: |
412 | get_mem_for_shoot: |
490 | ;clean memory |
413 | ;clean memory |
491 | mov ecx,dword [scr_buf.ptr] |
- | |
492 | mov ebx,13 |
- | |
493 | mov eax,68 |
- | |
Line 494... | Line 414... | ||
494 | mcall |
414 | mcall SF_SYS_MISC, SSF_MEM_FREE, [scr_buf.ptr] |
495 | 415 | ||
496 | bt dword [use_rect.flags],1 ; ä®âª âì ®¡« áâì íªà |
416 | bt dword [use_rect.flags],1 ; ä®âª âì ®¡« áâì íªà |
497 | jc .use_area |
417 | jc .use_area |
Line 504... | Line 424... | ||
504 | movzx ebx, word [rect.height] |
424 | movzx ebx, word [rect.height] |
505 | @@: |
425 | @@: |
506 | imul ecx,ebx |
426 | imul ecx,ebx |
507 | lea ecx,[ecx*3] |
427 | lea ecx,[ecx*3] |
508 | ; add ecx,i_end |
428 | ; add ecx,i_end |
509 | mov ebx,12 |
- | |
510 | mov eax,68 |
429 | mcall SF_SYS_MISC, SSF_MEM_ALLOC |
511 | mcall |
- | |
512 | mov [scr_buf.ptr],eax |
430 | mov [scr_buf.ptr],eax |
513 | add eax,ecx |
431 | add eax,ecx |
514 | mov [scr_buf.end_ptr],ecx |
432 | mov [scr_buf.end_ptr],ecx |
515 | ret |
433 | ret |
Line 516... | Line 434... | ||
516 | 434 | ||
517 | ;--- ᮤ âì ®ª® ¯à®¥¤¯à®á¬®âà --- |
435 | ;--- ᮤ âì ®ª® ¯à®¥¤¯à®á¬®âà --- |
518 | show_scr_window: |
436 | show_scr_window: |
519 | pusha |
437 | pusha |
520 | bt dword [flags],0 |
438 | bt dword [flags],0 |
521 | jnc @f |
- | |
522 | mov eax,51 |
439 | jnc @f |
523 | xor ebx,ebx |
440 | xor ebx,ebx |
524 | inc ebx |
- | |
525 | mov ecx,scr_window |
441 | inc ebx |
526 | mov edx,i_end_tread-512 |
- | |
527 | mcall |
442 | mcall SF_CREATE_THREAD,, scr_window, i_end_tread-512 |
528 | @@: |
443 | @@: |
529 | popa |
444 | popa |
Line 530... | Line 445... | ||
530 | ret |
445 | ret |
Line 540... | Line 455... | ||
540 | ;--- ¯à®æ¥¤ãà ¯à®à¨á®¢ª¨ ⥪ã饣® ®¬¥à --- |
455 | ;--- ¯à®æ¥¤ãà ¯à®à¨á®¢ª¨ ⥪ã饣® ®¬¥à --- |
541 | draw_number: |
456 | draw_number: |
542 | mov edi,sign_n_input |
457 | mov edi,sign_n_input |
543 | call zstr_to_int |
458 | call zstr_to_int |
544 | mov [sign_n],al |
459 | mov [sign_n],al |
545 | mov eax,13 |
- | |
546 | mov ebx,150*65536+96 |
- | |
547 | mov cx,[label9.top] |
460 | mov cx,[label9.top] |
548 | shl ecx,16 |
461 | shl ecx,16 |
549 | mov cx,10 |
462 | mov cx,10 |
550 | mov edx,[sc.work] |
463 | mov edx,[sc.work] |
551 | mcall |
- | |
552 | mov eax,47 |
464 | mcall SF_DRAW_RECT, 150*65536+96 |
553 | movsx bx,byte [sign_n] |
465 | movsx bx,byte [sign_n] |
554 | shl ebx,16 |
466 | shl ebx,16 |
555 | mov ecx,[cur_number] |
- | |
556 | mov dx,150 |
467 | mov edx,150 shl 16 |
557 | shl edx,16 |
- | |
558 | mov dx,[label9.top] |
468 | mov dx,[label9.top] |
559 | mov esi,[sc.work_text] |
469 | mov esi,[sc.work_text] |
560 | mcall |
470 | mcall SF_DRAW_NUMBER,, [cur_number] |
561 | ret |
471 | ret |
Line 562... | Line 472... | ||
562 | 472 | ||
563 | ;--- ¯à®æ¥¤ãà , § ¯ã᪠îé ï ¯®â®ª ¢â®áꥬª¨ --- |
473 | ;--- ¯à®æ¥¤ãà , § ¯ã᪠îé ï ¯®â®ª ¢â®áꥬª¨ --- |
564 | start_autoshoot: |
474 | start_autoshoot: |
565 | bts dword [flags],1 |
475 | bts dword [flags],1 |
566 | jc @f |
- | |
567 | mov eax,51 |
- | |
568 | ;mov ebx,1 |
476 | jc @f |
569 | xor ebx,ebx |
477 | xor ebx,ebx |
570 | inc ebx |
- | |
571 | mov ecx,autoshoot |
478 | inc ebx |
572 | mov edx,i_end_tread |
- | |
573 | mcall |
479 | mcall SF_CREATE_THREAD,, autoshoot, i_end_tread |
574 | @@: |
480 | @@: |
Line 575... | Line 481... | ||
575 | ret |
481 | ret |
576 | 482 | ||
Line 585... | Line 491... | ||
585 | mov ecx,[slot_n] |
491 | mov ecx,[slot_n] |
586 | activ_window |
492 | activ_window |
587 | .next: |
493 | .next: |
588 | bt dword [flags],1 |
494 | bt dword [flags],1 |
589 | jnc close |
495 | jnc close |
590 | mov eax,60 |
- | |
591 | mov ebx,2 |
- | |
592 | mov ecx,[app.pid] |
- | |
593 | mov edx,messages.draw_number |
- | |
594 | mov esi,2 |
496 | mov esi,2 |
595 | mcall |
497 | mcall SF_IPC, SSF_SEND_MESSAGE, [app.pid], messages.draw_number |
596 | call shoot |
498 | call shoot |
597 | jmp autoshoot.next |
499 | jmp autoshoot.next |
598 | .close: |
500 | .close: |
599 | mov [autoshoot_flag],0 |
501 | mov [autoshoot_flag],0 |
600 | jmp close |
502 | jmp close |
601 | ;--- ¯à®æ¥¤ãà ¯à®à¨á®¢ª¨ áâப¨ á®áâ®ï¨ï --- |
503 | ;--- ¯à®æ¥¤ãà ¯à®à¨á®¢ª¨ áâப¨ á®áâ®ï¨ï --- |
602 | ; (¤®«¦ ¢ë§ë¢ âìáï ¯®â®ª®¬ £« ¢®£® ®ª ) |
504 | ; (¤®«¦ ¢ë§ë¢ âìáï ¯®â®ª®¬ £« ¢®£® ®ª ) |
603 | dr_st: |
505 | dr_st: |
604 | mov eax,38 ; ®â१®ª |
- | |
605 | mov ebx,0*65536+310 |
- | |
606 | mov ecx,198*65536+198 |
- | |
607 | mov edx,[sc.work_graph] |
506 | mcall SF_DRAW_LINE, 0*65536+310, 198*65536+198, [sc.work_graph] |
608 | mcall |
- | |
Line 609... | Line -... | ||
609 | - | ||
610 | mov eax,13 ; ¯®«®áª |
507 | |
611 | mov bx,310 |
508 | mov bx,310 |
612 | mov ecx,199*65536+15 |
509 | mov ecx,199*65536+15 |
613 | mov edx,[sc.work] |
510 | mov edx,[sc.work] |
Line 614... | Line 511... | ||
614 | mcall |
511 | mcall SF_DRAW_RECT ; ¯®«®áª |
615 | 512 | ||
616 | mov edi,status |
513 | mov edi,status |
Line 617... | Line 514... | ||
617 | call draw_label |
514 | call draw_label |
618 | ret |
515 | ret |
619 | 516 | ||
620 | ;--- ¯à®æ¥¤ãà ¯®«ãç¥¨ï ®¬¥à ᫮⠯®â®ª --- |
517 | ;--- ¯à®æ¥¤ãà ¯®«ãç¥¨ï ®¬¥à ᫮⠯®â®ª --- |
621 | ; ¢å®¤ ebx - ¡ãää¥à 1024 ¡ ©â |
- | |
622 | ; ¢ë室 ecx - ®¬¥à á«®â |
518 | ; ¢å®¤ ebx - ¡ãää¥à 1024 ¡ ©â |
623 | get_slot_n: |
519 | ; ¢ë室 ecx - ®¬¥à á«®â |
624 | mov eax,9 |
520 | get_slot_n: |
Line 625... | Line 521... | ||
625 | xor ecx,ecx |
521 | xor ecx,ecx |
626 | dec ecx |
522 | dec ecx |
627 | mcall |
523 | mcall SF_THREAD_INFO |
628 | - | ||
629 | mov edx,[ebx+30] |
524 | |
630 | xor ecx,ecx |
525 | mov edx,[ebx+30] |
631 | @@: |
526 | xor ecx,ecx |
632 | mov eax,9 |
527 | @@: |
633 | inc ecx |
528 | inc ecx |
634 | mcall |
529 | mcall SF_THREAD_INFO |
635 | cmp [ebx+30],edx |
530 | cmp [ebx+30],edx |
Line 644... | Line 539... | ||
644 | mov edx,shoot_esp |
539 | mov edx,shoot_esp |
645 | jmp @f |
540 | jmp @f |
646 | ;--- ¯à®æ¥¤à , § ¯ã᪠îé ï ¯®â®ª, á®åà ïî騩 ᨬ®ª --- |
541 | ;--- ¯à®æ¥¤à , § ¯ã᪠îé ï ¯®â®ª, á®åà ïî騩 ᨬ®ª --- |
647 | save_shoot: |
542 | save_shoot: |
648 | ; invoke OpenDialog |
543 | ; invoke OpenDialog |
649 | push dword OpenDialog_data |
- | |
650 | call [OpenDialog_Start] |
544 | stdcall [OpenDialog_Start], OpenDialog_data |
651 | cmp [OpenDialog_data.status],1 |
545 | cmp [OpenDialog_data.status],1 |
652 | je .1 |
546 | je .1 |
653 | ret |
547 | ret |
654 | .1: |
548 | .1: |
655 | ; prepare for PathShow |
549 | ; prepare for PathShow |
656 | push dword PathShow_data_1 |
- | |
657 | call [PathShow_prepare] |
550 | stdcall [PathShow_prepare], PathShow_data_1 |
Line 658... | Line 551... | ||
658 | 551 | ||
Line 659... | Line 552... | ||
659 | call draw_PathShow |
552 | call draw_PathShow |
660 | 553 | ||
Line 664... | Line 557... | ||
664 | bts dword [flags],2 |
557 | bts dword [flags],2 |
665 | jc .running |
558 | jc .running |
666 | bt dword [flags],1 |
559 | bt dword [flags],1 |
667 | jc .running |
560 | jc .running |
Line 668... | Line -... | ||
668 | - | ||
669 | mov eax,51 |
- | |
670 | ;mov ebx,1 |
561 | |
671 | xor ebx,ebx |
562 | xor ebx,ebx |
672 | inc ebx |
563 | inc ebx |
673 | mcall |
564 | mcall SF_CREATE_THREAD |
674 | .running: |
565 | .running: |
Line 675... | Line 566... | ||
675 | ret |
566 | ret |
676 | 567 | ||
677 | ;--- ¯®â®ª, ¤¥« î騩 1 ᨬ®ª --- |
568 | ;--- ¯®â®ª, ¤¥« î騩 1 ᨬ®ª --- |
678 | one_shoot_thread: |
569 | one_shoot_thread: |
679 | mov ecx,[slot_n] |
570 | mov ecx,[slot_n] |
680 | activ_window |
571 | activ_window |
681 | bt dword [ch1.flags],1 ; ¬¨¨¬¨§¨à®¢ âì ®ª® ? |
- | |
682 | jnc @f |
- | |
683 | mov eax,60 |
- | |
684 | mov ebx,2 |
- | |
685 | mov ecx,[app.pid] |
572 | bt dword [ch1.flags],1 ; ¬¨¨¬¨§¨à®¢ âì ®ª® ? |
686 | mov edx,messages.min_window |
573 | jnc @f |
687 | mov esi,2 |
574 | mov esi,2 |
688 | mcall |
575 | mcall SF_IPC, SSF_SEND_MESSAGE, [app.pid], messages.min_window |
689 | @@: |
576 | @@: |
690 | call shoot |
577 | call shoot |
Line 691... | Line 578... | ||
691 | btr dword [flags],2 |
578 | btr dword [flags],2 |
692 | jmp close |
579 | jmp close |
693 | 580 | ||
694 | ;--- ¯à®æ¥¤ãà , ®â¯à ¢«ïîé ï £« ¢®¬ã ®ªã á®®¡é¥¨¥ ® ¯¥à¥à¨á®¢ª¥ |
- | |
695 | ; áâப¨ á®áâ®ï¨ï --- |
- | |
696 | send_draw_status: |
- | |
697 | mov eax,60 |
- | |
698 | mov ebx,2 |
581 | ;--- ¯à®æ¥¤ãà , ®â¯à ¢«ïîé ï £« ¢®¬ã ®ªã á®®¡é¥¨¥ ® ¯¥à¥à¨á®¢ª¥ |
699 | mov ecx,[app.pid] |
582 | ; áâப¨ á®áâ®ï¨ï --- |
700 | mov edx,messages.draw_status |
583 | send_draw_status: |
Line 701... | Line 584... | ||
701 | mov esi,2 |
584 | mov esi,2 |
702 | mcall |
585 | mcall SF_IPC, SSF_SEND_MESSAGE, [app.pid], messages.draw_status |
703 | ret |
586 | ret |
Line 712... | Line 595... | ||
712 | 595 | ||
713 | ;--- ¯à®æ¥¤ãà , § ¯ã᪠îé ï ¯®â®ª ®ª ãáâ ®¢ª¨ ®¡« á⨠áꥬª¨ --- |
596 | ;--- ¯à®æ¥¤ãà , § ¯ã᪠îé ï ¯®â®ª ®ª ãáâ ®¢ª¨ ®¡« á⨠áꥬª¨ --- |
714 | show_set_rect_window: |
597 | show_set_rect_window: |
715 | bts dword [flags],3 |
598 | bts dword [flags],3 |
716 | jc @f |
- | |
717 | mov eax,51 |
599 | jc @f |
718 | xor ebx,ebx |
600 | xor ebx,ebx |
719 | inc ebx |
- | |
720 | mov ecx,set_rect_window |
601 | inc ebx |
721 | mov edx,set_rect_window_esp |
- | |
Line 722... | Line 602... | ||
722 | mcall |
602 | mcall SF_CREATE_THREAD,, set_rect_window, set_rect_window_esp |
723 | 603 | ||
Line 724... | Line 604... | ||
724 | mov [set_rect_window_pid],eax |
604 | mov [set_rect_window_pid],eax |
725 | ret |
- | |
726 | - | ||
727 | @@: |
605 | ret |
728 | mov eax,18 |
- | |
729 | mov ebx,eax |
606 | |
730 | mov ecx,[set_rect_window_pid] |
607 | @@: |
Line 731... | Line 608... | ||
731 | mcall |
608 | mcall SF_SYSTEM, SSF_TERMINATE_THREAD_ID, [set_rect_window_pid] |
732 | btr dword [flags],3 |
609 | btr dword [flags],3 |
733 | ret |
610 | ret |
734 | - | ||
735 | ;--- ¯®«ã票¥ ¨ä®à¬ 樨 ®¡ ªâ¨¢®¬ ®ª¥ --- |
- | |
Line 736... | Line 611... | ||
736 | get_active_window_info: |
611 | |
737 | mov eax,18 |
- | |
738 | mov ebx,7 |
612 | ;--- ¯®«ã票¥ ¨ä®à¬ 樨 ®¡ ªâ¨¢®¬ ®ª¥ --- |
739 | mcall |
- | |
740 | 613 | get_active_window_info: |
|
Line 741... | Line 614... | ||
741 | mov ecx,eax |
614 | mcall SF_SYSTEM, SSF_GET_ACTIVE_WINDOW |
742 | mov eax,9 |
615 | |
743 | mov ebx,active_app |
616 | mov ecx,eax |
Line 777... | Line 650... | ||
777 | err_message_found_lib1, head_f_l, Box_lib_import, err_message_import1, head_f_i |
650 | err_message_found_lib1, head_f_l, Box_lib_import, err_message_import1, head_f_i |
Line 778... | Line 651... | ||
778 | 651 | ||
779 | library02 l_libs system_dir_ProcLib+9, cur_dir_path, library_path, system_dir_ProcLib, \ |
652 | library02 l_libs system_dir_ProcLib+9, cur_dir_path, library_path, system_dir_ProcLib, \ |
Line -... | Line 653... | ||
- | 653 | err_message_found_lib2, head_f_l, ProcLib_import, err_message_import2, head_f_i |
|
- | 654 | ||
- | 655 | library03 l_libs system_dir_LibImg+9, cur_dir_path, library_path, system_dir_LibImg, \ |
|
780 | err_message_found_lib2, head_f_l, ProcLib_import, err_message_import2, head_f_i |
656 | err_message_found_lib3, head_f_l, import_libimg, err_message_import3, head_f_i |
781 | 657 | ||
782 | end_l_libs: |
658 | end_l_libs: |
783 | ;--------------------------------------------------------------------- |
659 | ;--------------------------------------------------------------------- |
784 | editboxes: |
660 | editboxes: |
Line 956... | Line 832... | ||
956 | db '/sys',0 |
832 | db '/sys',0 |
Line 957... | Line 833... | ||
957 | 833 | ||
958 | Filter: |
834 | Filter: |
959 | dd Filter.end - Filter |
835 | dd Filter.end - Filter |
960 | .1: |
836 | .1: |
961 | db 'BMP',0 |
837 | db 'PNG',0 |
962 | .end: |
838 | .end: |
Line 963... | Line 839... | ||
963 | db 0 |
839 | db 0 |
Line 964... | Line 840... | ||
964 | 840 | ||
965 | start_temp_file_name: db '1.bmp',0 |
841 | start_temp_file_name: db '1.png',0 |
966 | 842 | ||
Line 977... | Line 853... | ||
977 | mouse_flag: dd 0x0 |
853 | mouse_flag: dd 0x0 |
978 | ;--------------------------------------------------------------------- |
854 | ;--------------------------------------------------------------------- |
979 | align 4 |
855 | align 4 |
Line 980... | Line 856... | ||
980 | 856 | ||
981 | ed_buffer: |
857 | ed_buffer: |
982 | .1: db '/sys/1.bmp',0 |
858 | .1: db '/sys/1.png',0 |
983 | ;rb 287 |
859 | ;rb 287 |
984 | .2: |
860 | .2: |
985 | db '100',0 |
861 | db '100',0 |
986 | rb 6 |
862 | rb 6 |
Line 1059... | Line 935... | ||
1059 | ;--------------------------------------------------------------------- |
935 | ;--------------------------------------------------------------------- |
1060 | ; app_end ; ª®¥æ ¯à®£à ¬¬ë |
936 | ; app_end ; ª®¥æ ¯à®£à ¬¬ë |
1061 | mouse_dd rd 1 |
937 | mouse_dd rd 1 |
1062 | ;--------------------------------------------------------------------- |
938 | ;--------------------------------------------------------------------- |
1063 | align 4 |
939 | align 4 |
1064 | cur_dir_path: |
940 | cur_dir_path rb 4096 |
1065 | rb 4096 |
- | |
1066 | ;--------------------------------------------------------------------- |
- | |
1067 | library_path: |
941 | library_path rb 4096 |
1068 | rb 4096 |
- | |
1069 | ;--------------------------------------------------------------------- |
- | |
1070 | temp_dir_pach: |
942 | temp_dir_pach rb 4096 |
1071 | rb 4096 |
- | |
1072 | ;--------------------------------------------------------------------- |
- | |
1073 | text_work_area: |
943 | text_work_area rb 1024 |
1074 | rb 1024 |
- | |
1075 | ;--------------------------------------------------------------------- |
- | |
1076 | fname_buf: |
944 | fname_buf rb 4096 |
1077 | rb 4096 |
- | |
1078 | ;--------------------------------------------------------------------- |
- | |
1079 | procinfo: |
945 | procinfo rb 1024 |
1080 | rb 1024 |
- | |
1081 | ;--------------------------------------------------------------------- |
- | |
1082 | filename_area: |
946 | filename_area rb 256 |
1083 | rb 256 |
- | |
1084 | ;--------------------------------------------------------------------- |
947 | ;--------------------------------------------------------------------- |
1085 | rb 1024 |
948 | rb 1024 |
1086 | i_end_tread: |
949 | i_end_tread: |
1087 | ;--------------------------------------------------------------------- |
950 | ;--------------------------------------------------------------------- |
1088 | rb 1024 |
951 | rb 1024 |