Subversion Repositories Kolibri OS

Rev

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 <> V1.00 '
-
 
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