Subversion Repositories Kolibri OS

Rev

Rev 8932 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 8932 Rev 9485
Line 1261... Line 1261...
1261
align 16
1261
align 16
1262
proc ted_memory_increase
1262
proc ted_memory_increase
1263
	cmp ted_increase_size,0
1263
	cmp ted_increase_size,0
1264
	je @f
1264
	je @f
1265
		push eax ebx ecx
1265
		push eax ebx ecx
1266
		mov ecx,ted_increase_size
-
 
1267
		add ecx,ted_max_chars
-
 
1268
		mov ted_max_chars,ecx
-
 
1269
		imul ecx,sizeof.symbol
-
 
1270
		invoke mem.realloc, ted_tex,ecx
-
 
1271
		mov ebx,ted_tex
1266
		mov ebx,ted_tex
1272
		mov ted_tex,eax
-
 
1273
		mov ted_tex_1,eax
1267
		mov ecx,ted_max_chars
1274
		add ted_tex_1,sizeof.symbol
1268
		call ted_mem_resize.no_2
1275
			sub edx,ebx
1269
		sub edx,ebx
1276
			add edx,eax
1270
		add edx,ted_tex
1277
			mov ted_ptr_free_symb,edx
1271
		mov ted_ptr_free_symb,edx
1278
		add eax,ecx
-
 
1279
		mov ted_tex_end,eax
-
 
1280
		pop ecx ebx eax
1272
		pop ecx ebx eax
1281
	@@:
1273
	@@:
1282
	ret
1274
	ret
1283
endp
1275
endp
Line 2544... Line 2536...
2544
 
2536
 
2545
    .if_0e:
2537
    .if_0e:
2546
  ret
2538
  ret
Line -... Line 2539...
-
 
2539
endp
-
 
2540
 
-
 
2541
;description:
-
 
2542
; ¨§¬¥­ï¥¬ à §¬¥à ¯ ¬ï⨠¤«ï ⥪áâ  (ãáâ ­®¢ª  ted_ptr_free_symb ­  1 ᨬ¢®«)
-
 
2543
;input:
-
 
2544
; ecx - ç¨á«® ᨬ¢®«®¢ ¢ ä ©«¥
-
 
2545
; edi - pointer to tedit struct
-
 
2546
;output:
-
 
2547
; eax, ecx - à §àãè îâáï
-
 
2548
align 16
-
 
2549
ted_mem_resize:
-
 
2550
	add ecx,2 ;¯ ¬ïâì ¤«ï ⥪áâ  + á«ã¦¥¡­ë¥ ­ ç «ì­ë© ¨ ª®­¥ç­ë© ᨬ¢®«ë
-
 
2551
.no_2:
-
 
2552
	add ecx,ted_increase_size ;¯ ¬ïâì ¤«ï । ªâ¨à®¢ ­¨ï ä ©« 
-
 
2553
	mov ted_max_chars,ecx
-
 
2554
	imul ecx,sizeof.symbol
-
 
2555
	invoke mem.realloc, ted_tex,ecx
-
 
2556
	mov ted_tex,eax
-
 
2557
	mov ted_tex_1,eax
-
 
2558
	add ted_tex_1,sizeof.symbol
-
 
2559
	add eax,ecx
-
 
2560
	mov ted_tex_end,eax
-
 
2561
	mov ecx,ted_tex_1
-
 
2562
	add ecx,sizeof.symbol
-
 
2563
	mov ted_ptr_free_symb,ecx
2547
endp
2564
	ret
2548
 
2565
 
2549
;output:
2566
;output:
2550
; eax = ª®¤ ®è¨¡ª¨
2567
; eax = ª®¤ ®è¨¡ª¨
2551
; ebx = ª®««¨ç¥á⢮ ¯à®ç¨â ­­ëå ¡ ©â
2568
; ebx = ª®««¨ç¥á⢮ ¯à®ç¨â ­­ëå ¡ ©â
-
 
2569
align 16
-
 
2570
proc ted_open_file uses ecx edx edi esi, edit:dword, file:dword, f_name:dword ;äã­ªæ¨ï ®âªàëâ¨ï ä ©« 
-
 
2571
	locals
2552
align 16
2572
		unpac_mem dd ?
Line 2553... Line 2573...
2553
proc ted_open_file uses ecx edx edi, edit:dword, file:dword, f_name:dword ;äã­ªæ¨ï ®âªàëâ¨ï ä ©« 
2573
	endl
2554
	mov edi,[edit]
2574
	mov edi,[edit]
2555
 
2575
 
Line 2578... Line 2598...
2578
	sub ecx,2 ;ecx = ¬ ªá¨¬ «ì­®¥ ç¨á«® ¡ ©â, ¤«ï ª®â®àëå ¡ë«  ¢ë¤¥«¥­  ¯ ¬ïâì
2598
	sub ecx,2 ;ecx = ¬ ªá¨¬ «ì­®¥ ç¨á«® ¡ ©â, ¤«ï ª®â®àëå ¡ë«  ¢ë¤¥«¥­  ¯ ¬ïâì
2579
	mov edx,ted_tex
2599
	mov edx,ted_tex
2580
	mov edx,[edx+32] ;+32 = +0x20: qword: à §¬¥à ä ©«  ¢ ¡ ©â å
2600
	mov edx,[edx+32] ;+32 = +0x20: qword: à §¬¥à ä ©«  ¢ ¡ ©â å
2581
	cmp edx,ecx
2601
	cmp edx,ecx
2582
	jl @f
2602
	jl @f
2583
		;㢥«¨ç¨¢ ¥¬ ¯ ¬ïâì ¥á«¨ ­¥ 墠⨫®
-
 
2584
		mov ecx,edx ;¯ ¬ïâì ­¥®¡å®¤¨¬ ï ¤«ï ®âªàëâ¨ï ä ©« 
-
 
2585
		add ecx,2  ;¯ ¬ïâì ¤«ï á«ã¦¥¡­ëå ­ ç «ì­®£® ¨ ª®­¥ç­®£® ᨬ¢®«®¢
-
 
2586
		add ecx,ted_increase_size ;¯ ¬ïâì ¤«ï । ªâ¨à®¢ ­¨ï ä ©« 
-
 
2587
		mov ted_max_chars,ecx
-
 
2588
		imul ecx,sizeof.symbol
-
 
2589
		invoke mem.realloc, ted_tex,ecx
-
 
2590
		mov ted_tex,eax
-
 
2591
		mov ted_tex_1,eax
-
 
2592
		add ted_tex_1,sizeof.symbol
-
 
2593
		add eax,ecx
2603
		mov ecx,edx
2594
		mov ted_tex_end,eax
2604
		call ted_mem_resize
2595
		mov ecx,ted_tex_1
-
 
2596
		add ecx,sizeof.symbol
-
 
2597
		mov ted_ptr_free_symb,ecx
-
 
2598
	@@:
2605
	@@:
Line 2599... Line 2606...
2599
 
2606
 
2600
	; *** ¯à®¡ã¥¬ ®âªàëâì ä ©« ***
2607
	; *** ¯à®¡ã¥¬ ®âªàëâì ä ©« ***
2601
	mov ebx,[file]
2608
	mov ebx,[file]
Line 2615... Line 2622...
2615
	jne .ret_f
2622
	jne .ret_f
2616
	@@:
2623
	@@:
2617
	cmp ebx,-1
2624
	cmp ebx,-1
2618
	je .ret_f
2625
	je .ret_f
2619
		;if open file
2626
		;if open file
-
 
2627
		push eax
-
 
2628
		mov eax,ted_tex
-
 
2629
		cmp dword[eax],'KPCK'
-
 
2630
		jne .end_unpack
-
 
2631
			;¢ë¤¥«¥­¨¥ ¯ ¬ï⨠¤«ï à á¯ ª®¢ª¨ ä ©« 
-
 
2632
			invoke mem.alloc,[eax+4]
-
 
2633
			mov [unpac_mem],eax
-
 
2634
			stdcall unpack,ted_tex,[unpac_mem]
-
 
2635
			mov ecx,ted_max_chars
-
 
2636
			sub ecx,2 ;ecx = ¬ ªá¨¬ «ì­®¥ ç¨á«® ¡ ©â, ¤«ï ª®â®àëå ¡ë«  ¢ë¤¥«¥­  ¯ ¬ïâì
-
 
2637
			mov eax,ted_tex
-
 
2638
			mov ebx,[eax+4]
-
 
2639
			cmp ebx,ecx
-
 
2640
			jl @f ;¥á«¨ ¤«ï à á¯ ª®¢ ­®£® ä ©«  ­¥ 墠⠥⠢뤥«¥­­®© ¯ ¬ïâ¨
-
 
2641
				mov ecx,ebx
-
 
2642
				call ted_mem_resize
-
 
2643
			@@:
-
 
2644
			mov edi,ted_tex
-
 
2645
			mov esi,[unpac_mem]
-
 
2646
			mov ecx,ebx
-
 
2647
			cld
-
 
2648
			rep movsb
-
 
2649
			mov edi,[edit]
-
 
2650
			invoke mem.free,[unpac_mem]
-
 
2651
		.end_unpack:
-
 
2652
		pop eax
2620
		call ted_on_open_file
2653
		call ted_on_open_file
2621
	.ret_f:
2654
	.ret_f:
2622
	ret
2655
	ret
2623
endp
2656
endp