Rev 180 | Rev 485 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 180 | Rev 255 | ||
---|---|---|---|
Line 1... | Line 1... | ||
1 | ;****************************************************** |
1 | ;******************************************************* |
2 | ;***GRAPHICS EDIT ANIMAGE creted by andrew_programmer** |
2 | ;**************GRAPHICS EDITOR ANIMAGE ***************** |
3 | ;****************************************************** |
3 | ;******************************************************* |
- | 4 | ||
- | 5 | ||
- | 6 | ; version 1.1 year 9.12.2006 |
|
- | 7 | ||
- | 8 | ; AUTORS: |
|
- | 9 | ; programming by andrew_programmer |
|
- | 10 | ; design by golus |
|
Line 4... | Line 11... | ||
4 | 11 | ||
5 | use32 |
12 | use32 |
Line 6... | Line 13... | ||
6 | org 0x0 |
13 | org 0x0 |
7 | 14 | ||
8 | db 'MENUET01' |
15 | db 'MENUET01' |
9 | dd 0x1 |
16 | dd 0x1 |
10 | dd START |
17 | dd START |
11 | dd I_END |
18 | dd I_END |
12 | dd 0x19000;100 kb |
19 | dd 0x19000;100 kb |
- | 20 | dd 0x19000; |
|
13 | dd 0x19000; |
21 | dd parameters,0x0 |
14 | dd 0x0 |
22 | |
15 | dd 0x0 |
23 | |
16 | include 'giflib.inc' |
24 | include 'giflib.inc' |
17 | include 'bmplib.inc' |
25 | include 'bmplib.inc' |
18 | include 'dialog.inc' |
26 | include 'dialog.inc' |
19 | include 'dialog2.inc' |
27 | include 'dialog2.inc' |
- | 28 | include 'design.inc' |
|
- | 29 | include 'graphlib.inc' |
|
- | 30 | ||
- | 31 | include 'cursors.inc' |
|
- | 32 | ||
20 | include 'design.inc' |
33 | include 'load_from_parameters.inc' |
Line 21... | Line 34... | ||
21 | include 'graphlib.inc' |
34 | |
22 | START: |
35 | START: |
23 | 36 | ||
24 | ;-------------------------------------------------------- |
37 | ;-------------------------------------------------------- |
25 | ;---------------set events mask-------------------------- |
38 | ;---------------set events mask-------------------------- |
26 | ;-------------------------------------------------------- |
39 | ;-------------------------------------------------------- |
27 | mov eax,40 |
- | |
28 | mov ebx,1100111b |
40 | mov eax,40 |
29 | int 0x40 |
41 | mov ebx,1100111b |
30 | 42 | int 0x40 |
|
31 | ;--------------------------------------------------------- |
- | |
32 | ;--------initializate data and params of program---------- |
- | |
33 | ;--------------------------------------------------------- |
- | |
34 | mov [Scroll1CoordinatX],8+1 |
- | |
35 | mov [Scroll2CoordinatY],20+15+1+46+3 |
- | |
36 | mov [Window_SizeX],640 |
- | |
37 | mov [Window_SizeY],400 |
- | |
38 | mov [Window_CordinatX],50 |
- | |
39 | mov [Window_CordinatY],50 |
- | |
40 | mov [WorkScreen_SizeX],100 |
- | |
41 | mov [WorkScreen_SizeY],100 |
- | |
42 | mov [MaxWorkScreen_SizeX],100 |
- | |
43 | mov [MaxWorkScreen_SizeY],100 |
- | |
44 | mov [ScreenPointer],0x19000 |
- | |
45 | and [PosX],0 |
- | |
46 | and [PosY],0 |
- | |
47 | mov [Picture_SizeX],640;400 |
- | |
48 | mov [Picture_SizeY],400;280 |
- | |
49 | mov [k],1 |
- | |
50 | mov [PointerToPicture],0x19000+(1200*1000*3)+30*(20*20*3)+500000 |
- | |
51 | mov [PointerToCopyPicture],0x19000+(1200*1000*3)+30*(20*20*3)+500000+(640*400*3) |
- | |
52 | mov [PointerToCopyPicture2],0x19000+(1200*1000*3)+30*(20*20*3)+500000+(640*400*3)*2 |
- | |
53 | mov [PointerToEditBufer],0x19000+(1200*1000*3)+30*(20*20*3)+500000+(640*400*3)*3 |
- | |
54 | mov [PointerToSpriteBufer],0x19000+(1200*1000*3)+30*(20*20*3)+500000+(640*400*3)*4 |
- | |
55 | mov [PointerToPalette],0x19000+(1200*100*3)+30*(20*20*3)+1 |
- | |
56 | mov [ReserveArray],0x19000+(1200*1000)*3+30*(20*20*3)+8 |
43 | ;--------------------------------------------------------- |
57 | and [save_flag],0 |
- | |
58 | mov [line_width],1 |
- | |
59 | mov [lastik_is_active],0 |
- | |
60 | and [crossing],0 |
- | |
61 | and [finishing_crossing],0 |
- | |
62 | and [number_undo],0 |
- | |
63 | and [instrument_used],0 |
- | |
64 | and [DrawSprite_flag],0 |
- | |
65 | and [extended_memory],0 |
44 | ;-----------------------init data------------------------- |
66 | 45 | ;--------------------------------------------------------- |
|
67 | finit |
46 | include 'init_data.inc' |
68 | ;---------------------------------------------------------- |
47 | ;---------------------------------------------------------- |
69 | ;--------get memory and draw window of program------------- |
- | |
70 | ;---------------------------------------------------------- |
48 | ;--------get memory and draw window of program------------- |
71 | call GetMemory |
49 | ;---------------------------------------------------------- |
72 | - | ||
73 | call cleare_work_arrea |
- | |
74 | call load_icons |
- | |
75 | call drawwin |
- | |
76 | ;---------------------------------------------------------- |
- | |
77 | ;---------------------MAIN LOOP---------------------------- |
- | |
Line -... | Line 50... | ||
- | 50 | call GetMemory |
|
- | 51 | call cleare_work_arrea |
|
78 | ;---------------------------------------------------------- |
52 | call load_icons |
Line 79... | Line -... | ||
79 | main_loop: |
- | |
80 | still: |
- | |
81 | - | ||
82 | call event |
53 | |
83 | - | ||
84 | cmp eax,1 |
- | |
85 | jne no_redraw_window |
- | |
86 | call drawwin |
- | |
87 | call drawwin |
- | |
88 | jmp still |
- | |
89 | no_redraw_window: |
- | |
90 | cmp eax,3 |
- | |
91 | je buttons |
- | |
92 | cmp eax,6 |
- | |
93 | je mouse |
- | |
94 | cmp eax,2 |
- | |
95 | je keys |
- | |
96 | jmp main_loop |
- | |
97 | - | ||
98 | ;------------------------------------------ |
- | |
99 | ;-------------KEYS------------------------- |
- | |
100 | ;------------------------------------------ |
- | |
101 | keys: |
- | |
102 | - | ||
103 | mov eax,2 |
- | |
104 | int 0x40 |
- | |
105 | shr eax,8 |
- | |
106 | - | ||
107 | cmp eax,176 |
- | |
108 | jne key2 |
- | |
109 | sub [PosX],20 |
- | |
110 | jmp change_screen |
- | |
111 | key2: |
- | |
112 | cmp eax,179 |
- | |
113 | jne key3 |
- | |
114 | add [PosX],20 |
- | |
115 | jmp change_screen |
- | |
116 | key3: |
- | |
117 | cmp eax,177 |
- | |
118 | jne key4 |
- | |
119 | add [PosY],20 |
- | |
120 | jmp change_screen |
- | |
121 | key4: |
- | |
122 | cmp eax,178 |
- | |
123 | jne key5 |
- | |
124 | sub [PosY],20 |
- | |
125 | jmp change_screen |
- | |
126 | key5: |
- | |
127 | cmp eax,49 |
- | |
128 | jne key6 |
- | |
129 | mov [k],1 |
- | |
130 | mov [Scroll1CoordinatX],9 |
- | |
131 | mov [Scroll2CoordinatY],85 |
- | |
132 | call drawwin |
- | |
133 | jmp change_screen |
- | |
134 | key6: |
- | |
135 | cmp eax,50 |
- | |
136 | jne key7 |
- | |
137 | mov [k],2 |
- | |
138 | mov [Scroll1CoordinatX],9 |
- | |
139 | mov [Scroll2CoordinatY],85 |
- | |
140 | call drawwin |
- | |
141 | jmp change_screen |
- | |
142 | key7: |
- | |
143 | cmp eax,52 |
- | |
144 | jne key8 |
- | |
145 | mov [k],4 |
- | |
146 | mov [Scroll1CoordinatX],9 |
- | |
147 | mov [Scroll2CoordinatY],85 |
- | |
148 | call drawwin |
- | |
149 | jmp change_screen |
- | |
150 | key8: |
- | |
151 | cmp eax,56 |
- | |
152 | jne key9 |
- | |
153 | mov [k],8 |
- | |
154 | mov [Scroll1CoordinatX],9 |
- | |
155 | mov [Scroll2CoordinatY],85 |
- | |
156 | call drawwin |
- | |
157 | jmp change_screen |
- | |
158 | key9: |
- | |
159 | cmp eax,48 |
- | |
160 | jne key10 |
- | |
161 | mov [k],16 |
- | |
162 | mov [Scroll1CoordinatX],9 |
- | |
163 | mov [Scroll2CoordinatY],85 |
- | |
164 | call drawwin |
- | |
165 | jmp change_screen |
- | |
166 | key10: |
- | |
167 | cmp eax,255 |
- | |
168 | jne key11 |
- | |
169 | call analizing_picture_to_palette |
- | |
170 | call drawwin |
- | |
171 | jmp change_screen |
- | |
172 | key11: |
- | |
173 | cmp eax,27 |
- | |
174 | jne still |
- | |
175 | mov eax,-1 |
- | |
176 | int 0x40 |
- | |
177 | jmp still |
- | |
178 | - | ||
179 | change_screen: |
- | |
180 | - | ||
181 | call CalculatePositionScreen |
- | |
182 | call MovePictureToWorkScreen |
- | |
183 | call draw_scrollers |
- | |
184 | call PrintMousePos |
- | |
185 | - | ||
186 | jmp still |
- | |
187 | ;--------------------------------------------- |
- | |
188 | ;-----------panel BUTTONS--------------------- |
- | |
189 | ;--------------------------------------------- |
- | |
190 | buttons: |
- | |
191 | - | ||
192 | cmp [Current_instrument],30 |
- | |
193 | jne no_finish_instrument_button |
- | |
194 | - | ||
195 | cmp [instrument_used],1 |
- | |
196 | jne no_finish_instrument_button |
- | |
197 | - | ||
198 | cmp [Activate_instrument],0 |
- | |
199 | jne no_finish_instrument_button |
- | |
200 | - | ||
201 | cmp [crossing],1 |
- | |
202 | jne no_finish_instrument_button |
- | |
203 | - | ||
204 | mov [finishing_crossing],1 |
- | |
205 | call TakeButtonInstruments |
- | |
206 | - | ||
207 | no_finish_instrument_button: |
- | |
208 | - | ||
209 | mov eax,17 |
- | |
210 | int 0x40 |
- | |
211 | - | ||
212 | shr eax,8 |
- | |
213 | - | ||
214 | cmp eax,1 |
- | |
215 | jne no_exit |
- | |
216 | - | ||
217 | mov eax,-1 |
- | |
218 | int 0x40 |
- | |
219 | - | ||
220 | no_exit: |
- | |
221 | - | ||
222 | mov [Current_instrument],eax |
- | |
223 | - | ||
224 | cmp eax,10 |
- | |
225 | jl still |
- | |
226 | - | ||
227 | cmp eax,15 |
- | |
228 | je still |
- | |
229 | - | ||
230 | cmp eax,17 |
- | |
231 | je still |
- | |
232 | - | ||
233 | cmp eax,18 |
- | |
234 | je still |
- | |
235 | - | ||
236 | cmp eax,19 |
- | |
237 | je still |
- | |
238 | - | ||
239 | cmp eax,20 |
- | |
240 | je still |
- | |
241 | - | ||
242 | cmp eax,21 |
- | |
243 | jne no_palette_ |
- | |
244 | - | ||
245 | call TakeButtonInstruments |
- | |
246 | jmp still |
- | |
247 | - | ||
248 | no_palette_: |
- | |
249 | - | ||
250 | cmp eax,23 |
- | |
251 | je still |
- | |
252 | - | ||
253 | cmp eax,30 |
- | |
254 | jne no_allocation__ |
- | |
255 | - | ||
256 | and [Activate_instrument],0 |
- | |
257 | jmp still |
- | |
258 | - | ||
259 | no_allocation__: |
- | |
260 | - | ||
261 | cmp eax,38 |
- | |
262 | jne no_kontur__ |
- | |
263 | - | ||
264 | and [instrument_used],0 |
- | |
265 | jmp still |
- | |
266 | - | ||
267 | no_kontur__: |
- | |
268 | - | ||
269 | call TakeButtonInstruments |
- | |
270 | jmp still |
- | |
271 | ;--------------------------------------------- |
- | |
272 | ;-------------interraction MOUSE-------------- |
- | |
273 | ;--------------------------------------------- |
- | |
274 | mouse: |
- | |
275 | - | ||
276 | call GetMouseCoordinats |
- | |
277 | - | ||
278 | ;panel |
- | |
279 | mov edx,[Window_SizeX] |
- | |
280 | sub edx,5 |
- | |
281 | - | ||
282 | cmp ebx,20 |
- | |
283 | jle no_panel |
- | |
284 | - | ||
285 | cmp ebx,20+15 |
- | |
286 | jae no_panel |
- | |
287 | - | ||
288 | cmp eax,5 |
- | |
289 | jle no_panel |
- | |
290 | - | ||
291 | cmp eax,edx ;585 |
- | |
292 | jae no_panel |
- | |
293 | - | ||
294 | call GetMouseCoordinats |
- | |
295 | - | ||
296 | mov [counter],7 |
- | |
297 | mov edi,panel_text |
- | |
298 | call panel_interraction |
- | |
299 | - | ||
300 | jmp still |
- | |
301 | no_panel: |
- | |
302 | - | ||
303 | cmp [Panel_flag],0 |
- | |
304 | jz no_redraw_panel |
- | |
305 | - | ||
306 | mov [counter],7 |
- | |
307 | mov edi,panel_text |
- | |
308 | call panel_interraction |
- | |
309 | - | ||
310 | no_redraw_panel: |
- | |
311 | - | ||
312 | call GetMouseCoordinats |
- | |
313 | mov eax,[MouseX] |
- | |
314 | mov ebx,[MouseY] |
- | |
315 | mov ecx,[WorkScreen_SizeX] |
- | |
316 | mov edx,[WorkScreen_SizeY] |
- | |
317 | add ecx,9 |
- | |
318 | add edx,85 |
- | |
319 | - | ||
320 | cmp eax,ecx |
- | |
321 | jae mouse_scroll |
- | |
322 | - | ||
323 | cmp ebx,edx |
- | |
324 | jae mouse_scroll |
- | |
325 | - | ||
326 | jmp no_scrollers |
- | |
327 | - | ||
328 | mouse_scroll: |
- | |
329 | - | ||
330 | mov [exit_from_work_arrea],1 ;mouse situated after work arrea |
- | |
331 | - | ||
332 | ;scrollers |
- | |
333 | call GetMouseClick |
- | |
334 | - | ||
335 | cmp eax,1 |
- | |
336 | jne no_click |
- | |
337 | - | ||
338 | call GetMouseCoordinats |
- | |
339 | ;interraction with horizontal scroller |
- | |
340 | mov eax,[Scroll1CoordinatX] |
- | |
341 | mov ebx,[Scroll1CoordinatY] |
- | |
342 | mov ecx,[MouseX] |
- | |
343 | mov edx,[MouseY] |
- | |
344 | mov esi,[Scroll1MaxSizeX] |
- | |
345 | mov edi,[Scroll1MaxSizeY] |
- | |
346 | call columnus |
- | |
347 | - | ||
348 | test eax,eax |
- | |
349 | jz no_horizontal |
- | |
350 | - | ||
351 | - | ||
352 | mov eax,9 |
- | |
353 | mov ebx,[Scroll1CoordinatY] |
- | |
354 | mov ecx,[Scroll1MaxSizeX] |
- | |
355 | mov edx,14+10 |
- | |
356 | mov esi,7 |
- | |
357 | inc ecx |
- | |
358 | call draw_volume_rectangle |
- | |
359 | - | ||
360 | mov eax,[MouseX] |
- | |
361 | mov ebx,[Scroll1SizeX] |
- | |
362 | shr ebx,1 |
- | |
363 | sub eax,ebx |
- | |
364 | mov ecx,[MouseX] |
- | |
365 | add ecx,ebx |
- | |
366 | mov edx,8+1 |
- | |
367 | add edx,[Scroll1MaxSizeX] |
- | |
368 | mov [Scroll1CoordinatX],eax |
- | |
369 | - | ||
370 | sub eax,9 |
- | |
371 | jns no_min_scroll |
- | |
372 | - | ||
373 | mov [Scroll1CoordinatX],9 |
- | |
374 | - | ||
375 | no_min_scroll: |
- | |
376 | - | ||
377 | cmp ecx,edx |
- | |
378 | jl no_max_scroll |
- | |
379 | - | ||
380 | sub edx,ebx |
- | |
381 | sub edx,ebx |
- | |
382 | mov [Scroll1CoordinatX],edx |
- | |
383 | - | ||
384 | no_max_scroll: |
- | |
385 | ; |
- | |
386 | mov eax,[Scroll1CoordinatX] |
- | |
387 | sub eax,9 |
- | |
388 | mov ebx,[Picture_SizeX] |
- | |
389 | imul eax,ebx |
- | |
390 | mov ebx,[Scroll1MaxSizeX] |
- | |
391 | cdq |
- | |
392 | idiv ebx |
- | |
393 | mov [PosX],eax |
- | |
394 | - | ||
395 | jmp no_vertical |
- | |
396 | - | ||
397 | no_horizontal: |
- | |
398 | - | ||
399 | mov eax,[Scroll2CoordinatX] |
- | |
400 | mov ebx,[Scroll2CoordinatY] |
- | |
401 | mov ecx,[MouseX] |
- | |
402 | mov edx,[MouseY] |
- | |
403 | mov esi,[Scroll2MaxSizeX] |
- | |
404 | mov edi,[Scroll2MaxSizeY] |
- | |
405 | call columnus |
- | |
406 | - | ||
407 | test eax,eax |
- | |
408 | jz no_vertical |
- | |
409 | - | ||
410 | mov eax,[Scroll2CoordinatX] |
- | |
411 | mov ebx,85 |
- | |
412 | mov ecx,14+10 |
- | |
413 | mov edx,[Scroll2MaxSizeY] |
- | |
414 | mov esi,7 |
- | |
415 | inc edx |
- | |
416 | call draw_volume_rectangle |
- | |
417 | - | ||
418 | mov eax,[MouseY] |
- | |
419 | mov ebx,[Scroll2SizeY] |
- | |
420 | shr ebx,1 |
- | |
421 | sub eax,ebx |
- | |
422 | mov ecx,[MouseY] |
- | |
423 | add ecx,ebx |
- | |
424 | mov edx,85 |
- | |
425 | add edx,[Scroll2MaxSizeY] |
- | |
426 | mov [Scroll2CoordinatY],eax |
- | |
427 | - | ||
428 | sub eax,85 |
- | |
429 | jns no_min_scroll2 |
- | |
430 | - | ||
431 | mov [Scroll2CoordinatY],85 |
- | |
432 | - | ||
433 | no_min_scroll2: |
- | |
434 | - | ||
435 | cmp ecx,edx |
- | |
436 | jl no_max_scroll2 |
- | |
437 | - | ||
438 | sub edx,ebx |
- | |
439 | sub edx,ebx |
- | |
440 | mov [Scroll2CoordinatY],edx |
- | |
441 | - | ||
442 | no_max_scroll2: |
- | |
443 | ; |
- | |
444 | mov eax,[Scroll2CoordinatY] |
- | |
445 | sub eax,85 |
- | |
446 | mov ebx,[Picture_SizeY] |
- | |
447 | imul eax,ebx |
- | |
448 | mov ebx,[Scroll2MaxSizeY] |
- | |
449 | cdq |
- | |
450 | idiv ebx |
- | |
451 | mov [PosY],eax |
- | |
452 | - | ||
453 | no_vertical: |
- | |
454 | - | ||
455 | call CalculatePositionScreen |
- | |
456 | - | ||
457 | call draw_scrollers |
- | |
458 | call MovePictureToWorkScreen |
- | |
459 | - | ||
460 | no_click: |
- | |
461 | - | ||
462 | jmp still |
- | |
463 | no_scrollers: |
- | |
464 | - | ||
465 | - | ||
466 | mov eax,[MouseX] |
- | |
467 | mov ebx,[MouseY] |
- | |
468 | mov ecx,[Window_SizeX] |
- | |
469 | mov edx,[Window_SizeY] |
- | |
470 | sub ecx,36 |
- | |
471 | sub edx,35 |
- | |
472 | - | ||
473 | cmp eax,9 |
- | |
474 | jle not_work_arrea |
- | |
475 | - | ||
476 | cmp eax,ecx |
- | |
477 | jae not_work_arrea |
- | |
478 | - | ||
479 | cmp ebx,20+15+1+46 |
- | |
480 | jle not_work_arrea |
- | |
481 | - | ||
482 | cmp ebx,edx |
- | |
483 | jae not_work_arrea |
- | |
484 | - | ||
485 | jmp mouse_in_work_arrea |
- | |
486 | - | ||
487 | not_work_arrea: |
- | |
488 | - | ||
489 | mov [exit_from_work_arrea],1 |
- | |
490 | - | ||
491 | jmp still |
- | |
492 | - | ||
493 | mouse_in_work_arrea: |
- | |
494 | - | ||
495 | call GetScreenCordinats |
- | |
496 | call PrintMousePos |
- | |
497 | call GetMouseClick |
- | |
498 | - | ||
499 | test eax,eax |
- | |
500 | jz no_use_instruments |
- | |
501 | - | ||
502 | cmp [Activate_instrument],0 |
- | |
503 | - | ||
504 | jnz no_undo___ |
- | |
505 | ;------------begin copy for undo------------- |
- | |
506 | inc [number_undo] |
- | |
507 | - | ||
508 | cmp [number_undo],1 |
- | |
509 | jne no_one__ |
- | |
510 | - | ||
511 | mov edi,[PointerToCopyPicture] |
- | |
512 | - | ||
513 | no_one__: |
- | |
514 | - | ||
515 | cmp [number_undo],2 |
- | |
516 | jne no_two__ |
- | |
517 | - | ||
518 | mov edi,[PointerToCopyPicture2] |
- | |
519 | - | ||
520 | no_two__: |
- | |
521 | - | ||
522 | cmp [number_undo],3 |
- | |
523 | jne no_three__ |
- | |
524 | - | ||
525 | ;copy bufer number two to bufer number one |
- | |
526 | mov esi,[PointerToCopyPicture2] |
- | |
527 | mov edi,[PointerToCopyPicture] |
- | |
528 | mov ecx,[Picture_SizeX] |
- | |
529 | imul ecx,[Picture_SizeY] |
- | |
530 | lea ecx,[ecx+ecx*2] |
- | |
531 | add ecx,4 |
- | |
532 | shr ecx,2 |
- | |
533 | inc ecx |
- | |
534 | cld |
- | |
535 | rep movsd |
- | |
536 | ;end copy |
- | |
537 | dec [number_undo] |
- | |
538 | mov edi,[PointerToCopyPicture2] |
- | |
539 | - | ||
540 | no_three__: |
- | |
541 | - | ||
542 | mov esi,[PointerToPicture] |
- | |
543 | mov ecx,[Picture_SizeX] |
- | |
544 | imul ecx,[Picture_SizeY] |
- | |
545 | lea ecx,[ecx+ecx*2] |
- | |
546 | add ecx,4 |
- | |
547 | shr ecx,2 |
- | |
548 | inc ecx |
- | |
549 | cld |
- | |
550 | rep movsd |
- | |
551 | ;--------------end copy for undo------------- |
- | |
552 | no_undo___: |
- | |
553 | - | ||
554 | call TakeButtonInstruments |
- | |
555 | no_use_instruments: |
- | |
556 | - | ||
557 | mov eax,[Current_instrument] |
- | |
558 | and [Activate_instrument],0 |
- | |
559 | - | ||
560 | jmp still |
- | |
561 | ;----------------------------------------------- |
- | |
562 | ;---------get mouse cordinats------------------- |
- | |
563 | ;----------------------------------------------- |
- | |
564 | GetMouseCoordinats: |
- | |
565 | - | ||
566 | mov eax,37 |
- | |
567 | mov ebx,1 |
- | |
568 | int 0x40 |
- | |
569 | - | ||
570 | mov ebx,eax |
- | |
571 | shr eax,16 |
- | |
572 | and ebx,0xffff |
- | |
573 | - | ||
574 | mov [MouseX],eax |
- | |
575 | mov [MouseY],ebx |
- | |
576 | - | ||
577 | ret |
- | |
578 | ;------------------------------------------------ |
- | |
579 | ;-------get mouse attributs---------------------- |
- | |
580 | ;------------------------------------------------ |
- | |
581 | GetMouseClick: |
- | |
582 | mov eax,37 |
- | |
583 | mov ebx,2 |
- | |
584 | int 0x40 |
- | |
585 | - | ||
586 | ret |
- | |
587 | ;------------------------------------------------- |
- | |
588 | ;-----interraction panel with user---------------- |
- | |
589 | ;------------------------------------------------- |
- | |
590 | panel_interraction: |
- | |
591 | ;>>>>>>>>>>>>>>>>>>>>>>>>>> |
- | |
592 | mov eax,18 |
- | |
593 | mov ebx,14 |
- | |
594 | int 0x40 |
- | |
595 | - | ||
596 | and [Panel_flag],0 |
- | |
597 | ;collision with text on panel |
- | |
598 | next_columnus_text: |
- | |
599 | - | ||
600 | mov eax,[edi] |
- | |
601 | mov ebx,[edi+4] |
- | |
602 | sub eax,10 |
- | |
603 | sub ebx,3 |
- | |
604 | mov [Icon_text_x],eax |
- | |
605 | mov [Icon_text_y],ebx |
- | |
606 | mov esi,[edi+8] |
- | |
607 | add edi,esi |
- | |
608 | add edi,3*4 |
- | |
609 | mov ecx,[MouseX] |
- | |
610 | mov edx,[MouseY] |
- | |
611 | push edi |
- | |
612 | mov edi,13 |
- | |
613 | mov esi,80 |
- | |
614 | call columnus |
- | |
615 | - | ||
616 | pop edi |
- | |
617 | mov esi,7 |
- | |
618 | - | ||
619 | test eax,eax |
- | |
620 | jz no_columnus_text |
- | |
621 | - | ||
622 | mov esi,1 |
- | |
623 | mov [Panel_flag],1 |
- | |
624 | call GetMouseClick |
- | |
625 | - | ||
626 | test eax,eax |
- | |
627 | jz no_mouse_pressed |
- | |
628 | - | ||
629 | call print_panel_menu |
- | |
630 | - | ||
631 | no_mouse_pressed: |
- | |
632 | - | ||
633 | no_columnus_text: |
- | |
634 | - | ||
635 | mov eax,[Icon_text_x] |
- | |
636 | mov ebx,[Icon_text_y] |
- | |
637 | mov ecx,79 |
- | |
638 | mov edx,13 |
- | |
639 | call draw_volume_rectangle |
- | |
640 | - | ||
641 | push [counter] |
- | |
642 | push edi |
- | |
643 | mov [counter],7 |
- | |
644 | mov edi,panel_text |
- | |
645 | call print_panel_text |
- | |
646 | - | ||
647 | pop edi |
- | |
648 | pop [counter] |
54 | ;load cursors |
649 | dec [counter] |
55 | mov eax,CursorsID |
650 | jnz next_columnus_text |
56 | call load_cursors |
651 | - | ||
652 | ret |
- | |
653 | ;--------------------------------------------------------- |
- | |
654 | ;-----draw panel menu(main engin of panel)---------------- |
- | |
655 | ;--------------------------------------------------------- |
- | |
656 | print_panel_menu: |
- | |
657 | - | ||
658 | - | ||
659 | push [counter] |
- | |
660 | ;delit icon buttons(some time) |
- | |
661 | mov [counter],10 |
- | |
662 | next_icon_delit: |
- | |
663 | mov eax,8 |
- | |
664 | mov edx,[counter] |
- | |
665 | add edx,11100000000000000000000000000000b |
- | |
666 | int 0x40 |
- | |
667 | inc [counter] |
- | |
668 | - | ||
669 | cmp [counter],30 |
- | |
670 | jl next_icon_delit |
- | |
671 | - | ||
672 | pop [counter] |
- | |
673 | - | ||
674 | push esi |
- | |
675 | mov esi,[counter] |
- | |
676 | dec esi |
- | |
677 | shl esi,4 |
- | |
678 | - | ||
679 | mov eax,[menu_rectangles+esi] |
- | |
680 | mov ebx,[menu_rectangles+esi+4] |
- | |
681 | mov ecx,[menu_rectangles+esi+8] |
- | |
682 | mov edx,[menu_rectangles+esi+12] |
- | |
683 | mov esi,1 |
- | |
684 | mov [menu_coordinat_x],eax |
- | |
685 | mov [menu_size_x],ecx |
- | |
686 | call draw_volume_rectangle |
- | |
687 | pop esi |
- | |
688 | - | ||
689 | calculate_counter_menu: |
- | |
690 | - | ||
691 | - | ||
692 | ;calculate menu counter |
- | |
693 | mov eax,[counter] |
- | |
694 | dec eax |
- | |
695 | shl eax,2 |
- | |
696 | mov ebx,[menu_counters+eax] |
- | |
697 | mov [counter_menu],ebx |
- | |
698 | - | ||
699 | call GetMouseCoordinats |
- | |
700 | - | ||
701 | and [menu_counter],0 |
- | |
702 | push esi |
- | |
703 | push edi |
- | |
704 | ;ᣫ ¦¨¢ Â¨¥  Â¨¬ æ¨¨ >>>>>>>>>>>>>>>>>> |
- | |
705 | mov eax,18 |
- | |
706 | mov ebx,14 |
- | |
707 | int 0x40 |
- | |
708 | - | ||
709 | menu_loop: |
- | |
710 | - | ||
711 | mov eax,[menu_coordinat_x] |
- | |
712 | mov ebx,36 |
- | |
713 | mov ecx,[MouseX] |
- | |
714 | mov edx,[MouseY] |
- | |
715 | mov esi,[menu_size_x] |
- | |
716 | mov edi,18 |
- | |
717 | add ebx,[menu_counter] |
- | |
718 | add eax,2 |
- | |
719 | sub esi,3 |
- | |
720 | inc ebx |
- | |
721 | call columnus |
- | |
722 | mov esi,7 |
- | |
723 | - | ||
724 | test eax,eax |
- | |
725 | jz no_columnus_menu_text |
- | |
726 | - | ||
727 | mov esi,1 |
- | |
728 | - | ||
729 | no_columnus_menu_text: |
- | |
730 | - | ||
731 | mov eax,[menu_coordinat_x] |
- | |
732 | mov ebx,36 |
- | |
733 | mov ecx,[menu_size_x] |
- | |
734 | mov edx,18 |
- | |
735 | add ebx,[menu_counter] |
- | |
736 | add eax,2 |
- | |
737 | sub ecx,3 |
- | |
738 | inc ebx |
- | |
739 | call draw_volume_rectangle |
- | |
740 | add [menu_counter],20 |
- | |
741 | - | ||
742 | - | ||
743 | dec [counter_menu] |
- | |
744 | jnz menu_loop |
- | |
745 | - | ||
746 | ;print menu text |
- | |
747 | push [counter] |
- | |
748 | mov esi,[counter] |
- | |
749 | dec esi |
- | |
750 | shl esi,2 |
- | |
751 | mov edi,[menu_text_en+esi] |
- | |
752 | mov eax,[menu_counters+esi] |
- | |
753 | mov [counter],eax |
- | |
754 | call print_panel_text |
- | |
755 | pop [counter] |
- | |
756 | pop edi |
- | |
757 | pop esi |
- | |
758 | - | ||
759 | - | ||
760 | menu_still: |
- | |
761 | - | ||
762 | mov eax,10 |
- | |
763 | int 0x40 |
- | |
764 | mov eax,2 |
- | |
765 | int 0x40 |
- | |
766 | mov eax,17 |
- | |
767 | int 0x40 |
- | |
768 | - | ||
769 | call GetMouseClick |
- | |
770 | - | ||
771 | test eax,eax |
- | |
772 | jz calculate_counter_menu |
- | |
773 | - | ||
774 | call GetMouseCoordinats |
- | |
775 | - | ||
776 | ;calculate menu counter |
- | |
777 | mov eax,[counter] |
- | |
778 | dec eax |
- | |
779 | shl eax,2 |
- | |
780 | mov ebx,[menu_counters+eax] |
- | |
781 | mov [counter_menu],ebx |
- | |
782 | - | ||
783 | and [menu_counter],0 |
- | |
784 | and [counter_11],0 |
- | |
785 | - | ||
786 | push esi |
- | |
787 | push edi |
- | |
788 | - | ||
789 | menu_loop2: |
- | |
790 | - | ||
791 | - | ||
792 | mov eax,[menu_coordinat_x] |
- | |
793 | mov ebx,36 |
- | |
794 | mov ecx,[MouseX] |
- | |
795 | mov edx,[MouseY] |
- | |
796 | mov esi,[menu_size_x] |
- | |
797 | mov edi,18 |
- | |
798 | add ebx,[menu_counter] |
- | |
799 | add eax,2 |
- | |
800 | sub esi,3 |
- | |
801 | inc ebx |
- | |
802 | call columnus |
- | |
803 | - | ||
804 | inc [counter_11] |
- | |
805 | - | ||
806 | test eax,eax |
- | |
807 | jz no_columnus_menu_text2 |
- | |
808 | - | ||
809 | mov esi,[counter_11] |
- | |
810 | mov [number_menu],esi |
- | |
811 | - | ||
812 | no_columnus_menu_text2: |
- | |
813 | - | ||
814 | add [menu_counter],20 |
- | |
815 | - | ||
816 | dec [counter_menu] |
- | |
817 | jnz menu_loop2 |
- | |
818 | - | ||
819 | pop edi |
- | |
820 | pop esi |
- | |
821 | - | ||
822 | mov eax,5 |
- | |
823 | mov ebx,15 |
- | |
824 | int 0x40 |
- | |
Line 825... | Line 57... | ||
825 | 57 | ||
826 | push [counter] |
58 | call drawwin |
- | 59 | ;--------------------------------------------------------- |
|
Line 827... | Line -... | ||
827 | pushad |
- | |
828 | - | ||
829 | call drawwin |
- | |
830 | - | ||
831 | popad |
- | |
832 | pop [counter] |
- | |
833 | - | ||
834 | mov eax,[counter] |
- | |
835 | mov [number_panel],eax |
- | |
836 | - | ||
837 | call TakeInstruments |
- | |
838 | jmp still |
- | |
839 | - | ||
840 | ;--------------------------------------------------------- |
- | |
841 | ;------print mouse position on panel---------------------- |
- | |
842 | ;--------------------------------------------------------- |
- | |
843 | PrintMousePos: |
- | |
844 | - | ||
845 | pushad |
- | |
846 | - | ||
847 | mov eax,385 |
- | |
848 | mov ebx,20+15+6 |
- | |
849 | mov ecx,52 |
- | |
850 | mov edx,18 |
- | |
851 | mov esi,4 |
- | |
852 | call draw_volume_rectangle |
- | |
853 | - | ||
854 | mov eax,385 |
- | |
855 | mov ebx,20+15+6+18+1 |
- | |
856 | mov ecx,52 |
- | |
857 | mov edx,18 |
- | |
858 | mov esi,4 |
- | |
859 | call draw_volume_rectangle |
- | |
860 | - | ||
861 | mov eax,390 |
- | |
862 | mov ebx,20+15+6+6 |
- | |
863 | and ecx,0 |
- | |
864 | mov edx,mouse_pos_x |
- | |
865 | mov esi,2 |
- | |
866 | call print_text |
- | |
867 | - | ||
868 | mov eax,390 |
- | |
869 | mov ebx,20+15+6+6+18+1 |
- | |
870 | and ecx,0 |
- | |
871 | mov edx,mouse_pos_y |
- | |
872 | mov esi,2 |
- | |
873 | call print_text |
- | |
874 | - | ||
875 | mov eax,47 |
- | |
876 | mov ebx,4*65536 |
- | |
877 | mov ecx,[ScreenX] |
- | |
878 | add ecx,[PosX] |
- | |
879 | mov edx,405*65536+20+15+6+6 |
- | |
880 | and esi,0 |
- | |
881 | int 0x40 |
- | |
882 | - | ||
883 | mov eax,47 |
- | |
884 | mov ebx,4*65536 |
- | |
885 | mov ecx,[ScreenY] |
- | |
886 | add ecx,[PosY] |
- | |
887 | mov edx,405*65536+20+15+6+18+1+6 |
- | |
888 | and esi,0 |
- | |
889 | int 0x40 |
- | |
890 | - | ||
891 | popad |
- | |
892 | ret |
- | |
893 | - | ||
894 | ;--------------------------------------------------------- |
- | |
895 | ;---------- get time in 1/100 secunds--------------------- |
- | |
896 | ;--------------------------------------------------------- |
- | |
897 | Clock: |
- | |
898 | mov eax,26 |
60 | ;---------Check loading of file from psrsmeters----------- |
899 | mov ebx,9 |
- | |
900 | int 0x40 |
- | |
901 | mov [time],eax |
- | |
902 | ret |
- | |
903 | ;---------------------------------------------------------- |
- | |
904 | ;-------------draw window of program----------------------- |
- | |
905 | ;---------------------------------------------------------- |
- | |
906 | drawwin: |
- | |
907 | - | ||
908 | mov eax,12 |
- | |
909 | mov ebx,1 |
- | |
910 | int 0x40 |
- | |
911 | - | ||
912 | and eax,0 |
- | |
913 | mov ebx,[Window_CordinatX] |
- | |
914 | mov ecx,[Window_CordinatY] |
- | |
915 | shl ebx,16 |
- | |
916 | shl ecx,16 |
- | |
917 | add ebx,[Window_SizeX] |
- | |
918 | add ecx,[Window_SizeY] |
- | |
919 | mov edx,0x03aabbcc |
- | |
920 | mov esi,0x805080d0 |
- | |
921 | mov edi,0x005080d0 |
- | |
922 | int 0x40 |
- | |
923 | - | ||
924 | call draw_panel |
- | |
925 | call PrintMousePos |
- | |
926 | - | ||
927 | mov [counter],7 |
- | |
928 | mov edi,panel_text |
- | |
929 | call print_panel_text |
- | |
930 | - | ||
931 | mov eax,10 |
- | |
932 | mov ebx,5 |
- | |
933 | mov ecx,0xffffff |
- | |
934 | mov edx,name_of_program |
- | |
935 | mov esi,34 |
- | |
936 | call print_text |
- | |
937 | - | ||
938 | mov eax,13 |
- | |
939 | mov ebx,447*65536+35 |
- | |
940 | mov ecx,42*65536+36 |
- | |
941 | mov edx,[Color] |
- | |
942 | int 0x40 |
- | |
943 | - | ||
944 | mov eax,12 |
- | |
945 | mov ebx,2 |
- | |
946 | int 0x40 |
- | |
947 | - | ||
948 | mov eax,9 |
- | |
949 | mov ebx,IPC_table |
- | |
950 | or ecx,-1 |
- | |
951 | int 0x40 |
- | |
952 | - | ||
953 | mov eax,[IPC_table+34] |
- | |
954 | mov ebx,[IPC_table+38] |
- | |
955 | mov ecx,[IPC_table+42] |
- | |
956 | mov edx,[IPC_table+46] |
- | |
957 | mov [Window_CordinatX],eax |
- | |
958 | mov [Window_CordinatY],ebx |
- | |
959 | mov [Window_SizeX],ecx |
- | |
960 | mov [Window_SizeY],edx |
- | |
961 | - | ||
962 | cmp [Window_SizeX],585 |
- | |
963 | jae no_minimum_size_x |
- | |
964 | - | ||
965 | mov [Window_SizeX],585 |
- | |
966 | mov ecx,[Window_SizeX] |
- | |
967 | - | ||
968 | no_minimum_size_x: |
- | |
969 | - | ||
970 | cmp [Window_SizeY],320 |
- | |
971 | jae no_minimum_size_y |
- | |
972 | - | ||
973 | mov [Window_SizeY],320 |
- | |
974 | mov edx,[Window_SizeY] |
- | |
975 | - | ||
976 | no_minimum_size_y: |
- | |
977 | - | ||
978 | mov [MaxWorkScreen_SizeX],ecx |
- | |
979 | mov [MaxWorkScreen_SizeY],edx |
- | |
980 | sub [MaxWorkScreen_SizeX],20+10+5+10 |
- | |
981 | sub [MaxWorkScreen_SizeY],20+10+15+1+45+20+10 |
- | |
982 | - | ||
983 | cmp [MaxWorkScreen_SizeX],0 |
- | |
984 | jns no_znak1 |
- | |
985 | - | ||
986 | mov [MaxWorkScreen_SizeX],ecx |
- | |
987 | - | ||
988 | no_znak1: |
- | |
989 | cmp [MaxWorkScreen_SizeY],0 |
- | |
990 | jns no_znak2 |
- | |
991 | - | ||
992 | mov [MaxWorkScreen_SizeY],ecx |
- | |
993 | - | ||
994 | no_znak2: |
- | |
995 | - | ||
996 | mov ecx,[k] |
- | |
997 | - | ||
998 | and [PosX],0 |
- | |
999 | and [PosY],0 |
- | |
1000 | call MovePictureToWorkScreen |
61 | ;--------------------------------------------------------- |
1001 | call draw_scrollers |
- | |
1002 | call draw_icons |
- | |
1003 | - | ||
1004 | ret |
- | |
1005 | ;---------------------------------------------------------- |
- | |
1006 | ;---------------draw panel in window of program------------ |
- | |
1007 | ;---------------------------------------------------------- |
- | |
1008 | draw_panel: |
- | |
1009 | - | ||
1010 | mov eax,5 |
- | |
1011 | mov ebx,20 |
- | |
1012 | mov ecx,[Window_SizeX] |
- | |
1013 | mov edx,15 |
- | |
1014 | mov esi,6 |
- | |
1015 | sub ecx,10 |
- | |
1016 | call draw_volume_rectangle |
- | |
1017 | - | ||
1018 | mov eax,5 |
- | |
1019 | mov ebx,20 |
- | |
1020 | mov ecx,[Window_SizeX] |
- | |
1021 | mov edx,15 |
- | |
1022 | mov esi,6 |
- | |
1023 | sub ecx,10 |
- | |
1024 | call draw_volume_rectangle |
- | |
1025 | - | ||
1026 | mov eax,5 |
- | |
1027 | mov ebx,20+15+1 |
- | |
1028 | mov ecx,[Window_SizeX] |
- | |
1029 | mov edx,46 |
- | |
1030 | mov esi,1 |
- | |
1031 | sub ecx,10 |
- | |
1032 | call draw_volume_rectangle |
- | |
1033 | - | ||
1034 | mov eax,5 |
- | |
1035 | mov ebx,20+15+1+46+1 |
- | |
1036 | mov ecx,[Window_SizeX] |
- | |
1037 | mov edx,[Window_SizeY] |
- | |
1038 | mov esi,1 |
- | |
1039 | sub ecx,10+20 |
- | |
1040 | sub edx,20+15+1+46+1+5+20 |
- | |
1041 | call draw_volume_rectangle |
- | |
1042 | - | ||
1043 | mov eax,5 |
- | |
1044 | mov ebx,[Window_SizeY] |
- | |
1045 | mov ecx,[Window_SizeX] |
- | |
1046 | mov edx,20+10 |
- | |
1047 | mov esi,3 |
- | |
1048 | sub ecx,30 |
- | |
1049 | sub ebx,25+10 |
- | |
1050 | call draw_volume_rectangle |
- | |
1051 | - | ||
1052 | mov eax,[Window_SizeX] |
- | |
1053 | mov ebx,20+15+1+45+2 |
- | |
1054 | mov ecx,20+10 |
- | |
1055 | mov edx,[Window_SizeY] |
- | |
1056 | mov esi,3 |
- | |
1057 | sub eax,25+10 |
- | |
1058 | sub edx,20+15+1+45+5+20 |
- | |
1059 | call draw_volume_rectangle |
- | |
1060 | - | ||
1061 | mov eax,[Window_SizeX] |
- | |
1062 | mov ebx,[Window_SizeY] |
- | |
1063 | mov ecx,20+10 |
- | |
1064 | mov edx,20+10 |
- | |
1065 | mov esi,6 |
- | |
1066 | sub eax,25+10 |
- | |
1067 | sub ebx,25+10 |
- | |
1068 | call draw_volume_rectangle |
- | |
1069 | - | ||
1070 | mov eax,445 |
- | |
1071 | mov ebx,20+15+6 |
- | |
1072 | mov ecx,37 |
- | |
1073 | mov edx,37 |
- | |
1074 | mov esi,4 |
- | |
1075 | call draw_volume_rectangle |
- | |
1076 | - | ||
1077 | ret |
- | |
1078 | ;---------------------------------------------------------- |
- | |
1079 | ;---------------------system events------------------------ |
- | |
1080 | ;---------------------------------------------------------- |
- | |
1081 | event: |
- | |
1082 | mov eax,10 |
- | |
1083 | int 0x40 |
- | |
1084 | ret |
- | |
1085 | - | ||
1086 | ;---------------------------------------------------------- |
- | |
1087 | ;----------print text on the panel and menu---------------- |
- | |
1088 | ;---------------------------------------------------------- |
- | |
1089 | print_panel_text: |
- | |
1090 | next_panel_text: |
- | |
1091 | - | ||
1092 | mov eax,[edi] |
- | |
1093 | mov ebx,[edi+4] |
- | |
1094 | xor ecx,ecx |
- | |
1095 | mov edx,edi |
- | |
1096 | add edx,12 |
- | |
1097 | mov esi,[edi+8] |
- | |
1098 | add edi,esi |
- | |
1099 | add edi,3*4 |
- | |
1100 | - | ||
1101 | push edi |
- | |
1102 | call print_text |
- | |
1103 | pop edi |
- | |
1104 | - | ||
1105 | dec [counter] |
- | |
1106 | jnz next_panel_text |
- | |
1107 | ret |
- | |
1108 | ;---------------------------------------------------------- |
- | |
1109 | ;--------Move picture from array to work screeen----------- |
- | |
1110 | ;---------------------------------------------------------- |
- | |
1111 | MovePictureToWorkScreen: |
- | |
1112 | - | ||
1113 | call cleare_screen |
- | |
1114 | - | ||
1115 | mov eax,[Picture_SizeX] |
- | |
1116 | mov ebx,[Picture_SizeY] |
- | |
1117 | mov ecx,[MaxWorkScreen_SizeX] |
- | |
1118 | mov edx,[MaxWorkScreen_SizeY] |
- | |
1119 | mov esi,[k] |
- | |
1120 | imul eax,esi |
- | |
1121 | imul ebx,esi |
- | |
1122 | - | ||
1123 | cmp eax,ecx |
- | |
1124 | jle lab1 |
- | |
1125 | mov eax,[MaxWorkScreen_SizeX] |
- | |
1126 | mov [WorkScreen_SizeX],eax |
- | |
1127 | jmp lab2 |
- | |
1128 | lab1: |
- | |
1129 | mov [WorkScreen_SizeX],eax |
- | |
1130 | lab2: |
- | |
1131 | - | ||
1132 | cmp ebx,edx |
- | |
1133 | jle lab3 |
- | |
1134 | mov ebx,[MaxWorkScreen_SizeY] |
- | |
1135 | mov [WorkScreen_SizeY],ebx |
- | |
1136 | jmp lab4 |
- | |
1137 | lab3: |
- | |
1138 | mov [WorkScreen_SizeY],ebx |
- | |
1139 | lab4: |
- | |
1140 | - | ||
1141 | mov eax,[WorkScreen_SizeX] |
- | |
1142 | mov ebx,[k] |
- | |
1143 | cdq |
- | |
1144 | idiv ebx |
- | |
1145 | mov [CounterX],eax |
- | |
1146 | mov eax,[WorkScreen_SizeY] |
- | |
1147 | cdq |
- | |
1148 | idiv ebx |
- | |
1149 | mov [CounterY],eax |
- | |
1150 | - | ||
1151 | mov eax,[WorkScreen_SizeX] |
- | |
1152 | mov ecx,eax |
- | |
1153 | mov ebx,[k] |
- | |
1154 | cdq |
- | |
1155 | idiv ebx |
- | |
1156 | imul eax,ebx |
- | |
1157 | sub ecx,eax |
- | |
1158 | lea ecx,[ecx+ecx*2] |
- | |
1159 | ; |
- | |
1160 | mov eax,[WorkScreen_SizeX] |
- | |
1161 | mov ebx,[k] |
- | |
1162 | dec ebx |
- | |
1163 | imul eax,ebx |
- | |
1164 | lea eax,[eax+eax*2] |
- | |
1165 | add eax,ecx |
- | |
1166 | mov [OffsetYWorkScreen],eax |
- | |
1167 | - | ||
1168 | - | ||
1169 | mov ebx,[Picture_SizeX] |
- | |
1170 | mov eax,[CounterX] |
- | |
1171 | sub ebx,eax |
- | |
1172 | lea ebx,[ebx+ebx*2] |
- | |
1173 | mov [OffsetYPicture],ebx |
- | |
1174 | - | ||
1175 | mov eax,[WorkScreen_SizeX] |
- | |
1176 | mov ebx,[k] |
- | |
1177 | sub eax,ebx |
- | |
1178 | lea eax,[eax+eax*2] |
- | |
1179 | mov [OffsetYBigPixel],eax |
- | |
1180 | - | ||
1181 | mov eax,[PosX] |
- | |
1182 | mov ebx,[PosY] |
- | |
1183 | mov ecx,[Picture_SizeX] |
- | |
1184 | imul ecx,ebx |
- | |
1185 | add eax,ecx |
- | |
1186 | lea eax,[eax+eax*2] |
- | |
1187 | add eax,[PointerToPicture] |
- | |
1188 | - | ||
1189 | - | ||
1190 | mov ebx,[ScreenPointer] |
- | |
1191 | - | ||
1192 | mov edi,[CounterY] |
- | |
1193 | - | ||
1194 | ;if size of picture natural(mastab is 1) than move picture to work screen |
- | |
1195 | cmp [k],1 |
- | |
1196 | jne no_zoom_1_ |
- | |
1197 | screen_y_1: |
- | |
1198 | mov esi,[CounterX] |
- | |
1199 | screen_x_1: |
- | |
1200 | mov ecx,[eax] |
- | |
1201 | and ecx,0xffffff |
- | |
1202 | mov ebp,ecx |
- | |
1203 | shr ecx,16 |
- | |
1204 | mov [ebx],bp |
- | |
1205 | mov [ebx+2],cl |
- | |
1206 | add ebx,3; |
- | |
1207 | add eax,3 |
- | |
1208 | dec esi |
- | |
1209 | jnz screen_x_1 |
- | |
1210 | add eax,[OffsetYPicture] |
- | |
1211 | add ebx,[OffsetYWorkScreen] |
- | |
1212 | dec edi |
- | |
1213 | jnz screen_y_1 |
- | |
1214 | jmp fps |
- | |
1215 | no_zoom_1_: |
- | |
1216 | - | ||
1217 | cmp [k],2 |
- | |
1218 | jne no_zoom_2 |
- | |
1219 | - | ||
1220 | screen_y_2: |
- | |
1221 | mov esi,[CounterX] |
- | |
1222 | screen_x_2: |
- | |
1223 | mov ecx,[eax] |
- | |
1224 | and ecx,0xffffff |
- | |
1225 | mov ebp,ecx |
- | |
1226 | shr ecx,16 |
- | |
1227 | mov edx,ebx |
- | |
1228 | mov [edx],bp |
- | |
1229 | mov [edx+2],cl |
- | |
1230 | mov [edx+3],bp |
- | |
1231 | mov [edx+3+2],cl |
- | |
1232 | add edx,3*2 |
- | |
1233 | add edx,[OffsetYBigPixel] |
- | |
1234 | mov [edx],bp |
- | |
1235 | mov [edx+2],cl |
- | |
1236 | mov [edx+3],bp |
- | |
1237 | mov [edx+3+2],cl |
- | |
1238 | add edx,3*2 |
- | |
1239 | add edx,[OffsetYBigPixel] |
- | |
1240 | add ebx,3*2 |
- | |
1241 | add eax,3 |
- | |
1242 | dec esi |
- | |
1243 | jnz screen_x_2 |
- | |
1244 | add eax,[OffsetYPicture] |
- | |
1245 | add ebx,[OffsetYWorkScreen] |
- | |
1246 | dec edi |
- | |
1247 | jnz screen_y_2 |
- | |
1248 | jmp fps |
- | |
1249 | no_zoom_2: |
- | |
1250 | - | ||
1251 | cmp [k],4 |
- | |
1252 | jne no_zoom_4 |
- | |
1253 | screen_y_4: |
- | |
1254 | mov esi,[CounterX] |
- | |
1255 | screen_x_4: |
- | |
1256 | mov ecx,[eax] |
- | |
1257 | and ecx,0xffffff |
- | |
1258 | mov ebp,ecx |
- | |
1259 | shr ecx,16 |
- | |
1260 | mov edx,ebx |
- | |
1261 | mov [edx],bp |
- | |
1262 | mov [edx+2],cl |
- | |
1263 | mov [edx+3],bp |
- | |
1264 | mov [edx+3+2],cl |
- | |
1265 | mov [edx+6],bp |
- | |
1266 | mov [edx+6+2],cl |
- | |
1267 | mov [edx+9],bp |
- | |
1268 | mov [edx+9+2],cl |
- | |
1269 | add edx,3*4 |
- | |
1270 | add edx,[OffsetYBigPixel] |
- | |
1271 | mov [edx],bp |
- | |
1272 | mov [edx+2],cl |
- | |
1273 | mov [edx+3],bp |
- | |
1274 | mov [edx+3+2],cl |
- | |
1275 | mov [edx+6],bp |
- | |
1276 | mov [edx+6+2],cl |
- | |
1277 | mov [edx+9],bp |
- | |
1278 | mov [edx+9+2],cl |
- | |
1279 | add edx,3*4 |
- | |
1280 | add edx,[OffsetYBigPixel] |
- | |
1281 | mov [edx],bp |
- | |
1282 | mov [edx+2],cl |
- | |
1283 | mov [edx+3],bp |
- | |
1284 | mov [edx+3+2],cl |
- | |
1285 | mov [edx+6],bp |
- | |
1286 | mov [edx+6+2],cl |
- | |
1287 | mov [edx+9],bp |
- | |
1288 | mov [edx+9+2],cl |
- | |
1289 | add edx,3*4 |
- | |
1290 | add edx,[OffsetYBigPixel] |
- | |
1291 | mov [edx],bp |
- | |
1292 | mov [edx+2],cl |
- | |
1293 | mov [edx+3],bp |
- | |
1294 | mov [edx+3+2],cl |
- | |
1295 | mov [edx+6],bp |
- | |
1296 | mov [edx+6+2],cl |
- | |
1297 | mov [edx+9],bp |
- | |
1298 | mov [edx+9+2],cl |
- | |
1299 | add edx,3*4 |
- | |
1300 | add edx,[OffsetYBigPixel] |
- | |
1301 | add ebx,4*3 |
- | |
1302 | add eax,3 |
- | |
1303 | dec esi |
- | |
1304 | jnz screen_x_4 |
- | |
1305 | add eax,[OffsetYPicture] |
- | |
1306 | add ebx,[OffsetYWorkScreen] |
- | |
1307 | dec edi |
- | |
1308 | jnz screen_y_4 |
- | |
1309 | jmp fps |
- | |
1310 | no_zoom_4: |
- | |
1311 | ;if zoom more than 4 |
- | |
1312 | screen_y: |
- | |
1313 | mov esi,[CounterX] |
- | |
1314 | screen_x: |
- | |
1315 | mov ecx,[eax] |
- | |
1316 | and ecx,0xffffff |
- | |
1317 | mov ebp,ecx |
- | |
1318 | shr ecx,16 |
- | |
1319 | push ebx |
- | |
1320 | push eax |
- | |
1321 | mov edx,[k] |
- | |
1322 | big_pixel_y: |
- | |
1323 | mov eax,[k] |
- | |
1324 | big_pixel_x: |
- | |
1325 | mov [ebx],bp |
- | |
1326 | mov [ebx+2],cl |
- | |
1327 | add ebx,3 |
- | |
1328 | dec eax |
- | |
1329 | jnz big_pixel_x |
- | |
1330 | add ebx,[OffsetYBigPixel] |
- | |
1331 | dec edx |
- | |
1332 | jnz big_pixel_y |
- | |
1333 | pop eax |
- | |
1334 | pop ebx |
- | |
1335 | mov edx,[k] |
- | |
1336 | lea edx,[edx+edx*2] |
- | |
1337 | add ebx,edx |
- | |
1338 | add eax,3 |
- | |
1339 | dec esi |
- | |
1340 | jnz screen_x |
- | |
1341 | add eax,[OffsetYPicture] |
- | |
1342 | add ebx,[OffsetYWorkScreen] |
- | |
1343 | dec edi |
- | |
1344 | jnz screen_y |
- | |
1345 | - | ||
1346 | fps: |
- | |
1347 | mov eax,18 |
- | |
1348 | mov ebx,14 |
- | |
1349 | int 0x40 |
- | |
1350 | - | ||
1351 | mov eax,7 |
- | |
1352 | mov ebx,[ScreenPointer] |
- | |
1353 | mov ecx,[WorkScreen_SizeX] |
- | |
1354 | mov edx,[WorkScreen_SizeY] |
- | |
1355 | shl ecx,16 |
- | |
1356 | add ecx,edx |
- | |
1357 | mov edx,8*65536+20+15+45+5 |
- | |
1358 | int 0x40 |
- | |
1359 | - | ||
1360 | ret |
- | |
1361 | ;---------------------------------------------------------- |
- | |
1362 | ;--------------------clear screen-------------------------- |
- | |
1363 | ;---------------------------------------------------------- |
- | |
1364 | cleare_screen: |
- | |
1365 | - | ||
1366 | mov eax,[ScreenPointer] |
- | |
1367 | mov ebx,[WorkScreen_SizeX] |
- | |
1368 | imul ebx,[WorkScreen_SizeY] |
- | |
1369 | lea ebx,[ebx+ebx*2] |
- | |
1370 | shr ebx,3 |
- | |
1371 | inc ebx |
- | |
1372 | mov esi,0xffffff |
- | |
1373 | - | ||
1374 | clear_screen_loop: |
- | |
1375 | - | ||
1376 | mov [eax],esi |
- | |
1377 | mov [eax+3],esi |
- | |
1378 | mov [eax+6],si |
- | |
1379 | add eax,4+4 |
- | |
1380 | - | ||
1381 | dec ebx |
- | |
1382 | jnz clear_screen_loop |
- | |
1383 | ret |
- | |
1384 | ;---------------------------------------------------------- |
- | |
1385 | ;-------------cleare work arrea(work screen)--------------- |
- | |
1386 | ;---------------------------------------------------------- |
- | |
1387 | cleare_work_arrea: |
- | |
1388 | - | ||
1389 | mov eax,[PointerToPicture] |
- | |
1390 | mov ebx,[Picture_SizeX] |
- | |
1391 | imul ebx,[Picture_SizeY] |
- | |
1392 | lea ebx,[ebx+ebx*2] |
- | |
1393 | shr ebx,3 |
- | |
1394 | inc ebx |
- | |
1395 | mov esi,0xffffff |
- | |
1396 | - | ||
1397 | clear_work_arrea_loop: |
- | |
1398 | - | ||
1399 | mov [eax],esi |
- | |
1400 | mov [eax+3],esi |
- | |
1401 | mov [eax+6],si |
- | |
1402 | add eax,4+4 |
- | |
1403 | - | ||
1404 | dec ebx |
- | |
1405 | jnz clear_work_arrea_loop |
- | |
1406 | ret |
- | |
1407 | ;---------------------------------------------------------- |
- | |
1408 | ;------------draw lines of scoll--------------------------- |
- | |
1409 | ;---------------------------------------------------------- |
- | |
1410 | draw_scrollers: |
- | |
1411 | - | ||
1412 | mov edi,[CounterX] |
- | |
1413 | mov eax,[Scroll1CoordinatX] |
- | |
1414 | mov ebx,[Window_SizeY] |
- | |
1415 | sub ebx,22+10 |
- | |
1416 | mov ecx,[Window_SizeX] |
- | |
1417 | sub ecx,10+5+20+10+1 |
- | |
1418 | mov edx,14+10 |
- | |
1419 | mov esi,1 |
- | |
1420 | mov [Scroll1CoordinatX],eax |
- | |
1421 | mov [Scroll1CoordinatY],ebx |
- | |
1422 | mov [Scroll1MaxSizeY],edx |
- | |
1423 | mov [Scroll1MaxSizeX],ecx |
- | |
1424 | imul ecx,edi |
- | |
1425 | push eax |
- | |
1426 | push ebx |
- | |
1427 | push edx |
- | |
1428 | mov eax,ecx |
- | |
1429 | mov ebx,[Picture_SizeX] |
- | |
1430 | cdq |
- | |
1431 | idiv ebx |
- | |
1432 | mov ecx,eax |
- | |
1433 | pop edx |
- | |
1434 | pop ebx |
- | |
1435 | pop eax |
- | |
1436 | mov [Scroll1SizeX],ecx |
- | |
1437 | mov edi,[Scroll1MaxSizeX] |
- | |
1438 | sub edi,ecx |
- | |
1439 | mov [Scroll1FreeX],edi |
- | |
1440 | call draw_volume_rectangle |
- | |
1441 | - | ||
1442 | mov eax,[Window_SizeX] |
- | |
1443 | sub eax,22+10 |
- | |
1444 | mov ebx,[Scroll2CoordinatY] |
- | |
1445 | mov ecx,14+10 |
- | |
1446 | mov edx,[Window_SizeY] |
- | |
1447 | sub edx,20+15+1+46+10+20+11 |
- | |
1448 | mov esi,1 |
- | |
1449 | mov [Scroll2CoordinatX],eax |
- | |
1450 | mov [Scroll2CoordinatY],ebx |
- | |
1451 | mov [Scroll2MaxSizeX],ecx |
- | |
1452 | mov [Scroll2MaxSizeY],edx |
- | |
1453 | - | ||
1454 | imul edx,[CounterY] |
- | |
1455 | push eax |
- | |
1456 | push ebx |
- | |
1457 | mov eax,edx |
- | |
1458 | mov ebx,[Picture_SizeY] |
- | |
1459 | cdq |
- | |
1460 | idiv ebx |
- | |
1461 | mov edx,eax |
- | |
1462 | pop ebx |
- | |
1463 | pop eax |
- | |
1464 | mov [Scroll2SizeY],edx |
- | |
1465 | mov edi,[Scroll2MaxSizeY] |
- | |
1466 | sub edi,edx |
- | |
1467 | mov [Scroll2FreeY],edi |
- | |
1468 | - | ||
1469 | call draw_volume_rectangle |
- | |
1470 | - | ||
1471 | ret |
- | |
1472 | ;---------------------------------------------------------- |
- | |
1473 | ;--------change size of memory which use program----------- |
- | |
1474 | ;---------------------------------------------------------- |
- | |
1475 | GetMemory: |
- | |
1476 | pushad |
- | |
1477 | mov eax,64 |
- | |
1478 | mov ebx,1 |
- | |
1479 | mov ecx,[Picture_SizeX] |
- | |
1480 | mov edx,[Picture_SizeY] |
- | |
1481 | imul ecx,edx |
- | |
1482 | lea ecx,[ecx+ecx*2] |
- | |
1483 | lea ecx,[ecx+ecx*4] ;(Picture_SizeX*Picture_SizeY*3)*5 |
- | |
1484 | add ecx,[ScreenPointer] |
- | |
1485 | add ecx,(1200*1000)*3+30*(20*20*3)+500000+16000+0x4000 |
- | |
1486 | add ecx,[extended_memory] |
- | |
1487 | int 0x40 |
- | |
1488 | - | ||
1489 | test eax,eax |
- | |
1490 | jz have_new_memory |
- | |
1491 | - | ||
1492 | mov esi,sound_havent_memory |
- | |
1493 | call sound |
- | |
1494 | - | ||
1495 | jmp still |
- | |
1496 | - | ||
1497 | have_new_memory: |
- | |
1498 | popad |
- | |
1499 | ret |
- | |
1500 | ;----------------------------------------------------------- |
- | |
1501 | ;-----------instruments of menu----------------------------- |
- | |
1502 | ;----------------------------------------------------------- |
- | |
1503 | TakeInstruments: |
- | |
1504 | - | ||
1505 | ;|||||||||||||||||||FILE|||||||||||||||||||||| |
- | |
1506 | cmp [number_panel],7 |
- | |
1507 | jne no_file |
- | |
1508 | - | ||
1509 | ;<<<< |
- | |
1510 | cmp [number_menu],1 |
- | |
1511 | jne no_new |
- | |
1512 | - | ||
1513 | mov eax,80 |
- | |
1514 | mov ebx,100 |
- | |
1515 | mov ecx,150 |
- | |
1516 | mov edx,90 |
- | |
1517 | mov esi,1 |
- | |
1518 | call draw_volume_rectangle |
- | |
1519 | - | ||
1520 | mov eax,177 |
- | |
1521 | mov ebx,115 |
- | |
1522 | mov ecx,40 |
- | |
1523 | mov edx,14 |
- | |
1524 | mov esi,4 |
- | |
1525 | call draw_volume_rectangle |
- | |
1526 | - | ||
1527 | mov eax,177 |
- | |
1528 | mov ebx,115+24 |
- | |
1529 | mov ecx,40 |
- | |
1530 | mov edx,14 |
- | |
1531 | mov esi,4 |
- | |
1532 | call draw_volume_rectangle |
- | |
1533 | - | ||
1534 | mov eax,175 |
- | |
1535 | mov ebx,170 |
- | |
1536 | mov ecx,40 |
- | |
1537 | mov edx,15 |
- | |
1538 | mov esi,1 |
- | |
1539 | call draw_volume_rectangle |
- | |
1540 | - | ||
1541 | mov eax,90 |
- | |
1542 | mov ebx,118 |
- | |
1543 | mov ecx,0xffffff |
- | |
1544 | mov edx,new_text1 |
- | |
1545 | mov esi,14 |
- | |
1546 | call print_text |
- | |
1547 | - | ||
1548 | mov eax,90 |
- | |
1549 | mov ebx,118+24 |
- | |
1550 | mov ecx,0xffffff |
- | |
1551 | mov edx,new_text2 |
- | |
1552 | mov esi,14 |
- | |
1553 | call print_text |
- | |
1554 | - | ||
1555 | mov eax,185 |
- | |
1556 | mov ebx,175 |
- | |
1557 | mov ecx,0xffffff |
- | |
1558 | mov edx,ok_text |
- | |
1559 | mov esi,2 |
- | |
1560 | call print_text |
- | |
1561 | - | ||
1562 | mov eax,8 |
- | |
1563 | mov ebx,177*65536+40 |
- | |
1564 | mov ecx,115*65536+14 |
- | |
1565 | mov edx,1000000000000000000000000000000b |
- | |
1566 | add edx,1000 |
- | |
1567 | int 0x40 |
- | |
1568 | - | ||
1569 | mov eax,8 |
- | |
1570 | mov ebx,177*65536+40 |
- | |
1571 | mov ecx,139*65536+14 |
- | |
1572 | mov edx,1000000000000000000000000000000b |
- | |
1573 | add edx,1001 |
- | |
1574 | int 0x40 |
- | |
1575 | - | ||
1576 | mov eax,8 |
- | |
1577 | mov ebx,175*65536+40 |
- | |
1578 | mov ecx,170*65536+15 |
- | |
1579 | mov edx,1000000000000000000000000000000b |
- | |
1580 | add edx,1002 |
- | |
1581 | int 0x40 |
- | |
1582 | - | ||
1583 | no_activate_space: |
- | |
1584 | - | ||
1585 | mov eax,10 |
- | |
1586 | int 0x40 |
- | |
1587 | - | ||
1588 | cmp eax,1 |
- | |
1589 | je exit_new |
- | |
1590 | - | ||
1591 | cmp eax,3 |
- | |
1592 | jne no_activate_space |
- | |
1593 | - | ||
1594 | mov eax,17 |
- | |
1595 | int 0x40 |
- | |
1596 | shr eax,8 |
- | |
1597 | - | ||
1598 | cmp eax,1000 |
- | |
1599 | jl no_activate_space |
- | |
1600 | - | ||
1601 | cmp eax,1000 |
- | |
1602 | jne no_picture_size_x |
- | |
1603 | - | ||
1604 | mov eax,180 |
- | |
1605 | mov ebx,119 |
- | |
1606 | mov ecx,5 |
- | |
1607 | call dialog_line |
- | |
1608 | - | ||
1609 | mov eax,string_ |
- | |
1610 | mov ebx,13 |
- | |
1611 | call find_symvol |
- | |
1612 | - | ||
1613 | dec eax |
- | |
1614 | mov [length_number],eax |
- | |
1615 | mov eax,string_ |
- | |
1616 | call value |
- | |
1617 | - | ||
1618 | mov [Picture_SizeX],eax |
- | |
1619 | - | ||
1620 | jmp no_activate_space |
- | |
1621 | - | ||
1622 | no_picture_size_x: |
- | |
1623 | - | ||
1624 | cmp eax,1001 |
- | |
1625 | jne no_picture_size_y |
- | |
1626 | - | ||
1627 | mov eax,180 |
- | |
1628 | mov ebx,119+24 |
- | |
1629 | mov ecx,5 |
- | |
1630 | call dialog_line |
- | |
1631 | - | ||
1632 | mov eax,string_ |
- | |
1633 | mov ebx,13 |
- | |
1634 | call find_symvol |
- | |
1635 | - | ||
1636 | dec eax |
- | |
1637 | mov [length_number],eax |
- | |
1638 | mov eax,string_ |
- | |
1639 | call value |
- | |
1640 | - | ||
1641 | mov [Picture_SizeY],eax |
- | |
1642 | - | ||
1643 | jmp no_activate_space |
- | |
1644 | - | ||
1645 | no_picture_size_y: |
- | |
1646 | - | ||
1647 | cmp eax,1002 |
- | |
1648 | jne no_activate_space |
- | |
1649 | - | ||
1650 | exit_new: |
- | |
1651 | - | ||
1652 | mov eax,8 |
- | |
1653 | mov ebx,175*65536+40 |
- | |
1654 | mov ecx,170*65536+15 |
- | |
1655 | mov edx,11100000000000000000000000000000b |
- | |
1656 | add edx,1002 |
- | |
1657 | int 0x40 |
- | |
1658 | - | ||
1659 | mov eax,8 |
- | |
1660 | mov ebx,177*65536+40 |
- | |
1661 | mov ecx,139*65536+14 |
- | |
1662 | mov edx,11100000000000000000000000000000b |
- | |
1663 | add edx,1001 |
- | |
1664 | int 0x40 |
- | |
1665 | - | ||
1666 | mov eax,8 |
- | |
1667 | mov ebx,177*65536+40 |
- | |
1668 | mov ecx,115*65536+14 |
- | |
1669 | mov edx,11100000000000000000000000000000b |
- | |
1670 | add edx,1000 |
- | |
1671 | int 0x40 |
- | |
1672 | - | ||
1673 | ;get memory for new picture |
- | |
1674 | mov eax,[Picture_SizeX] |
- | |
1675 | mov ebx,[Picture_SizeY] |
- | |
1676 | - | ||
1677 | imul eax,ebx |
- | |
1678 | lea eax,[eax+eax*2] |
- | |
1679 | - | ||
1680 | mov ebx,[ScreenPointer] |
- | |
1681 | add ebx,(1200*1000*3)+30*(20*20*3)+500000 |
- | |
1682 | - | ||
1683 | mov [PointerToPicture],ebx |
- | |
1684 | mov [PointerToCopyPicture],ebx |
- | |
1685 | mov [PointerToCopyPicture2],ebx |
- | |
1686 | mov [PointerToEditBufer],ebx |
- | |
1687 | mov [PointerToSpriteBufer],ebx |
- | |
1688 | - | ||
1689 | add [PointerToCopyPicture],eax |
- | |
1690 | - | ||
1691 | add [PointerToCopyPicture2],eax |
- | |
1692 | add [PointerToCopyPicture2],eax |
- | |
1693 | - | ||
1694 | add [PointerToEditBufer],eax |
- | |
1695 | add [PointerToEditBufer],eax |
- | |
1696 | add [PointerToEditBufer],eax |
- | |
1697 | - | ||
1698 | add [PointerToSpriteBufer],eax |
- | |
1699 | add [PointerToSpriteBufer],eax |
- | |
1700 | add [PointerToSpriteBufer],eax |
- | |
1701 | add [PointerToSpriteBufer],eax |
- | |
1702 | - | ||
1703 | call GetMemory |
- | |
1704 | - | ||
1705 | and [save_flag],0 |
- | |
1706 | and [number_panel],0 |
- | |
1707 | and [number_menu],0 |
- | |
1708 | - | ||
1709 | call cleare_work_arrea |
- | |
1710 | call drawwin |
- | |
1711 | - | ||
1712 | jmp still |
- | |
1713 | no_new: |
- | |
1714 | - | ||
1715 | ;<<<< |
- | |
1716 | cmp [number_menu],2 |
- | |
1717 | jne no_open |
- | |
1718 | - | ||
1719 | opendialog drawwin,open_1,open_2,file_path |
- | |
1720 | open_1: |
- | |
1721 | - | ||
1722 | mov eax,40 |
- | |
1723 | mov ebx,100111b |
- | |
1724 | int 0x40 |
- | |
1725 | - | ||
1726 | mov eax,[ScreenPointer] |
- | |
1727 | add eax,0x10000 |
- | |
1728 | mov [file_info],dword 0 |
- | |
1729 | mov [file_info+8],dword 1 |
- | |
1730 | mov [file_info+12],eax |
- | |
1731 | mov eax,58 |
- | |
1732 | mov ebx,file_info |
- | |
1733 | int 0x40 |
- | |
1734 | - | ||
1735 | mov esi,[ScreenPointer] |
- | |
1736 | add esi,0x10000 |
- | |
1737 | ;-------------is this BMP file ?---------------- |
- | |
1738 | xor eax,eax |
- | |
1739 | mov ax,[esi] |
- | |
1740 | mov [type],ax |
- | |
1741 | - | ||
1742 | cmp [type],word 'BM' |
- | |
1743 | jne no_bmp_file |
- | |
1744 | - | ||
1745 | xor eax,eax |
- | |
1746 | xor ebx,ebx |
- | |
1747 | mov eax,[esi+18] |
- | |
1748 | mov ebx,[esi+22] |
- | |
1749 | mov [Picture_SizeX],eax |
- | |
1750 | mov [Picture_SizeY],ebx |
- | |
1751 | - | ||
1752 | jmp exit_type |
- | |
1753 | - | ||
1754 | no_bmp_file: |
- | |
1755 | - | ||
1756 | ;-------------is this GIF file ?---------------- |
- | |
1757 | xor eax,eax |
- | |
1758 | mov ax,[esi] |
- | |
1759 | mov [type],ax |
- | |
1760 | - | ||
1761 | cmp [type],'GI' |
- | |
1762 | jne no_gif_file |
- | |
1763 | - | ||
1764 | add esi,6 |
- | |
1765 | xor eax,eax |
- | |
1766 | xor ebx,ebx |
- | |
1767 | mov ax,word[esi] |
- | |
1768 | mov bx,word[esi+2] |
- | |
1769 | mov [Picture_SizeX],eax |
- | |
1770 | mov [Picture_SizeY],ebx |
- | |
1771 | - | ||
1772 | jmp exit_type |
- | |
1773 | - | ||
1774 | no_gif_file: |
- | |
1775 | - | ||
1776 | jmp no_unpakcing_gif_file |
- | |
1777 | - | ||
1778 | exit_type: |
- | |
1779 | ;---------------------------------------------------------- |
- | |
1780 | ;Get momory for unpacking picture and for picture's bufers |
- | |
1781 | ;---------------------------------------------------------- |
- | |
1782 | mov eax,[Picture_SizeX] |
- | |
1783 | mov ebx,[Picture_SizeY] |
- | |
1784 | - | ||
1785 | imul eax,ebx |
- | |
1786 | lea eax,[eax+eax*2] |
- | |
1787 | - | ||
1788 | mov ebx,[ScreenPointer] |
- | |
1789 | add ebx,(1200*1000*3)+30*(20*20*3)+500000 |
- | |
1790 | - | ||
1791 | mov [PointerToPicture],ebx |
- | |
1792 | mov [PointerToCopyPicture],ebx |
- | |
1793 | mov [PointerToCopyPicture2],ebx |
- | |
1794 | mov [PointerToEditBufer],ebx |
- | |
1795 | mov [PointerToSpriteBufer],ebx |
- | |
1796 | - | ||
1797 | add [PointerToCopyPicture],eax |
- | |
1798 | - | ||
1799 | add [PointerToCopyPicture2],eax |
- | |
1800 | add [PointerToCopyPicture2],eax |
- | |
1801 | - | ||
1802 | add [PointerToEditBufer],eax |
- | |
1803 | add [PointerToEditBufer],eax |
- | |
1804 | add [PointerToEditBufer],eax |
- | |
1805 | - | ||
1806 | add [PointerToSpriteBufer],eax |
- | |
1807 | add [PointerToSpriteBufer],eax |
- | |
1808 | add [PointerToSpriteBufer],eax |
- | |
1809 | add [PointerToSpriteBufer],eax |
- | |
1810 | - | ||
1811 | call GetMemory |
- | |
1812 | ;---------------------------------------------------------- |
- | |
1813 | ;--------------------Load file in memory------------------- |
- | |
1814 | ;---------------------------------------------------------- |
- | |
1815 | - | ||
1816 | mov eax,[PointerToCopyPicture] |
- | |
1817 | mov ebx,[ScreenPointer] |
- | |
1818 | add eax,1000 |
- | |
1819 | mov [file_info],dword 0 |
- | |
1820 | mov [file_info+8],dword 1 |
- | |
1821 | mov [file_info+12],dword eax |
62 | |
1822 | mov [file_info+16],dword ebx |
- | |
1823 | - | ||
1824 | call load_file |
- | |
1825 | - | ||
1826 | ;---------------------------------------------------------- |
- | |
1827 | ;-------------------Unpacking picture---------------------- |
- | |
1828 | ;---------------------------------------------------------- |
- | |
1829 | mov esi,[PointerToCopyPicture] |
- | |
1830 | add esi,1000 |
- | |
1831 | mov edi,[PointerToPicture] |
- | |
1832 | mov eax,[ScreenPointer] |
- | |
1833 | - | ||
1834 | cmp [type],'BM' |
- | |
1835 | jne no_unpakcing_bmp_file |
- | |
1836 | ;BMP DECODER |
- | |
1837 | call bmptoimg |
- | |
1838 | - | ||
1839 | no_unpakcing_bmp_file: |
- | |
1840 | - | ||
1841 | - | ||
1842 | cmp [type],'GI' |
- | |
1843 | jne no_unpakcing_gif_file |
- | |
1844 | ;GIF DECODER |
- | |
1845 | sub edi,12 |
- | |
1846 | call ReadGIF |
- | |
1847 | - | ||
1848 | no_unpakcing_gif_file: |
- | |
1849 | - | ||
1850 | mov [Scroll1CoordinatX],9 |
- | |
1851 | mov [Scroll2CoordinatY],85 |
- | |
1852 | call load_icons |
- | |
1853 | call drawwin |
- | |
1854 | and [number_panel],0 |
- | |
1855 | and [number_menu],0 |
- | |
1856 | mov [save_flag],1 |
- | |
1857 | - | ||
1858 | open_2: |
- | |
1859 | - | ||
Line 1860... | Line -... | ||
1860 | jmp still |
- | |
1861 | - | ||
1862 | no_open: |
- | |
1863 | - | ||
1864 | ;<<<<<<<<<< |
- | |
1865 | cmp [number_menu],3 |
- | |
1866 | jne no_save_ |
- | |
1867 | - | ||
1868 | mov al,[save_flag] |
- | |
1869 | - | ||
1870 | test al,al |
- | |
1871 | jz no_save_file |
- | |
1872 | - | ||
1873 | jmp save_enter |
- | |
1874 | - | ||
1875 | no_save_file: |
- | |
1876 | - | ||
1877 | and [number_panel],0 |
- | |
1878 | and [number_menu],0 |
- | |
1879 | - | ||
1880 | jmp still |
- | |
1881 | - | ||
1882 | no_save_: |
- | |
1883 | - | ||
1884 | ;<<<<<<<< |
- | |
1885 | cmp [number_menu],4 |
- | |
1886 | jne no_save |
- | |
1887 | - | ||
1888 | savedialog drawwin,save1,save2,file_path |
- | |
1889 | - | ||
1890 | save1: |
- | |
1891 | - | ||
1892 | save_enter: |
- | |
1893 | mov eax,40 |
- | |
1894 | mov ebx,100111b |
- | |
1895 | int 0x40 |
- | |
1896 | - | ||
1897 | call analizing_picture_to_palette |
- | |
1898 | ;eax => number of colors in picture |
- | |
1899 | mov ebx,[PointerToPicture] |
- | |
1900 | mov ecx,[PointerToEditBufer] |
- | |
1901 | mov edx,[PointerToPalette] |
- | |
1902 | mov esi,[Picture_SizeX] |
- | |
1903 | mov edi,[Picture_SizeY] |
- | |
1904 | - | ||
1905 | call coding_bmp |
- | |
1906 | mov edi,[PointerToEditBufer] |
- | |
1907 | mov [file_info],dword 1 |
- | |
1908 | mov [file_info+8],dword ebx |
- | |
1909 | mov [file_info+12],edi |
- | |
1910 | - | ||
1911 | mov eax,58 |
- | |
1912 | mov ebx,file_info |
- | |
1913 | int 0x40 |
- | |
1914 | - | ||
1915 | mov [save_flag],1 |
- | |
1916 | and [number_panel],0 |
- | |
1917 | and [number_menu],0 |
- | |
1918 | call drawwin |
- | |
1919 | - | ||
1920 | jmp still |
- | |
1921 | - | ||
1922 | save2: |
- | |
1923 | - | ||
1924 | and [number_panel],0 |
- | |
1925 | and [number_menu],0 |
- | |
1926 | - | ||
1927 | jmp still |
- | |
1928 | no_save: |
- | |
1929 | - | ||
1930 | ;<<<<< |
- | |
1931 | cmp [number_menu],5 |
- | |
1932 | jne no_exit_program |
- | |
1933 | - | ||
1934 | mov eax,-1 |
- | |
1935 | int 0x40 |
- | |
1936 | - | ||
1937 | no_exit_program: |
- | |
1938 | - | ||
1939 | no_file: |
- | |
1940 | - | ||
1941 | ;|||||||||||||||||||||||||||||EDIT||||||||||||||||||||||||| |
- | |
1942 | - | ||
1943 | ;<<<<<<<<< |
- | |
1944 | cmp [number_panel],6 |
- | |
1945 | jne no_edit |
- | |
1946 | - | ||
1947 | cmp [number_menu],1 |
- | |
1948 | jne no_undo |
- | |
1949 | - | ||
1950 | cmp [number_undo],1 |
- | |
1951 | jne no_one____ |
- | |
1952 | - | ||
1953 | mov esi,[PointerToCopyPicture] |
- | |
1954 | - | ||
1955 | no_one____: |
- | |
1956 | - | ||
1957 | cmp [number_undo],2 |
- | |
1958 | jne no_two____ |
- | |
1959 | - | ||
1960 | mov esi,[PointerToCopyPicture2] |
- | |
1961 | - | ||
1962 | no_two____: |
- | |
1963 | - | ||
1964 | mov edi,[PointerToPicture] |
- | |
1965 | mov ecx,[Picture_SizeX] |
- | |
1966 | imul ecx,[Picture_SizeY] |
- | |
1967 | lea ecx,[ecx+ecx*2] |
- | |
1968 | add ecx,4 |
- | |
1969 | shr ecx,2 |
- | |
1970 | cld |
- | |
1971 | rep movsd |
- | |
1972 | call MovePictureToWorkScreen |
- | |
1973 | - | ||
1974 | dec [number_undo] |
- | |
1975 | jnz no_null_undo |
63 | mov eax,parameters |
1976 | - | ||
1977 | mov [number_undo],1 |
- | |
1978 | - | ||
1979 | no_null_undo: |
- | |
1980 | - | ||
1981 | and [number_panel],0 |
- | |
1982 | and [number_menu],0 |
- | |
1983 | jmp still |
- | |
1984 | no_undo: |
- | |
1985 | - | ||
1986 | ;<<<<<<<<< |
- | |
1987 | - | ||
1988 | cmp [number_menu],2 |
- | |
1989 | jne no_copy |
- | |
1990 | - | ||
1991 | cmp [instrument_used],1 |
- | |
1992 | jne no_copy |
- | |
1993 | cmp [Activate_instrument],0 |
- | |
1994 | jne no_copy |
- | |
1995 | - | ||
1996 | mov eax,[OldX] |
- | |
1997 | mov ebx,[OldY] |
- | |
1998 | - | ||
1999 | cmp eax,[rectangular_shade_x] |
- | |
2000 | jl no_remove_x_copy |
- | |
2001 | - | ||
2002 | mov ecx,[rectangular_shade_x] |
- | |
2003 | mov [OldX],ecx ; OldX <-----> rectangulare_shade_x |
- | |
2004 | mov [rectangular_shade_x],eax |
- | |
2005 | - | ||
2006 | no_remove_x_copy: |
- | |
2007 | - | ||
2008 | cmp ebx,[rectangular_shade_y] |
- | |
2009 | jl no_remove_y_copy |
- | |
2010 | - | ||
2011 | mov ecx,[rectangular_shade_y] |
- | |
2012 | mov [OldY],ecx ; OldY <-----> rectangulare_shade_y |
- | |
2013 | mov [rectangular_shade_y],ebx |
- | |
2014 | - | ||
2015 | no_remove_y_copy: |
- | |
2016 | - | ||
2017 | mov eax,[OldX] |
- | |
2018 | mov ebx,[OldY] |
- | |
2019 | mov ecx,[rectangular_shade_x] |
- | |
2020 | mov edx,[rectangular_shade_y] |
- | |
2021 | inc eax |
- | |
2022 | inc ebx |
- | |
2023 | dec ecx |
- | |
2024 | dec edx |
- | |
2025 | - | ||
2026 | mov [x],eax |
- | |
2027 | mov [y],ebx |
- | |
2028 | mov esi,eax |
- | |
2029 | mov edi,ebx |
- | |
2030 | mov [Dx_],1 |
- | |
2031 | mov [Dy_],1 |
- | |
2032 | - | ||
2033 | sub ecx,eax |
- | |
2034 | jnz no_signum_fill_r_x_copy |
- | |
2035 | - | ||
2036 | mov [Dx_],-1 |
- | |
2037 | - | ||
2038 | no_signum_fill_r_x_copy: |
- | |
2039 | - | ||
2040 | sub edx,ebx |
- | |
2041 | jnz no_signum_fill_r_y_copy |
- | |
2042 | - | ||
2043 | mov [Dy_],-1 |
- | |
2044 | - | ||
2045 | no_signum_fill_r_y_copy: |
- | |
2046 | - | ||
2047 | mov ebx,[rectangular_shade_y] |
- | |
2048 | sub ebx,edi |
- | |
2049 | - | ||
2050 | mov edx,[PointerToEditBufer] |
- | |
2051 | mov [y],edi |
- | |
2052 | loop_fill_rectangle_y_copy: |
- | |
2053 | - | ||
2054 | mov [x],esi |
- | |
2055 | loop_fill_rectangle_x_copy: |
- | |
2056 | - | ||
2057 | push esi |
- | |
2058 | push edi |
- | |
2059 | - | ||
2060 | mov eax,[PointerToPicture] |
- | |
2061 | mov ebx,[Picture_SizeX] |
- | |
2062 | mov esi,[x] |
- | |
2063 | mov edi,[y] |
- | |
2064 | call GetColorOfPixel |
- | |
2065 | - | ||
2066 | mov [edx],ax |
- | |
2067 | shr eax,16 |
- | |
2068 | mov [edx+2],al |
- | |
2069 | - | ||
2070 | pop edi |
- | |
2071 | pop esi |
- | |
2072 | - | ||
2073 | add edx,3 |
- | |
2074 | - | ||
2075 | mov eax,[x] |
- | |
2076 | add eax,[Dx_] |
- | |
2077 | mov [x],eax |
- | |
2078 | - | ||
2079 | cmp eax,[rectangular_shade_x] |
- | |
2080 | jl loop_fill_rectangle_x_copy |
- | |
2081 | - | ||
2082 | mov eax,[y] |
- | |
2083 | add eax,[Dy_] |
- | |
2084 | mov [y],eax |
- | |
2085 | - | ||
2086 | cmp eax,[rectangular_shade_y] |
- | |
2087 | jl loop_fill_rectangle_y_copy |
- | |
2088 | - | ||
2089 | call MovePictureToWorkScreen |
- | |
2090 | - | ||
2091 | and [number_panel],0 |
- | |
2092 | and [number_menu],0 |
- | |
2093 | mov [DrawSprite_flag],1 |
- | |
2094 | - | ||
2095 | jmp still |
- | |
2096 | - | ||
2097 | no_copy: |
- | |
2098 | - | ||
2099 | ;<<<<<<<<< |
- | |
2100 | cmp [number_menu],3 |
- | |
2101 | jne no_paste |
- | |
2102 | - | ||
2103 | cmp [instrument_used],1 |
- | |
2104 | jne no_paste |
- | |
2105 | - | ||
2106 | cmp [Activate_instrument],0 |
- | |
2107 | jne no_paste |
- | |
2108 | - | ||
2109 | mov eax,[OldX] |
- | |
2110 | mov ebx,[OldY] |
- | |
2111 | - | ||
2112 | cmp eax,[rectangular_shade_x] |
- | |
2113 | jl no_remove_x_paste |
- | |
2114 | - | ||
2115 | mov ecx,[rectangular_shade_x] |
- | |
2116 | mov [OldX],ecx ; OldX <-----> rectangulare_shade_x |
- | |
2117 | mov [rectangular_shade_x],eax |
- | |
2118 | - | ||
2119 | no_remove_x_paste: |
- | |
2120 | - | ||
2121 | cmp ebx,[rectangular_shade_y] |
- | |
2122 | jl no_remove_y_paste |
- | |
2123 | - | ||
2124 | mov ecx,[rectangular_shade_y] |
- | |
2125 | mov [OldY],ecx ; OldY <-----> rectangulare_shade_y |
- | |
2126 | mov [rectangular_shade_y],ebx |
- | |
2127 | - | ||
2128 | no_remove_y_paste: |
- | |
2129 | - | ||
2130 | mov eax,[OldX] |
- | |
2131 | mov ebx,[OldY] |
- | |
2132 | mov ecx,[rectangular_shade_x] |
- | |
2133 | mov edx,[rectangular_shade_y] |
- | |
2134 | inc eax |
- | |
2135 | inc ebx |
- | |
2136 | dec ecx |
- | |
2137 | dec edx |
- | |
2138 | - | ||
2139 | mov [x],eax |
- | |
2140 | mov [y],ebx |
- | |
2141 | mov esi,eax |
- | |
2142 | mov edi,ebx |
- | |
2143 | mov [Dx_],1 |
- | |
2144 | mov [Dy_],1 |
- | |
2145 | - | ||
2146 | sub ecx,eax |
- | |
2147 | jnz no_signum_fill_r_x_paste |
- | |
2148 | - | ||
2149 | mov [Dx_],-1 |
- | |
2150 | - | ||
2151 | no_signum_fill_r_x_paste: |
- | |
2152 | - | ||
2153 | sub edx,ebx |
- | |
2154 | jnz no_signum_fill_r_y_paste |
- | |
2155 | - | ||
2156 | mov [Dy_],-1 |
- | |
2157 | - | ||
2158 | no_signum_fill_r_y_paste: |
- | |
2159 | - | ||
2160 | mov edx,[PointerToEditBufer] |
- | |
2161 | mov [y],edi |
- | |
2162 | - | ||
2163 | loop_fill_rectangle_y_paste: |
- | |
2164 | - | ||
2165 | mov [x],esi |
- | |
2166 | loop_fill_rectangle_x_paste: |
- | |
2167 | - | ||
2168 | push esi |
- | |
2169 | push edi |
- | |
2170 | - | ||
2171 | mov ecx,[edx] |
- | |
2172 | and ecx,0xffffff ;color |
- | |
2173 | - | ||
2174 | mov eax,[PointerToPicture] |
- | |
2175 | mov ebx,[Picture_SizeX] |
- | |
2176 | mov esi,[x] |
- | |
2177 | mov edi,[y] |
- | |
2178 | call PutPixel |
- | |
2179 | - | ||
2180 | pop edi |
- | |
2181 | pop esi |
- | |
2182 | - | ||
2183 | add edx,3 |
- | |
2184 | - | ||
2185 | mov eax,[x] |
- | |
2186 | add eax,[Dx_] |
- | |
2187 | mov [x],eax |
- | |
2188 | cmp eax,[rectangular_shade_x] |
- | |
2189 | jl loop_fill_rectangle_x_paste |
- | |
2190 | - | ||
2191 | mov eax,[y] |
- | |
2192 | add eax,[Dy_] |
- | |
2193 | mov [y],eax |
- | |
2194 | cmp eax,[rectangular_shade_y] |
- | |
2195 | - | ||
2196 | jl loop_fill_rectangle_y_paste |
- | |
2197 | - | ||
2198 | call MovePictureToWorkScreen |
- | |
2199 | and [number_panel],0 |
- | |
2200 | and [number_menu],0 |
- | |
2201 | mov [Paste_flag],1 |
- | |
2202 | - | ||
2203 | jmp still |
- | |
2204 | - | ||
2205 | no_paste: |
- | |
2206 | - | ||
2207 | ;<<<<<<<<< |
- | |
2208 | cmp [number_menu],4 |
- | |
2209 | jne no_cut |
- | |
2210 | - | ||
2211 | cmp [instrument_used],1 |
- | |
2212 | jne no_cut |
- | |
2213 | - | ||
2214 | cmp [Activate_instrument],0 |
- | |
2215 | jne no_cut |
- | |
2216 | - | ||
2217 | mov eax,[OldX] |
- | |
2218 | mov ebx,[OldY] |
- | |
2219 | - | ||
2220 | cmp eax,[rectangular_shade_x] |
- | |
2221 | jl no_remove_x_cut |
- | |
2222 | - | ||
2223 | mov ecx,[rectangular_shade_x] |
- | |
2224 | mov [OldX],ecx ; OldX <-----> rectangulare_shade_x |
- | |
2225 | mov [rectangular_shade_x],eax |
- | |
2226 | - | ||
2227 | no_remove_x_cut: |
- | |
2228 | - | ||
2229 | cmp ebx,[rectangular_shade_y] |
- | |
2230 | jl no_remove_y_cut |
- | |
2231 | - | ||
2232 | mov ecx,[rectangular_shade_y] |
- | |
2233 | mov [OldY],ecx ; OldY <-----> rectangulare_shade_y |
- | |
2234 | mov [rectangular_shade_y],ebx |
- | |
2235 | - | ||
2236 | no_remove_y_cut: |
- | |
2237 | - | ||
2238 | mov eax,[OldX] |
- | |
2239 | mov ebx,[OldY] |
- | |
2240 | mov ecx,[rectangular_shade_x] |
- | |
2241 | mov edx,[rectangular_shade_y] |
- | |
2242 | inc eax |
- | |
2243 | inc ebx |
- | |
2244 | dec ecx |
- | |
2245 | dec edx |
- | |
2246 | - | ||
2247 | mov [x],eax |
- | |
2248 | mov [y],ebx |
- | |
2249 | mov esi,eax |
- | |
2250 | mov edi,ebx |
- | |
2251 | mov [Dx_],1 |
- | |
2252 | mov [Dy_],1 |
- | |
2253 | - | ||
2254 | sub ecx,eax |
- | |
2255 | jnz no_signum_fill_r_x |
- | |
2256 | - | ||
2257 | mov [Dx_],-1 |
- | |
2258 | - | ||
2259 | no_signum_fill_r_x: |
- | |
2260 | - | ||
2261 | sub edx,ebx |
- | |
2262 | jnz no_signum_fill_r_y |
- | |
2263 | - | ||
2264 | mov [Dy_],-1 |
- | |
2265 | - | ||
2266 | no_signum_fill_r_y: |
- | |
2267 | - | ||
2268 | mov [y],edi |
- | |
2269 | loop_fill_rectangle_y: |
- | |
2270 | - | ||
2271 | mov [x],esi |
- | |
2272 | loop_fill_rectangle_x: |
- | |
2273 | - | ||
2274 | push esi |
- | |
2275 | push edi |
- | |
2276 | - | ||
2277 | mov eax,[PointerToPicture] |
- | |
2278 | mov ebx,[Picture_SizeX] |
- | |
2279 | mov ecx,dword 0xffffff |
- | |
2280 | mov esi,[x] |
- | |
2281 | mov edi,[y] |
- | |
2282 | call PutPixel |
- | |
2283 | - | ||
2284 | pop edi |
- | |
2285 | pop esi |
- | |
2286 | - | ||
2287 | mov eax,[x] |
- | |
2288 | add eax,[Dx_] |
- | |
2289 | mov [x],eax |
- | |
2290 | - | ||
2291 | cmp eax,[rectangular_shade_x] |
- | |
2292 | jl loop_fill_rectangle_x |
- | |
2293 | - | ||
2294 | mov eax,[y] |
- | |
2295 | add eax,[Dy_] |
- | |
2296 | mov [y],eax |
- | |
2297 | - | ||
2298 | cmp eax,[rectangular_shade_y] |
- | |
2299 | jl loop_fill_rectangle_y |
- | |
2300 | - | ||
2301 | call MovePictureToWorkScreen |
- | |
2302 | - | ||
2303 | and [number_panel],0 |
- | |
2304 | and [number_menu],0 |
- | |
2305 | - | ||
2306 | jmp still |
- | |
2307 | no_cut: |
- | |
2308 | - | ||
2309 | ;<<<<< |
- | |
2310 | cmp [number_menu],5 |
- | |
2311 | jne no_cleare_all |
- | |
2312 | - | ||
2313 | call cleare_work_arrea |
- | |
2314 | - | ||
2315 | call MovePictureToWorkScreen |
- | |
2316 | - | ||
2317 | and [number_panel],0 |
- | |
2318 | and [number_menu],0 |
- | |
2319 | - | ||
2320 | jmp still |
- | |
2321 | no_cleare_all: |
- | |
2322 | ;<<<<< |
- | |
2323 | - | ||
2324 | cmp [number_menu],6 |
- | |
2325 | jne no_to_allocate_all |
- | |
2326 | - | ||
2327 | mov [OldX],1 |
- | |
2328 | mov [OldY],1 |
- | |
2329 | mov eax,[Picture_SizeX] |
- | |
2330 | mov ebx,[Picture_SizeY] |
- | |
2331 | dec eax |
- | |
2332 | dec ebx |
- | |
2333 | mov [rectangular_shade_x],eax |
- | |
2334 | mov [rectangular_shade_y],ebx |
- | |
2335 | mov [instrument_used],1 |
- | |
2336 | mov [Activate_instrument],1 |
- | |
2337 | mov [Current_instrument],30 |
- | |
2338 | mov [crossing],0 |
- | |
2339 | and [number_panel],0 |
- | |
2340 | and [number_menu],0 |
- | |
2341 | ;call TakeButtonInstruments |
- | |
2342 | ;call MovePictureToWorkScreen |
- | |
2343 | jmp still |
- | |
2344 | - | ||
2345 | no_to_allocate_all: |
- | |
2346 | - | ||
2347 | no_edit: |
- | |
2348 | - | ||
2349 | - | ||
2350 | jmp still |
- | |
2351 | - | ||
2352 | ret |
- | |
2353 | ;----------------------------------------------------------- |
- | |
2354 | ;-----instruments of panel(icon's instruments)-------------- |
- | |
2355 | ;----------------------------------------------------------- |
- | |
2356 | TakeButtonInstruments: |
- | |
2357 | - | ||
2358 | mov eax,[Current_instrument] |
- | |
2359 | - | ||
2360 | ;*************************brush 1*********************** |
- | |
2361 | cmp eax,10 |
- | |
2362 | jne no_brush1 |
- | |
2363 | - | ||
2364 | mov [Brush_SizeX],4 |
- | |
2365 | mov [Brush_SizeY],4 |
- | |
2366 | mov [Number_Brush],0 |
- | |
2367 | mov [Current_instrument],18 |
- | |
2368 | - | ||
2369 | jmp still |
- | |
2370 | no_brush1: |
- | |
2371 | - | ||
2372 | ;*************************brush 2*********************** |
- | |
2373 | cmp eax,11 |
- | |
2374 | jne no_brush2 |
- | |
2375 | - | ||
2376 | mov [Brush_SizeX],6 |
- | |
2377 | mov [Brush_SizeY],4 |
- | |
2378 | mov [Number_Brush],1 |
- | |
2379 | mov [Current_instrument],18 |
- | |
2380 | - | ||
2381 | jmp still |
- | |
2382 | no_brush2: |
- | |
2383 | - | ||
2384 | ;*************************brush 3*********************** |
- | |
2385 | cmp eax,12 |
- | |
2386 | jne no_brush3 |
- | |
2387 | - | ||
2388 | mov [Brush_SizeX],8 |
- | |
2389 | mov [Brush_SizeY],7 |
- | |
2390 | mov [Number_Brush],2 |
- | |
2391 | mov [Current_instrument],18 |
- | |
2392 | - | ||
2393 | jmp still |
- | |
2394 | no_brush3: |
- | |
2395 | - | ||
2396 | ;************************brush 4************************ |
- | |
2397 | cmp eax,13 |
- | |
2398 | jne no_brush4 |
- | |
2399 | - | ||
2400 | mov [Brush_SizeX],14 |
- | |
2401 | mov [Brush_SizeY],14 |
- | |
2402 | mov [Number_Brush],3 |
- | |
2403 | mov [Current_instrument],18 |
- | |
2404 | - | ||
2405 | jmp still |
- | |
2406 | no_brush4: |
- | |
2407 | - | ||
2408 | ;************************brush 5************************ |
- | |
2409 | cmp eax,14 |
- | |
2410 | jne no_brush5 |
- | |
2411 | - | ||
2412 | mov [Brush_SizeX],6 |
- | |
2413 | mov [Brush_SizeY],6 |
- | |
2414 | mov [Number_Brush],4 |
- | |
2415 | mov [Current_instrument],18 |
- | |
2416 | - | ||
2417 | jmp still |
- | |
2418 | no_brush5: |
- | |
2419 | - | ||
2420 | ;*************************pensil************************ |
- | |
2421 | cmp eax,15 |
- | |
2422 | jne no_pensil |
- | |
2423 | - | ||
2424 | mov al,[exit_from_work_arrea] |
- | |
2425 | - | ||
2426 | test al,al |
- | |
2427 | jz no_exit_from_work_arrea |
- | |
2428 | - | ||
2429 | and [Activate_instrument],0 |
- | |
2430 | and [exit_from_work_arrea],0 |
- | |
2431 | - | ||
2432 | no_exit_from_work_arrea: |
- | |
2433 | - | ||
2434 | mov al,[Activate_instrument] |
- | |
2435 | - | ||
2436 | test al,al |
- | |
2437 | jnz no_activated_later |
- | |
2438 | - | ||
2439 | call GetScreenCordinats |
- | |
2440 | mov eax,[ScreenX] |
- | |
2441 | mov ebx,[ScreenY] |
- | |
2442 | add eax,[PosX] |
- | |
2443 | add ebx,[PosY] |
- | |
2444 | mov [OldX],eax |
- | |
2445 | mov [OldY],ebx |
- | |
2446 | - | ||
2447 | no_activated_later: |
- | |
2448 | - | ||
2449 | mov eax,[MaxWorkScreen_SizeX] |
- | |
2450 | mov ebx,[MaxWorkScreen_SizeY] |
- | |
2451 | - | ||
2452 | mov eax,[PointerToPicture] |
- | |
2453 | mov ebx,[ReserveArray] |
- | |
2454 | mov ecx,[Picture_SizeX] |
- | |
2455 | mov edx,[OldX] |
- | |
2456 | shl edx,16 |
- | |
2457 | add edx,[OldY] |
- | |
2458 | mov esi,[ScreenX] |
- | |
2459 | mov edi,[ScreenY] |
- | |
2460 | add esi,[PosX] |
- | |
2461 | add edi,[PosY] |
- | |
2462 | call calculate_line |
- | |
2463 | - | ||
2464 | mov ecx,eax |
- | |
2465 | mov edx,[Color] |
- | |
2466 | mov esi,[Color] |
- | |
2467 | shr edx,16 |
- | |
2468 | xor ebx,ebx |
- | |
2469 | mov eax,[ReserveArray] |
- | |
2470 | - | ||
2471 | pensil_next_pixel_draw: |
- | |
2472 | - | ||
2473 | mov ebx,[eax] |
- | |
2474 | mov [ebx],si |
- | |
2475 | mov [ebx+2],dl |
- | |
2476 | add eax,4 |
- | |
2477 | - | ||
2478 | dec ecx |
- | |
2479 | jnz pensil_next_pixel_draw |
- | |
2480 | - | ||
2481 | mov eax,[ScreenX] |
- | |
2482 | mov ebx,[ScreenY] |
- | |
2483 | add eax,[PosX] |
- | |
2484 | add ebx,[PosY] |
- | |
2485 | mov [OldX],eax |
- | |
2486 | mov [OldY],ebx |
- | |
2487 | - | ||
2488 | call MovePictureToWorkScreen |
- | |
2489 | mov [Activate_instrument],1 |
- | |
2490 | jmp still |
- | |
2491 | no_pensil: |
- | |
2492 | - | ||
2493 | ;**********************pipetka************************** |
- | |
2494 | cmp eax,16 |
- | |
2495 | jne no_pipetka |
- | |
2496 | mov eax,[ScreenY] |
- | |
2497 | mov ebx,[Picture_SizeX] |
- | |
2498 | add eax,[PosY] |
- | |
2499 | imul eax,ebx |
- | |
2500 | add eax,[ScreenX] |
- | |
2501 | add eax,[PosX] |
- | |
2502 | lea eax,[eax+eax*2] |
- | |
2503 | add eax,[PointerToPicture] |
- | |
2504 | mov ebx,[eax] |
- | |
2505 | and ebx,0xffffff |
- | |
2506 | mov [Color],ebx |
- | |
2507 | mov eax,13 |
- | |
2508 | mov ebx,447*65536+35 |
- | |
2509 | mov ecx,42*65536+36 |
- | |
2510 | mov edx,[Color] |
- | |
2511 | int 0x40 |
- | |
2512 | jmp still |
- | |
2513 | no_pipetka: |
- | |
2514 | - | ||
2515 | ;**********************draw brush*********************** |
- | |
2516 | cmp eax,18 |
- | |
2517 | jne no_brush |
- | |
2518 | - | ||
2519 | jmp no_lastik_ |
- | |
2520 | - | ||
2521 | lastik_in: |
- | |
2522 | mov eax,[Color] |
- | |
2523 | mov [SColor],eax |
- | |
2524 | mov [Color],0xffffff |
- | |
2525 | no_lastik_: |
- | |
2526 | - | ||
2527 | mov eax,[ScreenX] |
- | |
2528 | mov ebx,[ScreenY] |
- | |
2529 | mov ecx,[Brush_SizeX] |
- | |
2530 | mov edx,[Brush_SizeY] |
- | |
2531 | add eax,[PosX] |
- | |
2532 | add ebx,[PosY] |
- | |
2533 | add eax,ecx |
- | |
2534 | add ebx,edx |
- | |
2535 | - | ||
2536 | cmp eax,[Picture_SizeX] |
- | |
2537 | jl no_max_pos_x |
- | |
2538 | mov eax,[Picture_SizeX] |
- | |
2539 | no_max_pos_x: |
- | |
2540 | - | ||
2541 | cmp ebx,[Picture_SizeY] |
- | |
2542 | jl no_max_pos_y |
- | |
2543 | mov ebx,[Picture_SizeY] |
- | |
2544 | no_max_pos_y: |
- | |
2545 | - | ||
2546 | cmp eax,ecx |
- | |
2547 | ja no_min_pos_x |
- | |
2548 | mov eax,[Brush_SizeX] |
- | |
2549 | no_min_pos_x: |
- | |
2550 | - | ||
2551 | cmp ebx,edx |
- | |
2552 | ja no_min_pos_y |
- | |
2553 | mov ebx,[Brush_SizeY] |
- | |
2554 | no_min_pos_y: |
- | |
2555 | - | ||
2556 | sub eax,[Brush_SizeX] |
- | |
2557 | sub ebx,[Brush_SizeY] |
- | |
2558 | - | ||
2559 | mov [x],eax |
- | |
2560 | mov [y],ebx |
- | |
2561 | - | ||
2562 | mov al,[exit_from_work_arrea] |
- | |
2563 | test al,al |
- | |
2564 | jz no_exit_from_work_arrea_brush |
- | |
2565 | and [Activate_instrument],0 |
- | |
2566 | and [exit_from_work_arrea],0 |
- | |
2567 | no_exit_from_work_arrea_brush: |
- | |
2568 | - | ||
2569 | mov al,[Activate_instrument] |
- | |
2570 | test al,al |
- | |
2571 | jnz no_new_brush_xy |
- | |
2572 | mov eax,[x] |
- | |
2573 | mov ebx,[y] |
- | |
2574 | mov [OldX],eax |
- | |
2575 | mov [OldY],ebx |
- | |
2576 | mov [Activate_instrument],1 |
- | |
2577 | no_new_brush_xy: |
- | |
2578 | - | ||
2579 | mov eax,[PointerToPicture] |
- | |
2580 | mov ebx,[ReserveArray] |
- | |
2581 | add ebx,4 |
- | |
2582 | mov ecx,[Picture_SizeX] |
- | |
2583 | mov edx,[OldX] |
- | |
2584 | shl edx,16 |
- | |
2585 | add edx,[OldY] |
- | |
2586 | mov esi,[x] |
- | |
2587 | mov edi,[y] |
- | |
2588 | - | ||
2589 | call calculate_line |
- | |
2590 | - | ||
2591 | mov ebx,[ReserveArray] |
- | |
2592 | mov [ebx],eax |
- | |
2593 | - | ||
2594 | ;procedure drawing of brush |
- | |
2595 | mov ebx,[ReserveArray] |
- | |
2596 | mov ecx,[ebx] |
- | |
2597 | mov edx,[Color] |
- | |
2598 | mov esi,[Color] |
- | |
2599 | shr edx,16 |
- | |
2600 | add ebx,4 |
- | |
2601 | mov edi,[Number_Brush] |
- | |
2602 | imul edi,20*20 |
- | |
2603 | - | ||
2604 | next_pixel_put_brush: |
- | |
2605 | - | ||
2606 | mov eax,[ebx] |
- | |
2607 | push eax |
- | |
2608 | push ecx |
- | |
2609 | xor ebp,ebp |
- | |
2610 | and [counter2],0 |
- | |
2611 | - | ||
2612 | vertical_width_brush: |
- | |
2613 | and [counter],0 |
- | |
2614 | - | ||
2615 | horizontal_width_brush: |
- | |
2616 | xor ecx,ecx |
- | |
2617 | mov cl,byte[Brush_color+edi+ebp] |
- | |
2618 | test cl,cl |
- | |
2619 | jz no_draw_pixel_brush |
- | |
2620 | mov [eax],si |
- | |
2621 | mov [eax+2],dl |
- | |
2622 | no_draw_pixel_brush: |
- | |
2623 | add eax,3 |
- | |
2624 | inc ebp |
- | |
2625 | inc [counter] |
- | |
2626 | cmp [counter],20 |
- | |
2627 | jne horizontal_width_brush |
- | |
2628 | - | ||
2629 | mov ecx,[Picture_SizeX] |
- | |
2630 | sub ecx,20 |
- | |
2631 | lea ecx,[ecx+ecx*2] |
- | |
2632 | add eax,ecx |
- | |
2633 | inc [counter2] |
- | |
2634 | cmp [counter2],20 |
- | |
2635 | jne vertical_width_brush |
- | |
2636 | - | ||
2637 | pop ecx |
- | |
2638 | pop eax |
- | |
2639 | add ebx,4 |
- | |
2640 | dec ecx |
- | |
2641 | jnz next_pixel_put_brush |
- | |
2642 | - | ||
2643 | mov eax,[x] |
- | |
2644 | mov ebx,[y] |
- | |
2645 | mov [OldX],eax |
- | |
2646 | mov [OldY],ebx |
- | |
2647 | - | ||
2648 | mov al,[lastik_is_active] |
- | |
2649 | test al,al |
- | |
2650 | jz no_lastik_active |
- | |
2651 | - | ||
2652 | mov eax,[SColor] |
- | |
2653 | mov [Color],eax |
- | |
2654 | and [lastik_is_active],0 |
- | |
2655 | no_lastik_active: |
- | |
2656 | - | ||
2657 | call MovePictureToWorkScreen |
- | |
2658 | jmp still |
- | |
2659 | no_brush: |
- | |
2660 | - | ||
2661 | ;************************Flood Fill******************* |
- | |
2662 | cmp eax,17 |
- | |
2663 | jne no_FloodFill |
- | |
2664 | - | ||
2665 | mov eax,[PointerToPicture] |
- | |
2666 | mov ebx,[PointerToEditBufer] |
- | |
2667 | - | ||
2668 | mov ecx,[Picture_SizeX] |
- | |
2669 | imul ecx,[Picture_SizeY] |
- | |
2670 | lea ecx,[ecx+ecx*2] |
- | |
2671 | shl ecx,1 |
- | |
2672 | - | ||
2673 | cmp ecx,500000 |
- | |
2674 | ja normal_size_of_bufer |
- | |
2675 | - | ||
2676 | mov ebx,[ReserveArray] |
- | |
2677 | - | ||
2678 | normal_size_of_bufer: |
- | |
2679 | - | ||
2680 | add ebx,4 |
- | |
2681 | mov ecx,[Picture_SizeX] |
- | |
2682 | mov edx,[ScreenX] |
- | |
2683 | add edx,[PosX] |
- | |
2684 | shl edx,16 |
- | |
2685 | add edx,[ScreenY] |
- | |
2686 | add edx,[PosY] |
- | |
2687 | mov esi,[Picture_SizeX] |
- | |
2688 | dec esi |
- | |
2689 | shl esi,16 |
- | |
2690 | add esi,[Picture_SizeY] |
- | |
2691 | dec esi |
- | |
2692 | mov edi,[Color] |
- | |
2693 | - | ||
2694 | call flood_fill |
- | |
2695 | call MovePictureToWorkScreen |
- | |
2696 | - | ||
2697 | jmp still |
- | |
2698 | no_FloodFill: |
- | |
2699 | - | ||
2700 | ;************************lastik************************* |
- | |
2701 | cmp eax,19 |
- | |
2702 | jne no_lastik |
- | |
2703 | - | ||
2704 | mov [lastik_is_active],1 |
- | |
2705 | jmp lastik_in |
- | |
2706 | - | ||
2707 | no_lastik: |
- | |
2708 | - | ||
2709 | ;****************************************************** |
- | |
2710 | cmp eax,20 |
- | |
2711 | jne no_spray |
- | |
2712 | - | ||
2713 | cmp [Activate_instrument],0 |
- | |
2714 | jne no_null_spray |
- | |
2715 | mov [Activate_instrument],1 |
- | |
2716 | jmp still |
- | |
2717 | no_null_spray: |
- | |
2718 | - | ||
2719 | mov eax,[ScreenX] |
- | |
2720 | mov ebx,[ScreenY] |
- | |
2721 | mov ecx,[Brush_SizeX] |
- | |
2722 | mov edx,[Brush_SizeY] |
- | |
2723 | add eax,[PosX] |
- | |
2724 | add ebx,[PosY] |
- | |
2725 | add eax,ecx |
- | |
2726 | add ebx,edx |
- | |
2727 | - | ||
2728 | cmp eax,[Picture_SizeX] |
- | |
2729 | jl no_max_pos_x_spray |
- | |
2730 | mov eax,[Picture_SizeX] |
- | |
2731 | no_max_pos_x_spray: |
- | |
2732 | - | ||
2733 | cmp ebx,[Picture_SizeY] |
- | |
2734 | jl no_max_pos_y_spray |
- | |
2735 | mov ebx,[Picture_SizeY] |
- | |
2736 | no_max_pos_y_spray: |
- | |
2737 | - | ||
2738 | cmp eax,ecx |
- | |
2739 | ja no_min_pos_x_spray |
- | |
2740 | mov eax,[Brush_SizeX] |
- | |
2741 | no_min_pos_x_spray: |
- | |
2742 | - | ||
2743 | cmp ebx,edx |
- | |
2744 | ja no_min_pos_y_spray |
- | |
2745 | mov ebx,[Brush_SizeY] |
- | |
2746 | no_min_pos_y_spray: |
- | |
2747 | - | ||
2748 | sub eax,[Brush_SizeX] |
- | |
2749 | sub ebx,[Brush_SizeY] |
- | |
2750 | mov edi,0;[Number_Brush] |
- | |
2751 | imul edi,20*20 |
- | |
2752 | - | ||
2753 | mov [x],eax |
- | |
2754 | mov [y],ebx |
- | |
2755 | mov ebp,[Picture_SizeX] |
- | |
2756 | xor edx,edx |
- | |
2757 | brush_y_spray: |
- | |
2758 | xor ecx,ecx |
- | |
2759 | brush_x_spray: |
- | |
2760 | ;calculate position in array of spray |
- | |
2761 | mov esi,edx |
- | |
2762 | lea esi,[esi+esi*4] ;esi=esi*5 |
- | |
2763 | shl esi,2 ;esi=(esi*3)*4 |
- | |
2764 | add esi,ecx |
- | |
2765 | add esi,edi |
- | |
2766 | ;read byte from array |
- | |
2767 | xor eax,eax |
- | |
2768 | mov al,[Spray_color+esi] |
- | |
2769 | test eax,eax |
- | |
2770 | jz no_color_spray |
- | |
2771 | mov eax,[x] |
- | |
2772 | mov ebx,[y] |
- | |
2773 | add eax,ecx |
- | |
2774 | add ebx,edx |
- | |
2775 | imul ebx,ebp; ebp=[Picture_SizeX] |
- | |
2776 | add eax,ebx |
- | |
2777 | lea eax,[eax+eax*2] |
- | |
2778 | add eax,[PointerToPicture] |
- | |
2779 | mov ebx,[Color] |
- | |
2780 | mov [eax],bx |
- | |
2781 | shr ebx,16 |
- | |
2782 | mov [eax+2],bl |
- | |
2783 | no_color_spray: |
- | |
2784 | inc ecx |
- | |
2785 | cmp ecx,20 |
- | |
2786 | jl brush_x_spray |
- | |
2787 | inc edx |
- | |
2788 | cmp edx,20 |
- | |
2789 | jl brush_y_spray |
- | |
2790 | - | ||
2791 | call MovePictureToWorkScreen |
- | |
2792 | jmp still |
- | |
2793 | - | ||
2794 | no_spray: |
- | |
2795 | - | ||
2796 | ;***********************palette************************* |
- | |
2797 | cmp eax,21 |
- | |
2798 | jne no_palette |
- | |
2799 | - | ||
2800 | mov eax,20 |
- | |
2801 | mov ebx,100 |
- | |
2802 | mov ecx,32*10+32*5+7 |
- | |
2803 | mov edx,8*10+7*10 |
- | |
2804 | mov esi,1 |
- | |
2805 | call draw_volume_rectangle |
- | |
2806 | mov [x],20+5 |
- | |
2807 | mov [y],100+10 |
- | |
2808 | mov edi,256 |
- | |
2809 | xor esi,esi |
- | |
2810 | next_rectangle: |
- | |
2811 | mov eax,13 |
- | |
2812 | mov ebx,[x] |
- | |
2813 | mov ecx,[y] |
- | |
2814 | mov edx,[palitra+esi] |
- | |
2815 | and edx,0xffffff |
- | |
2816 | shl ebx,16 |
- | |
2817 | shl ecx,16 |
- | |
2818 | add ebx,13 |
- | |
2819 | add ecx,13 |
- | |
2820 | int 0x40 |
- | |
2821 | add [x],15 |
- | |
Line 2822... | Line -... | ||
2822 | cmp [x],20+15*32 |
- | |
2823 | jl no_new_line |
64 | mov ebx,file_path |
Line 2824... | Line 65... | ||
2824 | mov [x],20+5 |
65 | call check_loading_from_parameters |
2825 | add [y],15 |
- | |
2826 | no_new_line: |
- | |
2827 | add esi,4 |
- | |
2828 | dec edi |
- | |
2829 | jnz next_rectangle |
- | |
2830 | - | ||
2831 | wait_events: |
- | |
2832 | call event |
- | |
2833 | - | ||
2834 | cmp eax,1 |
- | |
2835 | je still |
- | |
2836 | cmp eax,2 |
- | |
2837 | jne no_keys |
- | |
2838 | mov eax,2 |
- | |
2839 | int 0x40 |
- | |
2840 | no_keys: |
- | |
2841 | cmp eax,3 |
- | |
2842 | jne no_buttons |
- | |
2843 | mov eax,17 |
- | |
2844 | int 0x40 |
- | |
2845 | no_buttons: |
- | |
2846 | cmp eax,6 |
- | |
2847 | jne wait_events |
- | |
2848 | - | ||
2849 | call GetMouseClick |
- | |
2850 | - | ||
2851 | test eax,eax |
- | |
2852 | jz wait_events |
- | |
2853 | call GetMouseCoordinats |
- | |
2854 | mov [x],20+5 |
- | |
2855 | mov [y],100+10 |
- | |
2856 | mov [counter],0 |
- | |
2857 | next_rectangle_column: |
- | |
2858 | mov eax,[x] |
- | |
2859 | mov ebx,[y] |
- | |
2860 | mov ecx,[MouseX] |
- | |
2861 | mov edx,[MouseY] |
- | |
2862 | mov esi,13 |
- | |
2863 | mov edi,13 |
- | |
2864 | call columnus |
- | |
2865 | test eax,eax |
- | |
2866 | jz no_columnus_color |
- | |
2867 | mov eax,[counter] |
- | |
2868 | shl eax,2 |
- | |
2869 | mov ebx,[palitra+eax] |
- | |
2870 | and ebx,0xffffff |
- | |
2871 | mov [Color],ebx |
- | |
2872 | no_columnus_color: |
- | |
2873 | add [x],15 |
- | |
2874 | cmp [x],20+15*32 |
- | |
2875 | jl no_new_line_column |
- | |
2876 | mov [x],20+5 |
- | |
2877 | add [y],15 |
- | |
2878 | no_new_line_column: |
- | |
2879 | inc [counter] |
- | |
2880 | cmp [counter],257 |
- | |
2881 | jne next_rectangle_column |
- | |
2882 | mov eax,5 |
- | |
2883 | mov ebx,10 |
- | |
2884 | int 0x40 |
- | |
2885 | call drawwin |
- | |
2886 | and [Current_instrument],0 |
- | |
2887 | jmp still |
- | |
2888 | no_palette: |
- | |
2889 | - | ||
2890 | ;************************draw line********************** |
- | |
2891 | cmp eax,22 |
- | |
2892 | jne no_line |
- | |
2893 | - | ||
2894 | mov al,[Activate_instrument] |
- | |
2895 | test al,al |
- | |
2896 | jnz no_new_line_xy |
- | |
2897 | mov eax,[ScreenX] |
- | |
2898 | mov ebx,[ScreenY] |
- | |
2899 | add eax,[PosX] |
- | |
2900 | add ebx,[PosY] |
- | |
2901 | mov [OldX],eax |
- | |
2902 | mov [OldY],ebx |
- | |
2903 | mov [Activate_instrument],1 |
- | |
2904 | mov eax,[ReserveArray] |
- | |
2905 | mov ecx,60000 |
- | |
2906 | clear_array_line: |
- | |
2907 | mov [eax],dword 0 |
- | |
2908 | add eax,4 |
- | |
2909 | dec ecx |
- | |
2910 | jnz clear_array_line |
- | |
2911 | jmp still |
- | |
2912 | no_new_line_xy: |
- | |
2913 | - | ||
2914 | ;put saved pixels |
- | |
2915 | mov ebx,[ReserveArray] |
- | |
2916 | mov eax,[ebx] |
- | |
2917 | test eax,eax |
- | |
2918 | jz no_put_line_to_screen_line |
- | |
2919 | mov ecx,[ebx] |
- | |
2920 | add ebx,4 |
- | |
2921 | xor ebp,ebp |
- | |
2922 | next_color_put_line: |
- | |
2923 | ;put saved pixels in ReserveArray |
- | |
2924 | push ecx |
- | |
2925 | and [counter2],0 |
- | |
2926 | mov edi,[ebx] |
- | |
2927 | push edi |
- | |
2928 | vertical_width_put: |
- | |
2929 | and [counter],0 |
- | |
2930 | - | ||
2931 | horizontal_width_put: |
- | |
2932 | mov edx,[ebx+4807*4+ebp] |
- | |
2933 | and edx,0xffffff |
- | |
2934 | mov [edi],dx |
- | |
2935 | shr edx,16 |
- | |
2936 | mov [edi+2],dl |
- | |
2937 | - | ||
2938 | add edi,3 |
- | |
2939 | add ebp,4 |
- | |
2940 | inc [counter] |
- | |
2941 | cmp [counter],5 |
- | |
2942 | jne horizontal_width_put |
- | |
2943 | - | ||
2944 | mov ecx,[Picture_SizeX] |
- | |
2945 | sub ecx,5 |
- | |
2946 | lea ecx,[ecx+ecx*2] |
- | |
2947 | add edi,ecx |
- | |
2948 | inc [counter2] |
- | |
2949 | cmp [counter2],5 |
- | |
2950 | jne vertical_width_put |
- | |
2951 | pop edi |
- | |
2952 | pop ecx |
- | |
2953 | add ebx,4 |
- | |
2954 | dec ecx |
- | |
2955 | jnz next_color_put_line |
- | |
2956 | - | ||
2957 | no_put_line_to_screen_line: |
- | |
2958 | - | ||
2959 | ;calculate line |
- | |
2960 | mov ebx,[ReserveArray] |
- | |
2961 | add ebx,4 |
- | |
2962 | mov eax,[PointerToPicture] |
- | |
2963 | mov ecx,[Picture_SizeX] |
- | |
2964 | mov edx,[OldX] |
- | |
2965 | shl edx,16 |
- | |
2966 | add edx,[OldY] |
- | |
2967 | mov esi,[ScreenX] |
- | |
2968 | mov edi,[ScreenY] |
- | |
2969 | add esi,[PosX] |
- | |
2970 | add edi,[PosY] |
- | |
2971 | - | ||
2972 | mov ebp,[Picture_SizeX] |
- | |
2973 | sub ebp,[line_width] |
- | |
2974 | cmp esi,ebp |
- | |
2975 | jl no_minimum_x_line |
- | |
2976 | mov esi,ebp |
- | |
2977 | no_minimum_x_line: |
- | |
2978 | - | ||
2979 | mov ebp,[Picture_SizeY] |
- | |
2980 | sub ebp,[line_width] |
- | |
2981 | cmp edi,ebp |
- | |
2982 | jl no_minimum_y_line |
- | |
2983 | mov edi,ebp |
- | |
2984 | no_minimum_y_line: |
- | |
2985 | - | ||
2986 | call calculate_line |
- | |
2987 | ;call calculate_rectangle |
- | |
2988 | mov [counter],eax |
- | |
2989 | - | ||
2990 | ;save color pixels in ReserveArray |
- | |
2991 | mov eax,[counter] |
- | |
2992 | mov ebx,[ReserveArray] |
- | |
2993 | mov [ebx],eax |
- | |
2994 | - | ||
2995 | mov ecx,[ebx] |
- | |
2996 | add ebx,4 |
- | |
2997 | - | ||
2998 | xor ebp,ebp |
- | |
2999 | next_color_save_line: |
- | |
3000 | ;save color of pixel in ReserveArray |
- | |
3001 | push ecx |
- | |
3002 | and [counter2],0 |
- | |
3003 | mov edi,[ebx] |
- | |
3004 | vertical_width_save: |
- | |
3005 | and [counter],0 |
- | |
3006 | - | ||
3007 | horizontal_width_save: |
- | |
3008 | mov eax,edi |
- | |
3009 | mov edx,[eax] |
- | |
3010 | and edx,0xffffff |
- | |
3011 | mov [ebx+4807*4+ebp],dx |
- | |
3012 | shr edx,16 |
- | |
3013 | mov [ebx+4807*4+2+ebp],dl |
- | |
3014 | - | ||
3015 | add edi,3 |
- | |
3016 | add ebp,4 |
- | |
3017 | inc [counter] |
- | |
3018 | cmp [counter],5 |
- | |
3019 | jne horizontal_width_save |
- | |
3020 | - | ||
3021 | mov ecx,[Picture_SizeX] |
- | |
3022 | sub ecx,5 |
- | |
3023 | lea ecx,[ecx+ecx*2] |
- | |
3024 | add edi,ecx |
- | |
3025 | inc [counter2] |
- | |
3026 | cmp [counter2],5 |
- | |
3027 | jne vertical_width_save |
- | |
3028 | pop ecx |
- | |
3029 | add ebx,4 |
- | |
3030 | dec ecx |
- | |
3031 | jnz next_color_save_line |
- | |
3032 | - | ||
3033 | ;draw calculated pixels on work arrea |
- | |
3034 | mov ebx,[ReserveArray] |
- | |
3035 | mov ecx,[ebx] |
- | |
3036 | mov edx,[Color] |
- | |
3037 | mov esi,[Color] |
- | |
3038 | shr edx,16 |
- | |
3039 | add ebx,4 |
- | |
3040 | mov edi,[line_width] |
- | |
3041 | dec edi |
- | |
3042 | imul edi,25 |
- | |
3043 | next_pixel_put_line: |
- | |
3044 | - | ||
3045 | mov eax,[ebx] |
- | |
3046 | push eax |
- | |
3047 | push ecx |
- | |
3048 | xor ebp,ebp |
- | |
3049 | and [counter2],0 |
- | |
3050 | - | ||
3051 | vertical_width: |
- | |
3052 | and [counter],0 |
- | |
3053 | - | ||
3054 | horizontal_width: |
- | |
3055 | xor ecx,ecx |
- | |
3056 | mov cl,byte[width_pixels+edi+ebp] |
66 | |
3057 | test cl,cl |
- | |
3058 | jz no_draw_pixel_line |
- | |
3059 | mov [eax],si |
- | |
3060 | mov [eax+2],dl |
- | |
3061 | no_draw_pixel_line: |
- | |
3062 | add eax,3 |
- | |
3063 | inc ebp |
- | |
3064 | inc [counter] |
- | |
3065 | cmp [counter],5 |
- | |
3066 | jne horizontal_width |
- | |
3067 | - | ||
3068 | mov ecx,[Picture_SizeX] |
- | |
3069 | sub ecx,5 |
- | |
3070 | lea ecx,[ecx+ecx*2] |
- | |
3071 | add eax,ecx |
- | |
3072 | inc [counter2] |
- | |
3073 | cmp [counter2],5 |
- | |
3074 | jne vertical_width |
- | |
3075 | - | ||
3076 | pop ecx |
- | |
3077 | pop eax |
- | |
3078 | add ebx,4 |
- | |
3079 | dec ecx |
- | |
3080 | jnz next_pixel_put_line |
- | |
3081 | - | ||
3082 | call MovePictureToWorkScreen |
- | |
3083 | - | ||
3084 | jmp still |
- | |
3085 | no_line: |
- | |
3086 | - | ||
3087 | ;*********************************DRAW RECTANGLE**************************** |
- | |
3088 | cmp eax,23 |
- | |
3089 | jne no_rectangle |
- | |
3090 | - | ||
3091 | mov al,[Activate_instrument] |
- | |
3092 | test al,al |
- | |
3093 | jnz no_new_rectangle_xy |
- | |
3094 | mov eax,[ScreenX] |
- | |
3095 | mov ebx,[ScreenY] |
- | |
3096 | add eax,[PosX] |
- | |
3097 | add ebx,[PosY] |
- | |
3098 | mov [OldX],eax |
- | |
3099 | mov [OldY],ebx |
- | |
3100 | mov [Activate_instrument],1 |
- | |
3101 | mov eax,[ReserveArray] |
- | |
3102 | mov ecx,60000 |
- | |
3103 | clear_array_rectangle: |
- | |
3104 | mov [eax],dword 0 |
- | |
3105 | add eax,4 |
- | |
3106 | dec ecx |
- | |
3107 | jnz clear_array_rectangle |
- | |
3108 | jmp still |
- | |
3109 | no_new_rectangle_xy: |
- | |
3110 | - | ||
3111 | ;put saved pixels |
- | |
3112 | mov ebx,[ReserveArray] |
- | |
3113 | mov eax,[ebx] |
- | |
3114 | test eax,eax |
- | |
3115 | jz no_put_rectangle_to_screen_line |
- | |
3116 | mov ecx,[ebx] |
- | |
3117 | add ebx,4 |
- | |
3118 | xor ebp,ebp |
- | |
3119 | next_color_put_rectangle: |
- | |
3120 | ;put saved pixels in ReserveArray |
- | |
3121 | push ecx |
- | |
3122 | and [counter2],0 |
- | |
3123 | mov edi,[ebx] |
- | |
3124 | push edi |
- | |
3125 | vertical_width_put_rectangle: |
- | |
3126 | and [counter],0 |
- | |
3127 | - | ||
3128 | horizontal_width_put_rectangle: |
- | |
3129 | mov edx,[ebx+4807*4+ebp] |
- | |
3130 | and edx,0xffffff |
- | |
3131 | mov [edi],dx |
- | |
3132 | shr edx,16 |
- | |
3133 | mov [edi+2],dl |
- | |
3134 | - | ||
3135 | add edi,3 |
- | |
3136 | add ebp,4 |
- | |
3137 | inc [counter] |
- | |
3138 | cmp [counter],5 |
- | |
3139 | jne horizontal_width_put_rectangle |
- | |
3140 | - | ||
3141 | mov ecx,[Picture_SizeX] |
- | |
3142 | sub ecx,5 |
- | |
3143 | lea ecx,[ecx+ecx*2] |
- | |
3144 | add edi,ecx |
- | |
3145 | inc [counter2] |
- | |
3146 | cmp [counter2],5 |
- | |
3147 | jne vertical_width_put_rectangle |
- | |
3148 | pop edi |
- | |
3149 | pop ecx |
- | |
3150 | add ebx,4 |
- | |
3151 | dec ecx |
- | |
3152 | jnz next_color_put_rectangle |
- | |
3153 | - | ||
3154 | no_put_rectangle_to_screen_line: |
- | |
3155 | - | ||
3156 | ;calculate line |
- | |
3157 | mov ebx,[ReserveArray] |
- | |
3158 | add ebx,4 |
- | |
3159 | mov eax,[PointerToPicture] |
- | |
3160 | mov ecx,[Picture_SizeX] |
- | |
3161 | mov edx,[OldX] |
- | |
3162 | shl edx,16 |
- | |
3163 | add edx,[OldY] |
- | |
3164 | mov esi,[ScreenX] |
- | |
3165 | mov edi,[ScreenY] |
- | |
3166 | add esi,[PosX] |
- | |
3167 | add edi,[PosY] |
- | |
3168 | - | ||
3169 | mov ebp,[Picture_SizeX] |
- | |
3170 | sub ebp,[line_width] |
- | |
3171 | cmp esi,ebp |
- | |
3172 | jl no_minimum_x_rectangle |
- | |
3173 | mov esi,ebp |
- | |
3174 | no_minimum_x_rectangle: |
- | |
3175 | - | ||
3176 | mov ebp,[Picture_SizeY] |
- | |
3177 | sub ebp,[line_width] |
- | |
3178 | cmp edi,ebp |
- | |
3179 | jl no_minimum_y_rectangle |
- | |
3180 | mov edi,ebp |
- | |
3181 | no_minimum_y_rectangle: |
- | |
3182 | - | ||
3183 | call calculate_rectangle |
- | |
3184 | mov [counter],eax |
- | |
3185 | - | ||
3186 | ;save color pixels in ReserveArray |
- | |
3187 | mov eax,[counter] |
- | |
3188 | mov ebx,[ReserveArray] |
- | |
3189 | mov [ebx],eax |
- | |
3190 | - | ||
3191 | mov ecx,[ebx] |
- | |
3192 | add ebx,4 |
- | |
3193 | - | ||
3194 | xor ebp,ebp |
- | |
3195 | next_color_save_rectangle: |
- | |
3196 | ;save color of pixel in ReserveArray |
- | |
3197 | push ecx |
- | |
3198 | and [counter2],0 |
- | |
3199 | mov edi,[ebx] |
- | |
3200 | vertical_width_save_rectangle: |
- | |
3201 | and [counter],0 |
- | |
3202 | - | ||
3203 | horizontal_width_save_rectangle: |
- | |
3204 | mov eax,edi |
- | |
3205 | mov edx,[eax] |
- | |
3206 | and edx,0xffffff |
- | |
3207 | mov [ebx+4807*4+ebp],dx |
- | |
3208 | shr edx,16 |
- | |
3209 | mov [ebx+4807*4+2+ebp],dl |
- | |
3210 | - | ||
3211 | add edi,3 |
- | |
3212 | add ebp,4 |
- | |
3213 | inc [counter] |
- | |
3214 | cmp [counter],5 |
- | |
3215 | jne horizontal_width_save_rectangle |
- | |
3216 | - | ||
3217 | mov ecx,[Picture_SizeX] |
- | |
3218 | sub ecx,5 |
- | |
3219 | lea ecx,[ecx+ecx*2] |
- | |
3220 | add edi,ecx |
- | |
3221 | inc [counter2] |
- | |
3222 | cmp [counter2],5 |
- | |
3223 | jne vertical_width_save_rectangle |
- | |
3224 | pop ecx |
- | |
3225 | add ebx,4 |
- | |
3226 | dec ecx |
- | |
3227 | jnz next_color_save_rectangle |
- | |
3228 | - | ||
3229 | ;draw calculated pixels on work arrea |
- | |
3230 | mov ebx,[ReserveArray] |
- | |
3231 | mov ecx,[ebx] |
- | |
3232 | mov edx,[Color] |
- | |
3233 | mov esi,[Color] |
- | |
3234 | shr edx,16 |
- | |
3235 | add ebx,4 |
- | |
3236 | mov edi,[line_width] |
- | |
3237 | dec edi |
- | |
3238 | imul edi,25 |
- | |
3239 | next_pixel_put_rectangle: |
- | |
3240 | - | ||
3241 | mov eax,[ebx] |
- | |
3242 | push eax |
- | |
3243 | push ecx |
- | |
3244 | xor ebp,ebp |
- | |
3245 | and [counter2],0 |
- | |
3246 | - | ||
3247 | vertical_width_rectangle: |
- | |
3248 | and [counter],0 |
- | |
3249 | - | ||
3250 | horizontal_width_rectangle: |
- | |
3251 | xor ecx,ecx |
- | |
3252 | mov cl,byte[width_pixels_rectangle+edi+ebp] |
- | |
3253 | test cl,cl |
- | |
3254 | jz no_draw_pixel_rectangle |
- | |
3255 | mov [eax],si |
- | |
3256 | mov [eax+2],dl |
- | |
3257 | no_draw_pixel_rectangle: |
- | |
3258 | add eax,3 |
- | |
3259 | inc ebp |
- | |
3260 | inc [counter] |
- | |
3261 | cmp [counter],5 |
- | |
3262 | jne horizontal_width_rectangle |
- | |
3263 | - | ||
3264 | mov ecx,[Picture_SizeX] |
- | |
3265 | sub ecx,5 |
- | |
3266 | lea ecx,[ecx+ecx*2] |
- | |
3267 | add eax,ecx |
- | |
3268 | inc [counter2] |
- | |
3269 | cmp [counter2],5 |
- | |
3270 | jne vertical_width_rectangle |
- | |
3271 | - | ||
3272 | pop ecx |
- | |
3273 | pop eax |
- | |
3274 | add ebx,4 |
- | |
3275 | dec ecx |
- | |
3276 | jnz next_pixel_put_rectangle |
- | |
3277 | - | ||
3278 | call MovePictureToWorkScreen |
- | |
3279 | jmp still |
- | |
3280 | no_rectangle: |
- | |
3281 | - | ||
3282 | ;*********************************DRAW CIRCLE**************************** |
- | |
3283 | cmp eax,24 |
- | |
3284 | jne no_circle |
- | |
3285 | - | ||
3286 | mov al,[Activate_instrument] |
- | |
3287 | test al,al |
- | |
3288 | jnz no_new_circle_xy |
- | |
3289 | mov eax,[ScreenX] |
- | |
3290 | mov ebx,[ScreenY] |
- | |
3291 | add eax,[PosX] |
- | |
3292 | add ebx,[PosY] |
- | |
3293 | mov [OldX],eax |
- | |
3294 | mov [OldY],ebx |
- | |
3295 | mov [Activate_instrument],1 |
- | |
3296 | mov eax,[ReserveArray] |
- | |
3297 | mov ecx,60000 |
- | |
3298 | clear_array_circle: |
- | |
3299 | mov [eax],dword 0 |
- | |
3300 | add eax,4 |
- | |
3301 | dec ecx |
- | |
3302 | jnz clear_array_circle |
- | |
3303 | jmp still |
- | |
3304 | no_new_circle_xy: |
- | |
3305 | - | ||
3306 | ;put saved pixels |
- | |
3307 | mov ebx,[ReserveArray] |
- | |
3308 | mov eax,[ebx] |
- | |
3309 | test eax,eax |
- | |
3310 | jz no_put_line_to_screen_circle |
- | |
3311 | mov ecx,[ebx] |
- | |
3312 | add ebx,4 |
- | |
3313 | xor ebp,ebp |
- | |
3314 | next_color_put_circle: |
- | |
3315 | ;put saved pixels in ReserveArray |
- | |
3316 | push ecx |
- | |
3317 | and [counter2],0 |
- | |
3318 | mov edi,[ebx] |
- | |
3319 | push edi |
- | |
3320 | vertical_width_put_circle: |
- | |
3321 | and [counter],0 |
- | |
3322 | - | ||
3323 | horizontal_width_put_circle: |
- | |
3324 | mov edx,[ebx+4807*4+ebp] |
- | |
3325 | and edx,0xffffff |
- | |
3326 | mov [edi],dx |
- | |
3327 | shr edx,16 |
- | |
3328 | mov [edi+2],dl |
- | |
3329 | - | ||
3330 | add edi,3 |
- | |
3331 | add ebp,4 |
- | |
3332 | inc [counter] |
- | |
3333 | cmp [counter],5 |
- | |
3334 | jne horizontal_width_put_circle |
- | |
3335 | - | ||
3336 | mov ecx,[Picture_SizeX] |
- | |
3337 | sub ecx,5 |
- | |
3338 | lea ecx,[ecx+ecx*2] |
- | |
3339 | add edi,ecx |
- | |
3340 | inc [counter2] |
- | |
3341 | cmp [counter2],5 |
- | |
3342 | jne vertical_width_put_circle |
- | |
3343 | pop edi |
- | |
3344 | pop ecx |
- | |
3345 | add ebx,4 |
- | |
3346 | dec ecx |
- | |
3347 | jnz next_color_put_circle |
- | |
3348 | - | ||
3349 | no_put_line_to_screen_circle: |
- | |
3350 | - | ||
3351 | mov esi,[ScreenX] |
- | |
3352 | mov edi,[ScreenY] |
- | |
3353 | add esi,[PosX] |
- | |
3354 | add edi,[PosY] |
- | |
3355 | - | ||
3356 | sub esi,[OldX] |
- | |
3357 | jns no_sign_x_circle |
- | |
3358 | neg esi |
- | |
3359 | shr esi,1 |
- | |
3360 | neg esi |
- | |
3361 | add esi,[OldX] |
- | |
3362 | jmp no_plus_sign_x_circle |
- | |
3363 | no_sign_x_circle: |
- | |
3364 | - | ||
3365 | shr esi,1 |
- | |
3366 | add esi,[OldX] |
- | |
3367 | no_plus_sign_x_circle: |
- | |
3368 | - | ||
3369 | sub edi,[OldY] |
- | |
3370 | jns no_sign_y_circle |
- | |
3371 | neg edi |
- | |
3372 | shr edi,1 |
- | |
3373 | neg edi |
- | |
3374 | add edi,[OldY] |
- | |
3375 | jmp no_plus_sign_y_circle |
- | |
3376 | no_sign_y_circle: |
- | |
3377 | - | ||
3378 | shr edi,1 |
- | |
3379 | add edi,[OldY] |
- | |
3380 | no_plus_sign_y_circle: |
- | |
3381 | - | ||
3382 | mov [x],esi |
- | |
3383 | mov [y],edi |
- | |
3384 | - | ||
3385 | mov esi,[ScreenX] |
- | |
3386 | mov edi,[ScreenY] |
- | |
3387 | add esi,[PosX] |
- | |
3388 | add edi,[PosY] |
- | |
3389 | - | ||
3390 | sub esi,[OldX] |
- | |
3391 | jns no_sign_x_circle_r |
- | |
3392 | neg esi |
- | |
3393 | no_sign_x_circle_r: |
- | |
3394 | - | ||
3395 | sub edi,[OldY] |
- | |
3396 | jns no_sign_y_circle_r |
- | |
3397 | neg edi |
- | |
3398 | no_sign_y_circle_r: |
- | |
3399 | - | ||
3400 | mov [Dx_],esi |
- | |
3401 | mov [Dy_],edi |
- | |
3402 | - | ||
3403 | ;finit |
- | |
3404 | fild [Dx_] |
- | |
3405 | fmul st0,st0 |
- | |
3406 | fild [Dy_] |
- | |
3407 | fmul st0,st0 |
- | |
3408 | fadd st0,st1 |
- | |
3409 | fsqrt |
- | |
3410 | fistp [Radius] |
- | |
3411 | fistp [Icon_X] |
- | |
3412 | mov esi,[Radius] |
- | |
3413 | shr esi,1 |
- | |
3414 | cmp esi,0 |
- | |
3415 | jne no_null_radius |
- | |
3416 | mov [Radius],1 |
- | |
3417 | no_null_radius: |
- | |
3418 | - | ||
3419 | mov [Radius],esi |
- | |
3420 | - | ||
3421 | mov edi,[x] |
- | |
3422 | mov ebp,[y] |
- | |
3423 | add edi,esi |
- | |
3424 | add ebp,esi |
- | |
3425 | - | ||
3426 | mov edx,[Picture_SizeX] |
- | |
3427 | sub edx,[line_width] |
- | |
3428 | cmp edi,edx |
- | |
3429 | jl no_limit_x_circle |
- | |
3430 | sub edi,edx |
- | |
3431 | sub [Radius],edi |
- | |
3432 | no_limit_x_circle: |
- | |
3433 | - | ||
3434 | mov edx,[Picture_SizeY] |
- | |
3435 | sub edx,[line_width] |
- | |
3436 | cmp ebp,edx |
- | |
3437 | jl no_limit_y_circle |
- | |
3438 | sub ebp,edx |
- | |
3439 | sub [Radius],ebp |
- | |
3440 | no_limit_y_circle: |
- | |
3441 | - | ||
3442 | - | ||
3443 | mov edi,[x] |
- | |
3444 | mov ebp,[y] |
- | |
3445 | - | ||
3446 | sub edi,[Radius] |
- | |
3447 | jns no_minimum_x_circle |
- | |
3448 | add [Radius],edi |
- | |
3449 | no_minimum_x_circle: |
- | |
3450 | - | ||
3451 | sub ebp,[Radius] |
- | |
3452 | jns no_minimum_y_circle |
- | |
3453 | add [Radius],ebp |
- | |
3454 | no_minimum_y_circle: |
- | |
3455 | - | ||
3456 | ;calculate circle |
- | |
3457 | mov ebx,[ReserveArray] |
- | |
3458 | add ebx,4 |
- | |
3459 | mov eax,[PointerToPicture] |
- | |
3460 | mov ecx,[Picture_SizeX] |
- | |
3461 | mov edx,[x] |
- | |
3462 | shl edx,16 |
- | |
3463 | add edx,[y] |
- | |
3464 | mov esi,[Radius] |
- | |
3465 | call calculate_circle |
- | |
3466 | - | ||
3467 | mov [counter],eax |
- | |
3468 | - | ||
3469 | ;save color pixels in ReserveArray |
- | |
3470 | mov eax,[counter] |
- | |
3471 | mov ebx,[ReserveArray] |
- | |
3472 | mov [ebx],eax |
- | |
3473 | - | ||
3474 | mov ecx,[ebx] |
- | |
3475 | add ebx,4 |
- | |
3476 | - | ||
3477 | xor ebp,ebp |
- | |
3478 | next_color_save_circle: |
- | |
3479 | ;save color of pixel in ReserveArray |
- | |
3480 | push ecx |
- | |
3481 | and [counter2],0 |
- | |
3482 | mov edi,[ebx] |
- | |
3483 | vertical_width_save_circle: |
- | |
3484 | and [counter],0 |
- | |
3485 | - | ||
3486 | horizontal_width_save_circle: |
- | |
3487 | mov eax,edi |
- | |
3488 | mov edx,[eax] |
- | |
3489 | and edx,0xffffff |
- | |
3490 | mov [ebx+4807*4+ebp],dx |
- | |
3491 | shr edx,16 |
- | |
3492 | mov [ebx+4807*4+2+ebp],dl |
- | |
3493 | - | ||
3494 | add edi,3 |
- | |
3495 | add ebp,4 |
- | |
3496 | inc [counter] |
- | |
3497 | cmp [counter],5 |
- | |
3498 | jne horizontal_width_save_circle |
- | |
3499 | - | ||
3500 | mov ecx,[Picture_SizeX] |
- | |
3501 | sub ecx,5 |
- | |
3502 | lea ecx,[ecx+ecx*2] |
- | |
3503 | add edi,ecx |
- | |
3504 | inc [counter2] |
- | |
3505 | cmp [counter2],5 |
- | |
3506 | jne vertical_width_save_circle |
- | |
3507 | pop ecx |
- | |
3508 | add ebx,4 |
- | |
3509 | dec ecx |
- | |
3510 | jnz next_color_save_circle |
- | |
3511 | - | ||
3512 | ;draw calculated pixels on work arrea |
- | |
3513 | mov ebx,[ReserveArray] |
- | |
3514 | mov ecx,[ebx] |
- | |
3515 | mov edx,[Color] |
- | |
3516 | mov esi,[Color] |
- | |
3517 | shr edx,16 |
- | |
3518 | add ebx,4 |
- | |
3519 | mov edi,[line_width] |
- | |
3520 | dec edi |
- | |
3521 | imul edi,25 |
- | |
3522 | next_pixel_put_circle: |
- | |
3523 | - | ||
3524 | mov eax,[ebx] |
- | |
3525 | push eax |
- | |
3526 | push ecx |
- | |
3527 | xor ebp,ebp |
- | |
3528 | and [counter2],0 |
- | |
3529 | - | ||
3530 | vertical_width_circle: |
- | |
3531 | and [counter],0 |
- | |
3532 | - | ||
3533 | horizontal_width_circle: |
- | |
3534 | xor ecx,ecx |
- | |
3535 | mov cl,byte[width_pixels+edi+ebp] |
- | |
3536 | test cl,cl |
- | |
3537 | jz no_draw_pixel_circle |
- | |
3538 | mov [eax],si |
- | |
3539 | mov [eax+2],dl |
- | |
3540 | no_draw_pixel_circle: |
- | |
3541 | add eax,3 |
- | |
3542 | inc ebp |
- | |
3543 | inc [counter] |
- | |
3544 | cmp [counter],5 |
- | |
3545 | jne horizontal_width_circle |
- | |
3546 | - | ||
3547 | mov ecx,[Picture_SizeX] |
- | |
3548 | sub ecx,5 |
- | |
3549 | lea ecx,[ecx+ecx*2] |
- | |
3550 | add eax,ecx |
- | |
3551 | inc [counter2] |
- | |
3552 | cmp [counter2],5 |
- | |
3553 | jne vertical_width_circle |
- | |
3554 | - | ||
3555 | pop ecx |
- | |
3556 | pop eax |
- | |
3557 | add ebx,4 |
- | |
3558 | dec ecx |
- | |
3559 | jnz next_pixel_put_circle |
- | |
3560 | - | ||
3561 | call MovePictureToWorkScreen |
- | |
3562 | jmp still |
- | |
3563 | no_circle: |
- | |
3564 | - | ||
3565 | ;************************zoom 1************************* |
- | |
3566 | cmp eax,25 |
- | |
3567 | jne no_1_ |
- | |
3568 | mov [k],1 |
- | |
3569 | mov [Scroll1CoordinatX],9 |
- | |
3570 | mov [Scroll2CoordinatY],85 |
- | |
3571 | and [Current_instrument],0 |
- | |
3572 | call drawwin |
- | |
3573 | jmp still |
- | |
3574 | no_1_: |
- | |
3575 | - | ||
3576 | ;*************************zoom 2************************ |
- | |
3577 | cmp eax,26 |
- | |
3578 | jne no_2_ |
- | |
3579 | mov [k],2 |
- | |
3580 | call drawwin |
- | |
3581 | mov [Scroll1CoordinatX],9 |
- | |
3582 | mov [Scroll2CoordinatY],85 |
- | |
3583 | and [Current_instrument],0 |
- | |
3584 | jmp still |
- | |
3585 | no_2_: |
- | |
3586 | - | ||
3587 | ;*************************zoom 4************************ |
- | |
3588 | cmp eax,27 |
- | |
3589 | jne no_4_ |
- | |
3590 | mov [k],4 |
- | |
3591 | call drawwin |
- | |
3592 | mov [Scroll1CoordinatX],9 |
- | |
3593 | mov [Scroll2CoordinatY],85 |
- | |
3594 | and [Current_instrument],0 |
- | |
3595 | jmp still |
- | |
3596 | no_4_: |
- | |
3597 | - | ||
Line 3598... | Line -... | ||
3598 | ;************************zoom 8************************* |
- | |
3599 | cmp eax,28 |
- | |
3600 | jne no_8_ |
- | |
3601 | mov [k],8 |
- | |
3602 | call drawwin |
67 | ;---------------------------------------------------------- |
3603 | mov [Scroll1CoordinatX],9 |
- | |
3604 | mov [Scroll2CoordinatY],85 |
- | |
3605 | and [Current_instrument],0 |
- | |
3606 | jmp still |
- | |
3607 | no_8_: |
- | |
3608 | - | ||
3609 | ;************************zoom 16************************ |
- | |
3610 | cmp eax,29 |
- | |
3611 | jne no_16_ |
- | |
3612 | mov [k],16 |
- | |
3613 | call drawwin |
- | |
3614 | mov [Scroll1CoordinatX],9 |
- | |
3615 | mov [Scroll2CoordinatY],85 |
- | |
3616 | and [Current_instrument],0 |
- | |
3617 | jmp still |
- | |
3618 | no_16_: |
- | |
3619 | - | ||
3620 | ;***************allocation of a countour********************* |
- | |
3621 | cmp eax,30 |
- | |
3622 | jne no_allocation |
- | |
3623 | - | ||
3624 | cmp [instrument_used],0 |
- | |
3625 | jnz instrument_not_finished_work |
- | |
3626 | - | ||
3627 | mov al,[Activate_instrument] |
- | |
3628 | test al,al |
- | |
3629 | jnz no_new_allocation_xy |
- | |
3630 | mov eax,[ScreenX] |
- | |
3631 | mov ebx,[ScreenY] |
- | |
3632 | add eax,[PosX] |
- | |
3633 | add ebx,[PosY] |
- | |
3634 | mov [OldX],eax |
- | |
3635 | mov [OldY],ebx |
- | |
3636 | inc eax |
- | |
3637 | inc ebx |
- | |
3638 | mov [rectangular_shade_x],eax |
- | |
3639 | mov [rectangular_shade_y],ebx |
- | |
3640 | mov [Activate_instrument],1 |
68 | ;---------------------MAIN LOOP---------------------------- |
3641 | mov [instrument_used],1 |
- | |
3642 | and [crossing],0 |
- | |
3643 | and [finishing_crossing],0 |
- | |
3644 | mov eax,[ReserveArray] |
- | |
3645 | mov ecx,60000 |
- | |
3646 | clear_array_allocation: |
- | |
3647 | mov [eax],dword 0 |
- | |
3648 | add eax,4 |
- | |
3649 | dec ecx |
- | |
3650 | jnz clear_array_allocation |
- | |
3651 | jmp still |
- | |
3652 | no_new_allocation_xy: |
- | |
3653 | instrument_not_finished_work: |
- | |
3654 | - | ||
3655 | mov al,[instrument_used] |
- | |
3656 | test al,al |
- | |
3657 | jz no_change_coordinats |
- | |
3658 | - | ||
3659 | cmp [Activate_instrument],0 |
- | |
3660 | jnz no_change_coordinats |
- | |
3661 | - | ||
3662 | ;save coordinates as old if crossing=0 |
- | |
3663 | cmp [crossing],0 |
- | |
3664 | jnz no_save_coordinate_of_crossing |
- | |
3665 | - | ||
3666 | mov eax,[OldX] |
- | |
3667 | mov ebx,[OldY] |
- | |
3668 | - | ||
3669 | cmp eax,[rectangular_shade_x] |
- | |
3670 | jl no_remove_x |
- | |
3671 | mov ecx,[rectangular_shade_x] |
- | |
3672 | mov [OldX],ecx ; OldX <-----> rectangulare_shade_x |
- | |
3673 | mov [rectangular_shade_x],eax |
- | |
3674 | no_remove_x: |
- | |
3675 | - | ||
3676 | cmp ebx,[rectangular_shade_y] |
- | |
3677 | jl no_remove_y |
- | |
3678 | mov ecx,[rectangular_shade_y] |
- | |
3679 | mov [OldY],ecx ; OldY <-----> rectangulare_shade_y |
- | |
3680 | mov [rectangular_shade_y],ebx |
- | |
3681 | no_remove_y: |
- | |
3682 | - | ||
3683 | mov eax,[ScreenX] |
- | |
3684 | mov ebx,[ScreenY] |
- | |
3685 | add eax,[PosX] |
- | |
3686 | add ebx,[PosY] |
- | |
3687 | mov [crossing_old_x],eax |
- | |
3688 | mov [crossing_old_y],ebx |
- | |
3689 | mov [crossing],1 |
- | |
3690 | - | ||
3691 | - | ||
3692 | mov eax,[OldX] |
- | |
3693 | mov ebx,[OldY] |
- | |
3694 | inc eax |
- | |
3695 | inc ebx |
- | |
3696 | mov [SpriteCoordinatX],eax |
- | |
3697 | mov [SpriteCoordinatY],ebx |
- | |
3698 | mov [SpriteOldCoordinatX],eax |
- | |
3699 | mov [SpriteOldCoordinatY],ebx |
- | |
3700 | mov esi,[rectangular_shade_x] |
- | |
3701 | mov edi,[rectangular_shade_y] |
- | |
3702 | - | ||
3703 | sub esi,eax |
- | |
3704 | jns no_sign_sprite_size_x |
- | |
3705 | neg esi |
- | |
3706 | no_sign_sprite_size_x: |
- | |
3707 | - | ||
3708 | sub edi,ebx |
- | |
3709 | jns no_sign_sprite_size_y |
- | |
3710 | neg edi |
- | |
3711 | no_sign_sprite_size_y: |
- | |
3712 | - | ||
3713 | test esi,esi |
- | |
3714 | jnz no_null_sprite_x |
- | |
3715 | mov esi,1 |
- | |
3716 | no_null_sprite_x: |
- | |
3717 | - | ||
3718 | test edi,edi |
- | |
3719 | jnz no_null_sprite_y |
- | |
3720 | mov edi,1 |
- | |
3721 | no_null_sprite_y: |
- | |
3722 | - | ||
3723 | mov [SpriteSizeX],esi |
- | |
3724 | mov [SpriteSizeY],edi |
- | |
3725 | - | ||
3726 | call SaveFonForSprite |
- | |
3727 | - | ||
3728 | no_save_coordinate_of_crossing: |
- | |
3729 | - | ||
3730 | cmp [crossing],0 |
- | |
3731 | je no_test_crossing_with_work_arrea |
- | |
3732 | ;if mouse situatad after allocation than exit |
- | |
3733 | push [ScreenX] |
- | |
3734 | push [ScreenY] |
- | |
3735 | - | ||
3736 | call GetScreenCordinats |
- | |
3737 | - | ||
3738 | mov eax,[OldX] |
- | |
3739 | mov ebx,[OldY] |
- | |
3740 | mov ecx,[ScreenX] |
- | |
3741 | mov edx,[ScreenY] |
- | |
3742 | mov esi,[SpriteSizeX] |
- | |
3743 | mov edi,[SpriteSizeY] |
- | |
3744 | add ecx,[PosX] |
- | |
3745 | add edx,[PosY] |
- | |
3746 | inc esi;eax |
- | |
3747 | inc edi;ebx |
- | |
3748 | call columnus |
- | |
3749 | - | ||
3750 | test eax,eax |
- | |
3751 | jnz crossing_with_work_area |
- | |
3752 | mov [finishing_crossing],1 |
- | |
3753 | mov [register],1 |
- | |
3754 | crossing_with_work_area: |
- | |
3755 | - | ||
3756 | pop [ScreenY] |
- | |
3757 | pop [ScreenX] |
- | |
3758 | - | ||
3759 | no_test_crossing_with_work_arrea: |
- | |
3760 | - | ||
3761 | mov eax,[ScreenX] |
- | |
3762 | mov ebx,[ScreenY] |
- | |
3763 | add eax,[PosX] |
- | |
3764 | add ebx,[PosY] |
- | |
3765 | mov ecx,eax |
- | |
3766 | mov edx,ebx |
- | |
3767 | sub eax,[crossing_old_x] ;dx=(x-oldx) |
- | |
3768 | sub ebx,[crossing_old_y] ;dy=(y-oldy) |
- | |
3769 | mov [crossing_old_x],ecx |
- | |
3770 | mov [crossing_old_y],edx |
- | |
3771 | - | ||
3772 | add [OldX],eax ;x1=x1+dx |
- | |
3773 | add [OldY],ebx ;y1=y1+dy |
- | |
3774 | add [rectangular_shade_x],eax ;x2=x2+dx |
- | |
3775 | add [rectangular_shade_y],ebx ;y2+y2+dy |
- | |
3776 | - | ||
3777 | mov eax,[OldX] |
- | |
3778 | mov ebx,[OldY] |
- | |
3779 | inc eax |
- | |
3780 | inc ebx |
- | |
3781 | mov [SpriteCoordinatX],eax |
- | |
3782 | mov [SpriteCoordinatY],ebx |
- | |
3783 | - | ||
3784 | cmp [SpriteCoordinatX],0 |
- | |
3785 | jns no_null_sprite_coordinat_x |
- | |
3786 | mov [SpriteCoordinatX],1 |
- | |
3787 | no_null_sprite_coordinat_x: |
- | |
3788 | - | ||
3789 | cmp [SpriteCoordinatY],0 |
- | |
3790 | jns no_null_sprite_coordinat_y |
- | |
3791 | mov [SpriteCoordinatY],1 |
- | |
3792 | no_null_sprite_coordinat_y: |
- | |
3793 | - | ||
3794 | mov esi,[rectangular_shade_x] |
- | |
3795 | mov edi,[rectangular_shade_y] |
- | |
3796 | - | ||
3797 | sub esi,[OldX] |
- | |
3798 | jns no_znak_size_of_rectangulare_crossing_x |
- | |
3799 | neg esi |
- | |
3800 | no_znak_size_of_rectangulare_crossing_x: |
- | |
3801 | - | ||
3802 | sub edi,[OldY] |
- | |
3803 | jns no_znak_size_of_rectangulare_crossing_y |
- | |
3804 | neg edi |
- | |
3805 | no_znak_size_of_rectangulare_crossing_y: |
- | |
3806 | - | ||
3807 | mov ecx,[OldX] |
- | |
3808 | mov edx,[OldY] |
- | |
3809 | - | ||
3810 | sub ecx,[PosX] |
- | |
3811 | jns no_minimum_x_crossing |
- | |
3812 | mov ecx,0 |
- | |
3813 | add ecx,[PosX] |
- | |
3814 | mov [OldX],ecx |
- | |
3815 | add ecx,esi |
- | |
3816 | mov [rectangular_shade_x],ecx |
- | |
3817 | no_minimum_x_crossing: |
- | |
3818 | - | ||
3819 | sub edx,[PosY] |
- | |
3820 | jns no_minimum_y_crossing |
- | |
3821 | mov edx,0 |
- | |
3822 | add edx,[PosY] |
- | |
3823 | mov [OldY],edx |
- | |
3824 | add edx,edi |
- | |
3825 | mov [rectangular_shade_y],edx |
- | |
3826 | no_minimum_y_crossing: |
- | |
3827 | - | ||
3828 | mov ecx,[Picture_SizeX] |
- | |
3829 | sub ecx,esi |
- | |
3830 | cmp [OldX],ecx |
- | |
3831 | jl no_maximum_x_crossing |
- | |
3832 | dec ecx |
- | |
3833 | mov [OldX],ecx |
- | |
3834 | add ecx,esi |
- | |
3835 | mov [rectangular_shade_x],ecx |
- | |
3836 | no_maximum_x_crossing: |
- | |
3837 | - | ||
3838 | mov edx,[Picture_SizeY] |
- | |
3839 | sub edx,edi |
- | |
3840 | cmp [OldY],edx |
- | |
3841 | jl no_maximum_y_crossing |
- | |
3842 | dec edx |
- | |
3843 | mov [OldY],edx |
- | |
3844 | add edx,edi |
- | |
3845 | mov [rectangular_shade_y],edx |
- | |
3846 | no_maximum_y_crossing: |
- | |
3847 | - | ||
3848 | mov eax,[rectangular_shade_x] |
- | |
3849 | mov ebx,[rectangular_shade_y] |
- | |
3850 | sub eax,[PosX] |
- | |
3851 | sub ebx,[PosY] |
- | |
3852 | mov [ScreenX],eax |
- | |
3853 | mov [ScreenY],ebx |
- | |
3854 | no_change_coordinats: |
- | |
3855 | - | ||
3856 | ;put saved pixels |
- | |
3857 | mov ebx,[ReserveArray] |
- | |
3858 | mov eax,[ebx] |
- | |
3859 | test eax,eax |
- | |
3860 | jz no_put_line_to_screen_allocation |
- | |
3861 | mov ecx,[ebx] |
- | |
3862 | add ebx,4 |
- | |
3863 | xor ebp,ebp |
- | |
3864 | next_color_put_allocation: |
- | |
3865 | ;put saved pixels in ReserveArray |
- | |
3866 | push ecx |
- | |
3867 | and [counter2],0 |
- | |
3868 | mov edi,[ebx] |
- | |
3869 | push edi |
- | |
3870 | vertical_width_put_allocation: |
- | |
3871 | and [counter],0 |
- | |
3872 | - | ||
3873 | horizontal_width_put_allocation: |
- | |
3874 | mov edx,[ebx+4807*4+ebp] |
- | |
3875 | and edx,0xffffff |
- | |
3876 | mov [edi],dx |
- | |
3877 | shr edx,16 |
- | |
3878 | mov [edi+2],dl |
- | |
3879 | - | ||
3880 | add edi,3 |
- | |
3881 | add ebp,4 |
- | |
3882 | inc [counter] |
- | |
3883 | cmp [counter],1;5 |
- | |
3884 | jne horizontal_width_put_allocation |
- | |
3885 | - | ||
3886 | mov ecx,[Picture_SizeX] |
- | |
3887 | sub ecx,1;5 |
- | |
3888 | lea ecx,[ecx+ecx*2] |
- | |
3889 | add edi,ecx |
- | |
3890 | inc [counter2] |
- | |
3891 | cmp [counter2],1;5 |
- | |
3892 | jne vertical_width_put_allocation |
- | |
3893 | pop edi |
- | |
3894 | pop ecx |
- | |
3895 | add ebx,4 |
- | |
3896 | dec ecx |
- | |
3897 | jnz next_color_put_allocation |
- | |
3898 | - | ||
3899 | no_put_line_to_screen_allocation: |
- | |
3900 | - | ||
3901 | cmp [DrawSprite_flag],1 |
- | |
3902 | jne no_activate_put_fon_ |
- | |
3903 | - | ||
3904 | cmp [Paste_flag],1 |
- | |
3905 | je no_put_fon___ |
- | |
3906 | call PutFonForSprite |
- | |
3907 | no_put_fon___: |
- | |
3908 | and [Paste_flag],0 |
- | |
3909 | no_activate_put_fon_: |
- | |
3910 | - | ||
3911 | cmp [finishing_crossing],0 |
- | |
3912 | jz not_finish_from_instrument_crossing |
- | |
3913 | and [Activate_instrument],0 |
- | |
3914 | and [crossing],0 |
- | |
3915 | and [instrument_used],0 |
- | |
3916 | and [DrawSprite_flag],0 |
- | |
3917 | call MovePictureToWorkScreen |
- | |
3918 | jmp still |
- | |
3919 | not_finish_from_instrument_crossing: |
- | |
3920 | - | ||
3921 | ;calculate line |
- | |
3922 | mov ebx,[ReserveArray] |
- | |
3923 | add ebx,4 |
- | |
3924 | mov eax,[PointerToPicture] |
- | |
3925 | mov ecx,[Picture_SizeX] |
- | |
3926 | mov edx,[OldX] |
- | |
3927 | shl edx,16 |
- | |
3928 | add edx,[OldY] |
- | |
3929 | mov esi,[ScreenX] |
- | |
3930 | mov edi,[ScreenY] |
- | |
3931 | add esi,[PosX] |
- | |
3932 | add edi,[PosY] |
- | |
3933 | - | ||
3934 | mov ebp,[Picture_SizeX] |
- | |
3935 | dec ebp |
- | |
3936 | cmp esi,ebp |
- | |
3937 | jl no_minimum_x_allocation |
- | |
3938 | mov esi,ebp |
- | |
3939 | no_minimum_x_allocation: |
- | |
3940 | - | ||
3941 | mov ebp,[Picture_SizeY] |
- | |
3942 | dec ebp |
- | |
3943 | cmp edi,ebp |
- | |
3944 | jl no_minimum_y_allocation |
- | |
3945 | mov edi,ebp |
- | |
3946 | no_minimum_y_allocation: |
- | |
3947 | - | ||
3948 | call calculate_rectangle |
- | |
3949 | mov [counter],eax |
- | |
3950 | - | ||
3951 | ;save color pixels in ReserveArray |
- | |
3952 | mov eax,[counter] |
- | |
3953 | mov ebx,[ReserveArray] |
- | |
3954 | mov [ebx],eax |
- | |
3955 | - | ||
3956 | mov ecx,[ebx] |
- | |
3957 | add ebx,4 |
- | |
3958 | - | ||
3959 | xor ebp,ebp |
- | |
3960 | next_color_save_allocation: |
- | |
3961 | ;save color of pixel in ReserveArray |
- | |
3962 | push ecx |
- | |
3963 | and [counter2],0 |
- | |
3964 | mov edi,[ebx] |
- | |
3965 | vertical_width_save_allocation: |
- | |
3966 | and [counter],0 |
- | |
3967 | - | ||
3968 | horizontal_width_save_allocation: |
- | |
3969 | mov eax,edi |
- | |
3970 | mov edx,[eax] |
- | |
3971 | and edx,0xffffff |
- | |
3972 | mov [ebx+4807*4+ebp],dx |
- | |
3973 | shr edx,16 |
- | |
3974 | mov [ebx+4807*4+2+ebp],dl |
- | |
3975 | - | ||
3976 | add edi,3 |
- | |
3977 | add ebp,4 |
- | |
3978 | inc [counter] |
- | |
3979 | cmp [counter],1;5 |
- | |
3980 | jne horizontal_width_save_allocation |
- | |
3981 | - | ||
3982 | mov ecx,[Picture_SizeX] |
- | |
3983 | sub ecx,1;5 |
- | |
3984 | lea ecx,[ecx+ecx*2] |
- | |
3985 | add edi,ecx |
- | |
3986 | inc [counter2] |
- | |
3987 | cmp [counter2],1;5 |
- | |
3988 | jne vertical_width_save_allocation |
- | |
3989 | pop ecx |
- | |
3990 | add ebx,4 |
- | |
3991 | dec ecx |
- | |
3992 | jnz next_color_save_allocation |
- | |
3993 | - | ||
3994 | cmp [DrawSprite_flag],1 |
- | |
3995 | jne no_save_fon_for_sprite_ |
- | |
3996 | ;save current coordinats as old |
- | |
3997 | mov eax,[SpriteCoordinatX] |
- | |
3998 | mov ebx,[SpriteCoordinatY] |
- | |
3999 | mov [SpriteOldCoordinatX],eax |
- | |
4000 | mov [SpriteOldCoordinatY],ebx |
- | |
4001 | - | ||
4002 | call SaveFonForSprite |
- | |
4003 | - | ||
4004 | no_save_fon_for_sprite_: |
- | |
4005 | - | ||
4006 | ;draw calculated pixels on work arrea |
- | |
4007 | mov ebx,[ReserveArray] |
- | |
4008 | mov ecx,[ebx] |
- | |
4009 | add ebx,4 |
- | |
4010 | next_pixel_put_allocation: |
- | |
4011 | - | ||
4012 | mov edx,0x1f3fff |
- | |
4013 | mov esi,edx |
- | |
4014 | shr edx,16 |
- | |
4015 | - | ||
4016 | mov ebp,ecx |
- | |
4017 | and ebp,8 |
- | |
4018 | cmp ebp,8 |
- | |
4019 | jne black_color |
- | |
4020 | mov si,0xffff |
- | |
4021 | mov dl,0xff |
- | |
4022 | black_color: |
- | |
4023 | - | ||
4024 | mov eax,[ebx] |
- | |
4025 | mov [eax],si |
- | |
4026 | mov [eax+2],dl |
- | |
4027 | - | ||
4028 | add ebx,4 |
- | |
4029 | dec ecx |
- | |
4030 | jnz next_pixel_put_allocation |
- | |
4031 | - | ||
4032 | cmp [DrawSprite_flag],1 |
- | |
4033 | jne no_activate_draw_sprite_ |
- | |
4034 | - | ||
4035 | call DrawSprite |
- | |
4036 | - | ||
4037 | no_activate_draw_sprite_: |
- | |
4038 | - | ||
4039 | mov al,[instrument_used] |
- | |
4040 | test al,al |
- | |
4041 | jz no_change_coordinats |
- | |
4042 | cmp [Activate_instrument],0 |
- | |
4043 | jz no_save_shades |
- | |
4044 | mov eax,[ScreenX] |
- | |
4045 | mov ebx,[ScreenY] |
- | |
4046 | add eax,[PosX] |
- | |
4047 | add ebx,[PosY] |
- | |
4048 | mov [rectangular_shade_x],eax |
- | |
4049 | mov [rectangular_shade_y],ebx |
- | |
4050 | no_save_shades: |
- | |
4051 | - | ||
4052 | call MovePictureToWorkScreen |
- | |
4053 | jmp still |
- | |
4054 | no_allocation: |
- | |
4055 | - | ||
4056 | ;*************reflection from left to right****************** |
- | |
4057 | cmp eax,35 |
- | |
4058 | jne no_reflection_from_left_to_right |
- | |
4059 | - | ||
4060 | mov ebp,[PointerToPicture] |
- | |
4061 | mov edx,[ReserveArray] |
- | |
4062 | mov esi,[Picture_SizeX] |
- | |
4063 | mov ebx,[Picture_SizeX] |
- | |
4064 | lea ebx,[ebx+ebx*2] |
- | |
4065 | shr esi,1 |
- | |
4066 | next_line_reflection_x: |
- | |
4067 | ;copy vertical line to array |
- | |
4068 | mov ecx,[Picture_SizeX] |
- | |
4069 | shr ecx,1 |
- | |
4070 | sub ecx,esi |
- | |
4071 | lea ecx,[ecx+ecx*2] |
- | |
4072 | add ecx,[PointerToPicture] |
- | |
4073 | mov edx,[ReserveArray] |
- | |
4074 | and edi,0 |
- | |
4075 | copy_to_array_line_reflection_y: |
- | |
4076 | xor eax,eax |
- | |
4077 | mov eax,[ecx] |
- | |
4078 | mov ebp,edi |
- | |
4079 | lea ebp,[ebp+ebp*2] |
- | |
4080 | mov [edx+ebp],ax |
- | |
4081 | shr eax,16 |
- | |
4082 | mov [edx+ebp+2],al |
- | |
4083 | add ecx,ebx |
- | |
4084 | inc edi |
- | |
4085 | cmp edi,[Picture_SizeY] |
- | |
4086 | jne copy_to_array_line_reflection_y |
- | |
4087 | - | ||
4088 | mov ecx,[Picture_SizeX] |
- | |
4089 | shr ecx,1 |
- | |
4090 | mov ebp,ecx |
- | |
4091 | add ecx,esi |
- | |
4092 | dec ecx |
- | |
4093 | lea ecx,[ecx+ecx*2] |
- | |
4094 | add ecx,[PointerToPicture] |
- | |
4095 | sub ebp,esi |
- | |
4096 | lea ebp,[ebp+ebp*2] |
- | |
4097 | add ebp,[PointerToPicture] |
- | |
4098 | and edi,0 |
- | |
4099 | next_line_reflection_y: |
- | |
4100 | mov eax,[ecx] |
- | |
4101 | and eax,0xffffff |
- | |
4102 | mov [ebp],ax |
- | |
4103 | shr eax,16 |
- | |
4104 | mov [ebp+2],al |
- | |
4105 | add ebp,ebx |
- | |
4106 | add ecx,ebx |
- | |
4107 | inc edi |
- | |
4108 | cmp edi,[Picture_SizeY] |
- | |
4109 | jnz next_line_reflection_y |
- | |
4110 | - | ||
4111 | ;copy vertical line from array to screen |
- | |
4112 | mov ecx,[Picture_SizeX] |
- | |
4113 | shr ecx,1 |
- | |
4114 | add ecx,esi |
- | |
4115 | dec ecx |
- | |
4116 | lea ecx,[ecx+ecx*2] |
- | |
4117 | add ecx,[PointerToPicture] |
- | |
4118 | mov edx,[ReserveArray] |
- | |
4119 | and edi,0 |
- | |
4120 | copy_from_array_to_screen_reflection_y: |
- | |
4121 | mov ebp,edi |
- | |
4122 | lea ebp,[ebp+ebp*2] |
- | |
4123 | xor eax,eax |
- | |
4124 | mov eax,[edx+ebp] |
- | |
4125 | mov [ecx],ax |
- | |
4126 | shr eax,16 |
- | |
4127 | mov [ecx+2],al |
- | |
4128 | add ecx,ebx |
- | |
4129 | inc edi |
- | |
4130 | cmp edi,[Picture_SizeY] |
- | |
4131 | jne copy_from_array_to_screen_reflection_y |
- | |
4132 | - | ||
4133 | dec esi |
- | |
4134 | jnz next_line_reflection_x |
- | |
4135 | - | ||
4136 | call MovePictureToWorkScreen |
- | |
4137 | jmp still |
- | |
4138 | no_reflection_from_left_to_right: |
- | |
4139 | - | ||
4140 | ;*************reflection from up to down****************** |
- | |
4141 | cmp eax,36 |
- | |
4142 | jne no_reflection_from_up_to_down |
- | |
4143 | mov esi,[Picture_SizeX] |
- | |
4144 | mov edi,esi |
- | |
4145 | lea esi,[esi+esi*2] |
- | |
4146 | lea edi,[edi+edi*2] |
- | |
4147 | imul edi,[Picture_SizeY] |
- | |
4148 | mov edx,[ReserveArray] |
- | |
4149 | mov ecx,[Picture_SizeY] |
- | |
4150 | shr ecx,1 |
- | |
4151 | add edi,[PointerToPicture] |
- | |
4152 | sub edi,esi |
- | |
4153 | mov ebp,[PointerToPicture] |
- | |
4154 | next_lines_reflection: |
- | |
4155 | ;copy line |
- | |
4156 | xor ebx,ebx |
- | |
4157 | copy_line_1: |
- | |
4158 | xor eax,eax |
- | |
4159 | mov al,[edi+ebx] |
- | |
4160 | mov [edx+ebx],al |
- | |
4161 | inc ebx |
- | |
4162 | cmp ebx,esi |
- | |
4163 | jne copy_line_1 |
- | |
4164 | - | ||
4165 | xor ebx,ebx |
- | |
4166 | copy_line_2: |
- | |
4167 | xor eax,eax |
- | |
4168 | mov al,[ebp+ebx] |
- | |
4169 | mov [edi+ebx],al |
- | |
4170 | inc ebx |
- | |
4171 | cmp ebx,esi |
- | |
4172 | jne copy_line_2 |
- | |
4173 | - | ||
4174 | xor ebx,ebx |
- | |
4175 | copy_line_3: |
- | |
Line 4176... | Line -... | ||
4176 | xor eax,eax |
- | |
4177 | mov al,[edx+ebx] |
- | |
4178 | mov [ebp+ebx],al |
- | |
4179 | inc ebx |
- | |
4180 | cmp ebx,esi |
- | |
4181 | jne copy_line_3 |
- | |
4182 | - | ||
4183 | add ebp,esi |
- | |
4184 | sub edi,esi |
- | |
4185 | dec ecx |
- | |
4186 | jnz next_lines_reflection |
- | |
4187 | - | ||
4188 | call MovePictureToWorkScreen |
- | |
4189 | jmp still |
- | |
4190 | no_reflection_from_up_to_down: |
- | |
4191 | - | ||
4192 | ;*********************draw hard contour******************* |
- | |
4193 | cmp eax,38 |
- | |
4194 | jne no_kontur_ |
- | |
4195 | - | ||
4196 | mov al,[Activate_instrument] |
- | |
4197 | test al,al |
- | |
4198 | jnz no_new_konture_xy |
- | |
4199 | - | ||
4200 | mov al,[instrument_used] |
- | |
4201 | test al,al |
- | |
4202 | jz instrument_not_used |
- | |
4203 | mov eax,[used_OldX] |
- | |
4204 | mov ebx,[used_OldY] |
- | |
4205 | mov [OldX],eax |
- | |
4206 | mov [OldY],ebx |
- | |
4207 | jmp exit_used_instrument |
- | |
4208 | instrument_not_used: |
- | |
4209 | - | ||
4210 | mov eax,[ScreenX] |
- | |
4211 | mov ebx,[ScreenY] |
- | |
4212 | add eax,[PosX] |
- | |
4213 | add ebx,[PosY] |
- | |
4214 | mov [OldX],eax |
- | |
4215 | mov [OldY],ebx |
- | |
4216 | exit_used_instrument: |
- | |
4217 | - | ||
4218 | mov al,[instrument_used] |
- | |
4219 | test al,al |
- | |
4220 | jnz instrument_used_true |
- | |
4221 | mov [instrument_used],byte 1 |
- | |
4222 | instrument_used_true: |
- | |
4223 | - | ||
4224 | mov [Activate_instrument],1 |
- | |
4225 | mov eax,[ReserveArray] |
- | |
4226 | mov ecx,60000 |
- | |
4227 | clear_array_konture: |
- | |
4228 | mov [eax],dword 0 |
- | |
4229 | add eax,4 |
- | |
4230 | dec ecx |
- | |
4231 | jnz clear_array_line |
- | |
4232 | - | ||
4233 | no_new_konture_xy: |
- | |
4234 | - | ||
4235 | ;put saved pixels |
- | |
4236 | mov ebx,[ReserveArray] |
- | |
4237 | mov eax,[ebx] |
- | |
4238 | test eax,eax |
- | |
4239 | jz no_put_line_to_screen_konture |
- | |
4240 | mov ecx,[ebx] |
- | |
4241 | add ebx,4 |
- | |
4242 | xor ebp,ebp |
- | |
4243 | next_color_put_konture: |
- | |
4244 | ;put saved pixels in ReserveArray |
- | |
4245 | push ecx |
- | |
4246 | and [counter2],0 |
- | |
4247 | mov edi,[ebx] |
- | |
4248 | push edi |
- | |
4249 | vertical_width_put_konture: |
- | |
4250 | and [counter],0 |
- | |
4251 | - | ||
4252 | horizontal_width_put_konture: |
- | |
4253 | mov edx,[ebx+4807*4+ebp] |
- | |
4254 | and edx,0xffffff |
- | |
4255 | mov [edi],dx |
- | |
4256 | shr edx,16 |
- | |
4257 | mov [edi+2],dl |
- | |
4258 | - | ||
4259 | add edi,3 |
- | |
4260 | add ebp,4 |
- | |
4261 | inc [counter] |
- | |
4262 | cmp [counter],5 |
- | |
4263 | jne horizontal_width_put_konture |
- | |
4264 | - | ||
4265 | mov ecx,[Picture_SizeX] |
- | |
4266 | sub ecx,5 |
- | |
4267 | lea ecx,[ecx+ecx*2] |
- | |
4268 | add edi,ecx |
- | |
4269 | inc [counter2] |
- | |
4270 | cmp [counter2],5 |
- | |
4271 | jne vertical_width_put_konture |
- | |
4272 | pop edi |
- | |
4273 | pop ecx |
- | |
4274 | add ebx,4 |
- | |
4275 | dec ecx |
- | |
4276 | jnz next_color_put_konture |
- | |
4277 | - | ||
4278 | no_put_line_to_screen_konture: |
- | |
4279 | - | ||
4280 | ;calculate line |
- | |
4281 | mov ebx,[ReserveArray] |
- | |
4282 | add ebx,4 |
- | |
4283 | mov eax,[PointerToPicture] |
- | |
4284 | mov ecx,[Picture_SizeX] |
- | |
4285 | mov edx,[OldX] |
- | |
4286 | shl edx,16 |
- | |
4287 | add edx,[OldY] |
- | |
4288 | mov esi,[ScreenX] |
- | |
4289 | mov edi,[ScreenY] |
- | |
4290 | add esi,[PosX] |
- | |
4291 | add edi,[PosY] |
- | |
4292 | - | ||
4293 | mov ebp,[Picture_SizeX] |
- | |
4294 | sub ebp,[line_width] |
- | |
4295 | cmp esi,ebp |
- | |
4296 | jl no_minimum_x_konture |
- | |
4297 | mov esi,ebp |
- | |
4298 | no_minimum_x_konture: |
- | |
4299 | - | ||
4300 | mov ebp,[Picture_SizeY] |
- | |
4301 | sub ebp,[line_width] |
- | |
4302 | cmp edi,ebp |
- | |
4303 | jl no_minimum_y_konture |
- | |
4304 | mov edi,ebp |
- | |
4305 | no_minimum_y_konture: |
- | |
4306 | - | ||
4307 | call calculate_line |
- | |
4308 | ;call calculate_rectangle |
- | |
4309 | mov [counter],eax |
- | |
4310 | - | ||
4311 | ;save color pixels in ReserveArray |
- | |
4312 | mov eax,[counter] |
- | |
4313 | mov ebx,[ReserveArray] |
- | |
4314 | mov [ebx],eax |
- | |
4315 | - | ||
4316 | mov ecx,[ebx] |
- | |
4317 | add ebx,4 |
- | |
4318 | - | ||
4319 | xor ebp,ebp |
- | |
4320 | next_color_save_konture: |
- | |
4321 | ;save color of pixel in ReserveArray |
- | |
4322 | push ecx |
- | |
4323 | and [counter2],0 |
- | |
4324 | mov edi,[ebx] |
- | |
4325 | vertical_width_save_konture: |
- | |
4326 | and [counter],0 |
- | |
4327 | - | ||
4328 | horizontal_width_save_konture: |
- | |
4329 | mov eax,edi |
- | |
4330 | mov edx,[eax] |
- | |
4331 | and edx,0xffffff |
- | |
4332 | mov [ebx+4807*4+ebp],dx |
- | |
4333 | shr edx,16 |
- | |
4334 | mov [ebx+4807*4+2+ebp],dl |
- | |
4335 | - | ||
4336 | add edi,3 |
- | |
4337 | add ebp,4 |
- | |
4338 | inc [counter] |
- | |
4339 | cmp [counter],5 |
- | |
4340 | jne horizontal_width_save_konture |
- | |
4341 | - | ||
4342 | mov ecx,[Picture_SizeX] |
- | |
4343 | sub ecx,5 |
- | |
4344 | lea ecx,[ecx+ecx*2] |
- | |
4345 | add edi,ecx |
- | |
4346 | inc [counter2] |
- | |
4347 | cmp [counter2],5 |
- | |
4348 | jne vertical_width_save_konture |
- | |
4349 | pop ecx |
- | |
4350 | add ebx,4 |
- | |
4351 | dec ecx |
- | |
4352 | jnz next_color_save_konture |
- | |
4353 | - | ||
4354 | ;draw calculated pixels on work arrea |
- | |
4355 | mov ebx,[ReserveArray] |
- | |
4356 | mov ecx,[ebx] |
- | |
4357 | mov edx,[Color] |
- | |
4358 | mov esi,[Color] |
- | |
4359 | shr edx,16 |
- | |
4360 | add ebx,4 |
- | |
4361 | mov edi,[line_width] |
- | |
4362 | dec edi |
- | |
4363 | imul edi,25 |
- | |
4364 | next_pixel_put_konture: |
- | |
4365 | - | ||
4366 | mov eax,[ebx] |
- | |
4367 | push eax |
- | |
4368 | push ecx |
- | |
4369 | xor ebp,ebp |
- | |
4370 | and [counter2],0 |
69 | ;---------------------------------------------------------- |
4371 | - | ||
4372 | vertical_width_konture: |
- | |
4373 | and [counter],0 |
- | |
4374 | - | ||
4375 | horizontal_width_konture: |
- | |
4376 | xor ecx,ecx |
- | |
4377 | mov cl,byte[width_pixels+edi+ebp] |
- | |
4378 | test cl,cl |
- | |
4379 | jz no_draw_pixel_konture |
- | |
4380 | mov [eax],si |
- | |
4381 | mov [eax+2],dl |
- | |
4382 | no_draw_pixel_konture: |
- | |
4383 | add eax,3 |
- | |
4384 | inc ebp |
- | |
4385 | inc [counter] |
- | |
4386 | cmp [counter],5 |
- | |
4387 | jne horizontal_width_konture |
- | |
4388 | - | ||
4389 | mov ecx,[Picture_SizeX] |
- | |
4390 | sub ecx,5 |
- | |
4391 | lea ecx,[ecx+ecx*2] |
- | |
4392 | add eax,ecx |
- | |
4393 | inc [counter2] |
- | |
4394 | cmp [counter2],5 |
- | |
4395 | jne vertical_width_konture |
- | |
4396 | - | ||
4397 | pop ecx |
- | |
4398 | pop eax |
- | |
4399 | add ebx,4 |
- | |
4400 | dec ecx |
- | |
4401 | jnz next_pixel_put_konture |
- | |
4402 | - | ||
4403 | mov eax,[ScreenX] |
- | |
4404 | mov ebx,[ScreenY] |
- | |
4405 | add eax,[PosX] |
- | |
4406 | add ebx,[PosY] |
- | |
4407 | mov [used_OldX],eax |
- | |
4408 | mov [used_OldY],ebx |
- | |
4409 | - | ||
4410 | call MovePictureToWorkScreen |
- | |
4411 | - | ||
4412 | jmp still |
- | |
4413 | - | ||
4414 | no_kontur_: |
- | |
4415 | ;************************Draw ellips*********************** |
- | |
4416 | cmp eax,39 |
- | |
4417 | jne no_ellips |
- | |
4418 | - | ||
4419 | mov al,[Activate_instrument] |
- | |
4420 | test al,al |
- | |
4421 | jnz no_new_ellips_xy |
- | |
4422 | mov eax,[ScreenX] |
- | |
4423 | mov ebx,[ScreenY] |
- | |
4424 | add eax,[PosX] |
- | |
4425 | add ebx,[PosY] |
- | |
Line 4426... | Line -... | ||
4426 | mov [OldX],eax |
- | |
4427 | mov [OldY],ebx |
- | |
4428 | mov [Activate_instrument],1 |
- | |
4429 | mov eax,[ReserveArray] |
- | |
4430 | mov ecx,60000 |
- | |
4431 | clear_array_ellips: |
- | |
4432 | mov [eax],dword 0 |
- | |
4433 | add eax,4 |
- | |
4434 | dec ecx |
- | |
4435 | jnz clear_array_ellips |
- | |
4436 | jmp still |
- | |
4437 | no_new_ellips_xy: |
- | |
4438 | - | ||
4439 | ;put saved pixels |
- | |
4440 | mov ebx,[ReserveArray] |
- | |
4441 | mov eax,[ebx] |
- | |
4442 | test eax,eax |
- | |
4443 | jz no_put_line_to_screen_ellips |
- | |
4444 | mov ecx,[ebx] |
- | |
4445 | add ebx,4 |
- | |
4446 | xor ebp,ebp |
- | |
4447 | next_color_put_ellips: |
- | |
4448 | ;put saved pixels in ReserveArray |
- | |
4449 | push ecx |
- | |
4450 | and [counter2],0 |
- | |
4451 | mov edi,[ebx] |
- | |
4452 | push edi |
- | |
4453 | vertical_width_put_ellips: |
- | |
4454 | and [counter],0 |
- | |
4455 | - | ||
4456 | horizontal_width_put_ellips: |
- | |
4457 | mov edx,[ebx+4807*4+ebp] |
- | |
4458 | and edx,0xffffff |
- | |
4459 | mov [edi],dx |
- | |
4460 | shr edx,16 |
- | |
4461 | mov [edi+2],dl |
- | |
4462 | - | ||
4463 | add edi,3 |
- | |
4464 | add ebp,4 |
- | |
4465 | inc [counter] |
- | |
4466 | cmp [counter],5 |
- | |
4467 | jne horizontal_width_put_ellips |
- | |
4468 | - | ||
4469 | mov ecx,[Picture_SizeX] |
- | |
4470 | sub ecx,5 |
- | |
4471 | lea ecx,[ecx+ecx*2] |
- | |
4472 | add edi,ecx |
- | |
4473 | inc [counter2] |
- | |
4474 | cmp [counter2],5 |
- | |
4475 | jne vertical_width_put_ellips |
- | |
4476 | pop edi |
- | |
4477 | pop ecx |
- | |
4478 | add ebx,4 |
- | |
4479 | dec ecx |
- | |
4480 | jnz next_color_put_ellips |
- | |
4481 | - | ||
4482 | no_put_line_to_screen_ellips: |
- | |
4483 | - | ||
4484 | mov esi,[ScreenX] |
- | |
4485 | mov edi,[ScreenY] |
- | |
4486 | add esi,[PosX] |
- | |
4487 | add edi,[PosY] |
- | |
4488 | - | ||
4489 | sub esi,[OldX] |
- | |
4490 | jns no_sign_x_ellips |
- | |
4491 | neg esi |
- | |
4492 | shr esi,1 |
- | |
4493 | neg esi |
- | |
4494 | add esi,[OldX] |
- | |
4495 | jmp no_plus_sign_x_ellips |
- | |
4496 | no_sign_x_ellips: |
- | |
4497 | - | ||
4498 | shr esi,1 |
- | |
4499 | add esi,[OldX] |
- | |
4500 | no_plus_sign_x_ellips: |
- | |
4501 | - | ||
4502 | sub edi,[OldY] |
- | |
4503 | jns no_sign_y_ellips |
- | |
4504 | neg edi |
- | |
4505 | shr edi,1 |
- | |
4506 | neg edi |
- | |
4507 | add edi,[OldY] |
- | |
4508 | jmp no_plus_sign_y_ellips |
- | |
4509 | no_sign_y_ellips: |
- | |
4510 | - | ||
4511 | shr edi,1 |
- | |
4512 | add edi,[OldY] |
- | |
4513 | no_plus_sign_y_ellips: |
- | |
4514 | - | ||
4515 | mov [x],esi |
- | |
4516 | mov [y],edi |
- | |
4517 | - | ||
4518 | mov esi,[ScreenX] |
- | |
4519 | mov edi,[ScreenY] |
- | |
4520 | add esi,[PosX] |
- | |
4521 | add edi,[PosY] |
- | |
4522 | - | ||
4523 | sub esi,[OldX] |
- | |
4524 | jns no_sign_x_ellips_r |
- | |
4525 | neg esi |
- | |
4526 | no_sign_x_ellips_r: |
- | |
4527 | - | ||
4528 | sub edi,[OldY] |
- | |
4529 | jns no_sign_y_ellips_r |
- | |
4530 | neg edi |
- | |
4531 | no_sign_y_ellips_r: |
- | |
4532 | - | ||
4533 | cmp edi,0 |
- | |
4534 | jnz no_null_a_ellips |
- | |
4535 | mov edi,1 |
- | |
4536 | no_null_a_ellips: |
- | |
4537 | - | ||
4538 | shr esi,1 |
- | |
4539 | shr edi,1 |
- | |
4540 | mov [a_ellips],esi |
- | |
4541 | mov [b_ellips],edi |
- | |
4542 | - | ||
4543 | mov edi,[x] |
- | |
4544 | mov ebp,[y] |
- | |
4545 | add edi,esi |
- | |
4546 | add ebp,esi |
- | |
4547 | - | ||
4548 | mov edx,[Picture_SizeX] |
- | |
4549 | sub edx,[line_width] |
- | |
4550 | cmp edi,edx |
- | |
4551 | jl no_limit_x_ellips |
- | |
4552 | sub edi,edx |
- | |
4553 | sub [a_ellips],edi |
- | |
4554 | no_limit_x_ellips: |
- | |
4555 | - | ||
4556 | mov edx,[Picture_SizeY] |
- | |
4557 | sub edx,[line_width] |
- | |
4558 | cmp ebp,edx |
- | |
4559 | jl no_limit_y_ellips |
- | |
4560 | sub ebp,edx |
- | |
4561 | sub [b_ellips],ebp |
- | |
4562 | no_limit_y_ellips: |
- | |
4563 | - | ||
4564 | - | ||
4565 | mov edi,[x] |
- | |
4566 | mov ebp,[y] |
- | |
4567 | - | ||
4568 | sub edi,[a_ellips] |
- | |
4569 | jns no_minimum_x_ellips |
- | |
4570 | add [a_ellips],edi |
- | |
4571 | no_minimum_x_ellips: |
- | |
4572 | - | ||
4573 | sub ebp,[b_ellips] |
- | |
4574 | jns no_minimum_y_ellips |
- | |
4575 | add [b_ellips],ebp |
- | |
4576 | no_minimum_y_ellips: |
- | |
4577 | - | ||
4578 | ;calculate circle |
- | |
4579 | mov ebx,[ReserveArray] |
- | |
4580 | add ebx,4 |
- | |
4581 | mov eax,[PointerToPicture] |
- | |
4582 | mov ecx,[Picture_SizeX] |
- | |
4583 | mov edx,[x] |
- | |
4584 | shl edx,16 |
- | |
4585 | add edx,[y] |
- | |
4586 | mov esi,[a_ellips] |
- | |
4587 | shl esi,16 |
- | |
4588 | add esi,[b_ellips] |
- | |
4589 | call calculate_ellips |
- | |
4590 | - | ||
4591 | mov [counter],eax |
- | |
4592 | - | ||
4593 | ;save color pixels in ReserveArray |
- | |
4594 | mov eax,[counter] |
- | |
4595 | mov ebx,[ReserveArray] |
- | |
4596 | mov [ebx],eax |
- | |
4597 | - | ||
4598 | mov ecx,[ebx] |
- | |
4599 | add ebx,4 |
- | |
4600 | - | ||
4601 | xor ebp,ebp |
- | |
4602 | next_color_save_ellips: |
- | |
4603 | ;save color of pixel in ReserveArray |
- | |
4604 | push ecx |
- | |
4605 | and [counter2],0 |
- | |
4606 | mov edi,[ebx] |
- | |
4607 | vertical_width_save_ellips: |
- | |
4608 | and [counter],0 |
- | |
4609 | - | ||
4610 | horizontal_width_save_ellips: |
- | |
4611 | mov eax,edi |
- | |
4612 | mov edx,[eax] |
- | |
4613 | and edx,0xffffff |
- | |
4614 | mov [ebx+4807*4+ebp],dx |
- | |
4615 | shr edx,16 |
- | |
4616 | mov [ebx+4807*4+2+ebp],dl |
- | |
4617 | - | ||
4618 | add edi,3 |
- | |
4619 | add ebp,4 |
- | |
4620 | inc [counter] |
- | |
4621 | cmp [counter],5 |
- | |
4622 | jne horizontal_width_save_ellips |
- | |
4623 | - | ||
4624 | mov ecx,[Picture_SizeX] |
- | |
4625 | sub ecx,5 |
- | |
4626 | lea ecx,[ecx+ecx*2] |
- | |
4627 | add edi,ecx |
- | |
4628 | inc [counter2] |
- | |
4629 | cmp [counter2],5 |
- | |
4630 | jne vertical_width_save_ellips |
- | |
4631 | pop ecx |
- | |
4632 | add ebx,4 |
- | |
4633 | dec ecx |
- | |
4634 | jnz next_color_save_ellips |
- | |
4635 | - | ||
4636 | ;draw calculated pixels on work arrea |
- | |
4637 | mov ebx,[ReserveArray] |
- | |
4638 | mov ecx,[ebx] |
- | |
4639 | mov edx,[Color] |
- | |
4640 | mov esi,[Color] |
- | |
4641 | shr edx,16 |
- | |
4642 | add ebx,4 |
- | |
4643 | mov edi,[line_width] |
- | |
4644 | dec edi |
- | |
4645 | imul edi,25 |
- | |
4646 | next_pixel_put_ellips: |
- | |
4647 | - | ||
4648 | mov eax,[ebx] |
- | |
4649 | push eax |
- | |
4650 | push ecx |
- | |
4651 | xor ebp,ebp |
- | |
4652 | and [counter2],0 |
70 | |
4653 | 71 | still: |
|
4654 | vertical_width_ellips: |
- | |
4655 | and [counter],0 |
- | |
4656 | - | ||
4657 | horizontal_width_ellips: |
- | |
4658 | xor ecx,ecx |
- | |
4659 | mov cl,byte[width_pixels+edi+ebp] |
- | |
4660 | test cl,cl |
- | |
4661 | jz no_draw_pixel_ellips |
- | |
4662 | mov [eax],si |
- | |
4663 | mov [eax+2],dl |
- | |
4664 | no_draw_pixel_ellips: |
- | |
4665 | add eax,3 |
- | |
4666 | inc ebp |
- | |
4667 | inc [counter] |
- | |
4668 | cmp [counter],5 |
- | |
4669 | jne horizontal_width_ellips |
- | |
4670 | - | ||
Line 4671... | Line -... | ||
4671 | mov ecx,[Picture_SizeX] |
- | |
4672 | sub ecx,5 |
72 | |
4673 | lea ecx,[ecx+ecx*2] |
73 | call event |
Line 4674... | Line -... | ||
4674 | add eax,ecx |
- | |
4675 | inc [counter2] |
74 | |
4676 | cmp [counter2],5 |
- | |
4677 | jne vertical_width_ellips |
- | |
4678 | - | ||
4679 | pop ecx |
- | |
4680 | pop eax |
- | |
4681 | add ebx,4 |
- | |
4682 | dec ecx |
- | |
4683 | jnz next_pixel_put_ellips |
- | |
4684 | - | ||
4685 | call MovePictureToWorkScreen |
- | |
4686 | jmp still |
- | |
4687 | no_ellips: |
- | |
4688 | - | ||
4689 | ;*************************Line width 1********************* |
- | |
4690 | cmp eax,41 |
- | |
4691 | jne no_line_width_1 |
- | |
4692 | mov [line_width],1 |
- | |
4693 | jmp still |
- | |
4694 | no_line_width_1: |
- | |
4695 | ;*************************Line width 2********************* |
- | |
4696 | cmp eax,42 |
- | |
4697 | jne no_line_width_2 |
- | |
4698 | mov [line_width],2 |
- | |
4699 | jmp still |
- | |
4700 | no_line_width_2: |
- | |
4701 | ;*************************Line width 3********************* |
- | |
4702 | cmp eax,43 |
75 | cmp eax,1 |
4703 | jne no_line_width_3 |
- | |
Line 4704... | Line 76... | ||
4704 | mov [line_width],3 |
76 | jne no_redraw_window |
4705 | jmp still |
- | |
4706 | no_line_width_3: |
- | |
4707 | ;*************************Line width 4********************* |
- | |
4708 | cmp eax,44 |
- | |
4709 | jne no_line_width_4 |
- | |
4710 | mov [line_width],4 |
- | |
4711 | jmp still |
- | |
4712 | no_line_width_4: |
- | |
4713 | ;*************************Line width 5********************* |
- | |
4714 | cmp eax,45 |
- | |
4715 | jne no_line_width_5 |
- | |
4716 | mov [line_width],5 |
- | |
4717 | jmp still |
- | |
4718 | no_line_width_5: |
- | |
4719 | - | ||
4720 | jmp still |
- | |
4721 | ret |
- | |
4722 | ;----------------------------------------------------------- |
- | |
4723 | ;-----------calculate cordinats on work picture-------------- |
- | |
4724 | ;----------------------------------------------------------- |
- | |
4725 | GetScreenCordinats: |
- | |
4726 | - | ||
4727 | mov eax,[MouseX] |
- | |
4728 | mov ebx,[MouseY] |
- | |
4729 | sub eax,9 |
- | |
4730 | sub ebx,83 |
- | |
4731 | - | ||
4732 | mov ecx,[k] |
- | |
4733 | cdq |
- | |
4734 | idiv ecx |
- | |
4735 | mov [ScreenX],eax |
- | |
4736 | mov eax,ebx |
- | |
4737 | cdq |
- | |
4738 | idiv ecx |
- | |
4739 | mov [ScreenY],eax |
- | |
4740 | - | ||
4741 | ret |
- | |
4742 | ;----------------------------------------------------------- |
- | |
4743 | ;------------------SaveFonForSprite------------------------- |
- | |
4744 | ;----------------------------------------------------------- |
- | |
4745 | SaveFonForSprite: |
- | |
4746 | - | ||
4747 | mov edi,[PointerToSpriteBufer] |
- | |
4748 | mov ecx,[SpriteSizeX] |
- | |
4749 | mov edx,[Picture_SizeX] |
- | |
4750 | sub edx,[SpriteSizeX] |
- | |
4751 | mov esi,[SpriteCoordinatY] |
- | |
4752 | imul esi,[Picture_SizeX] |
- | |
4753 | add esi,[SpriteCoordinatX] |
- | |
4754 | lea edx,[edx+edx*2] |
- | |
4755 | lea esi,[esi+esi*2] |
- | |
4756 | add esi,[PointerToPicture] |
- | |
4757 | mov ebx,[SpriteSizeY] |
- | |
4758 | mov [counter],ecx |
- | |
4759 | - | ||
4760 | next_line_sprite_save: |
- | |
4761 | mov ecx,[counter] |
- | |
4762 | - | ||
4763 | next_pixel_sprite_save: |
- | |
4764 | mov eax,[esi] |
- | |
4765 | and eax,0xffffff |
- | |
4766 | mov [edi],ax |
- | |
4767 | shr eax,16 |
- | |
4768 | mov [edi+2],al |
- | |
4769 | add esi,3 |
- | |
4770 | add edi,3 |
- | |
4771 | dec ecx |
- | |
4772 | jnz next_pixel_sprite_save |
- | |
4773 | - | ||
4774 | add esi,edx |
- | |
4775 | dec ebx |
- | |
4776 | jnz next_line_sprite_save |
- | |
4777 | - | ||
4778 | ret |
- | |
4779 | ;----------------------------------------------------------- |
- | |
4780 | ;-------------------PutFonForSprite------------------------- |
- | |
4781 | ;----------------------------------------------------------- |
- | |
4782 | PutFonForSprite: |
- | |
4783 | - | ||
4784 | mov esi,[PointerToSpriteBufer] |
- | |
4785 | mov ecx,[SpriteSizeX] |
- | |
4786 | mov edx,[Picture_SizeX] |
- | |
4787 | sub edx,[SpriteSizeX] |
- | |
4788 | mov edi,[SpriteOldCoordinatY] |
- | |
4789 | imul edi,[Picture_SizeX] |
- | |
4790 | add edi,[SpriteOldCoordinatX] |
- | |
4791 | lea edx,[edx+edx*2] |
- | |
4792 | lea edi,[edi+edi*2] |
- | |
4793 | add edi,[PointerToPicture] |
- | |
4794 | mov ebx,[SpriteSizeY] |
- | |
4795 | mov [counter],ecx |
- | |
4796 | - | ||
4797 | next_line_sprite_put: |
- | |
4798 | mov ecx,[counter] |
- | |
4799 | - | ||
4800 | next_pixel_sprite_put: |
77 | |
4801 | mov eax,[esi] |
- | |
4802 | and eax,0xffffff |
78 | call drawwin |
4803 | mov [edi],ax |
- | |
4804 | shr eax,16 |
- | |
4805 | mov [edi+2],al |
- | |
4806 | add esi,3 |
- | |
4807 | add edi,3 |
- | |
4808 | dec ecx |
- | |
4809 | jnz next_pixel_sprite_put |
- | |
4810 | - | ||
4811 | add edi,edx |
- | |
4812 | dec ebx |
- | |
4813 | jnz next_line_sprite_put |
- | |
4814 | - | ||
4815 | ret |
- | |
4816 | ;----------------------------------------------------------- |
- | |
4817 | ;------------------DrawFonForSprite------------------------- |
- | |
4818 | ;----------------------------------------------------------- |
- | |
4819 | DrawSprite: |
- | |
4820 | - | ||
4821 | mov esi,[PointerToEditBufer] |
- | |
4822 | mov ecx,[SpriteSizeX] |
- | |
4823 | mov edx,[Picture_SizeX] |
- | |
4824 | sub edx,[SpriteSizeX] |
- | |
4825 | mov edi,[SpriteCoordinatY] |
- | |
4826 | imul edi,[Picture_SizeX] |
- | |
4827 | add edi,[SpriteCoordinatX] |
- | |
4828 | lea edx,[edx+edx*2] |
- | |
4829 | lea edi,[edi+edi*2] |
- | |
4830 | add edi,[PointerToPicture] |
- | |
4831 | mov ebx,[SpriteSizeY] |
- | |
4832 | mov [counter],ecx |
- | |
4833 | - | ||
4834 | next_line_sprite_draw: |
- | |
4835 | mov ecx,[counter] |
- | |
4836 | - | ||
4837 | next_pixel_sprite_draw: |
79 | jmp still |
4838 | mov eax,[esi] |
- | |
4839 | and eax,0xffffff |
- | |
4840 | mov [edi],ax |
- | |
4841 | shr eax,16 |
- | |
4842 | mov [edi+2],al |
- | |
4843 | add esi,3 |
- | |
4844 | add edi,3 |
- | |
4845 | dec ecx |
- | |
4846 | jnz next_pixel_sprite_draw |
- | |
4847 | - | ||
4848 | add edi,edx |
- | |
4849 | dec ebx |
- | |
4850 | jnz next_line_sprite_draw |
- | |
4851 | - | ||
4852 | ret |
- | |
4853 | ;----------------------------------------------------------- |
- | |
4854 | ;-------find simvole in string------------------------------ |
- | |
4855 | ;----------------------------------------------------------- |
- | |
4856 | find_symvol: |
- | |
4857 | ;eax,string |
- | |
4858 | ;ebx,symvol |
- | |
4859 | mov esi,eax |
- | |
4860 | next_symvol: |
- | |
4861 | xor ecx,ecx |
- | |
4862 | mov cl,[eax] |
- | |
4863 | cmp cl,bl |
- | |
4864 | je symvol_fined |
- | |
4865 | inc eax |
- | |
4866 | jmp next_symvol |
- | |
4867 | - | ||
4868 | symvol_fined: |
- | |
4869 | sub eax,esi |
- | |
4870 | ret |
- | |
4871 | ;----------------------------------------------------------- |
- | |
4872 | ;--------load file in memory-------------------------------- |
- | |
4873 | ;----------------------------------------------------------- |
- | |
4874 | load_file: |
- | |
4875 | mov eax,58 |
- | |
4876 | mov ebx,file_info |
- | |
4877 | int 0x40 |
- | |
4878 | test eax,eax |
- | |
4879 | jnz no_open_ |
- | |
4880 | mov [length_file],ebx |
- | |
4881 | shr ebx,9 |
- | |
4882 | inc ebx |
- | |
4883 | mov [file_info+8],ebx |
- | |
4884 | mov eax,58 |
- | |
4885 | mov ebx,file_info |
- | |
4886 | int 0x40 |
- | |
4887 | no_open_: |
- | |
4888 | ret |
- | |
4889 | ;----------------------------------------------------------- |
- | |
4890 | ;---load icons in memory and draw icons on panel----------- |
- | |
4891 | ;----------------------------------------------------------- |
- | |
4892 | load_icons: |
- | |
4893 | mov esi,panel_picture |
- | |
4894 | mov edi,[ScreenPointer] |
- | |
4895 | mov eax,edi |
- | |
4896 | add edi,(1200*1000*3) |
- | |
4897 | call ReadGIF |
- | |
4898 | - | ||
4899 | ret |
- | |
4900 | - | ||
4901 | draw_icons: |
- | |
4902 | mov [Icon_X],10 |
- | |
4903 | mov [Icon_Y],20+15+4 |
- | |
4904 | and [counter],0 |
- | |
4905 | next_icon: |
- | |
4906 | mov eax,8 |
- | |
4907 | mov ebx,[Icon_X] |
- | |
4908 | mov ecx,[Icon_Y] |
- | |
4909 | dec ebx |
- | |
4910 | dec ecx |
- | |
4911 | shl ebx,16 |
- | |
4912 | shl ecx,16 |
- | |
4913 | add ebx,20 |
- | |
4914 | add ecx,20 |
- | |
Line 4915... | Line 80... | ||
4915 | mov edx,[counter] |
80 | |
4916 | add edx,10 |
81 | no_redraw_window: |
4917 | add edx,1000000000000000000000000000000b |
82 | |
4918 | int 0x40 |
83 | cmp eax,2 |
4919 | 84 | je keys |
|
4920 | 85 | ||
4921 | mov edx,[Icon_X] |
86 | cmp eax,3 |
4922 | shl edx,16 |
87 | je buttons |
4923 | add edx,[Icon_Y] |
- | |
4924 | mov ebx,[counter] |
- | |
4925 | imul ebx,20*20*3 |
88 | |
4926 | add ebx,[ScreenPointer] |
89 | cmp eax,6 |
4927 | add ebx,(1200*1000*3)+12 |
90 | je mouse |
4928 | mov eax,7 |
91 | |
4929 | mov ecx,20*65536+20 |
- | |
4930 | int 0x40 |
- | |
4931 | 92 | jmp still |
|
4932 | add [Icon_X],25 |
93 | ;--------------------------------------------------------- |
4933 | cmp [Icon_X],10+25*15 |
- | |
4934 | jl no_next_line_icons |
- | |
4935 | mov [Icon_X],10 |
- | |
4936 | mov [Icon_Y],20+15+4+22 |
- | |
4937 | no_next_line_icons: |
- | |
4938 | inc [counter] |
94 | ;--------------------------------------------------------- |
4939 | cmp [counter],30 |
95 | ;--------------------------------------------------------- |
4940 | jl next_icon |
- | |
4941 | - | ||
4942 | and [counter],0 |
- | |
Line 4943... | Line -... | ||
4943 | mov [Icon_X],475 |
- | |
4944 | mov [Icon_Y],20+15+7 |
- | |
4945 | next_button_line: |
- | |
4946 | - | ||
4947 | mov eax,8 |
- | |
4948 | mov ebx,[Icon_X] |
- | |
4949 | mov ecx,[Icon_Y] |
- | |
4950 | dec ebx |
- | |
4951 | dec ecx |
- | |
4952 | shl ebx,16 |
- | |
4953 | shl ecx,16 |
- | |
4954 | add ebx,10 |
- | |
4955 | add ecx,35 |
- | |
4956 | mov edx,[counter] |
- | |
4957 | add edx,40 |
- | |
4958 | add edx,1000000000000000000000000000000b |
- | |
4959 | int 0x40 |
- | |
4960 | 96 | ||
4961 | mov eax,13 |
97 | include 'events.inc' |
4962 | mov ebx,[Icon_X] |
98 | include 'events_of_window.inc' |
4963 | mov ecx,[Icon_Y] |
- | |
4964 | add ebx,4 |
- | |
4965 | shl ebx,16 |
- | |
4966 | shl ecx,16 |
- | |
4967 | add ebx,[counter] |
- | |
4968 | add ecx,35 |
- | |
4969 | ;xor edx,edx |
- | |
4970 | mov edx,0xb1d8ff |
- | |
4971 | int 0x40 |
- | |
4972 | - | ||
4973 | add [Icon_X],15 |
- | |
4974 | inc [counter] |
- | |
4975 | cmp [counter],5 |
- | |
4976 | jle next_button_line |
- | |
4977 | ret |
- | |
4978 | ;----------------------------------------------------------- |
- | |
4979 | ;calculate position work screen on a picture |
- | |
4980 | ;----------------------------------------------------------- |
- | |
4981 | CalculatePositionScreen: |
- | |
4982 | - | ||
4983 | mov eax,[Picture_SizeX] |
- | |
4984 | mov ebx,[Picture_SizeY] |
- | |
4985 | mov ecx,[CounterX] |
- | |
4986 | mov edx,[CounterY] |
- | |
4987 | sub eax,ecx |
- | |
4988 | sub ebx,edx |
- | |
4989 | - | ||
4990 | cmp [PosX],eax |
- | |
Line 4991... | Line -... | ||
4991 | jle no_limit_screen_x |
- | |
4992 | mov [PosX],eax |
- | |
4993 | no_limit_screen_x: |
- | |
4994 | - | ||
4995 | cmp [PosY],ebx |
99 | include 'events_of_keys.inc' |
Line 4996... | Line -... | ||
4996 | jle no_limit_screen_y |
- | |
4997 | mov [PosY],ebx |
- | |
4998 | no_limit_screen_y: |
- | |
4999 | - | ||
5000 | cmp [PosX],0 |
- | |
5001 | jns no_minimum_screen_x |
- | |
5002 | mov [PosX],0 |
- | |
5003 | no_minimum_screen_x: |
- | |
5004 | - | ||
5005 | cmp [PosY],0 |
- | |
5006 | jns no_minimum_screen_y |
- | |
5007 | mov [PosY],0 |
- | |
5008 | no_minimum_screen_y: |
- | |
5009 | - | ||
5010 | ret |
- | |
5011 | ;----------------------------------------------------------- |
- | |
5012 | ;-------analizing picture to palette------------------------ |
- | |
5013 | ;----------------------------------------------------------- |
- | |
5014 | analizing_picture_to_palette: |
- | |
5015 | - | ||
5016 | mov eax,[Picture_SizeX] |
- | |
5017 | mov ebx,[Picture_SizeY] |
- | |
5018 | imul eax,ebx |
- | |
5019 | mov ecx,eax |
- | |
5020 | mov edx,[PointerToPicture] |
- | |
5021 | mov esi,1 ;counter colors in palette |
- | |
5022 | - | ||
5023 | ;put firs color of picture how one color in palette |
- | |
5024 | mov ebp,[PointerToPalette] |
- | |
5025 | mov eax,[edx] |
100 | include 'events_of_buttons.inc' |
5026 | and eax,0xffffff |
- | |
5027 | mov [ebp],eax |
- | |
5028 | - | ||
5029 | analizing_to_palette: |
- | |
5030 | mov eax,[edx] |
- | |
5031 | and eax,0xffffff |
- | |
5032 | - | ||
5033 | mov edi,esi |
- | |
5034 | mov ebp,[PointerToPalette] |
- | |
5035 | next_color_in_palette: |
- | |
5036 | mov ebx,[ebp] |
- | |
5037 | and ebx,0xffffff |
- | |
5038 | cmp ebx,eax ;this is color have in palette |
- | |
5039 | je exit_loop_palette |
- | |
5040 | add ebp,4 |
- | |
5041 | dec edi |
- | |
5042 | jnz next_color_in_palette |
- | |
5043 | - | ||
5044 | inc esi |
- | |
5045 | cmp esi,256 ;256 colors |
- | |
5046 | ja more_than_256_colors |
- | |
5047 | mov ebp,[PointerToPalette] |
- | |
5048 | mov ebx,esi |
- | |
5049 | dec ebx |
- | |
5050 | shl ebx,2 |
- | |
5051 | add ebp,ebx |
- | |
5052 | mov [ebp],ax |
- | |
5053 | shr eax,16 |
- | |
5054 | mov [ebp+2],al |
- | |
5055 | - | ||
5056 | exit_loop_palette: |
- | |
5057 | - | ||
5058 | add edx,3 |
- | |
5059 | dec ecx |
- | |
5060 | jnz analizing_to_palette |
- | |
5061 | - | ||
5062 | - | ||
Line 5063... | Line 101... | ||
5063 | more_than_256_colors: |
101 | include 'events_of_mouse.inc' |
5064 | mov eax,esi |
- | |
5065 | ret |
- | |
5066 | ;--------------------------------------------------------- |
- | |
5067 | ;---------------SOUND of EVENTS--------------------------- |
- | |
5068 | ;--------------------------------------------------------- |
102 | include 'panel_engen.inc' |
Line 5069... | Line 103... | ||
5069 | sound: |
103 | include 'screen.inc' |
5070 | mov eax,55 |
104 | include 'menu_instruments.inc' |
5071 | mov ebx,eax |
105 | include 'icons_instruments.inc' |
5072 | int 0x40 |
106 | include 'icons.inc' |
- | 107 | include 'sprites.inc' |
|
5073 | ret |
108 | include 'string.inc' |
5074 | ;---------------------------------------------------------- |
109 | include 'palette.inc' |
5075 | ;-------------file info structure-------------------------- |
110 | include 'files.inc' |
5076 | ;---------------------------------------------------------- |
111 | include 'time.inc' |
5077 | file_info: |
112 | include 'memory.inc' |
Line 5102... | Line 137... | ||
5102 | Color dd 0 |
137 | Color dd 0 |
5103 | Number_Brush dd 0 |
138 | Number_Brush dd 0 |
5104 | Brush_SizeX dd 0 |
139 | Brush_SizeX dd 0 |
5105 | Brush_SizeY dd 0 |
140 | Brush_SizeY dd 0 |
5106 | Current_instrument dd 0 |
141 | Current_instrument dd 0 |
- | 142 | Last_instrument dd 0 |
|
5107 | Activate_instrument db 0 |
143 | Activate_instrument db 0 |
5108 | SColor dd 0 |
144 | SColor dd 0 |
5109 | OldX dd 0 |
145 | OldX dd 0 |
5110 | OldY dd 0 |
146 | OldY dd 0 |
Line 5192... | Line 228... | ||
5192 | SpriteSizeY dd 0 |
228 | SpriteSizeY dd 0 |
5193 | SpriteCoordinatX dd 0 |
229 | SpriteCoordinatX dd 0 |
5194 | SpriteCoordinatY dd 0 |
230 | SpriteCoordinatY dd 0 |
5195 | SpriteOldCoordinatX dd 0 |
231 | SpriteOldCoordinatX dd 0 |
5196 | SpriteOldCoordinatY dd 0 |
232 | SpriteOldCoordinatY dd 0 |
5197 | ;********************************************************** |
- | |
5198 | ;------------------TEXT DATA------------------------------- |
- | |
5199 | ;********************************************************** |
- | |
5200 | name_of_program db 'Graphics editor < |
- | |
5201 | mouse_pos_x db 'X=' |
- | |
5202 | mouse_pos_y db 'Y=' |
- | |
5203 | new_text1 db 'PICTURE SIZE X' |
- | |
5204 | new_text2 db 'PICTURE SIZE Y' |
- | |
5205 | ok_text db 'OK' |
- | |
5206 | - | ||
5207 | panel_text dd 15,24,4 |
- | |
5208 | db 'FILE' |
- | |
5209 | dd 95,24,4 |
- | |
5210 | db 'EDIT' |
- | |
5211 | dd 175,24,11 |
- | |
5212 | db 'INSTRUMENTS' |
- | |
5213 | dd 255,24,7 |
- | |
5214 | db 'PALETTE' |
- | |
5215 | dd 335,24,7 |
- | |
5216 | db 'FILTERS' |
- | |
5217 | dd 415,24,9 |
- | |
5218 | db 'ANIMATION' |
- | |
5219 | dd 495,24,4 |
- | |
5220 | db 'HELP' |
- | |
5221 | menu_text_en: |
- | |
5222 | dd menu_text7 |
- | |
5223 | dd menu_text6 |
- | |
5224 | dd menu_text5 |
- | |
5225 | dd menu_text4 |
- | |
5226 | dd menu_text3 |
- | |
5227 | dd menu_text2 |
- | |
5228 | dd menu_text1 |
- | |
5229 | dd 0,0,0 |
- | |
5230 | - | ||
5231 | menu_rectangles dd 485,36,100,100 |
- | |
5232 | dd 405,36,100,100 |
- | |
5233 | dd 325,36,100,100 |
- | |
5234 | dd 245,36,100,100 |
- | |
5235 | dd 165,36,100,100 |
- | |
5236 | dd 85,36,100,100;20 |
- | |
5237 | dd 5,36,100,100 |
- | |
5238 | - | ||
5239 | - | ||
5240 | menu_text1: |
- | |
5241 | dd 15,45,3 |
- | |
5242 | db 'NEW' |
- | |
5243 | dd 15,65,4 |
- | |
5244 | db 'OPEN' |
- | |
5245 | dd 15,85,4 |
- | |
5246 | db 'SAVE' |
- | |
5247 | dd 15,105,7 |
- | |
5248 | db 'SAVE AS' |
- | |
5249 | dd 15,125,4 |
- | |
5250 | db 'EXIT' |
- | |
5251 | - | ||
5252 | menu_text2: |
- | |
5253 | dd 95,45,4 |
- | |
5254 | db 'UNDO' |
- | |
5255 | dd 95,65,4 |
- | |
5256 | db 'COPY' |
- | |
5257 | dd 95,85,5 |
- | |
5258 | db 'PASTE' |
- | |
5259 | dd 95,105,3 |
- | |
5260 | db 'CUT' |
- | |
5261 | dd 95,125,13 |
- | |
5262 | db 'CLEARE SCREEN' |
- | |
5263 | ;dd 95,145,12 |
- | |
5264 | ;db 'ALLOCATE ALL' |
- | |
5265 | menu_text3: |
- | |
5266 | dd 175,45,3 |
- | |
5267 | db 0,0,0;'PENCIL' |
- | |
5268 | dd 175,65,3 |
- | |
5269 | db 0,0,0;'BRUSHES' |
- | |
5270 | dd 175,85,3 |
- | |
5271 | db 0,0,0;'COLORS' |
- | |
5272 | dd 175,105,3 |
- | |
5273 | db 0,0,0;'PIPETKA' |
- | |
5274 | menu_text4: |
- | |
5275 | dd 255,45,1 |
- | |
5276 | db 0,0,0 |
- | |
5277 | menu_text5: |
- | |
5278 | dd 335,45,1 |
- | |
5279 | db 0,0,0 |
- | |
5280 | menu_text6: |
- | |
5281 | dd 415,45,1 |
- | |
5282 | db 0,0,0 |
- | |
5283 | menu_text7: |
- | |
5284 | dd 495,45,1 |
- | |
5285 | db 0,0,0,0 |
- | |
5286 | - | ||
5287 | - | ||
5288 | menu_counters: |
- | |
5289 | dd 1,1,1,1,1,5,5 |
- | |
5290 | - | ||
5291 | ;---------------------------------------------------------- |
- | |
5292 | palitra: ;three bytes for one color |
- | |
5293 | db 0,0,0,0,0,0,128,0 |
- | |
5294 | db 0,128,0,0,0,128,128,0 |
- | |
5295 | db 128,0,0,0,128,0,128,0 |
- | |
5296 | db 128,128,0,0,128,128,128,0 |
- | |
5297 | db 192,220,192,0,240,202,166,0 |
- | |
5298 | db 170,63,42,0,255,63,42,0 |
- | |
5299 | db 0,95,42,0,85,95,42,0 |
- | |
5300 | db 170,95,42,0,255,95,42,0 |
- | |
5301 | db 0,127,42,0,85,127,42,0 |
- | |
5302 | db 170,127,42,0,255,127,42,0 |
- | |
5303 | db 0,159,42,0,85,159,42,0 |
- | |
5304 | db 170,159,42,0,255,159,42,0 |
- | |
5305 | db 0,191,42,0,85,191,42,0 |
- | |
5306 | db 170,191,42,0,255,191,42,0 |
- | |
5307 | db 0,223,42,0,85,223,42,0 |
- | |
5308 | db 170,223,42,0,255,223,42,0 |
- | |
5309 | db 0,255,42,0,85,255,42,0 |
- | |
5310 | db 170,255,42,0,255,255,42,0 |
- | |
5311 | db 0,0,85,0,85,0,85,0 |
- | |
5312 | db 170,0,85,0,255,0,85,0 |
- | |
5313 | db 0,31,85,0,85,31,85,0 |
- | |
5314 | db 170,31,85,0,255,31,85,0 |
- | |
5315 | db 0,63,85,0,85,63,85,0 |
- | |
5316 | db 170,63,85,0,255,63,85,0 |
- | |
5317 | db 0,95,85,0,85,95,85,0 |
- | |
5318 | db 170,95,85,0,255,95,85,0 |
- | |
5319 | db 0,127,85,0,85,127,85,0 |
- | |
5320 | db 170,127,85,0,255,127,85,0 |
- | |
5321 | db 0,159,85,0,85,159,85,0 |
- | |
5322 | db 170,159,85,0,255,159,85,0 |
- | |
5323 | db 0,191,85,0,85,191,85,0 |
- | |
5324 | db 170,191,85,0,255,191,85,0 |
- | |
5325 | db 0,223,85,0,85,223,85,0 |
- | |
5326 | db 170,223,85,0,255,223,85,0 |
- | |
5327 | db 0,255,85,0,85,255,85,0 |
- | |
5328 | db 170,255,85,0,255,255,85,0 |
- | |
5329 | db 0,0,127,0,85,0,127,0 |
- | |
5330 | db 170,0,127,0,255,0,127,0 |
- | |
5331 | db 0,31,127,0,85,31,127,0 |
- | |
5332 | db 170,31,127,0,255,31,127,0 |
- | |
5333 | db 0,63,127,0,85,63,127,0 |
- | |
5334 | db 170,63,127,0,255,63,127,0 |
- | |
5335 | db 0,95,127,0,85,95,127,0 |
- | |
5336 | db 170,95,127,0,255,95,127,0 |
- | |
5337 | db 0,127,127,0,85,127,127,0 |
- | |
5338 | db 170,127,127,0,255,127,127,0 |
- | |
5339 | db 0,159,127,0,85,159,127,0 |
- | |
5340 | db 170,159,127,0,255,159,127,0 |
- | |
5341 | db 0,191,127,0,85,191,127,0 |
- | |
5342 | db 170,191,127,0,255,191,127,0 |
- | |
5343 | db 0,223,127,0,85,223,127,0 |
- | |
5344 | db 170,223,127,0,255,223,127,0 |
- | |
5345 | db 0,255,127,0,85,255,127,0 |
- | |
5346 | db 170,255,127,0,255,255,127,0 |
- | |
5347 | db 0,0,170,0,85,0,170,0 |
- | |
5348 | db 170,0,170,0,255,0,170,0 |
- | |
5349 | db 0,31,170,0,85,31,170,0 |
- | |
5350 | db 170,31,170,0,255,31,170,0 |
- | |
5351 | db 0,63,170,0,85,63,170,0 |
- | |
5352 | db 170,63,170,0,255,63,170,0 |
- | |
5353 | db 0,95,170,0,85,95,170,0 |
- | |
5354 | db 170,95,170,0,255,95,170,0 |
- | |
5355 | db 0,127,170,0,85,127,170,0 |
- | |
5356 | db 170,127,170,0,255,127,170,0 |
- | |
5357 | db 0,159,170,0,85,159,170,0 |
- | |
5358 | db 170,159,170,0,255,159,170,0 |
- | |
5359 | db 0,191,170,0,85,191,170,0 |
- | |
5360 | db 170,191,170,0,255,191,170,0 |
- | |
5361 | db 0,223,170,0,85,223,170,0 |
- | |
5362 | db 170,223,170,0,255,223,170,0 |
- | |
5363 | db 0,255,170,0,85,255,170,0 |
- | |
5364 | db 170,255,170,0,255,255,170,0 |
- | |
5365 | db 0,0,212,0,85,0,212,0 |
- | |
5366 | db 170,0,212,0,255,0,212,0 |
- | |
5367 | db 0,31,212,0,85,31,212,0 |
- | |
5368 | db 170,31,212,0,255,31,212,0 |
- | |
5369 | db 0,63,212,0,85,63,212,0 |
- | |
5370 | db 170,63,212,0,255,63,212,0 |
- | |
5371 | db 0,95,212,0,85,95,212,0 |
- | |
5372 | db 170,95,212,0,255,95,212,0 |
- | |
5373 | db 0,127,212,0,85,127,212,0 |
- | |
5374 | db 170,127,212,0,255,127,212,0 |
- | |
5375 | db 0,159,212,0,85,159,212,0 |
- | |
5376 | db 170,159,212,0,255,159,212,0 |
- | |
5377 | db 0,191,212,0,85,191,212,0 |
- | |
5378 | db 170,191,212,0,255,191,212,0 |
- | |
5379 | db 0,223,212,0,85,223,212,0 |
- | |
5380 | db 170,223,212,0,255,223,212,0 |
- | |
5381 | db 0,255,212,0,85,255,212,0 |
- | |
5382 | db 170,255,212,0,255,255,212,0 |
- | |
5383 | db 85,0,255,0,170,0,255,0 |
- | |
5384 | db 0,31,255,0,85,31,255,0 |
- | |
5385 | db 170,31,255,0,255,31,255,0 |
- | |
5386 | db 0,63,255,0,85,63,255,0 |
- | |
5387 | db 170,63,255,0,255,63,255,0 |
- | |
5388 | db 0,95,255,0,85,95,255,0 |
- | |
5389 | db 170,95,255,0,255,95,255,0 |
- | |
5390 | db 0,127,255,0,85,127,255,0 |
- | |
5391 | db 170,127,255,0,255,127,255,0 |
- | |
5392 | db 0,159,255,0,85,159,255,0 |
- | |
5393 | db 170,159,255,0,255,159,255,0 |
- | |
5394 | db 0,191,255,0,85,191,255,0 |
- | |
5395 | db 170,191,255,0,255,191,255,0 |
- | |
5396 | db 0,223,255,0,85,223,255,0 |
- | |
5397 | db 170,223,255,0,255,223,255,0 |
- | |
5398 | db 85,255,255,0,170,255,255,0 |
- | |
5399 | db 255,204,204,0,255,204,255,0 |
- | |
5400 | db 255,255,51,0,255,255,102,0 |
- | |
5401 | db 255,255,153,0,255,255,204,0 |
- | |
5402 | db 0,127,0,0,85,127,0,0 |
- | |
5403 | db 170,127,0,0,255,127,0,0 |
- | |
5404 | db 0,159,0,0,85,159,0,0 |
- | |
5405 | db 170,159,0,0,255,159,0,0 |
- | |
5406 | db 0,191,0,0,85,191,0,0 |
- | |
5407 | db 170,191,0,0,255,191,0,0 |
- | |
5408 | db 0,223,0,0,85,223,0,0 |
- | |
5409 | db 170,223,0,0,255,223,0,0 |
- | |
5410 | db 85,255,0,0,170,255,0,0 |
- | |
5411 | db 0,0,42,0,85,0,42,0 |
- | |
5412 | db 170,0,42,0,255,0,42,0 |
- | |
5413 | db 0,31,42,0,85,31,42,0 |
- | |
5414 | db 170,31,42,0,255,31,42,0 |
- | |
5415 | db 0,63,42,0,170,174,160,0 |
- | |
5416 | db 240,251,255,0,164,160,160,0 |
- | |
5417 | db 128,128,128,0,0,0,255,0 |
- | |
5418 | db 0,255,0,0,0,255,255,0 |
- | |
5419 | db 255,0,0,0,255,0,255,0 |
- | |
5420 | db 255,255,0,0xff,0xff,0xff,0xff |
- | |
5421 | ;---------------------------------------------------------- |
- | |
5422 | ;--------------------COLOR BRUSHES------------------------- |
- | |
5423 | ;---------------------------------------------------------- |
- | |
5424 | Brush_color: |
- | |
5425 | ; |
- | |
5426 | db 0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5427 | db 1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5428 | db 1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5429 | db 0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5430 | db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5431 | db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5432 | db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5433 | db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5434 | db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5435 | db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5436 | db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5437 | db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5438 | db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5439 | db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5440 | db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5441 | db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5442 | db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5443 | db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5444 | db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5445 | db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5446 | - | ||
5447 | ; |
- | |
5448 | db 0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5449 | db 0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5450 | db 1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5451 | db 1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5452 | db 0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5453 | db 0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5454 | db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5455 | db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5456 | db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5457 | db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5458 | db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5459 | db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5460 | db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5461 | db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5462 | db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5463 | db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5464 | db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5465 | db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5466 | db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5467 | db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5468 | db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5469 | - | ||
5470 | ; |
- | |
5471 | db 0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5472 | db 0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5473 | db 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5474 | db 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5475 | db 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5476 | db 0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5477 | db 0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5478 | db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5479 | db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5480 | db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5481 | db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5482 | db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5483 | db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5484 | db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5485 | db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5486 | db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5487 | db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5488 | db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5489 | db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5490 | db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5491 | - | ||
5492 | ; |
- | |
5493 | db 0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5494 | db 0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0 |
- | |
5495 | db 0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0 |
- | |
5496 | db 0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0 |
- | |
5497 | db 0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0 |
- | |
5498 | db 1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0 |
- | |
5499 | db 1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0 |
- | |
5500 | db 1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0 |
- | |
5501 | db 1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0 |
- | |
5502 | db 0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0 |
- | |
5503 | db 0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0 |
- | |
5504 | db 0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0 |
- | |
5505 | db 0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0 |
- | |
5506 | db 0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5507 | db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5508 | db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5509 | db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5510 | db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5511 | db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5512 | db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5513 | - | ||
5514 | ; |
- | |
5515 | db 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5516 | db 0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5517 | db 0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5518 | db 0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5519 | db 0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5520 | db 0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5521 | db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5522 | db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5523 | db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5524 | db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5525 | db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5526 | db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5527 | db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5528 | db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5529 | db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5530 | db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5531 | db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5532 | db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5533 | db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5534 | db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5535 | - | ||
5536 | ; |
- | |
5537 | db 0 |
- | |
5538 | ;------------------------------------------ |
- | |
5539 | Spray_color: |
- | |
5540 | ; |
- | |
5541 | db 0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0 |
- | |
5542 | db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5543 | db 0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5544 | db 0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5545 | db 0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5546 | db 0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5547 | db 0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5548 | db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5549 | db 0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5550 | db 0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5551 | db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5552 | db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5553 | db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5554 | db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5555 | db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5556 | db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5557 | db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5558 | db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5559 | db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5560 | db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5561 | ; |
- | |
5562 | db 0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0 |
- | |
5563 | db 0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 |
- | |
5564 | db 0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5565 | db 0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 |
- | |
5566 | db 0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0 |
- | |
5567 | db 0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5568 | db 0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0 |
- | |
5569 | db 0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5570 | db 0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0 |
- | |
5571 | db 0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0 |
- | |
5572 | db 0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0 |
- | |
5573 | db 0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0 |
- | |
5574 | db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5575 | db 0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 |
- | |
5576 | db 0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 |
- | |
5577 | db 0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0 |
- | |
5578 | db 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0 |
- | |
5579 | db 0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0 |
- | |
5580 | db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5581 | db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5582 | ; |
- | |
5583 | db 0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5584 | db 0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0 |
- | |
5585 | db 0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0 |
- | |
5586 | db 0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0 |
- | |
5587 | db 0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0 |
- | |
5588 | db 1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0 |
- | |
5589 | db 1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0 |
- | |
5590 | db 1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0 |
- | |
5591 | db 1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0 |
- | |
5592 | db 0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0 |
- | |
5593 | db 0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0 |
- | |
5594 | db 0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0 |
- | |
5595 | db 0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0 |
- | |
5596 | db 0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5597 | db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5598 | db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5599 | db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5600 | db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5601 | db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5602 | db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
- | |
5603 | - | ||
5604 | ;------------------------------------------ |
- | |
5605 | width_pixels: |
- | |
5606 | - | ||
5607 | db 1,0,0,0,0 |
- | |
5608 | db 0,0,0,0,0 |
- | |
5609 | db 0,0,0,0,0 |
- | |
5610 | db 0,0,0,0,0 |
- | |
5611 | db 0,0,0,0,0 |
- | |
5612 | ; |
- | |
5613 | db 1,1,0,0,0 |
- | |
5614 | db 1,1,0,0,0 |
- | |
5615 | db 0,0,0,0,0 |
- | |
5616 | db 0,0,0,0,0 |
- | |
5617 | db 0,0,0,0,0 |
- | |
5618 | ; |
- | |
5619 | db 0,1,0,0,0 |
- | |
5620 | db 1,1,1,0,0 |
- | |
5621 | db 0,1,0,0,0 |
- | |
5622 | db 0,0,0,0,0 |
- | |
5623 | db 0,0,0,0,0 |
- | |
5624 | ; |
- | |
5625 | db 0,1,1,0,0 |
- | |
5626 | db 1,1,1,1,0 |
- | |
5627 | db 1,1,1,1,0 |
- | |
5628 | db 0,1,1,0,0 |
- | |
5629 | db 0,0,0,0,0 |
- | |
5630 | ; |
- | |
5631 | db 0,0,1,0,0 |
- | |
5632 | db 0,1,1,1,0 |
- | |
5633 | db 1,1,1,1,1 |
- | |
5634 | db 0,1,1,1,0 |
- | |
5635 | db 0,0,1,0,0 |
- | |
5636 | ;----------------------------------------- |
- | |
5637 | width_pixels_rectangle: |
- | |
5638 | - | ||
5639 | db 1,0,0,0,0 |
- | |
5640 | db 0,0,0,0,0 |
- | |
5641 | db 0,0,0,0,0 |
- | |
5642 | db 0,0,0,0,0 |
- | |
5643 | db 0,0,0,0,0 |
- | |
5644 | ; |
- | |
5645 | db 1,1,0,0,0 |
- | |
5646 | db 1,1,0,0,0 |
- | |
5647 | db 0,0,0,0,0 |
- | |
5648 | db 0,0,0,0,0 |
- | |
5649 | db 0,0,0,0,0 |
- | |
5650 | ; |
- | |
5651 | db 1,1,1,0,0 |
- | |
5652 | db 1,1,1,0,0 |
- | |
5653 | db 1,1,1,0,0 |
- | |
5654 | db 0,0,0,0,0 |
- | |
5655 | db 0,0,0,0,0 |
- | |
5656 | ; |
- | |
5657 | db 1,1,1,1,0 |
- | |
5658 | db 1,1,1,1,0 |
- | |
5659 | db 1,1,1,1,0 |
- | |
5660 | db 1,1,1,1,0 |
- | |
5661 | db 0,0,0,0,0 |
- | |
5662 | ; |
- | |
5663 | db 1,1,1,1,1 |
- | |
5664 | db 1,1,1,1,1 |
- | |
5665 | db 1,1,1,1,1 |
- | |
5666 | db 1,1,1,1,1 |
- | |
5667 | db 1,1,1,1,1 |
- | |
Line -... | Line 233... | ||
- | 233 | ||
- | 234 | include 'panel_data.inc' |
|
- | 235 | include 'palitra256.inc' |
|
- | 236 | include 'brushes.inc' |
|
- | 237 | include 'spray.inc' |
|
5668 | 238 | include 'width_lines.inc' |
|
5669 | ;---------------------------------------------------------- |
239 | ;---------------------------------------------------------- |
5670 | ;-------------------ICON"S picture------------------------- |
240 | ;-------------------ICON"S picture------------------------- |
- | 241 | ;---------------------------------------------------------- |
|
- | 242 | dd 0 |
|
5671 | ;---------------------------------------------------------- |
243 | |
- | 244 | panel_picture: |
|
- | 245 | file 'panel_buttons.gif' |
|
- | 246 | ||
- | 247 | ;****************cursors****************** |
|
- | 248 | brush_cursor: |
|
- | 249 | file 'brush.cur' |
|
- | 250 | ||
- | 251 | flood_fill_cursor: |
|
- | 252 | file 'flood_fill.cur' |
|
- | 253 | ||
- | 254 | lastik_cursor: |
|
- | 255 | file 'lastik.cur' |
|
- | 256 | ||
5672 | panel_picture: |
257 | other_cursor: |
- | 258 | file 'other.cur' |
|
- | 259 | ||
- | 260 | pencil_cursor: |
|
- | 261 | file 'pencil.cur' |
|
- | 262 | ||
- | 263 | pipette_cursor: |
|
- | 264 | file 'pipette.cur' |
|
- | 265 | ||
- | 266 | spray_cursor: |
|
- | 267 | file 'spray.cur' |
|
- | 268 | ||
- | 269 | zoom_cursor: |
|
Line 5673... | Line 270... | ||
5673 | file 'worktab1.gif' |
270 | file 'zoom.cur' |
Line 5674... | Line 271... | ||
5674 | 271 |