Rev 280 | Rev 327 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 280 | Rev 297 | ||
---|---|---|---|
Line 1... | Line 1... | ||
1 | ;----------------------------------------------------------------------------- |
1 | ;----------------------------------------------------------------------------- |
2 | func check_cur_vis_inv ;////////////////////////////////////////////////////// |
- | |
3 | ;----------------------------------------------------------------------------- |
- | |
4 | push eax ebx |
- | |
5 | xor bl,bl |
- | |
6 | .chk_y: |
- | |
7 | mov eax,[cur_editor.Caret.Y] ;! eax,[pos.y] |
- | |
8 | or eax,eax |
- | |
9 | jge @f |
- | |
10 | mov [cur_editor.Caret.Y],0 ;! [pos.y],0 |
- | |
11 | jmp .chk_dy |
- | |
12 | @@: cmp eax,[cur_editor.Lines.Count] ;! eax,[lines] |
- | |
13 | jl .chk_dy |
- | |
14 | mov eax,[cur_editor.Lines.Count] ;! eax,[lines] |
- | |
15 | dec eax |
- | |
16 | mov [cur_editor.Caret.Y],eax ;! [pos.y],eax |
- | |
17 | .chk_dy: |
- | |
18 | mov eax,[cur_editor.TopLeft.Y] ;! eax,[top_line] |
- | |
19 | cmp eax,[cur_editor.Caret.Y] ;! eax,[pos.y] |
- | |
20 | jle @f |
- | |
21 | m2m [cur_editor.TopLeft.Y],[cur_editor.Caret.Y] |
- | |
22 | ;! push [pos.y] |
- | |
23 | ;! pop [top_line] |
- | |
24 | inc bl |
- | |
25 | @@: add eax,[lines.scr] |
- | |
26 | cmp eax,[cur_editor.Caret.Y] ;! eax,[pos.y] |
- | |
27 | jg .chk_x |
- | |
28 | mov eax,[cur_editor.Caret.Y] ;! eax,[pos.y] |
- | |
29 | sub eax,[lines.scr] |
- | |
30 | inc eax |
- | |
31 | mov [cur_editor.TopLeft.Y],eax ;! [top_line],eax |
- | |
32 | inc bl |
- | |
33 | .chk_x: |
- | |
34 | mov eax,[cur_editor.Caret.X] ;! eax,[pos.x] |
- | |
35 | or eax,eax |
- | |
36 | jge @f |
- | |
37 | mov [cur_editor.Caret.X],0 ;! [pos.x],0 |
- | |
38 | jmp .chk_dx |
- | |
39 | @@: cmp eax,[cur_editor.Columns.Count] ;! eax,[columns] |
- | |
40 | jl .chk_dx |
- | |
41 | mov eax,[cur_editor.Columns.Count] ;! eax,[columns] |
- | |
42 | mov [cur_editor.Caret.X],eax ;! [pos.x],eax |
- | |
43 | .chk_dx: |
- | |
44 | mov eax,[cur_editor.TopLeft.X] ;! eax,[left_col] |
- | |
45 | cmp eax,[cur_editor.Caret.X] ;! eax,[pos.x] |
- | |
46 | jle @f |
- | |
47 | m2m [cur_editor.TopLeft.X],[cur_editor.Caret.X] |
- | |
48 | ;! push [pos.x] |
- | |
49 | ;! pop [left_col] |
- | |
50 | inc bl |
- | |
51 | @@: add eax,[columns.scr] |
- | |
52 | cmp eax,[cur_editor.Caret.X] ;! eax,[pos.x] |
- | |
53 | jg @f |
- | |
54 | mov eax,[cur_editor.Caret.X] ;! eax,[pos.x] |
- | |
55 | sub eax,[columns.scr] |
- | |
56 | inc eax |
- | |
57 | mov [cur_editor.TopLeft.X],eax ;! [left_col],eax |
- | |
58 | inc bl |
- | |
59 | @@: cmp [mev],MEV_LDOWN |
- | |
60 | jne .exit |
- | |
61 | push [cur_editor.Caret.X] [cur_editor.Caret.Y] ;! [pos.x] [pos.y] |
- | |
62 | pop [cur_editor.SelStart.Y] [cur_editor.SelStart.X] ;! [sel.y] [sel.x] |
- | |
63 | .exit: |
- | |
64 | or bl,bl |
- | |
65 | clc |
- | |
66 | jz @f |
- | |
67 | call draw_file |
- | |
68 | stc |
- | |
69 | @@: pop ebx eax |
- | |
70 | ret |
- | |
71 | endf |
- | |
72 | - | ||
73 | ;----------------------------------------------------------------------------- |
- | |
74 | func clear_selection ;//////////////////////////////////////////////////////// |
2 | func clear_selection ;//////////////////////////////////////////////////////// |
75 | ;----------------------------------------------------------------------------- |
3 | ;----------------------------------------------------------------------------- |
76 | push eax ebx |
4 | push eax ebx |
77 | mov eax,[cur_editor.SelStart.Y] ;! eax,[sel.y] |
5 | mov eax,[cur_editor.SelStart.Y] |
78 | mov ebx,[cur_editor.Caret.Y] ;! ebx,[pos.y] |
6 | mov ebx,[cur_editor.Caret.Y] |
79 | cmp eax,ebx |
7 | cmp eax,ebx |
80 | jle @f |
8 | jle @f |
81 | xchg eax,ebx |
9 | xchg eax,ebx |
82 | @@: push [cur_editor.Caret.X] [cur_editor.Caret.Y] ;! [pos.x] [pos.y] |
10 | @@: push [cur_editor.Caret.X] [cur_editor.Caret.Y] |
83 | pop [cur_editor.SelStart.Y] [cur_editor.SelStart.X] ;! [sel.y] [sel.x] |
11 | pop [cur_editor.SelStart.Y] [cur_editor.SelStart.X] |
84 | call draw_file.ex |
- | |
85 | pop ebx eax |
12 | pop ebx eax |
86 | ret |
13 | ret |
87 | endf |
14 | endf |
Line 88... | Line 15... | ||
88 | 15 | ||
Line 105... | Line 32... | ||
105 | 32 | ||
106 | ;----------------------------------------------------------------------------- |
33 | ;----------------------------------------------------------------------------- |
107 | func check_bottom_right ;///////////////////////////////////////////////////// |
34 | func check_bottom_right ;///////////////////////////////////////////////////// |
108 | ;----------------------------------------------------------------------------- |
35 | ;----------------------------------------------------------------------------- |
109 | push eax |
36 | push eax |
110 | mov eax,[cur_editor.TopLeft.Y] ;! eax,[top_line] |
37 | mov eax,[cur_editor.TopLeft.Y] |
111 | add eax,[lines.scr] |
38 | add eax,[lines.scr] |
112 | cmp eax,[cur_editor.Lines.Count] ;! eax,[lines] |
39 | cmp eax,[cur_editor.Lines.Count] |
113 | jbe .lp1 |
40 | jbe .lp1 |
114 | mov eax,[cur_editor.Lines.Count] ;! eax,[lines] |
41 | mov eax,[cur_editor.Lines.Count] |
115 | sub eax,[lines.scr] |
42 | sub eax,[lines.scr] |
116 | jns @f |
43 | jns @f |
117 | xor eax,eax |
44 | xor eax,eax |
118 | @@: mov [cur_editor.TopLeft.Y],eax ;! [top_line],eax |
45 | @@: mov [cur_editor.TopLeft.Y],eax |
119 | .lp1: mov eax,[cur_editor.TopLeft.X] ;! eax,[left_col] |
46 | .lp1: mov eax,[cur_editor.TopLeft.X] |
120 | add eax,[columns.scr] |
47 | add eax,[columns.scr] |
121 | cmp eax,[cur_editor.Columns.Count] ;! eax,[columns] |
48 | cmp eax,[cur_editor.Columns.Count] |
122 | jbe .exit |
49 | jbe .exit |
123 | mov eax,[cur_editor.Columns.Count] ;! eax,[columns] |
50 | mov eax,[cur_editor.Columns.Count] |
124 | sub eax,[columns.scr] |
51 | sub eax,[columns.scr] |
125 | jns @f |
52 | jns @f |
126 | xor eax,eax |
53 | xor eax,eax |
127 | @@: mov [cur_editor.TopLeft.X],eax ;! [left_col],eax |
54 | @@: mov [cur_editor.TopLeft.X],eax |
128 | .exit: |
55 | .exit: |
129 | pop eax |
56 | pop eax |
130 | ret |
57 | ret |
Line 131... | Line 58... | ||
131 | endf |
58 | endf |
132 | - | ||
133 | ;----------------------------------------------------------------------------- |
- | |
134 | func check_inv_str ;////////////////////////////////////////////////////////// |
- | |
135 | ;----------------------------------------------------------------------------- |
- | |
136 | @^ |
- | |
137 | mov eax,[pos.y] |
- | |
138 | mov ecx,[top_line] |
- | |
139 | .skip_init: |
- | |
140 | call check_cur_vis |
- | |
141 | mov [pos.y],eax |
- | |
142 | mov [top_line],ecx |
- | |
143 | .skip_check: |
- | |
144 | ; call invalidate_string |
- | |
145 | call drawfile |
- | |
146 | ret |
- | |
147 | ^@ |
- | |
148 | endf |
- | |
149 | - | ||
150 | ;----------------------------------------------------------------------------- |
- | |
151 | func check_inv_all ;////////////////////////////////////////////////////////// |
- | |
152 | ;----------------------------------------------------------------------------- |
- | |
153 | mov eax,[cur_editor.Caret.Y] ;! eax,[pos.y] |
- | |
154 | mov ecx,[cur_editor.TopLeft.Y] ;! ecx,[top_line] |
- | |
155 | .skip_init: |
- | |
156 | call check_cur_vis |
- | |
157 | mov [cur_editor.Caret.Y],eax ;! [pos.y],eax |
- | |
158 | mov [cur_editor.TopLeft.Y],ecx ;! [top_line],ecx |
- | |
159 | .skip_check: |
- | |
160 | ; call clear_screen |
- | |
161 | call draw_file |
- | |
162 | ret |
- | |
163 | endf |
- | |
164 | - | ||
165 | ;----------------------------------------------------------------------------- |
- | |
166 | func check_cur_vis ;////////////////////////////////////////////////////////// |
- | |
167 | ;----------------------------------------------------------------------------- |
- | |
168 | cmp eax,ecx |
- | |
169 | jb .low |
- | |
170 | mov edx,ecx |
- | |
171 | add edx,[lines.scr] |
- | |
172 | cmp edx,[cur_editor.Lines.Count] ;! edx,[lines] |
- | |
173 | jbe @f |
- | |
174 | mov edx,[cur_editor.Lines.Count] ;! edx,[lines] |
- | |
175 | @@: cmp eax,edx |
- | |
176 | jb @f |
- | |
177 | lea ecx,[eax+1] |
- | |
178 | sub ecx,[lines.scr] |
- | |
179 | jns @f |
- | |
180 | xor ecx,ecx |
- | |
181 | jmp @f |
- | |
182 | .low: mov ecx,eax |
- | |
183 | @@: mov edx,ecx |
- | |
184 | add edx,[lines.scr] |
- | |
185 | cmp edx,[cur_editor.Lines.Count] ;! edx,[lines] |
- | |
186 | jbe @f |
- | |
187 | mov ecx,[cur_editor.Lines.Count] ;! ecx,[lines] |
- | |
188 | sub ecx,[lines.scr] |
- | |
189 | jns @f |
- | |
190 | xor ecx,ecx |
- | |
191 | @@:;mov [top_line],ecx |
- | |
192 | - | ||
193 | pushad |
- | |
194 | mov eax,[cur_editor.Caret.X] ;! eax,[pos.x] |
- | |
195 | mov ebx,[cur_editor.TopLeft.X] ;! ebx,[left_col] |
- | |
196 | mov ecx,ebx |
- | |
197 | add ecx,[columns.scr] |
- | |
198 | cmp eax,ebx |
- | |
199 | jb .lp1 |
- | |
200 | cmp eax,ecx |
- | |
201 | jb .exit |
- | |
202 | lea ebx,[eax] |
- | |
203 | sub ebx,[columns.scr] |
- | |
204 | jmp @f |
- | |
205 | .lp1: mov ebx,eax |
- | |
206 | @@: mov [cur_editor.TopLeft.X],ebx ;! [left_col],ebx |
- | |
207 | - | ||
208 | .exit: |
- | |
209 | mov [cur_editor.Caret.X],eax ;! [pos.x],eax |
- | |
210 | popad |
- | |
211 | - | ||
212 | ret |
- | |
213 | endf |
- | |
214 | 59 | ||
215 | ;----------------------------------------------------------------------------- |
60 | ;----------------------------------------------------------------------------- |
216 | func get_real_length ;//////////////////////////////////////////////////////// |
61 | func get_real_length ;//////////////////////////////////////////////////////// |
217 | ;----------------------------------------------------------------------------- |
62 | ;----------------------------------------------------------------------------- |
218 | movzx eax,word[esi] |
63 | movzx eax,word[esi] |
Line 230... | Line 75... | ||
230 | ; ECX = line number |
75 | ; ECX = line number |
231 | ; Output: |
76 | ; Output: |
232 | ; ESI = line data offset |
77 | ; ESI = line data offset |
233 | ;----------------------------------------------------------------------------- |
78 | ;----------------------------------------------------------------------------- |
234 | push eax ecx |
79 | push eax ecx |
235 | mov esi,[cur_editor.Lines] ;! AREA_EDIT |
80 | mov esi,[cur_editor.Lines] |
236 | @@: dec ecx |
81 | @@: dec ecx |
237 | js .exit |
82 | js .exit |
238 | movzx eax,word[esi] |
83 | movzx eax,word[esi] |
239 | lea esi,[esi+eax+4] |
84 | lea esi,[esi+eax+4] |
240 | jmp @b |
85 | jmp @b |
Line 246... | Line 91... | ||
246 | ;----------------------------------------------------------------------------- |
91 | ;----------------------------------------------------------------------------- |
247 | func init_sel_vars ;////////////////////////////////////////////////////////// |
92 | func init_sel_vars ;////////////////////////////////////////////////////////// |
248 | ;----------------------------------------------------------------------------- |
93 | ;----------------------------------------------------------------------------- |
249 | pushad |
94 | pushad |
250 | mov [sel.selected],1 |
95 | mov [sel.selected],1 |
251 | mov eax,[cur_editor.SelStart.X] ;! eax,[sel.x] |
96 | mov eax,[ebp+EDITOR.SelStart.X] |
252 | mov ebx,[cur_editor.SelStart.Y] ;! ebx,[sel.y] |
97 | mov ebx,[ebp+EDITOR.SelStart.Y] |
253 | mov ecx,[cur_editor.Caret.X] ;! ecx,[pos.x] |
98 | mov ecx,[ebp+EDITOR.Caret.X] |
254 | mov edx,[cur_editor.Caret.Y] ;! edx,[pos.y] |
99 | mov edx,[ebp+EDITOR.Caret.Y] |
255 | cmp ebx,edx |
100 | cmp ebx,edx |
256 | jl .lp2 |
101 | jl .lp2 |
257 | jne @f |
102 | jne @f |
258 | cmp eax,ecx |
103 | cmp eax,ecx |
259 | jl .lp2 |
104 | jl .lp2 |
Line 305... | Line 150... | ||
305 | xor eax,eax |
150 | xor eax,eax |
306 | @@: mov [esp+8],eax ; scroller offset |
151 | @@: mov [esp+8],eax ; scroller offset |
307 | add eax,[esp+4] |
152 | add eax,[esp+4] |
308 | cmp eax,[esp] |
153 | cmp eax,[esp] |
309 | jle @f |
154 | jle @f |
310 | ; mov eax,[esp] |
- | |
311 | ; sub eax,[esp+4] |
- | |
312 | ; js @f |
- | |
313 | ; mov [esp+8],eax |
- | |
314 | @@: |
155 | @@: |
315 | pop edx ebx eax |
156 | pop edx ebx eax |
316 | ret |
157 | ret |
317 | .null: |
158 | .null: |
318 | mov dword[esp+4],0 |
159 | mov dword[esp+4],0 |
Line 447... | Line 288... | ||
447 | sar eax,16 |
288 | sar eax,16 |
448 | mov ecx,__rc |
289 | mov ecx,__rc |
449 | mov dword[ecx+0x0],0 |
290 | mov dword[ecx+0x0],0 |
450 | mov dword[ecx+0x4],0 |
291 | mov dword[ecx+0x4],0 |
451 | movzx edx,[ebp+POPUP.width] |
292 | movzx edx,[ebp+POPUP.width] |
452 | mov dword[ecx+0x8],edx;POP_WIDTH |
293 | mov dword[ecx+0x8],edx |
453 | movzx edx,[ebp+POPUP.height] |
294 | movzx edx,[ebp+POPUP.height] |
454 | mov dword[ecx+0xC],edx;POP_HEIGHT |
295 | mov dword[ecx+0xC],edx |
455 | call pt_in_rect |
296 | call pt_in_rect |
456 | jnc .outside_window |
297 | jnc .outside_window |
457 | inc dword[ecx+0x0] |
298 | inc dword[ecx+0x0] |
458 | mov dword[ecx+0x4],3 |
299 | mov dword[ecx+0x4],3 |
459 | dec dword[ecx+0x8] |
300 | dec dword[ecx+0x8] |
460 | mov dword[ecx+0xC],3+POP_IHEIGHT-1 |
301 | mov dword[ecx+0xC],3+POP_IHEIGHT-1 |
461 | mov edx,[ebp+POPUP.data];popup_text.data |
302 | mov edx,[ebp+POPUP.data] |
462 | @@: inc [pi_cur] |
303 | @@: inc [pi_cur] |
463 | inc edx |
304 | inc edx |
464 | movzx esi,byte[edx-1] |
305 | movzx esi,byte[edx-1] |
465 | cmp byte[edx],'-' |
306 | cmp byte[edx],'-' |
466 | jne .lp1 |
307 | jne .lp1 |
Line 473... | Line 314... | ||
473 | add dword[ecx+0xC],4 |
314 | add dword[ecx+0xC],4 |
474 | jmp .lp3 |
315 | jmp .lp3 |
475 | .lp1: call pt_in_rect |
316 | .lp1: call pt_in_rect |
476 | jnc .lp2 |
317 | jnc .lp2 |
477 | mov eax,[pi_cur] |
318 | mov eax,[pi_cur] |
478 | test byte[ebp+eax-1],1;byte[popup_text+eax-1],1 |
319 | test byte[ebp+eax-1],1 |
479 | jnz .exit |
320 | jnz .exit |
480 | jmp .separator |
321 | jmp .separator |
481 | .lp2: add dword[ecx+0x4],POP_IHEIGHT |
322 | .lp2: add dword[ecx+0x4],POP_IHEIGHT |
482 | add dword[ecx+0xC],POP_IHEIGHT |
323 | add dword[ecx+0xC],POP_IHEIGHT |
483 | add edx,esi |
324 | add edx,esi |
Line 514... | Line 355... | ||
514 | lea eax,[ecx+4] |
355 | lea eax,[ecx+4] |
515 | call editor_realloc_lines |
356 | call editor_realloc_lines |
516 | mov [esp+4*7],eax |
357 | mov [esp+4*7],eax |
517 | add esi,eax |
358 | add esi,eax |
518 | push ecx |
359 | push ecx |
519 | mov edi,[cur_editor.Lines] ;! AREA_TEMP2 |
360 | mov edi,[cur_editor.Lines] |
520 | add edi,[edi-4] |
361 | add edi,[edi-4] |
521 | dec edi |
362 | dec edi |
522 | mov eax,esi |
363 | mov eax,esi |
523 | mov esi,edi |
364 | mov esi,edi |
524 | sub esi,ecx |
365 | sub esi,ecx |
525 | lea ecx,[eax+4] |
366 | lea ecx,[eax+4] |
526 | add ecx,edx;[eax] |
367 | add ecx,edx |
527 | push ecx |
368 | push ecx |
528 | neg ecx |
369 | neg ecx |
529 | lea ecx,[esi+ecx+1] |
370 | lea ecx,[esi+ecx+1] |
530 | std |
371 | std |
531 | rep movsb |
372 | rep movsb |
Line 569... | Line 410... | ||
569 | mov ebx,[sel.begin.x] |
410 | mov ebx,[sel.begin.x] |
570 | add ebx,ecx |
411 | add ebx,ecx |
571 | mov [edi-4],bx |
412 | mov [edi-4],bx |
572 | add edi,[sel.begin.x] |
413 | add edi,[sel.begin.x] |
573 | lea esi,[esi+eax+4] |
414 | lea esi,[esi+eax+4] |
574 | mov ecx,[cur_editor.Lines] ;! AREA_TEMP2 |
415 | mov ecx,[cur_editor.Lines] |
575 | add ecx,[ecx-4] |
416 | add ecx,[ecx-4] |
576 | sub ecx,esi |
417 | sub ecx,esi |
577 | cld |
418 | cld |
578 | rep movsb |
419 | rep movsb |
579 | mov eax,[sel.end.y] |
420 | mov eax,[sel.end.y] |
580 | sub eax,[sel.begin.y] |
421 | sub eax,[sel.begin.y] |
581 | sub [cur_editor.Lines.Count],eax ;! [lines],eax |
422 | sub [cur_editor.Lines.Count],eax |
582 | jmp .exit |
423 | jmp .exit |
Line 583... | Line 424... | ||
583 | 424 | ||
584 | .single_line: |
425 | .single_line: |
585 | call get_line_offset |
426 | call get_line_offset |
Line 595... | Line 436... | ||
595 | @@: sub ecx,[sel.begin.x] |
436 | @@: sub ecx,[sel.begin.x] |
596 | sub [esi],cx |
437 | sub [esi],cx |
597 | lea edi,[esi+4] |
438 | lea edi,[esi+4] |
598 | add edi,[sel.begin.x] |
439 | add edi,[sel.begin.x] |
599 | lea esi,[edi+ecx] |
440 | lea esi,[edi+ecx] |
600 | mov ecx,[cur_editor.Lines] ;! AREA_TEMP2 |
441 | mov ecx,[cur_editor.Lines] |
601 | add ecx,[ecx-4] |
442 | add ecx,[ecx-4] |
602 | sub ecx,esi |
443 | sub ecx,esi |
603 | cld |
444 | cld |
604 | rep movsb |
445 | rep movsb |
Line 605... | Line 446... | ||
605 | 446 | ||
606 | .exit: |
447 | .exit: |
607 | mov eax,[sel.begin.x] |
448 | mov eax,[sel.begin.x] |
608 | mov [cur_editor.Caret.X],eax ;! [pos.x],eax |
449 | mov [cur_editor.Caret.X],eax |
609 | mov [cur_editor.SelStart.X],eax ;! [sel.x],eax |
450 | mov [cur_editor.SelStart.X],eax |
610 | mov eax,[sel.begin.y] |
451 | mov eax,[sel.begin.y] |
611 | mov [cur_editor.Caret.Y],eax ;! [pos.y],eax |
452 | mov [cur_editor.Caret.Y],eax |
Line 612... | Line 453... | ||
612 | mov [cur_editor.SelStart.Y],eax ;! [sel.y],eax |
453 | mov [cur_editor.SelStart.Y],eax |
613 | 454 | ||
614 | mov ecx,[cur_editor.Lines.Count] |
455 | mov ecx,[cur_editor.Lines.Count] |
615 | call get_line_offset |
456 | call get_line_offset |
Line 620... | Line 461... | ||
620 | sub esi,eax |
461 | sub esi,eax |
621 | lea eax,[esi+4096] |
462 | lea eax,[esi+4096] |
622 | call editor_realloc_lines |
463 | call editor_realloc_lines |
Line 623... | Line 464... | ||
623 | 464 | ||
624 | popad |
465 | popad |
625 | mov [cur_editor.Modified],1 ;! [modified],1 |
466 | mov [cur_editor.Modified],1 |
626 | clc |
467 | clc |
Line 627... | Line 468... | ||
627 | ret |
468 | ret |
628 | 469 | ||
Line 688... | Line 529... | ||
688 | xor edx,edx |
529 | xor edx,edx |
689 | jmp .lp1 |
530 | jmp .lp1 |
690 | endf |
531 | endf |
Line 691... | Line 532... | ||
691 | 532 | ||
- | 533 | ;----------------------------------------------------------------------------- |
|
- | 534 | func update_caption ;///////////////////////////////////////////////////////// |
|
- | 535 | ;----------------------------------------------------------------------------- |
|
- | 536 | lea esi,[cur_editor.FilePath] |
|
- | 537 | mov edi,s_title |
|
- | 538 | ||
- | 539 | @@: lodsb |
|
- | 540 | cmp al,0 |
|
- | 541 | je @f |
|
- | 542 | stosb |
|
- | 543 | jmp @b |
|
- | 544 | @@: |
|
- | 545 | mov dword[edi],' - ' |
|
- | 546 | add edi,3 |
|
- | 547 | @@: mov esi,htext |
|
- | 548 | mov ecx,htext.size |
|
- | 549 | cld |
|
- | 550 | rep movsb |
|
- | 551 | ||
- | 552 | mov al,0 |
|
- | 553 | stosb |
|
- | 554 | ||
- | 555 | mcall 71,1,s_title |
|
- | 556 | ||
- | 557 | clc |
|
- | 558 | ret |
|
- | 559 | endf |
|
- | 560 | ||
692 | ;----------------------------------------------------------------------------- |
561 | ;----------------------------------------------------------------------------- |
693 | func mem.Alloc ;////////////////////////////////////////////////////////////// |
562 | func mem.Alloc ;////////////////////////////////////////////////////////////// |
694 | ;----------------------------------------------------------------------------- |
563 | ;----------------------------------------------------------------------------- |
695 | push ebx ecx |
564 | push ebx ecx |
696 | lea ecx,[eax+4+4095] |
565 | lea ecx,[eax+4+4095] |