Subversion Repositories Kolibri OS

Rev

Rev 2758 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2758 Rev 2808
Line 1... Line 1...
1
; ¬ ªà®á ¤«ï á¨á⥬­®© ¡¨¡«¨®â¥ª¨ box_lib.obj
1
; ¬ ªà®á ¤«ï á¨á⥬­®© ¡¨¡«¨®â¥ª¨ box_lib.obj
2
; í«¥¬¥­â TextEditor ¤«ï Kolibri OS
2
; í«¥¬¥­â TextEditor ¤«ï Kolibri OS
3
; ä ©« ¯®á«¥¤­¨© à § ¨§¬¥­ï«áï 22.08.2011 IgorA
3
; ä ©« ¯®á«¥¤­¨© à § ¨§¬¥­ï«áï 19.06.2012 IgorA
4
; ­  ª®¤ ¯à¨¬¥­¥­  GPL2 «¨æ¥­§¨ï
4
; ­  ª®¤ ¯à¨¬¥­¥­  GPL2 «¨æ¥­§¨ï
Line 5... Line 5...
5
 
5
 
6
;input:
6
;input:
7
; edi = pointer to tedit struct
7
; edi = pointer to tedit struct
Line 2337... Line 2337...
2337
;output:
2337
;output:
2338
; eax = ª®¤ ®è¨¡ª¨
2338
; eax = ª®¤ ®è¨¡ª¨
2339
; ebx = ª®««¨ç¥á⢮ ¯à®ç¨â ­­ëå ¡ ©â
2339
; ebx = ª®««¨ç¥á⢮ ¯à®ç¨â ­­ëå ¡ ©â
2340
align 4
2340
align 4
2341
proc ted_open_file, edit:dword, file:dword, f_name:dword ;äã­ªæ¨ï ®âªàëâ¨ï ä ©« 
2341
proc ted_open_file, edit:dword, file:dword, f_name:dword ;äã­ªæ¨ï ®âªàëâ¨ï ä ©« 
2342
	push edi
2342
	push ecx edx edi
2343
	mov edi,dword[edit]
2343
	mov edi,dword[edit]
Line -... Line 2344...
-
 
2344
 
-
 
2345
	; *** ¯à®¢¥à塞 à §¬¥à ¯ ¬ï⨠¨ ¥á«¨ ­¥ 墠⠥â ⮠㢥«¨ç¨¢ ¥¬ ***
-
 
2346
	;¯à®¡ã¥¬ ¯®«ãç¨âì ¨­ä®à¬ æ¨î ® ä ©«¥
-
 
2347
	mov eax,70
-
 
2348
	mov ebx,dword[file]
-
 
2349
	mov dword[ebx], 5
-
 
2350
	mov dword[ebx+4], 0
-
 
2351
	mov dword[ebx+8], 0
-
 
2352
	mov dword[ebx+12], 0
-
 
2353
	m2m dword[ebx+16], ted_tex
-
 
2354
	mov  byte[ebx+20], 0
-
 
2355
	push dword[f_name]
-
 
2356
	pop dword[ebx+21]
-
 
2357
	int 0x40
-
 
2358
	cmp eax,0
-
 
2359
	je .end_0
-
 
2360
		mov edx,ted_max_chars
-
 
2361
		cmp eax,2 ;äã­ªæ¨ï ­¥ ¯®¤¤¥à¦¨¢ ¥âáï ¤«ï ¤ ­­®© ä ©«®¢®© á¨á⥬ë
-
 
2362
		je @f
-
 
2363
		jmp .ret_f
-
 
2364
	.end_0:
-
 
2365
	;¯à®¢¥à塞 墠â¨â «¨ ¯ ¬ï⨠¤«ï § £à㧪¨ ä ©« 
-
 
2366
	mov ecx,ted_max_chars
-
 
2367
	sub ecx,2 ;ecx = ¬ ªá¨¬ «ì­®¥ ç¨á«® ¡ ©â, ¤«ï ª®â®àëå ¡ë«  ¢ë¤¥«¥­  ¯ ¬ïâì
-
 
2368
	mov edx,ted_tex
-
 
2369
	mov edx,dword[edx+32] ;+32 = +0x20: qword: à §¬¥à ä ©«  ¢ ¡ ©â å
-
 
2370
	cmp edx,ecx
-
 
2371
	jl @f
-
 
2372
		;㢥«¨ç¨¢ ¥¬ ¯ ¬ïâì ¥á«¨ ­¥ 墠⨫®
-
 
2373
		mov ecx,edx ;¯ ¬ïâì ­¥®¡å®¤¨¬ ï ¤«ï ®âªàëâ¨ï ä ©« 
-
 
2374
		add ecx,2  ;¯ ¬ïâì ¤«ï á«ã¦¥¡­ëå ­ ç «ì­®£® ¨ ª®­¥ç­®£® ᨬ¢®«®¢
-
 
2375
		add ecx,ted_increase_size ;¯ ¬ïâì ¤«ï । ªâ¨à®¢ ­¨ï ä ©« 
-
 
2376
		mov ted_max_chars,ecx
-
 
2377
		imul ecx,sizeof.symbol
-
 
2378
		invoke mem.realloc, ted_tex,ecx
-
 
2379
		mov ted_tex,eax
-
 
2380
		mov ted_tex_1,eax
-
 
2381
		add ted_tex_1,sizeof.symbol
-
 
2382
		add eax,ecx
-
 
2383
		mov ted_tex_end,eax
-
 
2384
		mov ecx,ted_tex_1
-
 
2385
		add ecx,sizeof.symbol
-
 
2386
		mov ted_ptr_free_symb,ecx
-
 
2387
	@@:
-
 
2388
 
2344
 
2389
	; *** ¯à®¡ã¥¬ ®âªàëâì ä ©« ***
2345
	mov eax,70
2390
	mov eax,70
2346
	mov ebx,dword[file]
2391
	mov ebx,dword[file]
2347
	mov dword[ebx], 0
2392
	mov dword[ebx], 0
2348
	mov dword[ebx+4], 0
2393
	mov dword[ebx+4], 0
2349
	mov dword[ebx+8], 0
2394
	mov dword[ebx+8], 0
2350
	m2m dword[ebx+12], ted_max_chars ;ç¨á«® ¡ ©â, ª®â®àë¥ ¬®£ãâ ¡ëâì áç¨â ­ë á ä ©« 
2395
	m2m dword[ebx+12], edx ;ç¨á«® ¡ ©â, ª®â®àë¥ ¬®£ãâ ¡ëâì áç¨â ­ë á ä ©«  (­¥ ¡®«ìè¥ ç¥¬ ted_max_chars)
2351
	m2m dword[ebx+16], ted_tex
2396
	m2m dword[ebx+16], ted_tex
2352
	mov  byte[ebx+20], 0
2397
	mov  byte[ebx+20], 0
2353
	push dword[f_name]
2398
	push dword[f_name]
2354
	pop dword[ebx+21]
2399
	pop dword[ebx+21]
Line 2363... Line 2408...
2363
	cmp ebx,-1
2408
	cmp ebx,-1
2364
	je .ret_f
2409
	je .ret_f
2365
		;if open file
2410
		;if open file
2366
		call ted_on_open_file
2411
		call ted_on_open_file
2367
	.ret_f:
2412
	.ret_f:
2368
	pop edi
2413
	pop edi edx ecx
2369
	ret
2414
	ret
2370
endp
2415
endp
Line 2371... Line 2416...
2371
 
2416
 
2372
align 4
2417
align 4