Rev 3497 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 3497 | Rev 6165 | ||
---|---|---|---|
Line 19... | Line 19... | ||
19 | ; ¤ ç¨ ¢ ¨§ã票¨ ᬠ! |
19 | ; ¤ ç¨ ¢ ¨§ã票¨ ᬠ! |
20 | ; ¢ ®¤¤ã¡ë©, ivan-yar@bk.ru |
20 | ; ¢ ®¤¤ã¡ë©, ivan-yar@bk.ru |
21 | ;****************************************************************************** |
21 | ;****************************************************************************** |
Line 22... | Line 22... | ||
22 | 22 | ||
23 | ; ®¤ª«îç ¥¬ ¥®¡å®¤¨¬ë¥ ¬ ªà®áë |
23 | ; ®¤ª«îç ¥¬ ¥®¡å®¤¨¬ë¥ ¬ ªà®áë |
Line 24... | Line 24... | ||
24 | include 'macros.inc' |
24 | include '../../../macros.inc' |
Line 25... | Line 25... | ||
25 | 25 | ||
- | 26 | ;****************************************************************************** |
|
26 | ;****************************************************************************** |
27 | |
- | 28 | ; |
|
- | 29 | use32 |
|
- | 30 | org 0x0 |
|
- | 31 | db 'MENUET01' ; 8 byte id |
|
- | 32 | dd 0x01 ; title version |
|
- | 33 | dd START ; start of code |
|
- | 34 | dd I_END ; size of image |
|
- | 35 | dd E_END ; memory for app |
|
27 | 36 | dd E_END ; esp |
|
28 | ; |
37 | dd 0x0,0x0 ; I_Param , I_Icon |
29 | meos_app_start |
38 | |
30 | ; |
39 | ; |
31 | code |
40 | START: |
Line 32... | Line 41... | ||
32 | mov eax,40 ; á®®¡é¨¬ á¨á⥬¥, ª ª¨¥ ᮡëâ¨ï ¡ã¤¥¬ ®¡à ¡ âë¢ âì |
41 | mov eax,40 ; á®®¡é¨¬ á¨á⥬¥, ª ª¨¥ ᮡëâ¨ï ¡ã¤¥¬ ®¡à ¡ âë¢ âì |
33 | mov ebx,0100101b ; ¬ ᪠ᮡë⨩ - ¯¥à¥à¨á®¢ª (1) + ª®¯ª (3) + ¬ëèì (6 |
42 | mov ebx,0100101b ; ¬ ᪠ᮡë⨩ - ¯¥à¥à¨á®¢ª (1) + ª®¯ª (3) + ¬ëèì (6 |
Line 34... | Line 43... | ||
34 | int 0x40 ; íâ ª®¬ ¤ ¢ë§ë¢ ¥â á¨á⥬ãî äãªæ¨î |
43 | int 0x40 ; íâ ª®¬ ¤ ¢ë§ë¢ ¥â á¨á⥬ãî äãªæ¨î |
35 | 44 | ||
Line 36... | Line 45... | ||
36 | mov [workarea.cx],10 ; ª®®à¤¨ âë à ¡®ç¥© (ª«¨¥â᪮©) ®¡« á⨠|
45 | mov [workarea.cx],5 ; ª®®à¤¨ âë à ¡®ç¥© (ª«¨¥â᪮©) ®¡« á⨠|
Line 150... | Line 159... | ||
150 | .leftbtn: |
159 | .leftbtn: |
151 | ; ¥¢ ï ª®¯ª ¦ â , ¤® íâ® § ¯¨á âì! |
160 | ; ¥¢ ï ª®¯ª ¦ â , ¤® íâ® § ¯¨á âì! |
152 | mov [mouse_pressed],1 |
161 | mov [mouse_pressed],1 |
Line 153... | Line 162... | ||
153 | 162 | ||
154 | ; ®«ã稬 ª®®à¤¨ âë ªãàá®à ¬ëè¨ (®â®á¨â¥«ì® ®ª ) |
163 | ; ®«ã稬 ª®®à¤¨ âë ªãàá®à ¬ëè¨ (®â®á¨â¥«ì® ®ª ) |
155 | mov eax,37 ; äãªæ¨ï 37 - ¯®«ãç¨âì á®áâ®ï¨¥ ¬ëè¨ |
- | |
156 | mov ebx,1 ; ¯®¤äãªæ¨ï 1 |
- | |
Line 157... | Line 164... | ||
157 | int 0x40 |
164 | mcall 37,1 ; ¯®«ãç¨âì á®áâ®ï¨¥ ¬ëè¨ |
158 | 165 | ||
159 | ; ¥à¥¤¥« ¥¬ ¨å â ª, çâ®¡ë ®¨ ¡ë«¨ ¢ à §ëå ॣ¨áâà å, â.¥. eax ¨ ebx |
166 | ; ¥à¥¤¥« ¥¬ ¨å â ª, çâ®¡ë ®¨ ¡ë«¨ ¢ à §ëå ॣ¨áâà å, â.¥. eax ¨ ebx |
160 | mov ebx,eax |
167 | mov ebx,eax |
Line 200... | Line 207... | ||
200 | jmp still |
207 | jmp still |
Line 201... | Line 208... | ||
201 | 208 | ||
Line 202... | Line 209... | ||
202 | ;****************************************************************************** |
209 | ;****************************************************************************** |
203 | 210 | ||
204 | save_canvas: |
211 | save_canvas: |
205 | mov eax,[process.x_size] |
212 | mov eax,[proc_info.box.width] |
206 | add eax,[workarea.cx] |
213 | add eax,[workarea.cx] |
Line 207... | Line 214... | ||
207 | mov ebx,[process.y_size] |
214 | mov ebx,[proc_info.box.height] |
Line 208... | Line 215... | ||
208 | add ebx,[workarea.cy] |
215 | add ebx,[workarea.cy] |
Line 215... | Line 222... | ||
215 | ; ******* ******* |
222 | ; ******* ******* |
216 | ; ********************************************* |
223 | ; ********************************************* |
Line 217... | Line 224... | ||
217 | 224 | ||
Line 218... | Line 225... | ||
218 | draw_window: |
225 | draw_window: |
219 | - | ||
220 | mov eax,48 ; |
- | |
221 | mov ebx,3 |
- | |
222 | mov ecx,sc |
- | |
223 | mov edx,sizeof.system_colors |
- | |
224 | int 0x40 |
- | |
225 | - | ||
226 | mov eax,12 ; äãªæ¨ï 12: á®®¡é¨âì ®¡ ®âà¨á®¢ª¥ ®ª |
- | |
227 | mov ebx,1 ; 1, ç¨ ¥¬ à¨á®¢ âì |
- | |
228 | int 0x40 |
- | |
229 | 226 | ||
230 | ; ð |
- | |
231 | mov eax,0 ; äãªæ¨ï 0 : ®¯à¥¤¥«¨âì ¨ ®âà¨á®¢ âì ®ª® |
- | |
232 | mov ebx,100*65536+400 ; [x áâ àâ] *65536 + [x à §¬¥à] |
- | |
233 | mov ecx,100*65536+300 ; [y áâ àâ] *65536 + [y à §¬¥à] |
227 | mcall 48,3,sc,sizeof.system_colors ; |
234 | mov edx,[sc.work] ; 梥â à ¡®ç¥© ®¡« á⨠RRGGBB,8->color gl |
- | |
235 | or edx,0x02000000 |
228 | mcall 12, 1 ; ç «® ®âà¨á®¢ª¨ ®ª |
236 | mov esi,[sc.grab] ; 梥⠯®«®áë § £®«®¢ª RRGGBB,8->color gl |
229 | mov edx, [sc.work] |
237 | or esi,0x80000000 |
230 | or edx, 0x33000000 |
238 | mov edi,[sc.frame] ; 梥â à ¬ª¨ RRGGBB |
231 | mcall 0, (100 shl 16)+400, (100 shl 16)+300, , , title ; à¨á㥬 ®ª® |
239 | int 0x40 |
232 | mcall 12, 1 |
240 | - | ||
241 | mov eax,9 ; ¯®«ã稬 ¨ä®à¬ æ¨î ® ᥡ¥ |
- | |
242 | mov ebx,process |
- | |
243 | mov ecx,-1 |
233 | |
244 | int 0x40 |
234 | mcall 9,proc_info,-1 ; ¯®«ã稬 ¨ä®à¬ æ¨î ® ᢮¥¬ ¯®â®ª¥ |
245 | 235 | ||
246 | mov eax,[process.x_size] ; áâந¬ à §¬¥à à ¡®ç¥© ®¡« á⨠|
236 | mov eax,[proc_info.box.width] ; áâந¬ à §¬¥à à ¡®ç¥© ®¡« á⨠|
247 | add eax,-20 ; (å à §¬¥à ®ª - 20) |
237 | sub eax,20 ; (å à §¬¥à ®ª - 20) |
248 | mov [workarea.sx],eax ; |
238 | mov [workarea.sx],eax |
249 | mov eax,[process.y_size] ; |
239 | mov eax,[proc_info.box.height] |
250 | add eax,-60 ; (ã à §¬¥à - 60) |
- | |
251 | mov [workarea.sy],eax ; |
- | |
252 | - | ||
253 | ; |
- | |
254 | mov eax,4 ; äãªæ¨ï 4 : ¯¨á âì ¢ ®ª¥ ⥪áâ |
- | |
255 | mov ebx,8*65536+8 ; [x] *65536 + [y] |
- | |
256 | mov ecx,[sc.grab_text] ; 梥â |
- | |
257 | or ecx,0x10000000 ; èà¨äâ |
- | |
258 | mov edx,header ; ¤à¥á áâப¨ |
- | |
259 | mov esi,header_len ; ¨ ¥ñ ¤«¨ |
- | |
260 | int 0x40 |
- | |
261 | - | ||
262 | ; |
- | |
263 | mov eax,8 ; äãªæ¨ï 8 : ®¯à¥¤¥«¨âì ¨ à¨á®¢ âì ª®¯ªã |
- | |
264 | ; mov ebx,(300-19)*65536+12 ; [x áâ àâ] *65536 + [x à §¬¥à] |
- | |
265 | mov ebx,[process.x_size] |
- | |
266 | add ebx,-19 |
- | |
267 | shl ebx,16 |
- | |
268 | add ebx,12 |
- | |
269 | mov ecx,5*65536+12 ; [y áâ àâ] *65536 + [y à §¬¥à] |
- | |
270 | mov edx,1 ; ¨¤¥â¨ä¨ª â®à ª®¯ª¨ |
- | |
Line 271... | Line 240... | ||
271 | mov esi,[sc.grab_button] ; 梥⠪®¯ª¨ RRGGBB |
240 | sub eax,63 ; (ã à §¬¥à - 63) |
272 | int 0x40 |
241 | mov [workarea.sy],eax |
Line -... | Line 242... | ||
- | 242 | ||
- | 243 | cmp [proc_info.box.height],80 |
|
273 | 244 | jb .finish |
|
274 | cmp [process.y_size],80 |
245 | |
275 | jb .finish |
246 | mov eax, 8 |
276 | 247 | mov edx, 1 |
|
277 | ; ᮧ¤ ñ¬ ª®¯ª¨ ¢ë¡®à 梥â : |
248 | ; ᮧ¤ ñ¬ ª®¯ª¨ ¢ë¡®à 梥â : |
278 | mov ebx,10*65536+10 ; ç «ì ï x ª®®à¤¨ â ¨ à §¬¥à |
249 | mov ebx,10*65536+15 ; ç «ì ï x ª®®à¤¨ â ¨ à §¬¥à |
279 | mov ecx,27*65536+10 ; ç «ì ï y ª®®à¤¨ â & size |
250 | mov ecx, 7*65536+15 ; ç «ì ï y ª®®à¤¨ â & size |
280 | .new_button: |
251 | .new_button: |
281 | inc edx ; ¨¤¥â¨ä¨ª â®à++; |
252 | inc edx ; ¨¤¥â¨ä¨ª â®à++; |
282 | mov esi,[btn_colors-8+edx*4] ; 梥⠪®¯ª¨ |
253 | mov esi,[btn_colors-8+edx*4] ; 梥⠪®¯ª¨ |
Line 283... | Line 254... | ||
283 | int 0x40 ; áâ ¢¨¬ ª®¯ªã |
254 | int 0x40 ; áâ ¢¨¬ ª®¯ªã |
284 | add ebx,12*65536 ; á«¥¤ãîé ï ª®¯ª ¯à ¢¥¥ 12 |
255 | add ebx,18*65536 ; á«¥¤ãîé ï ª®¯ª ¯à ¢¥¥ 12 |
Line 291... | Line 262... | ||
291 | shl ebx,16 |
262 | shl ebx,16 |
292 | shl ecx,16 |
263 | shl ecx,16 |
293 | add ebx,[workarea.sx] |
264 | add ebx,[workarea.sx] |
294 | add ecx,[workarea.sy] |
265 | add ecx,[workarea.sy] |
295 | mov edx,0xffffff |
266 | mov edx,0xffffff |
296 | int 0x40 |
267 | mcall 13 |
Line 297... | Line 268... | ||
297 | 268 | ||
298 | .finish: |
- | |
299 | mov eax,12 ; á®®¡é ¥¬ á¨á⥬¥ ® § ¢¥à襨¨ ®âà¨á®¢ª¨ ®ª |
- | |
300 | mov ebx,2 |
- | |
301 | int 0x40 |
- | |
302 | 269 | .finish: |
|
Line 303... | Line 270... | ||
303 | ret |
270 | ret |
304 | 271 | ||
305 | ;****************************************************************************** |
272 | ;****************************************************************************** |
306 | ; ç «® ®¡« á⨠¨¨æ¨ «¨§¨à®¢ ëå ¤ ëå |
273 | ; ç «® ®¡« á⨠¨¨æ¨ «¨§¨à®¢ ëå ¤ ëå |
307 | ; ¥á«¨ ªâ® ¥éñ ¥ § ¥â, çâ® § ç¨â "¨¨æ¨ «¨§¨à®¢ ë¥", â® ¯®ïáïî: |
- | |
Line 308... | Line -... | ||
308 | ; í⮠⥠¤ ë¥, ª®â®àë¬ ¯à¨á¢®¥® ç «ì®¥ § 票¥ |
- | |
309 | data |
274 | ; ¥á«¨ ªâ® ¥éñ ¥ § ¥â, çâ® § ç¨â "¨¨æ¨ «¨§¨à®¢ ë¥", â® ¯®ïáïî: |
- | 275 | ; í⮠⥠¤ ë¥, ª®â®àë¬ ¯à¨á¢®¥® ç «ì®¥ § 票¥ |
|
310 | 276 | ||
Line 311... | Line 277... | ||
311 | header: ; áâப § £®«®¢ª |
277 | ;data |
Line 312... | Line 278... | ||
312 | db 'PAINT v0.2 for MenuetOS' |
278 | |
313 | header_len = $ - header ; ¨ ¥ñ ¤«¨ |
279 | title db 'Simple Paint v0.3',0 |
Line 341... | Line 307... | ||
341 | ;****************************************************************************** |
307 | ;****************************************************************************** |
342 | ; ¢®â âãâ ç¨ ¥âáï ®¡« áâì ¨¨æ¨ «¨§¨à®¢ ëå ¤ ëå, â.¥. |
308 | ; ¢®â âãâ ç¨ ¥âáï ®¡« áâì ¨¨æ¨ «¨§¨à®¢ ëå ¤ ëå, â.¥. |
343 | ; §¤¥áì ¤ ë¬ § ç¥¨ï ¥ ¯à¨á¢®¥ë. ®â«¨ç¨¥ ®â ¨¨æ., ¥ 㢥«¨ç¨¢ îâ à §¬¥à |
309 | ; §¤¥áì ¤ ë¬ § ç¥¨ï ¥ ¯à¨á¢®¥ë. ®â«¨ç¨¥ ®â ¨¨æ., ¥ 㢥«¨ç¨¢ îâ à §¬¥à |
344 | ; ä ©« |
310 | ; ä ©« |
Line 345... | Line 311... | ||
345 | 311 | ||
Line 346... | Line 312... | ||
346 | udata |
312 | I_END: |
Line 347... | Line 313... | ||
347 | 313 | ||
348 | active_color dd ? ; ªâ¨¢ë© 梥â |
314 | active_color dd ? ; ªâ¨¢ë© 梥â |
Line 355... | Line 321... | ||
355 | .cy dd ? |
321 | .cy dd ? |
356 | .sx dd ? ; s - à §¬¥àë |
322 | .sx dd ? ; s - à §¬¥àë |
357 | .sy dd ? |
323 | .sy dd ? |
Line 358... | Line 324... | ||
358 | 324 | ||
359 | sc system_colors ; á¨áâ¥¬ë¥ æ¢¥â |
325 | sc system_colors ; á¨áâ¥¬ë¥ æ¢¥â |
Line 360... | Line 326... | ||
360 | process process_information ; ¨ä®à¬ æ¨ï ® ¯à®æ¥áᥠ|
326 | proc_info process_information ; ¨ä®à¬ æ¨ï ® ¯à®æ¥áᥠ|
361 | 327 | ||
Line 362... | Line 328... | ||
362 | restflag dd ? |
328 | restflag dd ? |