Rev 1863 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1863 | Rev 2076 | ||
---|---|---|---|
Line 1... | Line 1... | ||
1 | ; -------------------------------------------------------- |
1 | ; -------------------------------------------------------- |
- | 2 | ; KJ|ABuIIIA - ª« ¢¨ âãàë© âॠ¦ñà ¤«ï ®¯¥à 樮®© á¨áâ¥¬ë ®«¨¡à¨. |
|
- | 3 | ;--------------------------------------------------------------------- |
|
2 | ; KJ|ABuIIIA 0.9 |
4 | ; version: 0.95 |
- | 5 | ; last update: 19/08/2011 |
|
- | 6 | ; changed by: Marat Zakiyanov aka Mario79, aka Mario |
|
- | 7 | ; changes: 1) Checking for "rolled up" window |
|
- | 8 | ; 2) Code optimization |
|
- | 9 | ; 3) Clearing source |
|
3 | ; -------------------------------------------------------- |
10 | ;--------------------------------------------------------------------- |
4 | ; « ¢¨ âãàë© âॠ¦ñà ¤«ï ®¯¥à 樮®© á¨áâ¥¬ë ®«¨¡à¨. |
- | |
5 | ; |
11 | ; version: 0.90 |
6 | ; §à ¡®â稪¨: |
12 | ; last update: 24/07/2010 |
7 | ; - ¤à¥© ¨å ©«®¢¨ç (Dron2004) |
13 | ; changed by: ¤à¥© ¨å ©«®¢¨ç (Dron2004) |
8 | ; |
14 | ; |
9 | ; ®á«¥¤¨¥ ¨§¬¥¥¨ï ¢ ¨á室®¬ ª®¤¥: 24.07.2010 21:15 GMT+6 |
15 | ; ®á«¥¤¨¥ ¨§¬¥¥¨ï ¢ ¨á室®¬ ª®¤¥: 24.07.2010 21:15 GMT+6 |
10 | - | ||
11 | - | ||
- | 16 | ;--------------------------------------------------------------------- |
|
12 | use32 |
17 | use32 |
13 | org 0x0 |
18 | org 0x0 |
14 | - | ||
15 | ; £®«®¢®ª |
19 | ; £®«®¢®ª |
16 | db 'MENUET01' |
20 | db 'MENUET01' |
17 | dd 0x01 |
21 | dd 0x01 |
18 | dd START |
22 | dd START |
- | 23 | dd IM_END |
|
19 | dd I_END |
24 | dd I_END |
20 | dd 0x10000 |
- | |
21 | dd 0x10000 |
25 | dd stacktop |
22 | dd params |
26 | dd params |
23 | dd 0x0 |
27 | dd 0x0 |
24 | - | ||
- | 28 | ;--------------------------------------------------------------------- |
|
- | 29 | include 'lang.inc' |
|
- | 30 | include '../../../macros.inc' |
|
- | 31 | ;--------------------------------------------------------------------- |
|
25 | ;®¤ ¯à®£à ¬¬ë |
32 | ;®¤ ¯à®£à ¬¬ë |
26 | START: |
33 | START: |
- | 34 | ;¨æ¨ «¨§¨à㥬 ªãçã |
|
27 | 35 | mcall 68,11 |
|
28 | ; call get_screen_params |
36 | ; call get_screen_params |
29 | - | ||
30 | mov eax, 0x0000001C |
37 | ; mov eax,0x0000001C |
31 | cmp eax, 0x0 |
38 | ; cmp eax,0x0 |
32 | je start_with_internal_text ; à ¬¥âàë ¥ § ¤ ë |
39 | ; je start_with_internal_text ; à ¬¥âàë ¥ § ¤ ë |
Line 33... | Line 40... | ||
33 | 40 | ||
34 | ; à ¬¥âà § ¤ ! ëâ ¥¬áï í⨬ ¢®á¯®«ì§®¢ âìáï |
41 | ; à ¬¥âà § ¤ ! ëâ ¥¬áï í⨬ ¢®á¯®«ì§®¢ âìáï |
35 | ; ¥®¡å®¤¨¬® ®¯à¥¤¥«¨âì à §¬¥à ä ©« ... ¯¥àñ¤!!! |
42 | ; ¥®¡å®¤¨¬® ®¯à¥¤¥«¨âì à §¬¥à ä ©« ... ¯¥àñ¤!!! |
36 | mov eax, 5 |
43 | mov eax,5 |
Line 41... | Line 48... | ||
41 | mov [arg4], eax |
48 | mov [arg4],eax |
42 | mov eax, filedatastruct |
49 | mov eax,filedatastruct |
43 | mov [arg5], eax |
50 | mov [arg5],eax |
44 | mov eax, [0x0000001C] |
51 | mov eax,[0x0000001C] |
45 | mov [arg7], eax |
52 | mov [arg7],eax |
46 | - | ||
47 | mov eax, 70; |
- | |
48 | mov ebx, filestruct |
53 | mcall 70,filestruct |
49 | int 0x40 |
- | |
50 | - | ||
51 | cmp eax, 0 |
54 | test eax,eax |
52 | jne start_with_internal_text ;訡ª |
55 | jne start_with_internal_text ;訡ª |
53 | - | ||
54 | mov eax, dword [size] |
56 | mov eax, dword [size] |
55 | mov [filesize], eax ;⥯¥àì à §¬¥à ä ©« ã á ¢ filesize |
57 | mov [filesize], eax ;⥯¥àì à §¬¥à ä ©« ã á ¢ filesize |
56 | - | ||
57 | ;¨æ¨ «¨§¨à㥬 ªãçã |
- | |
58 | - | ||
59 | mov eax, 68 |
- | |
60 | mov ebx, 11 |
- | |
61 | int 0x40 |
- | |
62 | - | ||
63 | cmp eax, 0x0 |
- | |
64 | je start_with_internal_text ;訡ª |
- | |
65 | - | ||
66 | ;뤥«ï¥¬ ¡«®ª ¯ ¬ï⨠¯®¤ ä ©« |
58 | ;뤥«ï¥¬ ¡«®ª ¯ ¬ï⨠¯®¤ ä ©« |
67 | mov eax, 68 |
- | |
68 | mov ebx, 12 |
- | |
69 | mov ecx, [filesize] |
59 | mov ecx, [filesize] |
70 | inc ecx ;뤥«¨¬ ¤®¯®«¨â¥«ì® ®¤¨ ¡ ©â ¤«ï ⮣®, çâ®¡ë ¤®¡ ¢¨âì 0xFF |
60 | inc ecx ;뤥«¨¬ ¤®¯®«¨â¥«ì® ®¤¨ ¡ ©â ¤«ï ⮣®, çâ®¡ë ¤®¡ ¢¨âì 0xFF |
71 | ;§ é¨â ®â "¡¨âëå" KLA-ä ©«®¢ |
61 | ;§ é¨â ®â "¡¨âëå" KLA-ä ©«®¢ |
72 | int 0x40 |
62 | mcall 68,12 |
73 | - | ||
74 | mov [datastart], eax ; ¯¥à¥¬¥®© â â àâ ⥯¥àì 室¨âáï 㪠§ ⥫ì |
63 | mov [datastart], eax ; ¯¥à¥¬¥®© â â àâ ⥯¥àì 室¨âáï 㪠§ ⥫ì |
75 | - | ||
76 | add eax, [filesize] |
64 | add eax, [filesize] |
77 | mov bh, 0xFF |
65 | mov bh, 0xFF |
78 | mov [eax], bh |
66 | mov [eax], bh |
79 | - | ||
80 | ;®¡á⢥®, áç¨âë¢ ¥¬ ä ©« ¢ ¯ ¬ïâì |
67 | ;®¡á⢥®, áç¨âë¢ ¥¬ ä ©« ¢ ¯ ¬ïâì |
81 | mov eax, 0x00 |
68 | xor eax,eax |
82 | mov [arg1], eax ;®¬¥à ¯®¤äãªæ¨¨ |
69 | mov [arg1],eax ;®¬¥à ¯®¤äãªæ¨¨ |
83 | mov [arg2], eax ;¬¥é¥¨¥ ¢ ä ©«¥ |
70 | mov [arg2],eax ;¬¥é¥¨¥ ¢ ä ©«¥ |
84 | mov [arg3], eax ;â à訩 dword ᬥ饨ï |
71 | mov [arg3],eax ;â à訩 dword ᬥ饨ï |
85 | mov eax, [filesize] |
72 | mov eax,[filesize] |
86 | mov [arg4], eax ; §¬¥à ä ©« |
73 | mov [arg4],eax ; §¬¥à ä ©« |
87 | mov eax, [datastart] |
74 | mov eax,[datastart] |
88 | mov [arg5], eax ;ª § â¥«ì ¤ ë¥ |
75 | mov [arg5],eax ;ª § â¥«ì ¤ ë¥ |
89 | mov eax, par |
76 | mov eax,par |
90 | mov [arg7], eax ;ª § ⥫ì ASCIIZ-áâபã |
77 | mov [arg7],eax ;ª § ⥫ì ASCIIZ-áâபã |
91 | - | ||
92 | mov eax, 70 |
- | |
93 | mov ebx, filestruct |
78 | mcall 70,filestruct |
94 | int 0x40 |
- | |
95 | - | ||
96 | cmp eax, 0x0 |
79 | test eax,eax |
97 | jne start_with_internal_text ;訡ª |
- | |
98 | - | ||
99 | ;mov edx, [datastart] |
- | |
100 | jmp initialize_variables |
80 | je initialize_variables |
101 | - | ||
102 | start_with_internal_text: |
81 | start_with_internal_text: |
103 | mov edx, string |
82 | mov edx, string |
104 | mov [datastart], edx |
83 | mov [datastart], edx |
105 | ;mov edx, string ; ᯮ«ì§ã¥¬ ¢áâà®¥ë© â¥ªáâ |
84 | ; mov edx, string ; ᯮ«ì§ã¥¬ ¢áâà®¥ë© â¥ªáâ |
106 | - | ||
107 | initialize_variables: |
85 | initialize_variables: |
108 | - | ||
109 | - | ||
110 | - | ||
111 | - | ||
112 | mov edx, [datastart] |
86 | mov edx,[datastart] |
113 | mov [currentsymb], edx ; ç «ì ï ¨¨æ¨ «¨§ æ¨ï ¯¥à¥¬¥ëå |
87 | mov [currentsymb],edx ; ç «ì ï ¨¨æ¨ «¨§ æ¨ï ¯¥à¥¬¥ëå |
114 | mov [startline], edx |
88 | mov [startline],edx |
115 | mov [lastsymb], edx |
89 | mov [lastsymb],edx |
116 | mov [lessonstart], edx |
90 | mov [lessonstart],edx |
117 | - | ||
118 | mov eax, 0x00000001 |
91 | xor eax,eax |
- | 92 | inc eax |
|
119 | mov [currentline], eax |
93 | mov [currentline], eax |
120 | call count_lines |
94 | call count_lines |
- | 95 | ;--------------------------------------------------------------------- |
|
- | 96 | redraw: |
|
121 | call draw_window |
97 | call draw_window |
122 | - | ||
123 | - | ||
- | 98 | ;--------------------------------------------------------------------- |
|
124 | ;ᮢ®© 横« |
99 | ;ᮢ®© 横« |
125 | event_wait: |
100 | event_wait: |
126 | mov eax, 10 |
101 | mcall 10 |
127 | int 0x40 |
- | |
128 | - | ||
129 | cmp eax, 1 ;¥à¥à¨á®¢ª ®ª 㦠|
102 | cmp eax, 1 ;¥à¥à¨á®¢ª ®ª 㦠|
130 | je redraw |
103 | je redraw |
131 | cmp eax, 2 ;« ¢¨è ¦ â |
104 | cmp eax, 2 ;« ¢¨è ¦ â |
132 | je key |
105 | je key |
133 | cmp eax, 3 ;® ª®¯ª¥ ¦¬ å㫨 |
106 | cmp eax, 3 ;® ª®¯ª¥ ¦¬ å㫨 |
134 | je button |
107 | je button |
135 | - | ||
136 | jmp event_wait |
- | |
137 | - | ||
138 | redraw: |
- | |
139 | call draw_window |
- | |
140 | jmp event_wait |
108 | jmp event_wait |
- | 109 | ;--------------------------------------------------------------------- |
|
141 | key: |
110 | key: |
142 | mov eax, 2 |
- | |
143 | int 0x40 ;¥¯¥àì ª®¤ ¦ ⮩ ª« ¢¨è¨ ¢ ah |
111 | mcall 2 ;¥¯¥àì ª®¤ ¦ ⮩ ª« ¢¨è¨ ¢ ah |
144 | - | ||
145 | push eax |
112 | push eax |
146 | - | ||
147 | ; ¯ã᪠¥¬ áçñâ稪 ¢à¥¬¥¨ ¤«ï ¯®á«¥¤ãî饣® |
113 | ; ¯ã᪠¥¬ áçñâ稪 ¢à¥¬¥¨ ¤«ï ¯®á«¥¤ãî饣® |
148 | ; ®¯à¥¤¥«¥¨ï ᪮à®á⨠¡®à |
114 | ; ®¯à¥¤¥«¥¨ï ᪮à®á⨠¡®à |
149 | - | ||
150 | mov eax, [currentsymb] |
115 | mov eax, [currentsymb] |
151 | cmp eax, [lessonstart] |
116 | cmp eax, [lessonstart] |
152 | jne not_first_symbol |
117 | jne not_first_symbol |
153 | cmp [mistakes], 0x00 |
118 | mov eax,[mistakes] |
- | 119 | test eax,eax |
|
154 | jne not_first_symbol |
120 | jne not_first_symbol |
155 | - | ||
156 | mov eax, 26 |
- | |
157 | mov ebx, 9 |
121 | mcall 26,9 |
158 | int 0x40 |
- | |
159 | - | ||
160 | mov [typestarttime], eax |
122 | mov [typestarttime], eax |
161 | - | ||
162 | not_first_symbol: |
123 | not_first_symbol: |
163 | - | ||
164 | pop eax |
124 | pop eax |
165 | - | ||
166 | ;஢¥à塞, ¥ § ª®ç¨«áï «¨ ⥪áâ |
125 | ;஢¥à塞, ¥ § ª®ç¨«áï «¨ ⥪áâ |
167 | mov esi, [currentsymb] |
126 | mov esi, [currentsymb] |
168 | mov al, byte [esi] |
127 | mov al, byte [esi] |
169 | cmp al, 0xFF |
128 | cmp al, 0xFF |
170 | je text_end |
129 | je text_end |
171 | cmp al, 0xFE |
130 | cmp al, 0xFE |
172 | je text_end |
131 | je text_end |
173 | - | ||
174 | push ebx |
132 | push ebx |
175 | mov ebx, [currentsymb] |
133 | mov ebx, [currentsymb] |
176 | mov al, byte [ebx] |
134 | mov al, byte [ebx] |
177 | pop ebx |
135 | pop ebx |
178 | - | ||
179 | cmp al,0x00 |
136 | test al,al |
180 | jne not_new_line |
137 | jne not_new_line |
181 | cmp ah, 0x0D |
138 | cmp ah, 0x0D |
182 | je correct_key_nl |
139 | je correct_key_nl |
183 | cmp ah, 0x20 |
140 | cmp ah, 0x20 |
184 | je correct_key_nl |
141 | je correct_key_nl |
185 | jmp not_this_key |
142 | jmp not_this_key |
186 | - | ||
187 | not_new_line: |
- | |
188 | cmp ah, al |
- | |
189 | jne not_this_key |
143 | ;--------------------------------------------------------------------- |
190 | jmp correct_key |
- | |
191 | - | ||
192 | correct_key_nl: |
144 | correct_key_nl: |
193 | mov eax, [currentsymb] |
145 | mov eax, [currentsymb] |
194 | inc eax |
146 | inc eax |
195 | mov [startline], eax |
147 | mov [startline], eax |
196 | - | ||
197 | mov eax, [currentsymb] |
148 | mov eax, [currentsymb] |
198 | inc eax |
149 | inc eax |
199 | mov [currentsymb], eax |
150 | mov [currentsymb], eax |
200 | mov [lastsymb], eax |
151 | mov [lastsymb], eax |
201 | - | ||
202 | mov eax, [currentline] |
152 | mov eax, [currentline] |
203 | inc eax |
153 | inc eax |
204 | mov [currentline], eax |
154 | mov [currentline], eax |
205 | - | ||
206 | mov eax, [symbtyped] ;¢¥«¨ç¨¬ ç¨á«® ¢¢¥¤ñëå ᨬ¢®«®¢ 1 |
155 | mov eax, [symbtyped] ;¢¥«¨ç¨¬ ç¨á«® ¢¢¥¤ñëå ᨬ¢®«®¢ 1 |
207 | inc eax |
156 | inc eax |
208 | mov [symbtyped], eax |
157 | mov [symbtyped], eax |
209 | call count_speed |
158 | call count_speed |
210 | ;call draw_speed |
159 | ; call draw_speed |
211 | 160 | jmp redraw |
|
- | 161 | ;--------------------------------------------------------------------- |
|
212 | call draw_window |
162 | not_new_line: |
- | 163 | cmp ah, al |
|
213 | jmp event_wait |
164 | jne not_this_key |
214 | - | ||
215 | - | ||
216 | correct_key: |
165 | correct_key: |
217 | mov eax, [currentsymb] |
166 | mov eax, [currentsymb] |
218 | inc eax |
167 | inc eax |
219 | mov [currentsymb], eax |
168 | mov [currentsymb], eax |
220 | mov [lastsymb], eax |
169 | mov [lastsymb], eax |
221 | - | ||
222 | mov eax, [symbtyped] ;¢¥«¨ç¨¬ ç¨á«® ¢¢¥¤ñëå ᨬ¢®«®¢ 1 |
170 | mov eax, [symbtyped] ;¢¥«¨ç¨¬ ç¨á«® ¢¢¥¤ñëå ᨬ¢®«®¢ 1 |
223 | inc eax |
171 | inc eax |
224 | mov [symbtyped], eax |
172 | mov [symbtyped], eax |
225 | call count_speed |
173 | call count_speed |
226 | ;call draw_speed |
174 | ; call draw_speed |
227 | - | ||
228 | call redraw_2_symbols |
175 | call redraw_2_symbols |
229 | jmp event_wait |
176 | jmp event_wait |
230 | - | ||
- | 177 | ;--------------------------------------------------------------------- |
|
231 | not_this_key: |
178 | not_this_key: |
232 | - | ||
233 | mov esi, [mistakes] |
179 | mov esi, [mistakes] |
234 | inc esi |
180 | inc esi |
235 | mov [mistakes], esi |
181 | mov [mistakes], esi |
236 | call redraw_mistakes |
182 | call redraw_mistakes |
237 | jmp event_wait |
183 | jmp event_wait |
238 | - | ||
- | 184 | ;--------------------------------------------------------------------- |
|
239 | text_end: |
185 | text_end: |
240 | - | ||
241 | ; /// ९ïâáâ¢ã¥â ¬¨£ ¨î ®ª ¯® ®ª®ç ¨¨ ãப |
186 | ; /// ९ïâáâ¢ã¥â ¬¨£ ¨î ®ª ¯® ®ª®ç ¨¨ ãப |
242 | ; ¯à¨ ¦ ⨨ ª« ¢¨è |
187 | ; ¯à¨ ¦ ⨨ ª« ¢¨è |
243 | mov esi, [startline] |
188 | mov esi, [startline] |
244 | cmp esi, lessoncomplete |
189 | cmp esi, lessoncomplete |
245 | je text_end_already_shown |
190 | je text_end_already_shown |
246 | ; /////////////////////////// |
191 | ; /////////////////////////// |
247 | - | ||
248 | - | ||
249 | call speed_to_string |
192 | call speed_to_string |
250 | - | ||
251 | mov esi, lessoncomplete |
193 | mov esi, lessoncomplete |
252 | mov [startline], esi |
194 | mov [startline], esi |
253 | - | ||
254 | mov esi, lessoncompleteend |
195 | mov esi, lessoncompleteend |
255 | dec esi |
196 | dec esi |
256 | mov [currentsymb], esi |
197 | mov [currentsymb], esi |
257 | - | ||
258 | call draw_window |
198 | call draw_window |
259 | text_end_already_shown: |
199 | text_end_already_shown: |
260 | jmp event_wait |
200 | jmp event_wait |
261 | - | ||
- | 201 | ;--------------------------------------------------------------------- |
|
262 | button: |
202 | button: |
263 | mov eax, 17 |
- | |
264 | int 0x40 ;¤¥â¨ä¨ª â®à ¦ ⮩ ª®¯ª¨ ¢®§¢à éñ ¢ ah |
203 | mcall 17 ;¤¥â¨ä¨ª â®à ¦ ⮩ ª®¯ª¨ ¢®§¢à éñ ¢ ah |
265 | - | ||
266 | cmp ah, 1 ;íâ® ª®¯ª § ªàëâ¨ï |
204 | cmp ah, 1 ;íâ® ª®¯ª § ªàëâ¨ï |
267 | jne no_close |
205 | jne no_close |
268 | mov eax, -1 |
206 | mcall -1 |
269 | int 0x40 |
- | |
270 | no_close: |
207 | no_close: |
271 | ;஢¥à塞 ®áâ «ìë¥ ª®¯ª¨ |
208 | ;஢¥à塞 ®áâ «ìë¥ ª®¯ª¨ |
272 | cmp ah, 0x02 |
209 | cmp ah, 0x02 |
273 | jne no_button_2 |
210 | jne no_button_2 |
274 | ; ¦ â ª®¯ª 2 |
211 | ; ¦ â ª®¯ª 2 |
- | 212 | ;--------------------------------------------------------------------- |
|
275 | ; |
213 | ; |
- | 214 | ;--------------------------------------------------------------------- |
|
276 | xor eax, eax |
215 | xor eax, eax |
277 | - | ||
278 | mov [mistakes], 0x0 |
216 | mov [mistakes], 0x0 |
279 | - | ||
280 | mov esi, [lastsymb] |
217 | mov esi, [lastsymb] |
281 | mov al, [esi] |
218 | mov al, [esi] |
282 | ;㦮 ¯à®¢¥à¨âì, çâ® § ᨬ¢®« ¡ë« ¯®á«¥¤¨¬. ᫨ 0xFF - |
219 | ;㦮 ¯à®¢¥à¨âì, çâ® § ᨬ¢®« ¡ë« ¯®á«¥¤¨¬. ᫨ 0xFF - |
283 | ;¥ªáâ ª®ç¨«áï, 㦮 ç âì ¢áñ á ç « |
220 | ;¥ªáâ ª®ç¨«áï, 㦮 ç âì ¢áñ á ç « |
284 | cmp al, 0xFF |
221 | cmp al, 0xFF |
285 | je start_1st_lesson |
222 | je start_1st_lesson |
286 | - | ||
287 | cmp al, 0xFE ; ë ¯à®è«¨ ¯à®è«ë© ãப? |
223 | cmp al, 0xFE ; ë ¯à®è«¨ ¯à®è«ë© ãப? |
288 | jne not_completed_previous |
224 | jne not_completed_previous |
289 | - | ||
290 | init_level_after_fe: |
225 | init_level_after_fe: |
291 | ; ¦¥«¨ ¤ , â® ¯à®¢¥à¨¬, ¥ ¯®¯ « «¨ á«ãç ©® á«¥¤ãî騬 ᨬ¢®«®¬ 0xFF |
226 | ; ¦¥«¨ ¤ , â® ¯à®¢¥à¨¬, ¥ ¯®¯ « «¨ á«ãç ©® á«¥¤ãî騬 ᨬ¢®«®¬ 0xFF |
292 | inc esi |
227 | inc esi |
293 | mov al, [esi] |
228 | mov al, [esi] |
294 | cmp al, 0xFF |
229 | cmp al, 0xFF |
295 | je start_1st_lesson |
- | |
296 | ; ¦¥«¨ ¥â - íâ® ¨ ¥áâì á«¥¤ãî騩 ãப |
230 | ; ¦¥«¨ ¥â - íâ® ¨ ¥áâì á«¥¤ãî騩 ãப |
297 | jmp set_lesson_start_from_esi |
231 | jne set_lesson_start_from_esi |
- | 232 | start_1st_lesson: |
|
- | 233 | mov esi, [datastart] |
|
- | 234 | set_lesson_start_from_esi: |
|
- | 235 | mov [startline], esi |
|
- | 236 | mov [currentsymb], esi |
|
- | 237 | mov [lastsymb], esi |
|
- | 238 | mov [lessonstart], esi |
|
- | 239 | xor eax,eax |
|
- | 240 | jmp no_button_3.2 |
|
298 | 241 | ; inc eax |
|
- | 242 | ; mov [currentline], eax |
|
- | 243 | ; call count_lines |
|
- | 244 | ; call reset_speed_counters |
|
- | 245 | ; jmp redraw |
|
- | 246 | ;--------------------------------------------------------------------- |
|
299 | not_completed_previous: |
247 | not_completed_previous: |
300 | inc esi |
248 | inc esi |
301 | mov al, [esi] |
249 | mov al, [esi] |
302 | cmp al, 0xFF |
250 | cmp al, 0xFF |
303 | je start_1st_lesson |
251 | je start_1st_lesson |
304 | cmp al, 0xFE |
252 | cmp al, 0xFE |
305 | je init_level_after_fe |
253 | je init_level_after_fe |
306 | jmp not_completed_previous |
254 | jmp not_completed_previous |
307 | - | ||
308 | start_1st_lesson: |
- | |
309 | mov esi, [datastart] |
- | |
310 | set_lesson_start_from_esi: |
255 | ;--------------------------------------------------------------------- |
311 | mov [startline], esi |
- | |
312 | mov [currentsymb], esi |
- | |
313 | mov [lastsymb], esi |
- | |
314 | mov [lessonstart], esi |
- | |
315 | - | ||
316 | ;CC |
- | |
317 | mov eax, 0x00000001 |
- | |
318 | mov [currentline], eax |
- | |
319 | call count_lines |
- | |
320 | ;CC |
- | |
321 | - | ||
322 | call reset_speed_counters |
- | |
323 | - | ||
324 | call draw_window |
- | |
325 | jmp event_wait |
- | |
326 | ; |
256 | ; |
327 | - | ||
- | 257 | ;--------------------------------------------------------------------- |
|
328 | no_button_2: |
258 | no_button_2: |
329 | cmp ah, 0x03 |
259 | cmp ah,0x03 |
330 | jne no_button_3 |
260 | jne no_button_3 |
331 | - | ||
332 | ;¥à¥§ ¯ã᪠ã஢ï |
261 | ;¥à¥§ ¯ã᪠ã஢ï |
333 | mov edx, [lessonstart] |
262 | mov edx,[lessonstart] |
- | 263 | jmp no_button_3.1 |
|
334 | mov [currentsymb], edx |
264 | ; mov [currentsymb],edx |
335 | mov [startline], edx |
265 | ; mov [startline],edx |
336 | mov [lastsymb], edx |
266 | ; mov [lastsymb],edx |
337 | - | ||
338 | mov eax, 0x00000001 |
267 | ; xor eax,eax |
339 | mov [currentline], eax |
268 | ; mov [mistakes],eax |
340 | 269 | ; inc eax |
|
341 | mov [mistakes], 0 |
270 | ; mov [currentline],eax |
342 | - | ||
343 | call reset_speed_counters |
271 | ; call reset_speed_counters |
344 | - | ||
345 | call count_lines |
272 | ; call count_lines |
346 | call draw_window |
- | |
347 | - | ||
348 | jmp event_wait |
273 | ; jmp redraw |
349 | - | ||
- | 274 | ;--------------------------------------------------------------------- |
|
350 | no_button_3: |
275 | no_button_3: |
351 | cmp ah, 0x04 |
276 | cmp ah,0x04 |
352 | jne no_button_4 |
277 | jne event_wait |
353 | - | ||
354 | ;¥à¥§ ¯ã᪠ªãàá ã¯à ¦¥¨© |
278 | ;¥à¥§ ¯ã᪠ªãàá ã¯à ¦¥¨© |
355 | - | ||
356 | mov edx, [datastart] |
279 | mov edx,[datastart] |
357 | - | ||
358 | mov [lessonstart], edx |
280 | mov [lessonstart],edx |
- | 281 | .1: |
|
359 | mov [currentsymb], edx |
282 | mov [currentsymb],edx |
360 | mov [startline], edx |
283 | mov [startline],edx |
361 | mov [lastsymb], edx |
284 | mov [lastsymb],edx |
- | 285 | xor eax,eax |
|
- | 286 | mov [mistakes],eax |
|
362 | 287 | .2: |
|
363 | mov eax, 0x00000001 |
288 | inc eax |
364 | mov [currentline], eax |
289 | mov [currentline],eax |
365 | - | ||
366 | mov [mistakes], 0 |
- | |
367 | - | ||
368 | - | ||
369 | call reset_speed_counters |
290 | call reset_speed_counters |
370 | - | ||
371 | call count_lines |
291 | call count_lines |
372 | call draw_window |
- | |
373 | - | ||
374 | jmp event_wait |
292 | jmp redraw |
375 | - | ||
376 | - | ||
377 | no_button_4: |
- | |
- | 293 | ;--------------------------------------------------------------------- |
|
378 | ; ¢®§¢à é ¥¬áï ª ®¦¨¤ ¨î ᮡëâ¨ï |
294 | ;®«ã稬 ⥪ã騥 ¯ à ¬¥âàë ®ª |
379 | jmp event_wait |
295 | get_window_param: |
- | 296 | mcall 9,procinfo,-1 |
|
380 | 297 | ret |
|
- | 298 | ;--------------------------------------------------------------------- |
|
381 | ;"¥à¤æ¥" ¯à®£à ¬¬ë - äãªæ¨ï à¨á®¢ ¨ï ®ª (¢áñ ®á⠫쮥 - âã«®¢¨é¥ -)) ) |
299 | ;"¥à¤æ¥" ¯à®£à ¬¬ë - äãªæ¨ï à¨á®¢ ¨ï ®ª (¢áñ ®á⠫쮥 - âã«®¢¨é¥ -)) ) |
382 | draw_window: |
300 | draw_window: |
383 | mov eax, 12 ;®®¡é ¥¬ á¨á⥬¥ ® á®áâ®ï¨¨ ¯¥à¥à¨á®¢ª¨ ®ª |
- | |
384 | mov ebx, 1 ; ç «® ¯¥à¥à¨á®¢ª¨ |
- | |
385 | int 0x40 |
301 | mcall 12,1 |
386 | - | ||
387 | - | ||
388 | mov ax, [areawidth] ;â® ¯¥à¢ë© ¢ë§®¢ draw_window? |
302 | mov ax,[areawidth] ;â® ¯¥à¢ë© ¢ë§®¢ draw_window? |
389 | cmp ax, 0x0 |
303 | test ax,ax |
390 | jne dw_not_first_call |
304 | jne .dw_not_first_call |
391 | call get_screen_params ;®«ãç ¥¬ ¯ à ¬¥âàë íªà - è¨à¨ã ¨ ¢ëá®âã |
305 | call get_screen_params ;®«ãç ¥¬ ¯ à ¬¥âàë íªà - è¨à¨ã ¨ ¢ëá®âã |
392 | - | ||
393 | dw_not_first_call: |
306 | .dw_not_first_call: |
394 | xor eax, eax |
307 | ;¢ ebx - X ¨ è¨à¨ |
395 | mov ax, [windowx] |
308 | mov bx,[windowx] |
396 | mov ecx, 65536 |
- | |
397 | mul ecx |
309 | shl ebx,16 |
398 | add eax, 780 |
310 | mov bx,780 |
399 | mov ebx, eax ;¢ ebx - X ¨ è¨à¨ |
- | |
400 | - | ||
401 | ;mov ebx, 10*65536+780 |
311 | ; mov ebx,10*65536+780 |
402 | - | ||
403 | xor eax, eax |
312 | ;¢ ecx - Y ¨ ¢ëá®â |
404 | mov ax, [windowy] |
313 | mov cx, [windowy] |
405 | mov ecx, 65536 |
314 | shl ecx,16 |
406 | mul ecx |
315 | mov cx,580 |
407 | add eax, 580 |
316 | ; mov ecx,10*65536+580 |
408 | mov ecx, eax ;¢ ecx - Y ¨ ¢ëá®â |
317 | xor esi,esi |
409 | - | ||
410 | - | ||
411 | ;mov ecx, 10*65536+580 ;Y ¨ ¢ëá®â |
318 | ;¯à¥¤¥«¨âì ¨ ¢ë¢¥á⨠®ª® |
412 | mov edx, 0x33CCCCCC ;[⨯ ®ª ][梥â à ¡®ç¥© ®¡« áâ¨] |
319 | mcall 0,,,0x33CCCCCC,,text |
413 | mov edi, text |
320 | call get_window_param |
414 | mov eax, 0 ;¯à¥¤¥«¨âì ¨ ¢ë¢¥á⨠®ª® |
321 | mov eax,[procinfo+70] ;status of window |
415 | int 0x40 |
322 | test eax,100b |
416 | - | ||
417 | 323 | jne .end |
|
418 | ; à¨á㥬 ª®¯ªã ¨ ⥪áâ ¥© |
324 | ; à¨á㥬 ª®¯ªã ¨ ⥪áâ ¥© |
419 | mov eax, 8 |
- | |
420 | mov ebx, 295*65536+145 |
- | |
421 | mov ecx, 8*65536+18 |
- | |
422 | mov edx, 0x00000002 |
- | |
423 | mov esi, 0x0099CC99 |
325 | mcall 8,<295,145>,<8,18>,2,0x0099CC99 |
424 | int 0x40 |
- | |
425 | - | ||
426 | mov eax, 4 |
- | |
427 | mov ebx,310*65536+14 |
- | |
428 | mov ecx, 0x80000000 |
- | |
429 | mov edx, buttontext |
- | |
430 | int 0x40 |
- | |
431 | - | ||
432 | ; à¨á㥬 ª®¯ªã |
326 | ; à¨á㥬 ª®¯ªã |
433 | mov eax, 8 |
- | |
434 | mov ebx, 450*65536+145 |
- | |
435 | mov ecx, 8*65536+18 |
- | |
436 | mov edx, 0x00000003 |
- | |
437 | mov esi, 0x00CC9999 |
327 | mcall ,<450,145>,,3,0x00CC9999 |
438 | int 0x40 |
- | |
439 | - | ||
440 | mov eax, 4 |
- | |
441 | mov ebx,465*65536+14 |
- | |
442 | mov ecx, 0x80000000 |
- | |
443 | mov edx, retrybuttontext |
- | |
444 | int 0x40 |
- | |
445 | - | ||
446 | ; à¨á㥬 ª®¯ªã |
328 | ; à¨á㥬 ª®¯ªã |
447 | mov eax, 8 |
- | |
448 | mov ebx, 605*65536+145 |
329 | mcall ,<605,145>,,4,0x00DD7777 |
449 | mov ecx, 8*65536+18 |
330 | ;뢮¤¨¬ ⥪áâ ª®¯ª å |
450 | mov edx, 0x00000004 |
331 | mcall 4,<310,14>,0x80000000,buttontext |
451 | mov esi, 0x00DD7777 |
- | |
452 | int 0x40 |
- | |
453 | - | ||
454 | mov eax, 4 |
- | |
455 | mov ebx, 626*65536+14 |
332 | mcall ,<465,14>,,retrybuttontext |
456 | mov ecx, 0x80000000 |
- | |
457 | mov edx, restartbuttontext |
333 | mcall ,<626,14>,,restartbuttontext |
458 | int 0x40 |
- | |
459 | - | ||
460 | ; à¨á㥬 «®£®â¨¯ |
334 | ; à¨á㥬 «®£®â¨¯ |
461 | mov eax, 65 |
335 | xor ebp,ebp |
462 | mov ebx, logo |
- | |
463 | mov ecx, 32*65536+12 |
- | |
464 | mov edx, 12*65536+12 |
- | |
465 | mov esi, 1 |
- | |
466 | mov edi, green_text |
336 | mcall 65,logo,<32,12>,<12,12>,1,green_text |
467 | mov ebp, 0 |
- | |
468 | int 0x40 |
- | |
469 | - | ||
470 | ;®«ã稬 ⥪ã騥 ¯ à ¬¥âàë ®ª |
337 | ;®«ã稬 ⥪ã騥 ¯ à ¬¥âàë ®ª |
471 | mov eax, 9 |
- | |
472 | mov ebx, kbbuffer |
338 | call get_window_param |
473 | mov ecx, -1 |
- | |
474 | int 0x40 |
- | |
475 | - | ||
476 | add ebx, 0x2A |
339 | add ebx,0x2A |
477 | mov eax, [ebx] |
340 | mov eax,[ebx] |
478 | mov [windowwidth], eax |
341 | mov [windowwidth], eax |
479 | - | ||
480 | mov ebx, kbbuffer |
342 | mov ebx,procinfo |
481 | add ebx, 0x2E |
343 | add ebx,0x2E |
482 | mov eax, [ebx] |
344 | mov eax,[ebx] |
483 | mov [windowheight], eax |
345 | mov [windowheight], eax |
484 | - | ||
485 | draw_error_count: |
346 | ;draw_error_count: |
486 | ; à¨á㥬 ¤¯¨áì "" |
347 | ; à¨á㥬 ¤¯¨áì "" |
487 | mov eax, 4 |
- | |
488 | mov ebx, 60*65536+15 |
- | |
489 | mov ecx, 0x80AA0000 |
- | |
490 | mov edx, mistakestext |
348 | mcall 4,<60,15>,0x80AA0000,mistakestext |
491 | int 0x40 |
- | |
492 | - | ||
493 | ; 뢥¤¥¬ ç¨á«® ®è¨¡®ª |
349 | ; 뢥¤¥¬ ç¨á«® ®è¨¡®ª |
494 | mov eax, 47 |
- | |
495 | mov ebx, 10000000000001000000000000000000b |
350 | mcall 47,0x80040000,[mistakes],<105,15>,0x00AA0000 |
496 | mov ecx, [mistakes] |
- | |
497 | mov edx, 105*65536+15 |
- | |
498 | mov esi, 0x00AA0000 |
- | |
499 | int 0x40 |
- | |
500 | - | ||
501 | draw_line_number: |
351 | ;draw_line_number: |
502 | ; à¨á㥬 ¤¯¨áì "âப ¨§" |
352 | ; à¨á㥬 ¤¯¨áì "âப ¨§" |
503 | mov eax, 4 |
- | |
504 | mov ebx, 140*65536+15 |
- | |
505 | mov ecx, 0x8000AA00 |
- | |
506 | mov edx, lineistext |
353 | mcall 4,<140,15>,0x8000AA00,lineistext |
507 | int 0x40 |
- | |
508 | - | ||
509 | ;뢥¤¥¬ ®¬¥à ⥪ã饩 áâப¨ |
354 | ;뢥¤¥¬ ®¬¥à ⥪ã饩 áâப¨ |
510 | mov eax, 47 |
- | |
511 | mov ebx, 10000000000001000000000000000000b |
355 | mcall 47,80040000,[currentline],<195,15>,0x0000AA00 |
512 | mov ecx, [currentline] |
- | |
513 | mov edx, 195*65536+15 |
- | |
514 | mov esi, 0x0000AA00 |
- | |
515 | int 0x40 |
- | |
516 | - | ||
517 | ;뢥¤¥¬ ⥪ãéãî áâபã |
356 | ;뢥¤¥¬ ⥪ãéãî áâபã |
518 | mov eax, 47 |
- | |
519 | mov ebx, 10000000000001000000000000000000b |
- | |
520 | mov ecx, [linecount] |
357 | mcall ,,[linecount],<252,15>, |
521 | mov edx, 252*65536+15 |
358 | ;뢥áâ¨ à ¡®ç¨© ⥪áâ |
522 | mov esi, 0x0000AA00 |
359 | call draw_text |
523 | int 0x40 |
360 | .end: |
524 | - | ||
525 | 361 | mcall 12,2 |
|
526 | 362 | ret |
|
- | 363 | ;--------------------------------------------------------------------- |
|
527 | draw_text_prepare: |
364 | draw_text: |
528 | ;®¤£®â®¢ª ª ¢ë¢®¤ã ⥪áâ |
365 | ;®¤£®â®¢ª ª ¢ë¢®¤ã ⥪áâ |
529 | mov edx, 40 ; ç «ì®¥ ¯®«®¦¥¨¥ ¢ë¢®¤¨¬®£® ⥪áâ ¯® ¢¥à⨪ «¨ |
366 | mov edx,40 ; ç «ì®¥ ¯®«®¦¥¨¥ ¢ë¢®¤¨¬®£® ⥪áâ ¯® ¢¥à⨪ «¨ |
530 | - | ||
531 | mov esi, [startline] |
367 | mov esi,[startline] |
532 | dec esi ; ª ¤® (á¬. *1 ¨¦¥)! |
368 | dec esi ; ª ¤® (á¬. *1 ¨¦¥)! |
533 | mov ebx, esi ;¥¯¥àì ¢ edx - ç «® ¢ë¢®¤¨¬®© áâப¨ |
369 | mov ebx,esi ;¥¯¥àì ¢ edx - ç «® ¢ë¢®¤¨¬®© áâப¨ |
534 | - | ||
535 | - | ||
536 | draw_text: |
370 | .start: |
537 | - | ||
538 | - | ||
539 | ; à 騢 ¥¬ 㪠§ ⥫ì ⥪ã騩 ᨬ¢®« ¥¤¨¨æã |
371 | ; à 騢 ¥¬ 㪠§ ⥫ì ⥪ã騩 ᨬ¢®« ¥¤¨¨æã |
540 | inc ebx ;(*1) |
372 | inc ebx ;(*1) |
541 | - | ||
542 | draw_text_without_inc: |
373 | .draw_text_without_inc: |
543 | ;®á¬®âਬ, ¥ ¢ë室¨â «¨ ⥪áâ § £à ¨æã ®ª |
374 | ;®á¬®âਬ,¥ ¢ë室¨â «¨ ⥪áâ § £à ¨æã ®ª |
544 | mov esi, [windowheight] ;¥¯¥àì ¢ esi à §¬¥à ®ª |
375 | mov esi,[windowheight] ;¥¯¥àì ¢ esi à §¬¥à ®ª |
545 | mov eax, edx |
376 | mov eax,edx |
546 | and eax,0x0000FFFF |
377 | and eax,0x0000FFFF |
547 | add eax, 64 |
378 | add eax,64 |
548 | cmp eax, esi |
379 | cmp eax,esi |
549 | ja end_draw_text ;ë ¢ë室¨¬ § ¯à¥¤¥«ë ®ª . ¥à¥áâ ñ¬ à¨á®¢ âì. |
380 | ja end_draw_text ;ë ¢ë室¨¬ § ¯à¥¤¥«ë ®ª . ¥à¥áâ ñ¬ à¨á®¢ âì. |
550 | - | ||
551 | ;ãáâ ®¢¨¬ ¯®«®¦¥¨¥ ¯® £®à¨§®â «¨ (+18 ª ⥪ã饩 ¯®§¨æ¨¨) |
381 | ;ãáâ ®¢¨¬ ¯®«®¦¥¨¥ ¯® £®à¨§®â «¨ (+18 ª ⥪ã饩 ¯®§¨æ¨¨) |
552 | mov esi, 18*65536 |
382 | mov esi,18*65536 |
553 | - | ||
554 | add edx, esi |
383 | add edx,esi |
555 | - | ||
556 | ; ¯®á¬®âਬ, ¥ ¢ë襫 «¨ ⥪áâ § £à ¨æã ¯® £®à¨§®â «¨ |
384 | ; ¯®á¬®âਬ, ¥ ¢ë襫 «¨ ⥪áâ § £à ¨æã ¯® £®à¨§®â «¨ |
557 | ; ¥á«¨ ¢ë襫 - ¥ à¨á㥬 íâ®â ªã᮪ |
385 | ; ¥á«¨ ¢ë襫 - ¥ à¨á㥬 íâ®â ªã᮪ |
558 | mov esi, [windowwidth] ;¥¯¥àì ¢ esi à §¬¥à ®ª |
386 | mov esi,[windowwidth] ;¥¯¥àì ¢ esi à §¬¥à ®ª |
559 | shl esi, 16 |
387 | shl esi,16 |
560 | mov eax, edx |
388 | mov eax,edx |
561 | and eax,0xFFFF0000 |
389 | and eax,0xFFFF0000 |
562 | add eax, 40*65536 |
390 | add eax,40*65536 |
563 | cmp eax, esi |
391 | cmp eax,esi |
564 | jna horizontal_check_ok ; ᫨ eax>est, â® ¬ë ¢ë室¨¬ § ¯à¥¤¥«ë ®ª . |
392 | jna .horizontal_check_ok ; ᫨ eax>est, â® ¬ë ¢ë室¨¬ § ¯à¥¤¥«ë ®ª . |
565 | - | ||
566 | skip_line_end_step: |
393 | .skip_line_end_step: |
567 | - | ||
568 | mov ah, byte [ebx] |
394 | mov ah,byte [ebx] |
569 | - | ||
570 | cmp ah, 0x00 |
395 | cmp ah,0x00 |
571 | je end_line_to_next_line |
396 | je .end_line_to_next_line |
572 | cmp ah, 0xFE |
397 | cmp ah,0xFE |
573 | je end_draw_text |
398 | je end_draw_text |
574 | cmp ah, 0xFF |
399 | cmp ah,0xFF |
575 | je end_draw_text |
400 | je end_draw_text |
576 | - | ||
577 | inc ebx |
401 | inc ebx |
578 | - | ||
579 | jmp skip_line_end_step |
402 | jmp .skip_line_end_step |
580 | - | ||
581 | end_line_to_next_line: |
403 | ;------------------------------------------- |
582 | ;jmp end_line_to_next_line |
404 | .end_line_to_next_line: |
583 | and edx, 0x0000FFFF |
405 | and edx,0x0000FFFF |
584 | jmp draw_text_without_inc |
406 | jmp .draw_text_without_inc |
585 | - | ||
- | 407 | ;------------------------------------------- |
|
586 | horizontal_check_ok: |
408 | .horizontal_check_ok: |
587 | - | ||
588 | ;஢¥à¨¬, ¥ § ª®ç¨«áï «¨ ãப |
409 | ;஢¥à¨¬, ¥ § ª®ç¨«áï «¨ ãப |
589 | mov esi, [startline] |
410 | mov esi, [startline] |
590 | cmp esi, lessoncomplete |
411 | cmp esi, lessoncomplete |
591 | jne in_process |
412 | jne .in_process |
592 | - | ||
593 | ; ᫨ § ª®ç¨«áï, ⥪á⠢뢮¤¨âì 㦮 |
413 | ; ᫨ § ª®ç¨«áï, ⥪á⠢뢮¤¨âì 㦮 |
594 | mov edi, green_text |
414 | mov edi, green_text |
595 | jmp color_set_sucessful |
415 | jmp .color_set_sucessful |
596 | - | ||
- | 416 | ;-------------------------------------------- |
|
597 | in_process: |
417 | .in_process: |
598 | cmp ebx, [currentsymb] ; ¨áã¥âáï ⥪ã騩 ¡¨à ¥¬ë© ᨬ¢®«? |
418 | cmp ebx, [currentsymb] ; ¨áã¥âáï ⥪ã騩 ¡¨à ¥¬ë© ᨬ¢®«? |
599 | je red ; ª â®ç®! |
419 | je .red ; ª â®ç®! |
600 | - | ||
601 | ja black ; ¥â, ¨áã¥âáï â®, çâ® ¬ë ¥éñ ¥ ¡à «¨ |
420 | ja .black ; ¥â, ¨áã¥âáï â®, çâ® ¬ë ¥éñ ¥ ¡à «¨ |
602 | - | ||
603 | - | ||
604 | mov edi, gray_text ; ¥â, à¨áã¥âáï â®, çâ® ¬ë 㦥 ¡à «¨ |
421 | mov edi, gray_text ; ¥â, à¨áã¥âáï â®, çâ® ¬ë 㦥 ¡à «¨ |
605 | jmp color_set_sucessful |
422 | jmp .color_set_sucessful |
606 | - | ||
- | 423 | ;-------------------------------------------- |
|
607 | red: |
424 | .red: |
608 | mov edi, red_text |
425 | mov edi, red_text |
609 | jmp color_set_sucessful |
426 | jmp .color_set_sucessful |
610 | - | ||
- | 427 | ;--------------------------------------------- |
|
611 | black: |
428 | .black: |
612 | mov edi, black_text ;à¨äâ ¨ 梥â |
429 | mov edi, black_text ;à¨äâ ¨ 梥â |
613 | - | ||
614 | color_set_sucessful: |
430 | .color_set_sucessful: |
615 | xor esi,esi |
431 | xor esi,esi |
616 | movzx si, byte [ebx] |
432 | movzx si, byte [ebx] |
617 | cmp si, 0x0000 |
433 | cmp si, 0x0000 |
618 | jne continue_drawing |
434 | jne .continue_drawing |
619 | call increase_y; |
435 | ; call increase_y; |
- | 436 | ; ¢¥«¨ç¨¬ ¢¥à⨪ «ìãî ª®®à¤¨ â㠢뢮¤ ¡ãª¢, |
|
- | 437 | ; ¥á«¨ ª®ç¨« áì áâப (¢áâà¥â¨«áï ¡ ©â 0x00) |
|
- | 438 | and edx,0x0000FFFF |
|
- | 439 | add edx, 33 |
|
620 | jmp continue_text_proc |
440 | jmp .continue_text_proc |
621 | - | ||
- | 441 | ;---------------------------------------------- |
|
622 | continue_drawing: |
442 | .continue_drawing: |
623 | - | ||
624 | cmp si, 0x00FF |
443 | cmp si, 0x00FF |
625 | je end_draw_text |
444 | je end_draw_text |
626 | cmp si, 0x00FE |
445 | cmp si, 0x00FE |
627 | je end_draw_text |
446 | je end_draw_text |
628 | - | ||
629 | - | ||
630 | ;¨á㥬 ¡ãª¢ã á ¯®¬®éìî èà¨äâ |
447 | ;¨á㥬 ¡ãª¢ã á ¯®¬®éìî èà¨äâ |
631 | push ebx |
448 | push ebx |
632 | push edx |
449 | push edx |
633 | - | ||
634 | movzx eax, byte [ebx] |
450 | movzx eax, byte [ebx] |
635 | mov ecx, 64 |
451 | shl eax,6 |
636 | mul ecx |
- | |
637 | add eax, big_font |
452 | add eax, big_font |
638 | mov ebx, eax |
453 | mov ebx, eax |
639 | - | ||
640 | pop edx |
454 | pop edx |
641 | - | ||
642 | mov ecx, 16*65536+32 |
455 | mov ecx, 16*65536+32 |
643 | - | ||
644 | ; edx «¥¦¨â ª®®à¤¨ â |
456 | ; edx «¥¦¨â ª®®à¤¨ â |
645 | - | ||
646 | mov esi, 1 |
457 | mov esi, 1 |
647 | - | ||
648 | ; edi «¥¦¨â 㪠§ â¥«ì ¯ «¨âàã (梥â èà¨äâ ) |
458 | ; edi «¥¦¨â 㪠§ â¥«ì ¯ «¨âàã (梥â èà¨äâ ) |
649 | - | ||
650 | mov ebp, 0 |
459 | xor ebp,ebp |
651 | - | ||
652 | mov eax, 65 |
460 | mcall 65 |
653 | - | ||
654 | int 0x40 |
- | |
655 | - | ||
656 | pop ebx |
461 | pop ebx |
657 | ; í⮬ ®âà¨á®¢ª ¡ãª¢ë § ¢¥àè¥ |
462 | ; í⮬ ®âà¨á®¢ª ¡ãª¢ë § ¢¥àè¥ |
658 | continue_text_proc: |
463 | .continue_text_proc: |
659 | ;inc edi |
464 | ; inc edi |
660 | jmp draw_text |
465 | jmp .start |
661 | - | ||
662 | end_draw_text: |
466 | end_draw_text: |
663 | - | ||
664 | mov eax, 12 ;®¢ì á®®¡é ¥¬ ® á®áâ®ï¨¨ ¯¥à¥à¨á®¢ª¨ ® |
- | |
665 | mov ebx, 2 ;, ® íâ®â à § - ® ª®æ¥ ¯¥à¥à¨á®¢ª¨ |
- | |
666 | int 0x40 |
- | |
667 | - | ||
668 | ret |
467 | ret |
669 | - | ||
670 | increase_y: |
- | |
671 | ; ¢¥«¨ç¨¬ ¢¥à⨪ «ìãî ª®®à¤¨ â㠢뢮¤ ¡ãª¢, |
- | |
672 | ; ¥á«¨ ª®ç¨« áì áâப (¢áâà¥â¨«áï ¡ ©â 0x00) |
468 | ;--------------------------------------------------------------------- |
673 | and edx,0x0000FFFF |
- | |
674 | add edx, 33 |
- | |
675 | - | ||
676 | ret |
- | |
677 | - | ||
678 | ; ( ) |
469 | ; ( ) |
679 | redraw_2_symbols: |
470 | redraw_2_symbols: |
680 | - | ||
681 | ;஢¥à¨¬, ¥ ¢ë©¤¥¬ «¨ ¬ë ¯à¨ à¨á®¢ ¨¨ § £à ¨æã ¤®¯ãá⨬®© |
471 | ;஢¥à¨¬, ¥ ¢ë©¤¥¬ «¨ ¬ë ¯à¨ à¨á®¢ ¨¨ § £à ¨æã ¤®¯ãá⨬®© |
682 | ;®¡« á⨠¢ãâਠ®ª . ᫨ ¢ë©¤¥¬ - áªà®««¨¬ áâப㠯® £®à¨§®â «¨ |
472 | ;®¡« á⨠¢ãâਠ®ª . ᫨ ¢ë©¤¥¬ - áªà®««¨¬ áâப㠯® £®à¨§®â «¨ |
683 | mov esi, [windowwidth] ;¥¯¥àì ¢ esi à §¬¥à ®ª |
473 | mov esi, [windowwidth] ;¥¯¥àì ¢ esi à §¬¥à ®ª |
684 | - | ||
685 | mov eax, [currentsymb] |
474 | mov eax, [currentsymb] |
686 | sub eax, [startline] |
475 | sub eax, [startline] |
687 | - | ||
688 | mov ecx, 18 |
476 | mov ecx, 18 |
689 | - | ||
690 | mul ecx |
477 | mul ecx |
691 | - | ||
692 | add eax, 20 |
478 | add eax, 20 |
693 | - | ||
694 | add eax, 20 |
479 | add eax, 20 |
695 | - | ||
696 | add eax, 40 |
480 | add eax, 40 |
697 | - | ||
698 | cmp eax, esi |
481 | cmp eax, esi |
699 | jna r2s_horizontal_check_ok ; ᫨ eax>est, â® ¬ë ¢ë室¨¬ § ¯à¥¤¥«ë ®ª . |
482 | jna r2s_horizontal_check_ok ; ᫨ eax>est, â® ¬ë ¢ë室¨¬ § ¯à¥¤¥«ë ®ª . |
700 | - | ||
701 | ;â ª, ¬ë ¢ë室¨¬ § £à ¨æë ®ª ... â® ¯«®å®... |
483 | ;â ª, ¬ë ¢ë室¨¬ § £à ¨æë ®ª ... â® ¯«®å®... |
702 | ;âப㠯ਤñâáï áªà®««¨âì... |
484 | ;âப㠯ਤñâáï áªà®««¨âì... |
703 | - | ||
704 | mov eax, [currentsymb] |
485 | mov eax, [currentsymb] |
705 | dec eax |
486 | dec eax |
706 | mov [startline], eax |
487 | mov [startline], eax |
707 | call draw_window |
488 | call draw_window |
708 | jmp return_from_redraw_2_symbols |
489 | jmp return_from_redraw_2_symbols |
709 | - | ||
- | 490 | ;--------------------------------------------------------------------- |
|
710 | r2s_horizontal_check_ok: |
491 | r2s_horizontal_check_ok: |
711 | - | ||
712 | ;¨á㥬 ¡ãª¢ã á ¯®¬®éìî èà¨äâ |
492 | ;¨á㥬 ¡ãª¢ã á ¯®¬®éìî èà¨äâ |
713 | - | ||
714 | mov ebx, [currentsymb] |
493 | mov ebx, [currentsymb] |
715 | dec ebx |
494 | dec ebx |
716 | - | ||
717 | movzx eax, byte [ebx] |
495 | movzx eax, byte [ebx] |
718 | mov ecx, 64 |
496 | shl eax,6 |
719 | - | ||
720 | mul ecx |
- | |
721 | - | ||
722 | add eax, big_font |
497 | add eax, big_font |
723 | - | ||
724 | mov ebx, eax |
498 | mov ebx, eax |
725 | - | ||
726 | - | ||
727 | mov ecx, 16*65536+32 |
499 | mov ecx, 16*65536+32 |
728 | - | ||
729 | mov eax, [currentsymb] |
500 | mov eax, [currentsymb] |
730 | sub eax, [startline] |
501 | sub eax, [startline] |
731 | dec eax |
502 | dec eax |
732 | mov esi, 18 |
503 | imul eax,18 |
733 | mul esi |
- | |
734 | add eax, 18 |
504 | add eax, 18 |
735 | mov esi, 65536 |
- | |
736 | mul esi |
505 | shl eax,16 |
737 | add eax, 40 |
506 | add eax, 40 |
738 | - | ||
739 | mov edx, eax |
507 | mov edx, eax |
740 | - | ||
741 | - | ||
742 | mov esi, 1 |
508 | xor ebp,ebp |
743 | - | ||
744 | mov edi, gray_text |
509 | mcall 65,,,,1,gray_text |
745 | - | ||
746 | mov ebp, 0 |
- | |
747 | - | ||
748 | mov eax, 65 |
- | |
749 | - | ||
750 | int 0x40 |
- | |
751 | - | ||
752 | - | ||
753 | ;¨á㥬 |
510 | ;¨á㥬 |
754 | - | ||
755 | - | ||
756 | mov ebx, [currentsymb] |
511 | mov ebx, [currentsymb] |
757 | - | ||
758 | movzx eax, byte [ebx] |
512 | movzx eax, byte [ebx] |
759 | mov ecx, 64 |
513 | shl eax,6 |
760 | mul ecx |
- | |
761 | add eax, big_font |
514 | add eax, big_font |
762 | - | ||
763 | mov ebx, eax |
515 | mov ebx, eax |
764 | - | ||
765 | mov ecx, 16*65536+32 |
516 | mov ecx, 16*65536+32 |
766 | - | ||
767 | mov eax, [currentsymb] |
517 | mov eax, [currentsymb] |
768 | sub eax, [startline] |
518 | sub eax, [startline] |
769 | mov esi, 18 |
519 | imul eax,18 |
770 | mul esi |
- | |
771 | add eax, 18 |
520 | add eax, 18 |
772 | mov esi, 65536 |
- | |
773 | mul esi |
521 | shl eax,16 |
774 | add eax, 40 |
522 | add eax, 40 |
775 | - | ||
776 | mov edx, eax |
523 | mov edx, eax |
777 | - | ||
778 | mov esi, 1 |
- | |
779 | - | ||
780 | mov edi, red_text |
524 | mcall 65,,,,1,red_text |
781 | - | ||
782 | mov eax, 65 |
- | |
783 | - | ||
784 | int 0x40 |
- | |
785 | - | ||
786 | - | ||
787 | return_from_redraw_2_symbols: |
525 | return_from_redraw_2_symbols: |
788 | - | ||
789 | ret |
526 | ret |
790 | - | ||
- | 527 | ;--------------------------------------------------------------------- |
|
791 | redraw_mistakes: |
528 | redraw_mistakes: |
792 | ; ªà ᨬ ¯àאַ㣮«ì¨ª |
529 | ; ªà ᨬ ¯àאַ㣮«ì¨ª |
793 | mov eax, 13 |
- | |
794 | mov ebx, 59*65536+75 |
- | |
795 | mov ecx, 14*65536+10 |
- | |
796 | mov edx, 0x00CCCCCC |
530 | mcall 13,<59,75>,<14,10>,0x00CCCCCC |
797 | int 0x40 |
- | |
798 | - | ||
799 | ; à¨á㥬 ¤¯¨áì "" |
531 | ; à¨á㥬 ¤¯¨áì "" |
800 | mov eax, 4 |
- | |
801 | mov ebx, 60*65536+15 |
- | |
802 | mov ecx, 0x80AA0000 |
- | |
803 | mov edx, mistakestext |
532 | mcall 4,<60,15>,0x80AA0000,mistakestext |
804 | int 0x40 |
- | |
805 | - | ||
806 | ; 뢥¤¥¬ ç¨á«® ®è¨¡®ª |
533 | ; 뢥¤¥¬ ç¨á«® ®è¨¡®ª |
807 | mov eax, 47 |
- | |
808 | mov ebx, 10000000000001000000000000000000b |
534 | mcall 47,0x80040000,[mistakes],<105,15>,0x00AA0000 |
809 | mov ecx, [mistakes] |
- | |
810 | mov edx, 105*65536+15 |
- | |
811 | mov esi, 0x00AA0000 |
- | |
812 | int 0x40 |
- | |
813 | - | ||
814 | ret |
535 | ret |
815 | - | ||
- | 536 | ;--------------------------------------------------------------------- |
|
816 | count_lines: |
537 | count_lines: |
817 | xor ecx, ecx ; ecx - áçñâ稪 áâப |
538 | xor ecx, ecx ; ecx - áçñâ稪 áâப |
818 | inc ecx ; á 1 áâப |
539 | inc ecx ; á 1 áâப |
819 | - | ||
820 | - | ||
821 | ; ç¨ ¥¬ à §¡®à... |
540 | ; ç¨ ¥¬ à §¡®à... |
822 | mov eax, [startline] |
541 | mov eax, [startline] |
823 | dec eax |
542 | dec eax |
824 | - | ||
825 | cl_next_step: |
543 | cl_next_step: |
826 | inc eax |
544 | inc eax |
827 | mov bh, [eax] |
545 | mov bh, [eax] |
828 | - | ||
829 | cmp bh, 0x00 |
546 | cmp bh, 0x00 |
830 | jne cl_not_new_line |
547 | jne cl_not_new_line |
831 | inc ecx |
548 | inc ecx |
832 | jmp cl_next_step |
549 | jmp cl_next_step |
833 | - | ||
- | 550 | ;--------------------------------------------------------------------- |
|
834 | cl_not_new_line: |
551 | cl_not_new_line: |
835 | cmp bh, 0xFE |
552 | cmp bh, 0xFE |
836 | je cl_end |
553 | je cl_end |
837 | cmp bh, 0xFF |
554 | cmp bh, 0xFF |
838 | je cl_end |
555 | je cl_end |
839 | jmp cl_next_step |
556 | jmp cl_next_step |
840 | - | ||
- | 557 | ;--------------------------------------------------------------------- |
|
841 | cl_end: |
558 | cl_end: |
842 | mov [linecount], ecx |
559 | mov [linecount],ecx |
843 | ret |
560 | ret |
844 | - | ||
- | 561 | ;--------------------------------------------------------------------- |
|
845 | reset_speed_counters: |
562 | reset_speed_counters: |
846 | mov eax, 0x00000000 |
563 | xor eax,eax |
847 | - | ||
848 | mov [symbtyped], eax |
564 | mov [symbtyped],eax |
849 | mov [typestarttime], eax |
565 | mov [typestarttime],eax |
850 | mov [currenttime], eax |
566 | mov [currenttime],eax |
851 | mov [typingspeed], eax |
567 | mov [typingspeed],eax |
852 | - | ||
853 | ret |
568 | ret |
854 | - | ||
- | 569 | ;--------------------------------------------------------------------- |
|
855 | count_speed: |
570 | count_speed: |
856 | mov eax, 26 |
- | |
857 | mov ebx, 9 |
571 | mcall 26,9 |
858 | int 0x40 |
- | |
859 | - | ||
860 | mov [currenttime], eax |
572 | mov [currenttime], eax |
861 | - | ||
862 | mov ebx, [typestarttime] |
573 | mov ebx, [typestarttime] |
863 | - | ||
864 | sub eax, ebx ;¥¯¥àì ¢ eax - ç¨á«® ¯à®è¥¤è¨å ¤®«¥© ᥪ㤠|
574 | sub eax, ebx ;¥¯¥àì ¢ eax - ç¨á«® ¯à®è¥¤è¨å ¤®«¥© ᥪ㤠|
865 | - | ||
866 | - | ||
867 | mov ecx, [symbtyped] |
575 | mov ecx, [symbtyped] |
868 | cmp ecx, 0x00 |
576 | cmp ecx, 0x00 |
869 | jne cs_all_ok |
577 | jne cs_all_ok |
870 | inc ecx |
578 | inc ecx |
871 | - | ||
872 | cs_all_ok: |
579 | cs_all_ok: |
873 | xor edx, edx; |
580 | xor edx, edx; |
874 | - | ||
875 | div ecx ;¥¯¥àì ¢ eax - á।ïï ¯ 㧠¬¥¦¤ã ᨬ¢®« ¬¨ |
581 | div ecx ;¥¯¥àì ¢ eax - á।ïï ¯ 㧠¬¥¦¤ã ᨬ¢®« ¬¨ |
876 | - | ||
877 | mov ecx, eax |
582 | mov ecx, eax |
878 | cmp ecx, 0x00 |
583 | cmp ecx, 0x00 |
879 | jne cs_all_ok_2 |
584 | jne cs_all_ok_2 |
880 | inc ecx |
585 | inc ecx |
881 | - | ||
882 | cs_all_ok_2: |
586 | cs_all_ok_2: |
883 | - | ||
884 | xor edx, edx |
587 | xor edx, edx |
885 | mov eax, 6000 |
588 | mov eax, 6000 |
886 | - | ||
887 | div ecx |
589 | div ecx |
888 | - | ||
889 | mov [typingspeed], eax ;®â ¨ ¢áñ. [typingspeed] - á।ïï ᪮à®áâì ¡®à |
590 | mov [typingspeed], eax ;®â ¨ ¢áñ. [typingspeed] - á।ïï ᪮à®áâì ¡®à |
890 | - | ||
891 | - | ||
892 | ret |
591 | ret |
893 | - | ||
- | 592 | ;--------------------------------------------------------------------- |
|
894 | speed_to_string: |
593 | speed_to_string: |
895 | ; ८¡à §ã¥â ç¨á«® ¢ áâப㠨 § ¯¨áë¢ ¥â ¯® ¤à¥¬ã ¯¥à¥¬¥®© speedbytes § ¤®¬ ¯¥àñ¤ |
594 | ; ८¡à §ã¥â ç¨á«® ¢ áâப㠨 § ¯¨áë¢ ¥â ¯® ¤à¥¬ã ¯¥à¥¬¥®© speedbytes § ¤®¬ ¯¥àñ¤ |
896 | xor edx, edx |
595 | xor edx, edx |
897 | mov eax, [typingspeed] |
596 | mov eax, [typingspeed] |
898 | - | ||
899 | mov ecx, 10 |
597 | mov ecx, 10 |
900 | - | ||
901 | div ecx |
598 | div ecx |
902 | - | ||
903 | add dl, 30h |
599 | add dl, 30h |
904 | mov [speedbytes + 3], dl |
600 | mov [speedbytes + 3], dl |
905 | - | ||
906 | xor edx, edx |
601 | xor edx, edx |
907 | div ecx |
602 | div ecx |
908 | add dl, 30h |
603 | add dl, 30h |
909 | mov [speedbytes + 2], dl |
604 | mov [speedbytes + 2], dl |
910 | - | ||
911 | xor edx, edx |
605 | xor edx, edx |
912 | div ecx |
606 | div ecx |
913 | add dl, 30h |
607 | add dl, 30h |
914 | mov [speedbytes + 1], dl |
608 | mov [speedbytes + 1], dl |
915 | - | ||
916 | xor edx, edx |
609 | xor edx, edx |
917 | div ecx |
610 | div ecx |
918 | - | ||
919 | cmp dl, 0x00 |
611 | cmp dl, 0x00 |
920 | je sts_move_space |
612 | je sts_move_space |
921 | - | ||
922 | add dl, 30h |
613 | add dl, 30h |
923 | mov [speedbytes], dl |
614 | mov [speedbytes], dl |
924 | jmp sts_end |
615 | jmp sts_end |
- | 616 | ;--------------------------------------------------------------------- |
|
925 | sts_move_space: |
617 | sts_move_space: |
926 | mov [speedbytes], 0x20 |
618 | mov [speedbytes], 0x20 |
927 | - | ||
928 | sts_end: |
619 | sts_end: |
929 | - | ||
930 | ret |
620 | ret |
931 | - | ||
- | 621 | ;--------------------------------------------------------------------- |
|
932 | get_screen_params: |
622 | get_screen_params: |
933 | - | ||
934 | mov eax, 14 |
623 | mcall 14 |
935 | int 0x40 |
- | |
936 | mov [areaheight], ax |
624 | mov [areaheight], ax |
937 | - | ||
938 | push ax |
625 | push ax |
939 | - | ||
940 | shr eax, 16 |
626 | shr eax, 16 |
941 | mov [areawidth],ax |
627 | mov [areawidth],ax |
942 | - | ||
943 | ; ax ¯® ¯à¥¦¥¬ã 室¨âáï è¨à¨ ®ª . ®á¯®«ì§ã¥¬áï í⨬ |
628 | ; ax ¯® ¯à¥¦¥¬ã 室¨âáï è¨à¨ ®ª . ®á¯®«ì§ã¥¬áï í⨬ |
944 | sub ax, 780 ;ëç⥬ ç «ìë© à §¬¥à ®ª |
629 | sub ax, 780 ;ëç⥬ ç «ìë© à §¬¥à ®ª |
945 | shr ax, 1 |
630 | shr ax, 1 |
946 | - | ||
947 | mov [windowx], ax |
631 | mov [windowx], ax |
948 | - | ||
949 | - | ||
950 | ; ¥à¥å®¤¨¬ ª ¢ëá®â¥ |
632 | ; ¥à¥å®¤¨¬ ª ¢ëá®â¥ |
951 | xor ax, ax |
633 | xor ax, ax |
952 | pop ax ; ë⮫ª¥¬ ¨§ á⥪ § 票¥ ¢ëá®âë |
634 | pop ax ; ë⮫ª¥¬ ¨§ á⥪ § 票¥ ¢ëá®âë |
953 | - | ||
954 | sub ax, 580 |
635 | sub ax, 580 |
955 | shr ax, 1 |
636 | shr ax, 1 |
956 | mov [windowy], ax |
637 | mov [windowy], ax |
957 | - | ||
958 | - | ||
959 | ret |
638 | ret |
960 | - | ||
961 | - | ||
962 | - | ||
963 | - | ||
- | 639 | ;--------------------------------------------------------------------- |
|
964 | ;draw_speed: |
640 | ;draw_speed: |
965 | - | ||
966 | ; ªà ᨬ ¯àאַ㣮«ì¨ª |
641 | ; ªà ᨬ ¯àאַ㣮«ì¨ª |
967 | ; mov eax, 13 |
- | |
968 | ; mov ebx, 59*65536+340 |
- | |
969 | ; mov ecx, 29*65536+10 |
- | |
970 | ; mov edx, 0x00CCCCCC |
642 | ; mcall 13,<59,340>,<29,10>,0x00CCCCCC |
971 | ; int 0x40 |
- | |
972 | - | ||
973 | ; à¨á㥬 ¤¯¨áì "ª®à®áâì ¡®à (§ ª®¢ ¢ ¬¨ãâã):" |
643 | ; à¨á㥬 ¤¯¨áì "ª®à®áâì ¡®à (§ ª®¢ ¢ ¬¨ãâã):" |
974 | ; mov eax, 4 |
- | |
975 | ; mov ebx, 60*65536+30 |
- | |
976 | ; mov ecx, 0x80008800 |
644 | ; mcall 4,<60,30>,0x80008800,speedtext |
977 | ; mov edx, speedtext |
- | |
978 | ; int 0x40 |
- | |
979 | - | ||
980 | ; 뢥¤¥¬ ç¨á«® |
645 | ; 뢥¤¥¬ ç¨á«® |
981 | ; mov eax, 47 |
- | |
982 | ; mov ebx, 10000000000001000000000000000000b |
646 | ; mcall 47,0x80040000,[typingspeed],<305,30>,0x00008800 |
983 | ; mov ecx, [typingspeed] |
- | |
984 | ; mov edx, 305*65536+30 |
- | |
985 | ; mov esi, 0x00008800 |
- | |
986 | ; int 0x40 |
- | |
987 | - | ||
988 | ; ret |
647 | ; ret |
989 | - | ||
990 | ;¥áãàáë ) |
- | |
991 | datastart dd 0x0 ; ¤à¥á ¢ ¯ ¬ïâ¨, ¯® ª®â®à®¬ã 室ïâáï ¤ ë¥ ¤«ï ¡®à |
- | |
992 | currentsymb dd 0x0 ; ¥ªã騩 ᨬ¢®« |
- | |
993 | startline dd 0x0 ; ç «® ¯¥à¢®© ¢¨¤¨¬®© áâப¨ |
648 | ;--------------------------------------------------------------------- |
994 | lessonstart dd 0x0 |
- | |
995 | lastsymb dd 0x0 ; ¨¬¢®« ¢ ¯ ¬ïâ¨, ¡à ë© ¯®á«¥¤¨¬ |
- | |
996 | mistakes dd 0x0 ; ®«¨ç¥á⢮ ®è¨¡®ª |
- | |
997 | - | ||
998 | areawidth dw 0x0 |
- | |
999 | areaheight dw 0x0 |
- | |
1000 | windowx dw 0x0 |
- | |
1001 | windowy dw 0x0 |
- | |
1002 | - | ||
1003 | linecount dd 0x00 |
649 | include 'data.inc' |
1004 | currentline dd 0x00 |
- | |
1005 | - | ||
1006 | symbtyped dd 0x0 |
- | |
1007 | typestarttime dd 0x0 |
- | |
1008 | currenttime dd 0x0 |
- | |
1009 | typingspeed dd 0x0 |
- | |
1010 | - | ||
1011 | windowwidth dd 0x00 |
- | |
1012 | windowheight dd 0x00 |
- | |
1013 | - | ||
1014 | text db '« ¢¨ âãàë© âॠ¦ñà -J|Au|||A- 0.9',0 |
650 | ;--------------------------------------------------------------------- |
1015 | buttontext db '«¥¤ãî饥 ã¯à ¦¥¨¥', 0 |
- | |
1016 | retrybuttontext db '®¢â®à¨âì ã¯à ¦¥¨¥', 0 |
- | |
1017 | restartbuttontext db ' ç âì ªãàá § ®¢®', 0 |
- | |
1018 | - | ||
1019 | speedtext db 'ª®à®áâì ¡®à (§ ª®¢ ¢ ¬¨ãâã):',0 |
- | |
1020 | mistakestext db ':', 0 |
- | |
1021 | lessoncomplete db '¯à ¦¥¨¥ § ¢¥à襮!',0x00 |
- | |
1022 | db '।ïï ᪮à®áâì ¡®à : ' |
- | |
1023 | speedbytes db 0x30,0x30,0x30,0x30 |
- | |
1024 | db ' §./¬¨.', 0xFE, 0xFF |
- | |
1025 | lessoncompleteend: |
- | |
1026 | - | ||
1027 | lineistext db ' ', 0 |
- | |
1028 | - | ||
1029 | kbbuffer db 1024 DUP (0x00) |
- | |
1030 | filestruct: ;âàãªâãà ¤ ëå ¤«ï ¢ë§®¢ äãªæ¨¨ 70 |
- | |
1031 | arg1 dd 0x0 |
- | |
1032 | arg2 dd 0x0 |
- | |
1033 | arg3 dd 0x0 |
- | |
1034 | arg4 dd 0x0 |
- | |
1035 | arg5 dd 0x0 |
- | |
1036 | arg6 db 0x0 |
- | |
1037 | arg7 dd 0x0 |
651 | IM_END: |
1038 | - | ||
1039 | filedatastruct: ;âਡãâë ¨ ¤ ë¥ ä ©« |
652 | ;--------------------------------------------------------------------- |
1040 | attrib dd 0x0 |
- | |
1041 | fntype db 0x0 |
- | |
1042 | db 0x0 |
- | |
1043 | db 0x0 |
- | |
1044 | db 0x0 |
- | |
1045 | dd 0x0 ;+8 |
- | |
1046 | dd 0x0 ;+12 |
- | |
1047 | dd 0x0 ;+16 |
- | |
1048 | dd 0x0 ;+20 |
- | |
1049 | dd 0x0 ;+24 |
- | |
1050 | dd 0x0 ;+28 |
- | |
1051 | size dq 0x0 ;+32 |
- | |
1052 | ;size2 dd 0x0 ;+36 |
- | |
1053 | - | ||
1054 | filesize dd 0x0 |
- | |
1055 | - | ||
1056 | par: |
653 | par: |
2812 | I_END: |
663 | I_END:305,30>60,30>29,10>59,340>105,15>60,15>14,10>59,75>252,15>195,15>140,15>105,15>60,15>12,12>32,12>626,14>465,14>310,14>605,145>450,145>8,18>295,145> |
2813 | 664 |