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] |