Subversion Repositories Kolibri OS

Rev

Rev 485 | Rev 1632 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

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