Rev 31 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 31 | Rev 80 | ||
---|---|---|---|
Line 3... | Line 3... | ||
3 | 3 | ||
4 | db 'MENUET01' |
4 | db 'MENUET01' |
5 | dd 0x01 |
5 | dd 0x01 |
6 | dd START |
6 | dd START |
7 | dd I_END |
7 | dd I_END |
8 | dd 0x100000 |
8 | dd mem_end |
9 | dd 0x7fff0 |
9 | dd mem_end |
Line 10... | Line 10... | ||
10 | dd 0x0, 0x0 |
10 | dd 0x0, 0x0 |
11 | 11 | ||
Line 12... | Line -... | ||
12 | include 'lang.inc' |
- | |
13 | START: |
- | |
14 | 12 | ;include 'lang.inc' |
|
15 | call draw_window |
13 | START: |
16 | 14 | ||
17 | mov edi,my_img |
15 | mov edi, my_img |
Line 18... | Line -... | ||
18 | mov ecx,64001*3/4 |
- | |
19 | xor eax,eax |
- | |
20 | rep stosd |
- | |
21 | 16 | mov ecx, 64001*3/4+1 |
|
22 | mov esi,my_img |
17 | xor eax, eax |
23 | mov [count1],esi |
18 | rep stosd |
Line 24... | Line 19... | ||
24 | 19 | ||
25 | mov eax,3 |
- | |
- | 20 | mov al, 3 |
|
- | 21 | int 0x40 |
|
26 | int 0x40 |
22 | mov [curtime], eax |
- | 23 | ||
27 | mov [curtime],eax |
24 | red: |
Line 28... | Line 25... | ||
28 | 25 | push 12 |
|
29 | still: |
- | |
30 | 26 | pop eax |
|
31 | mov eax,11 |
- | |
32 | int 0x40 |
27 | push 1 |
33 | 28 | pop ebx |
|
34 | cmp eax,1 |
29 | int 0x40 |
35 | je red |
30 | |
36 | cmp eax,2 |
31 | xor eax, eax |
37 | je key |
- | |
38 | cmp eax,3 |
- | |
39 | je button |
- | |
40 | call image |
- | |
41 | mov eax,3 |
- | |
42 | int 0x40 |
- | |
43 | mov ebx,[curtime] |
- | |
44 | cmp eax,ebx |
- | |
45 | jz still |
- | |
46 | mov [curtime],eax |
- | |
Line 47... | Line -... | ||
47 | call print_fps |
- | |
48 | jmp still |
32 | mov ebx, 200*65536+325 |
49 | 33 | mov ecx, 150*65536+225 |
|
50 | red: |
34 | xor edx, edx |
51 | call draw_window |
35 | xor esi, esi |
52 | jmp still |
36 | mov edi, 0x00100000 |
53 | 37 | int 0x40 |
|
54 | key: |
- | |
Line -... | Line 38... | ||
- | 38 | ||
- | 39 | mov al, 8 |
|
- | 40 | mov ebx, (325-19)*65536+12 |
|
- | 41 | mov ecx, 5*65536+12 |
|
55 | mov eax,2 |
42 | inc edx |
56 | int 0x40 |
43 | mov esi, 0x00400000 |
57 | cmp ah,1 |
44 | int 0x40 |
Line 58... | Line 45... | ||
58 | jne still |
45 | |
59 | mov eax,0xffffffff |
46 | mov al, 4 |
60 | int 0x40 |
47 | mov ebx, 8*65536+8 |
61 | jmp still |
48 | mov ecx, 0x00FFFFFF;0x00402020 |
62 | - | ||
63 | button: |
- | |
64 | mov eax,17 |
- | |
Line 65... | Line 49... | ||
65 | int 0x40 |
49 | mov edx, fire_label |
Line 66... | Line 50... | ||
66 | 50 | push len00 |
|
67 | cmp ah,1 |
51 | pop esi |
68 | jne still |
52 | int 0x40 |
Line 69... | Line 53... | ||
69 | mov eax,-1 |
53 | |
70 | int 0x40 |
54 | mov al, 12 |
71 | retn |
55 | push 2 |
72 | 56 | pop ebx |
|
73 | ;Window |
57 | int 0x40 |
74 | 58 | ||
75 | draw_window: |
- | |
Line 76... | Line -... | ||
76 | - | ||
77 | mov eax,12 |
59 | still: |
78 | mov ebx,1 |
60 | |
79 | int 0x40 |
61 | push 11 |
80 | - | ||
81 | mov eax,0 |
62 | pop eax |
- | 63 | int 0x40 |
|
- | 64 | ||
- | 65 | dec eax |
|
82 | mov ebx,200*65536+325 |
66 | jz red |
- | 67 | dec eax |
|
83 | mov ecx,150*65536+225 |
68 | jz key |
84 | mov edx,0x00000000 |
69 | dec eax |
85 | mov esi,edx |
70 | jz button |
86 | mov edi,0x00100000 |
71 | |
87 | int 0x40 |
- | |
88 | 72 | call image |
|
- | 73 | push 3 |
|
- | 74 | pop eax |
|
- | 75 | int 0x40 |
|
- | 76 | cmp eax, [curtime] |
|
- | 77 | jz still |
|
- | 78 | mov [curtime], eax |
|
- | 79 | print_fps: |
|
- | 80 | push 13 |
|
Line -... | Line 81... | ||
- | 81 | pop eax |
|
89 | mov eax,4 |
82 | mov ebx, (8+27*6)*65536+18 |
- | 83 | mov ecx, 8*65536+8 |
|
- | 84 | xor edx, edx |
|
- | 85 | int 0x40 |
|
90 | mov ebx,8*65536+8 |
86 | lea edx, [ebx-10] |
- | 87 | mov al, 47 |
|
- | 88 | mov ebx, 30000h |
|
91 | mov ecx,0x00402020 |
89 | xor ecx, ecx |
Line 92... | Line 90... | ||
92 | mov edx,fire_label |
90 | xchg ecx, [fps] |
Line 93... | Line -... | ||
93 | mov esi,len00 |
- | |
94 | int 0x40 |
91 | mov esi, 0x00FFFFFF ;0x00400000 |
95 | 92 | int 0x40 |
|
96 | mov eax,8 |
93 | jmp still |
97 | mov ebx,(325-19)*65536+12 |
94 | |
98 | mov ecx,5*65536+12 |
95 | key: |
99 | mov edx,1 |
- | |
100 | mov esi,0x00400000 |
96 | mov al, 2 |
101 | int 0x40 |
97 | int 0x40 |
102 | - | ||
103 | mov eax,12 |
98 | cmp ah, 1Bh ; |
104 | mov ebx,2 |
99 | jne still |
105 | int 0x40 |
100 | button: |
106 | - | ||
107 | retn |
101 | ; we have only one button, close |
108 | 102 | or eax, -1 |
|
109 | penta: |
103 | int 0x40 |
110 | ; ¨á㥬 ¯¥â £p ¬¬ã |
104 | |
111 | 105 | image: |
|
112 | mov edi,my_img |
- | |
113 | mov ebx,(320)*3 |
- | |
114 | DrawP: mov eax,0x00fc0000 |
- | |
115 | add edi,0x540*3 |
- | |
116 | push edi |
106 | |
117 | mov ecx,0x78 |
107 | ; ¨á㥬 ¯¥â £p ¬¬ã |
118 | ll_3: mov [edi],eax |
108 | penta: |
119 | mov [edi+3],eax |
109 | mov edi,my_img+0x540*3 |
120 | mov [edi-3],eax |
110 | mov ebx,(320)*3 |
121 | mov [edi+ebx],eax |
- | |
122 | add edi,6 |
- | |
123 | add edi,ebx |
- | |
124 | loop ll_3 |
- | |
125 | pop edi |
111 | mov eax,0x00fc0000 |
126 | mov ecx,0x60 |
112 | push edi |
127 | ll_4: mov [ebx+edi],eax |
113 | push 0x78 |
128 | mov [edi],eax |
114 | pop ecx |
129 | mov [edi+3],eax |
115 | ll_3: |
130 | mov [edi-3],eax |
116 | call put_big_point |
131 | add edi,3 |
117 | lea edi, [edi+ebx+6] |
132 | add edi,ebx |
118 | loop ll_3 |
133 | add edi,ebx |
- | |
134 | loop ll_4 |
- | |
135 | mov ecx,0x61 |
119 | pop edi |
136 | ll_5: mov [ebx+edi],eax |
120 | mov cl, 0x60 |
137 | mov [edi],eax |
121 | ll_4: |
138 | mov [edi+3],eax |
122 | call put_big_point |
139 | mov [edi-3],eax |
123 | lea edi, [edi+ebx*2+3] |
140 | add edi,3 |
124 | loop ll_4 |
141 | sub edi,ebx |
125 | mov cl, 0x61 |
142 | sub edi,ebx |
126 | ll_5: |
143 | loop ll_5 |
127 | call put_big_point |
Line 144... | Line -... | ||
144 | add edi,0x98D1*3 |
- | |
145 | push edi |
- | |
146 | mov ecx,0x78 |
- | |
147 | ll_6: mov [edi],eax |
128 | sub edi, 2*320*3-3 |
148 | mov [edi+ebx],eax |
129 | loop ll_5 |
149 | mov [edi+3],eax |
130 | mov edi, my_img+0x1D4F6 |
150 | mov [edi-3],eax |
131 | push edi |
151 | add edi,6 |
132 | mov cl, 0x78 |
152 | sub edi,ebx |
- | |
153 | loop ll_6 |
133 | ll_6: |
154 | pop edi |
134 | call put_big_point |
155 | mov ecx,0x8F*2 |
135 | add edi,6 |
156 | ll_7: mov [edi],eax |
136 | sub edi,ebx |
157 | mov [edi+ebx],eax |
137 | loop ll_6 |
158 | add edi,3 |
138 | pop edi |
- | 139 | mov ecx,0x8F*2 |
|
159 | loop ll_7 |
140 | ll_7: stosd |
160 | 141 | mov [edi+ebx-4],eax |
|
161 | retn |
142 | dec edi |
162 | 143 | loop ll_7 |
|
163 | 144 | ||
164 | fire: |
145 | fire: |
165 | ; _HH _! ¤¥áì á ¬®¥ ¨â¥p¥á®¥. |
146 | ; _HH _! ¤¥áì á ¬®¥ ¨â¥p¥á®¥. |
166 | ; «£®p¨â¬ £®p¥¨ï. |
147 | ; «£®p¨â¬ £®p¥¨ï. |
167 | mov esi,[count1] |
148 | mov esi,[count1] |
168 | mov edx,[count2] |
149 | mov edx,[count2] |
169 | mov ebx,320*3 |
150 | mov ecx, 10000h |
170 | mov ecx,0xffff |
151 | Flame: cmp esi,0xFA00*3+my_img ; ᥢ¤®á«ãç © ï â®çª ¢ ¯p¥¤ « å íªp |
Line 196... | Line 177... | ||
196 | ; ¯á¥¢¤®á«ãç ©ãî â®çªã. |
177 | ; ¯á¥¢¤®á«ãç ©ãî â®çªã. |
197 | ;jnz Flame ; â ª 65536 p §. |
178 | ;jnz Flame ; â ª 65536 p §. |
198 | loop Flame |
179 | loop Flame |
199 | mov [count1],esi |
180 | mov [count1],esi |
200 | mov [count2],edx |
181 | mov [count2],edx |
201 | retn |
- | |
202 | - | ||
203 | image: |
- | |
204 | call penta |
- | |
205 | call fire |
- | |
Line 206... | Line 182... | ||
206 | 182 | ||
207 | mov ebx,my_img |
183 | mov ebx,my_img |
208 | mov ecx,320*65536+200 |
184 | mov ecx,320*65536+200 |
209 | mov edx,2*65536+23 |
185 | mov edx,2*65536+23 |
- | 186 | push 7 |
|
210 | mov eax,7 |
187 | pop eax |
Line 211... | Line 188... | ||
211 | int 0x40 |
188 | int 0x40 |
212 | 189 | ||
Line 213... | Line 190... | ||
213 | inc [fps] |
190 | inc [fps] |
214 | retn |
- | |
215 | 191 | retn |
|
216 | print_fps: |
192 | |
217 | mov eax,13 |
- | |
218 | mov ebx,(8+27*6)*65536+18 |
- | |
219 | mov ecx,8*65536+8 |
- | |
220 | mov edx,0x00000000 |
- | |
221 | int 0x40 |
- | |
222 | mov eax,47 |
- | |
223 | xor ebx,ebx |
- | |
224 | mov bx,3 |
193 | put_big_point: |
225 | shl ebx,16 |
194 | mov [edi], eax |
226 | mov ecx,[fps] |
- | |
227 | mov edx,(8+27*6)*65536+8 |
195 | mov [edi+3], eax |
228 | mov esi,0x00400000 |
- | |
229 | int 0x40 |
- | |
Line 230... | Line 196... | ||
230 | xor eax,eax |
196 | mov [edi-3], eax |
- | 197 | mov [edi+ebx], eax |
|
Line 231... | Line 198... | ||
231 | mov [fps],eax |
198 | ret |
232 | retn |
199 | |
233 | 200 | ;DATA |
|
234 | ;DATA |
201 | align 4 |
235 | 202 | ||
236 | count1 dd 0 |
203 | count1 dd my_img |
237 | count2 dd 0 |
- | |
238 | curtime dd 0 |
- | |
239 | fps dd 0 |
- | |
240 | fire_label db 'Pentagramm in FIRE FPS:' |
204 | count2 dd 0 |
Line 241... | Line 205... | ||
241 | len00=$-fire_label |
205 | curtime dd 0 |
- | 206 | fps dd 0 |
|
- | 207 | fire_label db 'Pentagramm in FIRE FPS:' |
|
- | 208 | len00=$-fire_label |
|
- | 209 | I_END: |
|
- | 210 | ||
- | 211 | align 16 |
|
- | 212 | rb 320*3 |
|
- | 213 | my_img rb 320*200*3 |
|
- | 214 | rb 320*3 |