Subversion Repositories Kolibri OS

Rev

Rev 1636 | Rev 3951 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1636 Rev 1643
Line 1... Line 1...
1
;-----------------------------------------------------------
1
;-----------------------------------------------------------
2
;-----------instruments of menu-----------------------------
2
;-----------instruments of menu-----------------------------
3
;-----------------------------------------------------------
3
;-----------------------------------------------------------
4
TakeInstruments:
4
TakeInstruments:
-
 
5
;|||||||||||||||||||FILE||||||||||||||||||||||
-
 
6
	cmp	[number_panel],7
-
 
7
	jne	no_file
-
 
8
 
-
 
9
;<<<<>>>>>>
-
 
10
	cmp	[number_menu],1
-
 
11
	jne	no_new
-
 
12
 
-
 
13
	mov	eax,80
-
 
14
	mov	ebx,100
-
 
15
	mov	ecx,150
-
 
16
	mov	edx,90
-
 
17
	mov	 esi,1
-
 
18
	call	draw_volume_rectangle
-
 
19
 
-
 
20
	mov	eax,177
-
 
21
	mov	ebx,115
-
 
22
	mov	ecx,40
-
 
23
	mov	edx,14
-
 
24
	mov	 esi,4
-
 
25
	call	draw_volume_rectangle
-
 
26
 
-
 
27
	mov	eax,177
-
 
28
	mov	ebx,115+24
-
 
29
	mov	ecx,40
-
 
30
	mov	edx,14
-
 
31
	mov	 esi,4
-
 
32
	call	draw_volume_rectangle
-
 
33
 
-
 
34
	mov	eax,175
-
 
35
	mov	ebx,170
-
 
36
	mov	ecx,40
-
 
37
	mov	edx,15
-
 
38
	mov	esi,1
-
 
39
	call	draw_volume_rectangle
-
 
40
 
-
 
41
	mov	eax,90
-
 
42
	mov	ebx,118
-
 
43
	mov	ecx,0xffffff
-
 
44
	mov	edx,new_text1
-
 
45
	mov	esi,14
-
 
46
	call	print_text
-
 
47
 
-
 
48
	mov	eax,90
-
 
49
	mov	ebx,118+24
-
 
50
	mov	ecx,0xffffff
-
 
51
	mov	edx,new_text2
-
 
52
	mov	esi,14
-
 
53
	call	print_text
-
 
54
 
-
 
55
	mov	eax,185
-
 
56
	mov	ebx,175
-
 
57
	mov	ecx,0xffffff
-
 
58
	mov	edx,ok_text
-
 
59
	mov	esi,2
-
 
60
	call	print_text
-
 
61
 
-
 
62
	mov	edx,1000000000000000000000000000000b+1000
-
 
63
	mcall	8,<177,40>,<115,14>,
-
 
64
 
-
 
65
	mov	edx,1000000000000000000000000000000b+1001
-
 
66
	mcall	,,<139,14>,
-
 
67
 
-
 
68
	mov	edx,1000000000000000000000000000000b+1002
-
 
69
	mcall	,<175,40>,<170,15>
-
 
70
 
-
 
71
no_activate_space:
-
 
72
	mcall	10
-
 
73
 
-
 
74
	cmp	eax,1
-
 
75
	je	exit_new
-
 
76
 
-
 
77
	cmp	eax,3
-
 
78
	jne	no_activate_space
-
 
79
 
-
 
80
	mcall	17
-
 
81
	shr	eax,8
-
 
82
 
-
 
83
	cmp	eax,1000
-
 
84
	jl	no_activate_space
-
 
85
 
-
 
86
	cmp	eax,1000
-
 
87
	jne	no_picture_size_x
-
 
88
 
-
 
89
	mov	eax,180
-
 
90
	mov	ebx,119
-
 
91
	mov	ecx,5
-
 
92
	call	dialog_line
-
 
93
 
-
 
94
	mov	eax,string_
-
 
95
	mov	ebx,13
-
 
96
	call	find_symvol
-
 
97
 
-
 
98
	dec	eax
-
 
99
	mov	[length_number],eax
-
 
100
	mov	eax,string_
-
 
101
	call	value
Line 5... Line -...
5
 
-
 
6
	 ;|||||||||||||||||||FILE||||||||||||||||||||||
-
 
7
	 cmp [number_panel],7
-
 
8
	 jne no_file
-
 
9
 
-
 
10
	 ;<<<<>>>>>>
-
 
11
	 cmp [number_menu],1
-
 
12
	 jne no_new
-
 
13
 
-
 
14
	 mov eax,80
-
 
15
	 mov ebx,100
-
 
16
	 mov ecx,150
-
 
17
	 mov edx,90
-
 
18
	 mov  esi,1
-
 
19
	 call draw_volume_rectangle
-
 
20
 
-
 
21
	 mov eax,177
-
 
22
	 mov ebx,115
-
 
23
	 mov ecx,40
-
 
24
	 mov edx,14
-
 
25
	 mov  esi,4
-
 
26
	 call draw_volume_rectangle
-
 
27
 
-
 
28
	 mov eax,177
-
 
29
	 mov ebx,115+24
-
 
30
	 mov ecx,40
-
 
31
	 mov edx,14
-
 
32
	 mov  esi,4
-
 
33
	 call draw_volume_rectangle
-
 
34
 
-
 
35
	 mov eax,175
-
 
36
	 mov ebx,170
-
 
37
	 mov ecx,40
-
 
38
	 mov edx,15
-
 
39
	 mov  esi,1
-
 
40
	 call draw_volume_rectangle
-
 
41
 
-
 
42
	 mov eax,90
-
 
43
	 mov ebx,118
-
 
44
	 mov ecx,0xffffff
-
 
45
	 mov edx,new_text1
-
 
46
	 mov esi,14
-
 
47
	 call print_text
-
 
48
 
-
 
49
	 mov eax,90
-
 
50
	 mov ebx,118+24
-
 
51
	 mov ecx,0xffffff
-
 
52
	 mov edx,new_text2
-
 
53
	 mov esi,14
-
 
54
	 call print_text
-
 
55
 
-
 
56
	 mov eax,185
-
 
57
	 mov ebx,175
-
 
58
	 mov ecx,0xffffff
-
 
59
	 mov edx,ok_text
-
 
60
	 mov esi,2
-
 
61
	 call print_text
-
 
62
 
-
 
63
	 mov eax,8
-
 
64
	 mov ebx,177*65536+40
-
 
65
	 mov ecx,115*65536+14
-
 
66
	 mov edx,1000000000000000000000000000000b
-
 
67
	 add edx,1000
-
 
68
	 mcall
-
 
69
 
-
 
70
	 mov eax,8
-
 
71
	 mov ebx,177*65536+40
-
 
72
	 mov ecx,139*65536+14
-
 
73
	 mov edx,1000000000000000000000000000000b
-
 
74
	 add edx,1001
-
 
75
	 mcall
-
 
76
 
-
 
77
	 mov eax,8
-
 
78
	 mov ebx,175*65536+40
-
 
79
	 mov ecx,170*65536+15
-
 
80
	 mov edx,1000000000000000000000000000000b
-
 
81
	 add edx,1002
-
 
82
	 mcall
-
 
83
 
-
 
84
	 no_activate_space:
-
 
85
 
-
 
86
	 mov eax,10
-
 
87
	 mcall
-
 
88
 
-
 
89
	 cmp eax,1
-
 
90
	 je exit_new
-
 
91
 
-
 
92
	 cmp eax,3
-
 
93
	 jne no_activate_space
-
 
94
 
-
 
95
	 mov eax,17
-
 
96
	 mcall
-
 
97
	 shr eax,8
-
 
98
 
-
 
99
	 cmp eax,1000
-
 
100
	 jl no_activate_space
-
 
101
 
-
 
102
	 cmp eax,1000
-
 
103
	 jne no_picture_size_x
-
 
104
 
-
 
105
	 mov eax,180
-
 
106
	 mov ebx,119
-
 
107
	 mov ecx,5
-
 
108
	 call dialog_line
-
 
109
 
-
 
110
	 mov eax,string_
-
 
111
	 mov ebx,13
-
 
112
	 call find_symvol
-
 
113
 
-
 
114
	 dec eax
-
 
115
	 mov [length_number],eax
-
 
116
	 mov eax,string_
-
 
117
	 call value
-
 
118
 
102
 
119
	 mov [Picture_SizeX],eax
-
 
120
 
103
	mov	[Picture_SizeX],eax
121
	 jmp no_activate_space
-
 
-
 
104
	jmp	no_activate_space
122
 
105
;---------------------------------------------------------------------
123
	 no_picture_size_x:
-
 
124
 
106
no_picture_size_x:
125
	 cmp eax,1001
107
	cmp	eax,1001
126
	 jne no_picture_size_y
108
	jne	no_picture_size_y
127
 
109
 
128
	 mov eax,180
110
	mov	eax,180
129
	 mov ebx,119+24
111
	mov	ebx,119+24
130
	 mov ecx,5
112
	mov	ecx,5
131
	 call dialog_line
113
	call	dialog_line
132
 
114
 
133
	 mov eax,string_
115
	mov	eax,string_
134
	 mov ebx,13
116
	mov	ebx,13
135
	 call find_symvol
117
	call	find_symvol
136
 
118
 
137
	 dec eax
119
	dec	eax
138
	 mov [length_number],eax
120
	mov	[length_number],eax
139
	 mov eax,string_
121
	mov	eax,string_
140
	 call value
122
	call	value
141
 
123
 
142
	 mov [Picture_SizeY],eax
-
 
143
 
124
	mov	[Picture_SizeY],eax
144
	 jmp no_activate_space
-
 
-
 
125
	jmp	no_activate_space
145
 
126
;---------------------------------------------------------------------
146
	 no_picture_size_y:
-
 
147
 
127
no_picture_size_y:
148
	 cmp eax,1002
128
	cmp	eax,1002
149
	 jne no_activate_space
129
	jne	no_activate_space
150
 
130
 
151
	 exit_new:
-
 
152
 
-
 
153
	 mov eax,8
-
 
154
	 mov ebx,175*65536+40
-
 
155
	 mov ecx,170*65536+15
131
exit_new:
156
	 mov edx,11100000000000000000000000000000b
132
	mov	edx,11100000000000000000000000000000b+1002
157
	 add edx,1002
-
 
158
	 mcall
133
	mcall	8,<175,40>,<170,15>
159
 
-
 
160
	 mov eax,8
-
 
161
	 mov ebx,177*65536+40
-
 
162
	 mov ecx,139*65536+14
134
 
163
	 mov edx,11100000000000000000000000000000b
135
	mov	edx,11100000000000000000000000000000b+1001
164
	 add edx,1001
-
 
165
	 mcall
136
	mcall	,<177,40>,<139,14>
166
 
-
 
167
	 mov eax,8
-
 
168
	 mov ebx,177*65536+40
-
 
169
	 mov ecx,115*65536+14
137
 
170
	 mov edx,11100000000000000000000000000000b
138
	mov	edx,11100000000000000000000000000000b+1000
171
	 add edx,1000
-
 
172
	 mcall
139
	mcall	,,<115,14>
173
 
140
 
174
	 ;get memory for new picture
-
 
175
 
141
;get memory for new picture
176
	 call GetMemory
142
	call	GetMemory
177
 
143
 
178
	 and [save_flag],0
144
	and	[save_flag],0
179
	 and [number_panel],0
145
	and	[number_panel],0
180
	 and [number_menu],0
146
	and	[number_menu],0
181
 
147
 
182
	 call cleare_work_arrea
148
	call	cleare_work_arrea
183
	 call drawwin
-
 
184
 
149
	call	drawwin
-
 
150
	jmp	still
185
	 jmp still
151
;---------------------------------------------------------------------
186
	 no_new:
-
 
187
 
152
no_new:
188
	 ;<<<<>>>>>>
153
;<<<<>>>>>>
189
	cmp [number_menu],2
154
	cmp	[number_menu],2
Line 190... Line 155...
190
	 jne no_open
155
	jne	no_open
191
 
156
 
192
;	 opendialog drawwin,open_1,open_2,file_path
157
;	opendialog drawwin,open_1,open_2,file_path
Line 193... Line 158...
193
;---------------------------------------------------------------------
158
;---------------------------------------------------------------------
194
	mov	[OpenDialog_data.type],0 ; open
159
	mov	[OpenDialog_data.type],0 ; open
Line 195... Line 160...
195
	
160
	
196
	push    dword OpenDialog_data
161
	push    dword OpenDialog_data
197
	call    [OpenDialog_Start]
162
	call    [OpenDialog_Start]
-
 
163
	
-
 
164
	cmp	[OpenDialog_data.status],1
Line 198... Line -...
198
	
-
 
199
	cmp	[OpenDialog_data.status],1
-
 
200
	jne	still
-
 
201
;---------------------------------------------------------------------
-
 
202
 
-
 
203
	 open_1:
-
 
204
 
165
	jne	still
205
	 mov eax,40
166
;---------------------------------------------------------------------
206
	 mov ebx,100111b
167
open_1:
207
	 mcall
168
	mcall	40,100111b
208
 
169
 
209
	 mov eax,file_path
170
	mov	eax,file_path
210
	 mov ebx,[ScreenPointer]
171
	mov	ebx,[ScreenPointer]
211
	 add ebx,0x10000
172
	add	ebx,0x10000
212
 
173
 
213
	 call load_heading_of_file
-
 
214
 
-
 
215
	 mov esi,[ScreenPointer]
-
 
216
	 add esi,0x10000
-
 
217
	 ;-------------is this BMP file ?----------------
-
 
218
	 xor eax,eax
-
 
219
	 mov ax,[esi]
-
 
220
	 mov [type],ax
-
 
221
 
-
 
222
	 cmp [type],word 'BM'
-
 
223
	 jne no_bmp_file
-
 
224
 
-
 
225
	 xor eax,eax
-
 
226
	 xor ebx,ebx
-
 
227
	 mov eax,[esi+18]
-
 
228
	 mov ebx,[esi+22]
-
 
229
	 mov [Picture_SizeX],eax
-
 
230
	 mov [Picture_SizeY],ebx
-
 
231
 
-
 
232
	 jmp exit_type
174
	call	load_heading_of_file
233
 
175
 
234
	 no_bmp_file:
176
	mov	esi,[ScreenPointer]
235
 
-
 
236
	 ;-------------is this GIF file ?----------------
-
 
237
	 xor eax,eax
-
 
238
	 mov ax,[esi]
-
 
239
	 mov [type],ax
-
 
240
 
-
 
241
	 cmp [type],'GI'
-
 
242
	 jne no_gif_file
-
 
243
 
-
 
244
	 add esi,6
-
 
245
	 xor eax,eax
-
 
246
	 xor ebx,ebx
-
 
247
	 mov ax,word[esi]
-
 
248
	 mov bx,word[esi+2]
-
 
249
	 mov [Picture_SizeX],eax
-
 
250
	 mov [Picture_SizeY],ebx
-
 
251
 
-
 
252
	 jmp exit_type
-
 
253
 
-
 
254
	 no_gif_file:
-
 
255
 
-
 
256
	 jmp no_unpakcing_file
-
 
257
 
-
 
258
	 exit_type:
-
 
259
 
-
 
260
	 ;----------------------------------------------------------
-
 
261
	 ;Get momory for unpacking picture and for picture's bufers
-
 
262
	 ;----------------------------------------------------------
-
 
263
	 call GetMemory
-
 
264
	 ;----------------------------------------------------------
-
 
265
	 ;--------------------Load file in memory-------------------
-
 
266
	 ;----------------------------------------------------------
-
 
267
 
-
 
268
	 mov eax,file_path
-
 
269
	 mov ebx,[PointerToCopyPicture]
-
 
270
	 add ebx,1000
-
 
271
 
-
 
272
	 call load_file
-
 
273
 
-
 
274
	 ;----------------------------------------------------------
-
 
275
	 ;-------------------Unpacking picture----------------------
-
 
276
	 ;----------------------------------------------------------
-
 
277
	 mov esi,[PointerToCopyPicture]
-
 
278
	 add esi,1000
-
 
279
	 mov edi,[PointerToPicture]
-
 
280
	 mov eax,[ScreenPointer]
-
 
281
 
-
 
282
	 cmp [type],'BM'
-
 
283
	 jne no_unpakcing_bmp_file
-
 
284
	    ;BMP DECODER
-
 
285
	    call bmptoimg
-
 
286
	    mov [save_flag],1
-
 
287
		jmp	draw_1
-
 
288
		
-
 
289
	 no_unpakcing_bmp_file:
-
 
290
 
-
 
291
 
-
 
292
	 cmp [type],'GI'
-
 
293
	 jne no_unpakcing_file
-
 
294
	   ;GIF DECODER
-
 
295
	   sub edi,8
-
 
296
	   call ReadGIF
-
 
297
	   mov [save_flag],1
-
 
298
	 no_unpakcing_file:
-
 
299
 
-
 
300
	 call load_icons
-
 
301
draw_1:	
-
 
302
	 call drawwin
-
 
303
 
-
 
304
	 open_2:
-
 
305
 
-
 
306
	 mov [Scroll1CoordinatX],9
-
 
307
	 mov [Scroll2CoordinatY],89
-
 
308
	 and [number_panel],0
-
 
309
	 and [number_menu],0
-
 
310
 
-
 
311
	 jmp still
-
 
312
 
-
 
Line 313... Line 177...
313
	 no_open:
177
	add	esi,0x10000
-
 
178
;-------------is this BMP file ?----------------
Line 314... Line 179...
314
 
179
	xor	eax,eax
-
 
180
	mov	ax,[esi]
-
 
181
	mov	[type],ax
-
 
182
 
-
 
183
	cmp	[type],word 'BM'
-
 
184
	jne	no_bmp_file
-
 
185
 
-
 
186
	xor	eax,eax
315
	 ;<<<<<<<<<<>>>>>>>>>>>
187
	xor	ebx,ebx
-
 
188
	mov	eax,[esi+18]
-
 
189
	mov	ebx,[esi+22]
-
 
190
	mov	[Picture_SizeX],eax
-
 
191
	mov	[Picture_SizeY],ebx
Line 316... Line 192...
316
	 cmp [number_menu],3
192
	jmp	exit_type
-
 
193
;---------------------------------------------------------------------
Line -... Line 194...
-
 
194
no_bmp_file:
-
 
195
;-------------is this GIF file ?----------------
-
 
196
	xor	eax,eax
-
 
197
	mov	ax,[esi]
-
 
198
	mov	[type],ax
-
 
199
 
-
 
200
	cmp	[type],'GI'
-
 
201
	jne	no_gif_file
-
 
202
 
317
	 jne no_save_
203
	add	esi,6
-
 
204
	xor	eax,eax
-
 
205
	xor	ebx,ebx
-
 
206
	mov	ax,word[esi]
-
 
207
	mov	bx,word[esi+2]
-
 
208
	mov	[Picture_SizeX],eax
-
 
209
	mov	[Picture_SizeY],ebx
-
 
210
	jmp	exit_type
-
 
211
;---------------------------------------------------------------------
-
 
212
no_gif_file:
-
 
213
	jmp	no_unpakcing_file
-
 
214
;---------------------------------------------------------------------
-
 
215
exit_type:
-
 
216
;----------------------------------------------------------
-
 
217
;Get momory for unpacking picture and for picture's bufers
-
 
218
;----------------------------------------------------------
-
 
219
	call	GetMemory
-
 
220
;----------------------------------------------------------
-
 
221
;--------------------Load file in memory-------------------
-
 
222
;----------------------------------------------------------
-
 
223
	mov	eax,file_path
-
 
224
	mov	ebx,[PointerToCopyPicture]
-
 
225
	add	ebx,1000
-
 
226
	call	load_file
-
 
227
;----------------------------------------------------------
-
 
228
;-------------------Unpacking picture----------------------
Line 318... Line -...
318
 
-
 
319
	 mov al,[save_flag]
229
;----------------------------------------------------------
Line -... Line 230...
-
 
230
	mov	esi,[PointerToCopyPicture]
320
 
231
	add	esi,1000
-
 
232
	mov	edi,[PointerToPicture]
-
 
233
	mov	eax,[ScreenPointer]
-
 
234
 
-
 
235
	cmp	[type],'BM'
-
 
236
	jne	no_unpakcing_bmp_file
-
 
237
	;BMP DECODER
Line 321... Line 238...
321
	 test al,al
238
 
Line -... Line 239...
-
 
239
	call	bmptoimg
-
 
240
 
-
 
241
	mov	[save_flag],1
-
 
242
	jmp	draw_1
-
 
243
;---------------------------------------------------------------------
-
 
244
no_unpakcing_bmp_file:
-
 
245
	cmp	[type],'GI'
-
 
246
	jne	no_unpakcing_file
-
 
247
	;GIF DECODER
-
 
248
	sub	edi,8
-
 
249
 
-
 
250
	call	ReadGIF
-
 
251
 
-
 
252
	mov	[save_flag],1
-
 
253
	jmp	draw_1
-
 
254
;---------------------------------------------------------------------
-
 
255
no_unpakcing_file:
-
 
256
	call	load_icons
-
 
257
draw_1:	
-
 
258
	call	drawwin
-
 
259
open_2:
-
 
260
	mov	[Scroll1CoordinatX],9
-
 
261
	mov	[Scroll2CoordinatY],89
-
 
262
	and	[number_panel],0
-
 
263
	and	[number_menu],0
-
 
264
	jmp	still
-
 
265
;---------------------------------------------------------------------
-
 
266
no_open:
-
 
267
 ;<<<<<<<<<<>>>>>>>>>>>
-
 
268
	cmp	[number_menu],3
322
	 jz no_save_file
269
	jne	no_save_
323
 
270
 
324
	 jmp save_enter
271
	mov	al,[save_flag]
Line 325... Line 272...
325
 
272
	test	al,al
326
	 no_save_file:
273
	jz	no_save_file
327
 
274
	jmp	save_enter
328
	 and [number_panel],0
275
;---------------------------------------------------------------------
329
	 and [number_menu],0
276
no_save_file:
330
 
277
	and	[number_panel],0
331
	 jmp still
278
	and	[number_menu],0
332
 
279
	jmp	still
333
	 no_save_:
280
;---------------------------------------------------------------------
334
 
281
no_save_:
335
	 ;<<<<<<<<>>>>>>>>>>
282
 ;<<<<<<<<>>>>>>>>>>
336
	 cmp [number_menu],4
283
	cmp	[number_menu],4
337
	 jne no_save
284
	jne	no_save
338
 
285
 
339
;	 savedialog drawwin,save1,save2,file_path
286
; savedialog drawwin,save1,save2,file_path
340
;---------------------------------------------------------------------
287
;---------------------------------------------------------------------
341
; replace extension to '.bmp'
288
; replace extension to '.bmp'
342
	push	eax esi
289
	push	eax esi
343
	mov	esi,[OpenDialog_data.filename_area]
290
	mov	esi,[OpenDialog_data.filename_area]
Line 344... Line 291...
344
	xor	eax,eax
291
	xor	eax,eax
345
	cld
292
	cld
346
@@:
293
@@:
347
	lodsb
294
	lodsb
348
	test	eax,eax
295
	test	eax,eax
349
	jnz	@r
296
	jnz	@r
-
 
297
	sub	esi,5
-
 
298
	cmp	[esi],byte '.'
-
 
299
	jne	@f
-
 
300
	mov	[esi],dword '.bmp'
-
 
301
@@:
-
 
302
	pop	esi eax
-
 
303
;---------------------------------------------------------------------
-
 
304
	mov	[OpenDialog_data.type],1 ; save
-
 
305
	
-
 
306
	push    dword OpenDialog_data
-
 
307
	call    [OpenDialog_Start]
-
 
308
 
-
 
309
	cmp	[OpenDialog_data.status],1
-
 
310
	jne	still
-
 
311
;---------------------------------------------------------------------
-
 
312
save1:
-
 
313
save_enter:
-
 
314
	mcall	40,100111b
-
 
315
 
-
 
316
	call	analizing_picture_to_palette
-
 
317
 
-
 
318
	;eax => number of colors in picture
-
 
319
	mov	ebx,[PointerToPicture]
-
 
320
	mov	ecx,[PointerToEditBufer]
-
 
321
	mov	edx,[PointerToPalette]
-
 
322
	mov	esi,[Picture_SizeX]
-
 
323
	mov	edi,[Picture_SizeY]
-
 
324
 
-
 
325
	call	coding_bmp
-
 
326
 
-
 
327
	mov	eax,file_path
-
 
328
	mov	ecx,ebx
-
 
329
	mov	ebx,[PointerToEditBufer]
-
 
330
 
-
 
331
	call	save_file
-
 
332
 
Line -... Line 367...
-
 
367
no_one____:
-
 
368
	cmp	[number_undo],2
Line 809... Line 369...
809
	 dec ebx
369
	jne	no_two____
Line -... Line 370...
-
 
370
 
-
 
371
	mov	esi,[PointerToCopyPicture2]
-
 
372
 
-
 
373
no_two____:
-
 
374
	mov	edi,[PointerToPicture]
-
 
375
	mov	ecx,[Picture_SizeX]
-
 
376
	imul	ecx,[Picture_SizeY]
-
 
377
	lea	ecx,[ecx+ecx*2]
-
 
378
	add	ecx,4
-
 
379
	shr	ecx,2
-
 
380
	cld
-
 
381
	rep	movsd
-
 
382
	call	MovePictureToWorkScreen
-
 
383
 
-
 
384
	dec	[number_undo]
-
 
385
	jnz	no_null_undo
-
 
386
 
-
 
387
	mov	[number_undo],1
-
 
388
 
-
 
389
no_null_undo:
-
 
390
	and	[number_panel],0
-
 
391
	and	[number_menu],0
-
 
392
	jmp	still
-
 
393
;---------------------------------------------------------------------
-
 
394
no_undo:
-
 
395
;<<<<<<<<<>>>>>>>>>
-
 
396
	cmp	[number_menu],2
-
 
397
	jne	no_copy
-
 
398
 
-
 
399
	cmp	[instrument_used],1
-
 
400
	jne	no_copy
-
 
401
	cmp	[Activate_instrument],0
-
 
402
	jne	no_copy
-
 
403
 
-
 
404
	mov	eax,[OldX]
-
 
405
	mov	ebx,[OldY]
-
 
406
 
-
 
407
	cmp	eax,[rectangular_shade_x]
-
 
408
	jl	no_remove_x_copy
-
 
409
 
-
 
410
	mov	ecx,[rectangular_shade_x]
-
 
411
	mov	[OldX],ecx			 ; OldX <-----> rectangulare_shade_x
-
 
412
	mov	[rectangular_shade_x],eax
-
 
413
 
-
 
414
no_remove_x_copy:
-
 
415
	cmp	ebx,[rectangular_shade_y]
-
 
416
	jl	no_remove_y_copy
-
 
417
 
-
 
418
	mov	ecx,[rectangular_shade_y]
-
 
419
	mov	[OldY],ecx			 ; OldY <-----> rectangulare_shade_y
-
 
420
	mov	[rectangular_shade_y],ebx
-
 
421
 
-
 
422
no_remove_y_copy:
-
 
423
	mov	eax,[OldX]
-
 
424
	mov	ebx,[OldY]
-
 
425
	mov	ecx,[rectangular_shade_x]
-
 
426
	mov	edx,[rectangular_shade_y]
-
 
427
	inc	eax
-
 
428
	inc	ebx
-
 
429
	dec	ecx
-
 
430
	dec	edx
-
 
431
 
-
 
432
	mov	[x],eax
-
 
433
	mov	[y],ebx
-
 
434
	mov	esi,eax
-
 
435
	mov	edi,ebx
-
 
436
	mov	[Dx_],1
-
 
437
	mov	[Dy_],1
-
 
438
 
-
 
439
	sub	ecx,eax
-
 
440
	jnz	no_signum_fill_r_x_copy
-
 
441
 
-
 
442
	mov	[Dx_],-1
-
 
443
 
-
 
444
no_signum_fill_r_x_copy:
-
 
445
	sub	edx,ebx
-
 
446
	jnz	no_signum_fill_r_y_copy
-
 
447
 
-
 
448
	mov	[Dy_],-1
-
 
449
 
-
 
450
no_signum_fill_r_y_copy:
-
 
451
	mov	ebx,[rectangular_shade_y]
-
 
452
	sub	ebx,edi
-
 
453
 
-
 
454
	mov	edx,[PointerToEditBufer]
-
 
455
	mov	[y],edi
-
 
456
 
-
 
457
loop_fill_rectangle_y_copy:
-
 
458
	mov	[x],esi
-
 
459
 
-
 
460
loop_fill_rectangle_x_copy:
-
 
461
	push	esi edi
-
 
462
	mov	eax,[PointerToPicture]
-
 
463
	mov	ebx,[Picture_SizeX]
-
 
464
	mov	esi,[x]
-
 
465
	mov	edi,[y]
-
 
466
	call	GetColorOfPixel
-
 
467
	mov	[edx],ax
-
 
468
	shr	eax,16
-
 
469
	mov	[edx+2],al
-
 
470
	pop	edi esi
-
 
471
 
-
 
472
	add	edx,3
-
 
473
	mov	eax,[x]
-
 
474
	add	eax,[Dx_]
-
 
475
	mov	[x],eax
-
 
476
 
-
 
477
	cmp	eax,[rectangular_shade_x]
-
 
478
	jl	loop_fill_rectangle_x_copy
-
 
479
 
-
 
480
	mov	eax,[y]
-
 
481
	add	eax,[Dy_]
-
 
482
	mov	[y],eax
-
 
483
 
-
 
484
	cmp	eax,[rectangular_shade_y]
-
 
485
	jl	loop_fill_rectangle_y_copy
-
 
486
 
-
 
487
	call	MovePictureToWorkScreen
-
 
488
 
-
 
489
	and	[number_panel],0
-
 
490
	and	[number_menu],0
-
 
491
	mov	[DrawSprite_flag],1
-
 
492
	jmp	still
-
 
493
;---------------------------------------------------------------------
-
 
494
no_copy:
-
 
495
;<<<<<<<<<>>>>>>>
-
 
496
	cmp	[number_menu],3
-
 
497
	jne	no_paste
-
 
498
 
-
 
499
	cmp	[instrument_used],1
-
 
500
	jne	no_paste
-
 
501
 
-
 
502
	cmp	[Activate_instrument],0
-
 
503
	jne	no_paste
-
 
504
 
-
 
505
	mov	eax,[OldX]
-
 
506
	mov	ebx,[OldY]
-
 
507
 
-
 
508
	cmp	eax,[rectangular_shade_x]
-
 
509
	jl	no_remove_x_paste
-
 
510
 
-
 
511
	mov	ecx,[rectangular_shade_x]
810
	 mov [rectangular_shade_x],eax
512
	mov	[OldX],ecx 		  ; OldX <-----> rectangulare_shade_x
-
 
513
	mov	[rectangular_shade_x],eax
-
 
514
 
-
 
515
no_remove_x_paste:
-
 
516
	cmp	ebx,[rectangular_shade_y]
-
 
517
	jl	no_remove_y_paste
-
 
518
 
-
 
519
	mov	ecx,[rectangular_shade_y]
-
 
520
	mov	[OldY],ecx 		  ; OldY <-----> rectangulare_shade_y
-
 
521
	mov	[rectangular_shade_y],ebx
-
 
522
 
-
 
523
no_remove_y_paste:
-
 
524
	mov	eax,[OldX]
-
 
525
	mov	ebx,[OldY]
-
 
526
	mov	ecx,[rectangular_shade_x]
-
 
527
	mov	edx,[rectangular_shade_y]
-
 
528
	inc	eax
-
 
529
	inc	ebx
-
 
530
	dec	ecx
-
 
531
	dec	edx
-
 
532
 
-
 
533
	mov	[x],eax
-
 
534
	mov	[y],ebx
-
 
535
	mov	esi,eax
-
 
536
	mov	edi,ebx
-
 
537
	mov	[Dx_],1
-
 
538
	mov	[Dy_],1
-
 
539
 
-
 
540
	sub	ecx,eax
-
 
541
	jnz	no_signum_fill_r_x_paste
-
 
542
 
-
 
543
	mov	[Dx_],-1
-
 
544
 
-
 
545
no_signum_fill_r_x_paste:
-
 
546
	sub	edx,ebx
-
 
547
	jnz	no_signum_fill_r_y_paste
-
 
548
 
-
 
549
	mov	[Dy_],-1
-
 
550
 
-
 
551
no_signum_fill_r_y_paste:
-
 
552
	mov	edx,[PointerToEditBufer]
-
 
553
	mov	[y],edi
-
 
554
 
-
 
555
loop_fill_rectangle_y_paste:
-
 
556
	mov	[x],esi
-
 
557
 
-
 
558
loop_fill_rectangle_x_paste:
-
 
559
	push	esi edi
-
 
560
	mov	ecx,[edx]
-
 
561
	and	ecx,0xffffff ;color
-
 
562
	mov	eax,[PointerToPicture]
-
 
563
	mov	ebx,[Picture_SizeX]
-
 
564
	mov	esi,[x]
-
 
565
	mov	edi,[y]
-
 
566
	call	PutPixel
-
 
567
	pop	edi esi
-
 
568
 
-
 
569
	add	edx,3
-
 
570
 
-
 
571
	mov	eax,[x]
-
 
572
	add	eax,[Dx_]
-
 
573
	mov	[x],eax
-
 
574
	cmp	eax,[rectangular_shade_x]
-
 
575
	jl	loop_fill_rectangle_x_paste
-
 
576
 
-
 
577
	mov	eax,[y]
-
 
578
	add	eax,[Dy_]
-
 
579
	mov	[y],eax
-
 
580
	cmp	eax,[rectangular_shade_y]
-
 
581
	jl	loop_fill_rectangle_y_paste
-
 
582
 
-
 
583
	call	MovePictureToWorkScreen
-
 
584
	and	[number_panel],0
-
 
585
	and	[number_menu],0
-
 
586
	mov	[Paste_flag],1
-
 
587
	jmp	still
-
 
588
;---------------------------------------------------------------------
-
 
589
no_paste:
-
 
590
;<<<<<<<<<>>>>>>>>>
-
 
591
	cmp	[number_menu],4
-
 
592
	jne	no_cut
-
 
593
 
-
 
594
	cmp	[instrument_used],1
-
 
595
	jne	no_cut
-
 
596
 
-
 
597
	cmp	[Activate_instrument],0
-
 
598
	jne	no_cut
-
 
599
 
-
 
600
	mov	eax,[OldX]
-
 
601
	mov	ebx,[OldY]
-
 
602
 
-
 
603
	cmp	eax,[rectangular_shade_x]
-
 
604
	jl	no_remove_x_cut
-
 
605
 
-
 
606
	mov	ecx,[rectangular_shade_x]
-
 
607
	mov	[OldX],ecx 		  ; OldX <-----> rectangulare_shade_x
-
 
608
	mov	[rectangular_shade_x],eax
-
 
609
 
-
 
610
no_remove_x_cut:
-
 
611
	cmp	ebx,[rectangular_shade_y]
-
 
612
	jl	no_remove_y_cut
-
 
613
 
-
 
614
	mov	ecx,[rectangular_shade_y]
-
 
615
	mov	[OldY],ecx 		  ; OldY <-----> rectangulare_shade_y
-
 
616
	mov	[rectangular_shade_y],ebx
-
 
617
 
-
 
618
no_remove_y_cut:
-
 
619
	mov	eax,[OldX]
-
 
620
	mov	ebx,[OldY]
-
 
621
	mov	ecx,[rectangular_shade_x]
-
 
622
	mov	edx,[rectangular_shade_y]
-
 
623
	inc	eax
-
 
624
	inc	ebx
-
 
625
	dec	ecx
-
 
626
	dec	edx
-
 
627
 
-
 
628
	mov	[x],eax
-
 
629
	mov	[y],ebx
-
 
630
	mov	esi,eax
-
 
631
	mov	edi,ebx
-
 
632
	mov	[Dx_],1
-
 
633
	mov	[Dy_],1
-
 
634
 
-
 
635
	sub	ecx,eax
-
 
636
	jnz	no_signum_fill_r_x
-
 
637
 
-
 
638
	mov	[Dx_],-1
-
 
639
 
-
 
640
no_signum_fill_r_x:
-
 
641
	sub	edx,ebx
-
 
642
	jnz	no_signum_fill_r_y
-
 
643
 
-
 
644
	mov	[Dy_],-1
-
 
645
 
-
 
646
no_signum_fill_r_y:
-
 
647
	mov	[y],edi
-
 
648
 
-
 
649
loop_fill_rectangle_y:
-
 
650
	mov	[x],esi
-
 
651
 
-
 
652
loop_fill_rectangle_x:
-
 
653
	push	esi edi
-
 
654
	mov	eax,[PointerToPicture]
-
 
655
	mov	ebx,[Picture_SizeX]
-
 
656
	mov	ecx,dword 0xffffff
-
 
657
	mov	esi,[x]
-
 
658
	mov	edi,[y]
-
 
659
	call	PutPixel
-
 
660
	pop	edi esi
-
 
661
 
-
 
662
	mov	eax,[x]
-
 
663
	add	eax,[Dx_]
-
 
664
	mov	[x],eax
-
 
665
 
-
 
666
	cmp	eax,[rectangular_shade_x]
-
 
667
	jl	loop_fill_rectangle_x
-
 
668
 
-
 
669
	mov	eax,[y]
-
 
670
	add	eax,[Dy_]
-
 
671
	mov	[y],eax
-
 
672
 
-
 
673
	cmp	eax,[rectangular_shade_y]
-
 
674
	jl	loop_fill_rectangle_y
-
 
675
 
-
 
676
	call	MovePictureToWorkScreen
-
 
677
 
-
 
678
	and	[number_panel],0
-
 
679
	and	[number_menu],0
-
 
680
	jmp	still
-
 
681
;---------------------------------------------------------------------
-
 
682
no_cut:
-
 
683
;<<<<<>>>>>
-
 
684
	cmp	[number_menu],5
-
 
685
	jne	no_cleare_all
-
 
686
 
-
 
687
	call	cleare_work_arrea
-
 
688
	call	MovePictureToWorkScreen
-
 
689
 
-
 
690
	and	[number_panel],0
-
 
691
	and	[number_menu],0
-
 
692
	jmp	still
-
 
693
;---------------------------------------------------------------------
-
 
694
no_cleare_all:
-
 
695
;<<<<<>>>>>
-
 
696
	cmp	[number_menu],6
-
 
697
	jne	still	;no_to_allocate_all
-
 
698
 
-
 
699
	mov	[OldX],1
-
 
700
	mov	[OldY],1
-
 
701
	mov	eax,[Picture_SizeX]
811
	 mov [rectangular_shade_y],ebx
702
	mov	ebx,[Picture_SizeY]