Rev 132 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 132 | Rev 135 | ||
---|---|---|---|
Line 30... | Line 30... | ||
30 | .no_boot: |
30 | .no_boot: |
Line 31... | Line 31... | ||
31 | 31 | ||
32 | cmp byte [temp_area],0 |
32 | cmp byte [temp_area],0 |
33 | jz .no_param |
33 | jz .no_param |
34 | mov edi,string ; clear string |
34 | mov edi,string ; clear string |
35 | mov ecx,43*3 ; length of a string |
35 | mov ecx,256/4 ; length of a string |
36 | xor eax,eax ; symbol <0> |
- | |
37 | add al,14h |
- | |
38 | cld |
36 | xor eax,eax ; symbol <0> |
Line 39... | Line 37... | ||
39 | rep stosb |
37 | rep stosd |
- | 38 | ||
40 | 39 | mov edi,temp_area ; look for <0> in temp_area |
|
41 | mov edi,temp_area ; look for <0> in temp_area |
40 | mov esi,edi |
42 | mov ecx,43*3+1 ; strlen |
41 | mov ecx,257 ; strlen |
43 | repne scasb |
- | |
Line 44... | Line -... | ||
44 | add edi,-temp_area ; get length of the string |
- | |
45 | dec edi |
- | |
46 | 42 | repne scasb |
|
47 | mov ecx,edi |
43 | lea ecx, [edi-temp_area] |
Line 48... | Line 44... | ||
48 | mov esi,temp_area |
44 | |
49 | mov edi,string |
45 | mov edi,string |
Line 70... | Line 66... | ||
70 | @@: |
66 | @@: |
Line 71... | Line 67... | ||
71 | 67 | ||
72 | ; ⥯¥àì ¢ ecx ®¬¥à ¯à®æ¥áá |
68 | ; ⥯¥àì ¢ ecx ®¬¥à ¯à®æ¥áá |
Line -... | Line 69... | ||
- | 69 | mov [process],ecx |
|
73 | mov [process],ecx |
70 | |
Line 74... | Line 71... | ||
74 | 71 | draw_still: |
|
Line 75... | Line 72... | ||
75 | call draw_window |
72 | call draw_window |
76 | 73 | ||
Line 77... | Line 74... | ||
77 | still: |
74 | still: |
78 | 75 | ||
79 | mov eax,10 ; wait here for event |
- | |
80 | int 0x40 |
76 | mov eax,10 ; wait here for event |
81 | - | ||
82 | cmp eax,1 ; redraw request ? |
77 | int 0x40 |
83 | je red |
- | |
84 | cmp eax,2 ; key in buffer ? |
- | |
85 | je key |
- | |
86 | cmp eax,3 ; button in buffer ? |
- | |
87 | je button |
- | |
88 | - | ||
89 | jmp still |
- | |
90 | - | ||
91 | red: |
- | |
92 | bt [status],2 |
- | |
93 | jnc @f |
- | |
94 | mov eax,18 |
- | |
95 | mov ebx,3 |
- | |
96 | mov ecx,[process] |
- | |
97 | int 0x40 |
- | |
Line 98... | Line 78... | ||
98 | btr [status],2 |
78 | |
- | 79 | dec eax |
|
99 | jmp still |
80 | jz red |
- | 81 | dec eax |
|
100 | @@: |
82 | jnz button |
101 | call draw_window |
83 | |
102 | jmp still |
84 | key: ; key |
103 | 85 | mov al,2 |
|
104 | key: ; key |
86 | int 0x40 |
105 | int 0x40 |
87 | mov al,ah |
106 | cmp ah,6 |
88 | cmp al,6 |
107 | je kfile |
89 | je kfile |
108 | cmp ah,15 |
90 | cmp al,15 |
Line -... | Line 91... | ||
- | 91 | je kopen |
|
- | 92 | cmp al,9 |
|
- | 93 | je kinfo |
|
- | 94 | cmp al,2 |
|
- | 95 | je kbgrd |
|
- | 96 | jmp still |
|
- | 97 | ||
- | 98 | red: |
|
- | 99 | test byte [status], 4 |
|
- | 100 | jz draw_still |
|
109 | je kopen |
101 | mov al, 18 |
110 | cmp ah,9 |
102 | mov ebx, 3 |
111 | je kinfo |
103 | mov ecx, [process] |
Line 112... | Line 104... | ||
112 | cmp ah,2 |
104 | int 0x40 |
Line 124... | Line 116... | ||
124 | int 0x40 |
116 | int 0x40 |
125 | noclose: |
117 | noclose: |
126 | cmp ah,2 |
118 | cmp ah,2 |
127 | jne nofile |
119 | jne nofile |
128 | kfile: |
120 | kfile: |
129 | bt dword [status],0 |
121 | test byte [status], 1 |
130 | jc still |
122 | jnz still |
131 | bts dword [status],0 |
123 | or byte [status], 1 |
132 | mov eax,51 |
124 | mov eax,51 |
133 | mov ebx,1 |
125 | mov ebx,1 |
134 | mov ecx,thread1 |
126 | mov ecx,thread1 |
135 | mov edx,0x29fff0 |
127 | mov edx,0x29fff0 |
136 | int 0x40 |
128 | int 0x40 |
Line 161... | Line 153... | ||
161 | noopen: |
153 | noopen: |
Line 162... | Line 154... | ||
162 | 154 | ||
163 | cmp ah,4 |
155 | cmp ah,4 |
164 | jne noinfo |
156 | jne noinfo |
165 | kinfo: |
157 | kinfo: |
166 | bt dword [status],1 |
158 | test byte [status], 2 |
167 | jc still |
159 | jnz still |
168 | bts dword [status],1 |
160 | or byte [status], 2 |
169 | mov eax,51 |
161 | mov eax,51 |
170 | mov ebx,1 |
162 | mov ebx,1 |
171 | mov ecx,thread2 |
163 | mov ecx,thread2 |
172 | mov edx,0x2afff0 |
164 | mov edx,0x2afff0 |
Line 176... | Line 168... | ||
176 | 168 | ||
177 | ; |
169 | ; |
178 | cmp ah,5 |
170 | cmp ah,5 |
179 | jne still |
171 | jne still |
180 | kbgrd: |
172 | kbgrd: |
181 | bt dword [status],3 |
173 | test byte [status], 8 |
182 | jc still |
174 | jnz still |
183 | bts dword [status],3 |
175 | or byte [status], 8 |
184 | mov eax,51 |
176 | mov eax,51 |
185 | mov ebx,1 |
177 | mov ebx,1 |
186 | mov ecx,thread3 |
178 | mov ecx,thread3 |
187 | mov edx,0x2bfff0 |
179 | mov edx,0x2bfff0 |
Line 195... | Line 187... | ||
195 | int 0x40 |
187 | int 0x40 |
196 | ret |
188 | ret |
Line 197... | Line 189... | ||
197 | 189 | ||
198 | - | ||
199 | load_image: |
190 | |
200 | mov dword [fileinfo+8],1 ; how many blocks to read (1) |
- | |
201 | mov eax,58 |
- | |
202 | mov ebx,fileinfo |
- | |
203 | int 0x40 |
- | |
204 | cmp [I_END+2],dword 512 ; à §¬¥à ä ©« (file size) |
- | |
205 | jbe @f |
- | |
206 | mov eax,[I_END+2] |
- | |
207 | shr eax,9 ; ¯®¤¥«¨¬ 512 ¨ ¯à¨¡ ¢¨¬ 1 - ¯®«ã稬 ç¨á«® ¡«®ª®¢ |
- | |
208 | inc eax |
- | |
209 | - | ||
210 | mov dword [fileinfo+8],eax |
191 | load_image: |
211 | mov eax,58 |
192 | mov eax, 70 |
212 | mov ebx,fileinfo |
- | |
213 | int 0x40 |
193 | mov ebx, fileinfo |
214 | @@: |
194 | int 0x40 |
215 | mov eax,[I_END+18] |
195 | mov eax,[I_END+18] |
216 | mov ebx,[I_END+22] |
196 | mov ebx,[I_END+22] |
217 | add eax,20 |
197 | add eax,20 |
Line 261... | Line 241... | ||
261 | mov edx,[I_END+22] ; ¢ëá®â |
241 | mov edx,[I_END+22] ; ¢ëá®â |
262 | int 0x40 |
242 | int 0x40 |
Line 263... | Line 243... | ||
263 | 243 | ||
264 | mov esi, ecx |
244 | mov esi, ecx |
265 | imul esi, edx |
245 | imul esi, edx |
266 | imul esi, 3 |
246 | lea esi, [esi+esi*2] |
267 | mov ebx,5 |
247 | mov ebx,5 |
268 | mov ecx,[soi] |
248 | mov ecx,[soi] |
269 | xor edx,edx |
249 | xor edx,edx |
270 | ;;; mov esi, ;640*480*3 |
250 | ;;; mov esi, ;640*480*3 |
Line 280... | Line 260... | ||
280 | ret |
260 | ret |
Line 281... | Line 261... | ||
281 | 261 | ||
282 | convert: |
262 | convert: |
283 | movzx eax,word [I_END+28] |
263 | movzx eax,word [I_END+28] |
284 | mul dword [I_END+18] |
264 | mul dword [I_END+18] |
285 | mov ebx,32 |
265 | ; mov ebx,32 |
286 | div ebx |
266 | ; div ebx |
287 | test edx,edx |
267 | ; test edx,edx |
288 | je noaddword |
268 | ; je noaddword |
289 | inc eax |
269 | ; inc eax |
- | 270 | ; noaddword: |
|
- | 271 | add eax, 31 |
|
290 | noaddword: |
272 | shr eax, 5 |
291 | mov [dwps],eax ;dwps-doublewords per string |
273 | mov [dwps],eax ;dwps-doublewords per string |
292 | shl eax,2 |
274 | shl eax,2 |
Line 293... | Line 275... | ||
293 | mov [bps],eax ;bps-bytes per string |
275 | mov [bps],eax ;bps-bytes per string |
Line 460... | Line 442... | ||
460 | labelt: |
442 | labelt: |
461 | db 'MeView v.0.3' |
443 | db 'MeView v.0.3' |
Line 462... | Line 444... | ||
462 | 444 | ||
463 | lsz buttext,\ |
445 | lsz buttext,\ |
464 | en, ' FILE OPEN INFO BGRD',\ |
446 | en, ' FILE OPEN INFO BGRD',\ |
- | 447 | ru, ' ',\ |
|
Line 465... | Line 448... | ||
465 | ru, ' ' |
448 | de, 'DATEI OEFNEN INFO HGRD' |
466 | 449 | ||
467 | status dd 0 ;bit0=1 if file thread is created |
450 | status dd 0 ;bit0=1 if file thread is created |
468 | bps dd 0 |
451 | bps dd 0 |
Line 632... | Line 615... | ||
632 | ; WINDOW LABEL |
615 | ; WINDOW LABEL |
633 | mov eax,4 ; function 4 : write text to window |
616 | mov eax,4 ; function 4 : write text to window |
634 | mov ebx,8*65536+8 ; [x start] *65536 + [y start] |
617 | mov ebx,8*65536+8 ; [x start] *65536 + [y start] |
635 | mov ecx,0x10ddeeff ; font 1 & color ( 0xF0RRGGBB ) |
618 | mov ecx,0x10ddeeff ; font 1 & color ( 0xF0RRGGBB ) |
636 | mov edx,labelt1 ; pointer to text beginning |
619 | mov edx,labelt1 ; pointer to text beginning |
637 | mov esi,4 ; text length |
620 | mov esi,labelt1.size ; text length |
638 | int 0x40 |
621 | int 0x40 |
Line 639... | Line 622... | ||
639 | 622 | ||
Line 640... | Line 623... | ||
640 | call drawstring |
623 | call drawstring |
Line 677... | Line 660... | ||
677 | 660 | ||
Line 678... | Line 661... | ||
678 | ; DATA AREA |
661 | ; DATA AREA |
679 | 662 | ||
680 | lsz labelt1,\ |
663 | lsz labelt1,\ |
681 | en, 'File',\ |
- | |
682 | ru, ' ©«' |
- | |
683 | - | ||
684 | pos: dd 6 |
- | |
685 | fileinfo: |
- | |
686 | dd 0 |
- | |
687 | dd 0 |
- | |
688 | dd 1 ;number of blocks of 512 bytes |
664 | en, 'File',\ |
689 | dd I_END |
- | |
690 | dd temp_area |
- | |
691 | string: |
- | |
692 | ; db '/HARDDISK/FIRST/1/DICK.BMP ' |
- | |
693 | ; db '/hd/1/menuet/pics/new.bmp ' |
- | |
694 | db '/rd/1/bgr.bmp ' |
- | |
Line 695... | Line 665... | ||
695 | db ' ' |
665 | ru, ' ©«',\ |
Line 696... | Line 666... | ||
696 | db ' ' |
666 | de, 'Datei' |
Line 821... | Line 791... | ||
821 | 791 | ||
Line 822... | Line 792... | ||
822 | ; DATA AREA |
792 | ; DATA AREA |
823 | 793 | ||
824 | lsz labelt2,\ |
794 | lsz labelt2,\ |
- | 795 | en, 'File info',\ |
|
Line 825... | Line 796... | ||
825 | en, 'File info',\ |
796 | ru, 'ä®à¬ æ¨ï ® ä ©«¥',\ |
826 | ru, 'ä®à¬ æ¨ï ® ä ©«¥' |
797 | de, 'Dateiinfo' |
827 | 798 | ||
828 | lsz fitext,\ |
799 | lsz fitext,\ |
829 | en, 'FILE SIZE ',\ |
800 | en, 'FILE SIZE ',\ |
830 | en, 'X SIZE ',\ |
801 | en, 'X SIZE ',\ |
831 | en, 'Y SIZE ',\ |
802 | en, 'Y SIZE ',\ |
832 | en, 'BITS PER PIXEL',\ |
803 | en, 'BITS PER PIXEL',\ |
833 | \ |
804 | \ |
834 | ru, ' §¬¥à ä ©« ',\ |
805 | ru, ' §¬¥à ä ©« ',\ |
- | 806 | ru, '¨à¨ ',\ |
|
- | 807 | ru, 'ëá®â ',\ |
|
- | 808 | ru, '¨â ¯¨ªá¥« ',\ |
|
- | 809 | \ |
|
- | 810 | de, 'FATEIGROESSE ',\ |
|
Line 835... | Line 811... | ||
835 | ru, '¨à¨ ',\ |
811 | de, 'X GROESSE ',\ |
Line 836... | Line 812... | ||
836 | ru, 'ëá®â ',\ |
812 | de, 'Y GROESSE ',\ |
Line 937... | Line 913... | ||
937 | ; WINDOW LABEL |
913 | ; WINDOW LABEL |
938 | mov eax,4 ; function 4 : write text to window |
914 | mov eax,4 ; function 4 : write text to window |
939 | mov ebx,8*65536+8 ; [x start] *65536 + [y start] |
915 | mov ebx,8*65536+8 ; [x start] *65536 + [y start] |
940 | mov ecx,0x10ddeeff ; font 1 & color ( 0xF0RRGGBB ) |
916 | mov ecx,0x10ddeeff ; font 1 & color ( 0xF0RRGGBB ) |
941 | mov edx,labelt3 ; pointer to text beginning |
917 | mov edx,labelt3 ; pointer to text beginning |
942 | mov esi,14 ; text length |
918 | mov esi,labelt3.size ; text length |
943 | int 0x40 |
919 | int 0x40 |
944 | add ebx,38*65536+20 |
920 | add ebx,38*65536+20 |
945 | mov ecx,0xddeeff |
921 | mov ecx,0xddeeff |
946 | mov edx, bgrdtext |
922 | mov edx, bgrdtext |
947 | mov esi, bgrdtext.size |
923 | mov esi, bgrdtext.size |
Line 997... | Line 973... | ||
997 | wnd_width dd 210 |
973 | wnd_width dd 210 |
998 | wnd_height dd 53 |
974 | wnd_height dd 53 |
Line 999... | Line 975... | ||
999 | 975 | ||
1000 | lsz labelt3,\ |
976 | lsz labelt3,\ |
1001 | en, 'Background set',\ |
977 | en, 'Background set',\ |
- | 978 | ru, "áâ ®¢ª ä® ",\ |
|
Line 1002... | Line 979... | ||
1002 | ru, "áâ ®¢ª ä® " |
979 | de, 'Hintergrund gesetzt' |
1003 | 980 | ||
1004 | lsz bgrdtext,\ |
981 | lsz bgrdtext,\ |
- | 982 | en, 'SET AS BACKGROUND:',\ |
|
Line 1005... | Line 983... | ||
1005 | en, 'SET AS BACKGROUND:',\ |
983 | ru, '¨¯ ®¡®¥¢:',\ |
1006 | ru, '¨¯ ®¡®¥¢:' |
984 | de, 'ALS HINTERGRUND' |
1007 | 985 | ||
- | 986 | lsz tiled,\ |
|
Line 1008... | Line 987... | ||
1008 | lsz tiled,\ |
987 | en, 'TILED',\ |
1009 | en, 'TILED',\ |
988 | ru, '§ ¬®áâ¨âì',\ |
1010 | ru, '§ ¬®áâ¨âì' |
989 | de, 'GEKACHELT' |
- | 990 | ||
Line 1011... | Line 991... | ||
1011 | 991 | lsz stretch,\ |
|
1012 | lsz stretch,\ |
992 | en, 'STRETCH',\ |
1013 | en, 'STRETCH',\ |
993 | ru, 'à áâïãâì',\ |
1014 | ru, 'à áâïãâì' |
994 | de, 'GESTRECKT' |
Line -... | Line 995... | ||
- | 995 | ||
- | 996 | lsz ok_btn,\ |
|
- | 997 | en, 'Ok',\ |
|
- | 998 | ru, 'Ok',\ |
|
- | 999 | de, 'Ok' |
|
- | 1000 | ||
- | 1001 | pos: dd 6 |
|
- | 1002 | fileinfo: |
|
- | 1003 | dd 0 |
|
Line 1015... | Line 1004... | ||
1015 | 1004 | dd 0 |
|
- | 1005 | dd 0 |
|
- | 1006 | dd 0x290000-I_END |
|
1016 | lsz ok_btn,\ |
1007 | dd I_END |
1017 | en, 'Ok',\ |
1008 | string: |
1018 | ru, 'Ok' |
1009 | db '/rd/1/bgr.bmp',0 |
1019 | 1010 |