Rev 109 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 109 | Rev 132 | ||
---|---|---|---|
Line 10... | Line 10... | ||
10 | dd START ; start of code |
10 | dd START ; start of code |
11 | dd IM_END ; size of image |
11 | dd IM_END ; size of image |
12 | dd 0x300000 ; memory for app |
12 | dd 0x300000 ; memory for app |
13 | dd 0x300000 ; esp |
13 | dd 0x300000 ; esp |
14 | dd temp_area , 0x0 ; I_Param , I_Icon |
14 | dd temp_area , 0x0 ; I_Param , I_Icon |
- | 15 | ||
15 | include 'lang.inc' |
16 | include 'lang.inc' |
16 | include 'macros.inc' |
17 | include 'macros.inc' |
17 | ;****************************************************************************** |
18 | ;****************************************************************************** |
Line 18... | Line -... | ||
18 | - | ||
19 | tmp_param dd 0 |
- | |
20 | 19 | ||
Line 21... | Line 20... | ||
21 | START: ; start of execution |
20 | START: ; start of execution |
22 | 21 | ||
23 | ; check for parameters |
22 | ; check for parameters |
Line 33... | Line 32... | ||
33 | cmp byte [temp_area],0 |
32 | cmp byte [temp_area],0 |
34 | jz .no_param |
33 | jz .no_param |
35 | mov edi,string ; clear string |
34 | mov edi,string ; clear string |
36 | mov ecx,43*3 ; length of a string |
35 | mov ecx,43*3 ; length of a string |
37 | xor eax,eax ; symbol <0> |
36 | xor eax,eax ; symbol <0> |
- | 37 | add al,14h |
|
38 | cld |
38 | cld |
39 | rep stosb |
39 | rep stosb |
Line 40... | Line 40... | ||
40 | 40 | ||
41 | mov edi,temp_area ; look for <0> in temp_area |
41 | mov edi,temp_area ; look for <0> in temp_area |
Line 47... | Line 47... | ||
47 | mov ecx,edi |
47 | mov ecx,edi |
48 | mov esi,temp_area |
48 | mov esi,temp_area |
49 | mov edi,string |
49 | mov edi,string |
50 | rep movsb ; copy string from temp_area to "string" (filename) |
50 | rep movsb ; copy string from temp_area to "string" (filename) |
Line 51... | Line 51... | ||
51 | 51 | ||
52 | call draw_window |
52 | call load_image |
- | 53 | call convert |
|
53 | mov [tmp_param],0xdeadbeef |
54 | |
Line 54... | Line 55... | ||
54 | .no_param: |
55 | .no_param: |
55 | 56 | ||
Line 69... | Line 70... | ||
69 | @@: |
70 | @@: |
Line 70... | Line 71... | ||
70 | 71 | ||
71 | ; ⥯¥àì ¢ ecx ®¬¥à ¯à®æ¥áá |
72 | ; ⥯¥àì ¢ ecx ®¬¥à ¯à®æ¥áá |
Line 72... | Line -... | ||
72 | mov [process],ecx |
- | |
73 | - | ||
74 | cmp [tmp_param],0xdeadbeef |
- | |
75 | jne @f |
- | |
76 | jmp kopen |
- | |
77 | @@: |
73 | mov [process],ecx |
Line 78... | Line 74... | ||
78 | 74 | ||
Line 79... | Line 75... | ||
79 | call draw_window |
75 | call draw_window |
Line 193... | Line 189... | ||
193 | jmp still |
189 | jmp still |
194 | ;call background |
190 | ;call background |
Line 195... | Line 191... | ||
195 | 191 | ||
196 | getappinfo: |
192 | getappinfo: |
197 | mov eax,9 |
193 | mov eax,9 |
198 | mov ebx,I_END |
194 | mov ebx,process_info |
199 | int 0x40 |
195 | int 0x40 |
Line 200... | Line 196... | ||
200 | ret |
196 | ret |
201 | 197 | ||
202 | 198 | ||
203 | load_image: |
199 | load_image: |
204 | mov dword [fileinfo+8],1 ; how many blocks to read (1) |
200 | mov dword [fileinfo+8],1 ; how many blocks to read (1) |
205 | mov eax,58 |
201 | mov eax,58 |
206 | mov ebx,fileinfo |
202 | mov ebx,fileinfo |
207 | int 0x40 |
203 | int 0x40 |
208 | cmp [I_END+2],dword 512 ; à §¬¥à ä ©« (file size) |
204 | cmp [I_END+2],dword 512 ; à §¬¥à ä ©« (file size) |
209 | jbe open1 |
205 | jbe @f |
Line 210... | Line 206... | ||
210 | mov eax,[I_END+2] |
206 | mov eax,[I_END+2] |
211 | shr eax,9 ; ¯®¤¥«¨¬ 512 ¨ ¯à¨¡ ¢¨¬ 1 - ¯®«ã稬 ç¨á«® ¡«®ª®¢ |
207 | shr eax,9 ; ¯®¤¥«¨¬ 512 ¨ ¯à¨¡ ¢¨¬ 1 - ¯®«ã稬 ç¨á«® ¡«®ª®¢ |
212 | inc eax |
208 | inc eax |
213 | 209 | ||
- | 210 | mov dword [fileinfo+8],eax |
|
- | 211 | mov eax,58 |
|
- | 212 | mov ebx,fileinfo |
|
- | 213 | int 0x40 |
|
- | 214 | @@: |
|
- | 215 | mov eax,[I_END+18] |
|
- | 216 | mov ebx,[I_END+22] |
|
- | 217 | add eax,20 |
|
- | 218 | cmp eax,210 |
|
- | 219 | jae @f |
|
- | 220 | mov eax,210 |
|
- | 221 | @@: |
|
- | 222 | add ebx,58 |
|
- | 223 | cmp ebx,56 |
|
- | 224 | jae @f |
|
- | 225 | mov ebx,56 |
|
- | 226 | @@: |
|
- | 227 | mov [wnd_width],eax |
|
- | 228 | mov [wnd_height],ebx |
|
- | 229 | test [bWasDraw],1 |
|
- | 230 | jz @f |
|
- | 231 | mov esi,ebx |
|
- | 232 | mov edx,eax |
|
- | 233 | mov ecx,-1 |
|
214 | mov dword [fileinfo+8],eax |
234 | mov ebx,-1 |
Line 215... | Line 235... | ||
215 | mov eax,58 |
235 | mov eax,67 |
216 | mov ebx,fileinfo |
236 | int 40h |
Line 382... | Line 402... | ||
382 | ; ******* WINDOW DEFINITIONS AND DRAW ******** |
402 | ; ******* WINDOW DEFINITIONS AND DRAW ******** |
383 | ; ********************************************* |
403 | ; ********************************************* |
Line 384... | Line 404... | ||
384 | 404 | ||
385 | - | ||
- | 405 | ||
Line 386... | Line 406... | ||
386 | draw_window: |
406 | draw_window: |
387 | 407 | or [bWasDraw],1 |
|
388 | 408 | ||
Line 389... | Line 409... | ||
389 | mov eax,12 ; function 12:tell os about windowdraw |
409 | mov eax,12 ; function 12:tell os about windowdraw |
390 | mov ebx,1 ; 1, start of draw |
410 | mov ebx,1 ; 1, start of draw |
391 | int 0x40 |
411 | int 0x40 |
392 | 412 | ||
- | 413 | ; DRAW WINDOW |
|
- | 414 | xor eax,eax ; function 0 : define and draw window |
|
- | 415 | ; mov ebx,350 ; [x start] *65536 + [x size] |
|
- | 416 | ; mov ecx,400 ; [y start] *65536 + [y size] |
|
393 | ; DRAW WINDOW |
417 | mov ebx,100*65536 |
394 | xor eax,eax ; function 0 : define and draw window |
418 | mov ecx,100*65536 |
Line 395... | Line 419... | ||
395 | mov ebx,350 ; [x start] *65536 + [x size] |
419 | add ebx,[wnd_width] |
396 | mov ecx,400 ; [y start] *65536 + [y size] |
420 | add ecx,[wnd_height] |
Line 447... | Line 471... | ||
447 | sop dd 0 |
471 | sop dd 0 |
448 | eop dd 0 |
472 | eop dd 0 |
449 | eos dd 0 |
473 | eos dd 0 |
450 | process dd 0 |
474 | process dd 0 |
Line -... | Line 475... | ||
- | 475 | ||
- | 476 | bWasDraw db 0 |
|
451 | 477 | ||
Line 452... | Line 478... | ||
452 | thread1: ; start of thread1 |
478 | thread1: ; start of thread1 |
Line 453... | Line 479... | ||
453 | 479 | ||
Line 622... | Line 648... | ||
622 | drawstring: |
648 | drawstring: |
623 | pusha |
649 | pusha |
624 | mov eax,8 ;invisible button |
650 | mov eax,8 ;invisible button |
625 | mov ebx,21*65536+258 |
651 | mov ebx,21*65536+258 |
626 | mov ecx,40*65536+15 |
652 | mov ecx,40*65536+15 |
627 | mov edx,0x40000002 |
653 | mov edx,0x60000002 |
628 | int 0x40 |
654 | int 0x40 |
Line 629... | Line 655... | ||
629 | 655 | ||
630 | mov eax,13 ;bar |
656 | mov eax,13 ;bar |
631 | mov edx,0xe0e0e0 |
657 | mov edx,0xe0e0e0 |
Line 662... | Line 688... | ||
662 | dd 1 ;number of blocks of 512 bytes |
688 | dd 1 ;number of blocks of 512 bytes |
663 | dd I_END |
689 | dd I_END |
664 | dd temp_area |
690 | dd temp_area |
665 | string: |
691 | string: |
666 | ; db '/HARDDISK/FIRST/1/DICK.BMP ' |
692 | ; db '/HARDDISK/FIRST/1/DICK.BMP ' |
667 | db '/hd/1/menuet/pics/new.bmp ' |
693 | ; db '/hd/1/menuet/pics/new.bmp ' |
- | 694 | db '/rd/1/bgr.bmp ' |
|
668 | db ' ' |
695 | db ' ' |
669 | db ' ' |
696 | db ' ' |
Line 670... | Line 697... | ||
670 | 697 | ||
Line 965... | Line 992... | ||
965 | 992 | ||
966 | ; DATA AREA |
993 | ; DATA AREA |
967 | vflag: db 'x' |
994 | vflag: db 'x' |
Line -... | Line 995... | ||
- | 995 | bgrmode: dd 1 |
|
- | 996 | ||
- | 997 | wnd_width dd 210 |
|
968 | bgrmode: dd 1 |
998 | wnd_height dd 53 |
969 | 999 | ||
970 | lsz labelt3,\ |
1000 | lsz labelt3,\ |
Line 971... | Line 1001... | ||
971 | en, 'Background set',\ |
1001 | en, 'Background set',\ |
Line 988... | Line 1018... | ||
988 | ru, 'Ok' |
1018 | ru, 'Ok' |
Line 989... | Line 1019... | ||
989 | 1019 | ||
- | 1020 | ||
990 | 1021 | ||
991 | 1022 | IM_END: |
|
992 | IM_END: |
1023 | process_info: |
993 | temp_area: |
- |