Subversion Repositories Kolibri OS

Rev

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
; _‚HˆŒ€Hˆ…_! ‡¤¥áì á ¬®¥ ¨­â¥p¥á­®¥.
146
; _‚HˆŒ€Hˆ…_! ‡¤¥áì á ¬®¥ ¨­â¥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