Subversion Repositories Kolibri OS

Rev

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

Rev 1459 Rev 1464
Line 1... Line 1...
1
; ¬ ªà®á ¤«ï á¨á⥬­®© ¡¨¡«¨®â¥ª¨ box_lib.obj
1
; ¬ ªà®á ¤«ï á¨á⥬­®© ¡¨¡«¨®â¥ª¨ box_lib.obj
2
; í«¥¬¥­â TextEditor ¤«ï Kolibri OS
2
; í«¥¬¥­â TextEditor ¤«ï Kolibri OS
3
; ä ©« ¯®á«¥¤­¨© à § ¨§¬¥­ï«áï 05.05.2010 IgorA
3
; ä ©« ¯®á«¥¤­¨© à § ¨§¬¥­ï«áï 17.05.2010 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 52... Line 52...
52
  tc dd ?   ; +10 ¢à¥¬. ᮧ¤ ­¨ï
52
  tc dd ?   ; +10 ¢à¥¬. ᮧ¤ ­¨ï
53
  td dd ?   ; +14 ¢à¥¬. 㤠«¥­¨ï
53
  td dd ?   ; +14 ¢à¥¬. 㤠«¥­¨ï
54
ends
54
ends
55
;------------------------------------------------------------------------------
55
;------------------------------------------------------------------------------
Line 56... Line -...
56
 
-
 
-
 
56
 
Line 57... Line 57...
57
ted_symbol_tab db 26
57
ted_symbol_tab db 26 ;ascii ª®¤ áâ५ª¨ ¢¯à ¢®, ¨á¯®«ì§ã¥âáï ¤«ï à¨á®¢ ­¨ï â ¡ã«ï樨 ¢ ०¨¬¥ ¯®ª §  ­¥¢¨¤¨¬ëå ᨬ¢®«®¢
Line 58... Line 58...
58
 
58
 
59
if lang eq ru
59
if lang eq ru
Line 78... Line 78...
78
txtOtm db 'Undo',0
78
txtOtm db 'Undo',0
79
txtBuf db 'Buffer:',0
79
txtBuf db 'Buffer:',0
Line 80... Line 80...
80
 
80
 
Line 81... Line -...
81
end if
-
 
-
 
81
end if
82
 
82
 
83
;------
83
;EvChar - â ¡«¨æ  ¤«ï 䨫ìâ஢ ­¨ï ¤®¡ ¢«ï¥¬ëå ᨬ¢®«®¢, çâ®-¡ë ­¥ ¯®¯ «¨ «¨è­¨¥ §­ ª¨
84
align 4
84
align 4
85
EvChar db 0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0
85
EvChar db 0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0
86
    db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
86
    db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Line 96... Line 96...
96
    db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
96
    db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
97
    db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
97
    db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
98
    db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
98
    db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
99
    db 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
99
    db 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
100
    db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
100
    db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
101
 
-
 
-
 
101
;EvUpper - â ¡«¨æ  ¤«ï ¯à¥®¡à §®¢ ­¨ï ᨬ¢®«®¢ ª ¢¥àå­¥¬ã ॣ¨áâàã
102
EvUpper db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
102
EvUpper db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
103
    db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
103
    db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
104
    db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
104
    db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
105
    db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
105
    db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
106
    db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
106
    db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Line 111... Line 111...
111
    db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
111
    db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
112
    db 128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143
112
    db 128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143
113
    db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
113
    db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
114
    db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
114
    db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
115
    db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
115
    db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
116
    db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
116
    db 144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159
117
    db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
117
    db 0,240,0,242,0,244,0,246,0,0,0,0,0,0,0,0
-
 
118
;EvLover - â ¡«¨æ  ¤«ï ¯à¥®¡à §®¢ ­¨ï ᨬ¢®«®¢ ª ­¨¦­¥¬ã ॣ¨áâàã
118
EvLover db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
119
EvLover db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
119
    db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
120
    db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
120
    db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
121
    db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
121
    db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
122
    db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
122
    db 0,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111
123
    db 0,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111
123
    db 112,113,114,115,116,117,118,119,120,121,122,0,0,0,0,0
124
    db 112,113,114,115,116,117,118,119,120,121,122,0,0,0,0,0
124
    db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
125
    db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
125
    db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
126
    db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
126
    db 160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175
127
    db 160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175
-
 
128
    db 224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239
127
    db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
129
    db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
128
    db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
130
    db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
129
    db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
131
    db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
130
    db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
132
    db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
131
    db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
133
    db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
132
    db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-
 
133
    db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
134
    db 241,0,243,0,245,0,247,0,0,0,0,0,0,0,0,0
134
conv_table dd 0
135
conv_table dd 0
Line 135... Line 136...
135
 
136
 
136
 
137
 
Line 250... Line 251...
250
	ret
251
	ret
251
endp
252
endp
Line 252... Line 253...
252
 
253
 
253
align 4
254
align 4
254
proc ted_delete, edit:dword
255
proc ted_delete, edit:dword
255
  push ecx edi
256
	push edi
256
  mov edi,dword[edit]
-
 
257
 
-
 
258
  mov ecx,ted_tex
257
	mov edi,dword[edit]
259
  call mem_Free
258
	stdcall mem_Free,ted_tex
260
  mov ecx,ted_arr_key_pos ;ted_syntax_file
-
 
261
  call mem_Free
-
 
262
 
259
	stdcall mem_Free,ted_arr_key_pos ;ted_syntax_file
263
  pop edi ecx
260
	pop edi
264
  ret
261
	ret
Line 265... Line 262...
265
endp
262
endp
Line 689... Line 686...
689
  mov ted_tim_ch,0
686
	mov ted_tim_ch,0
690
  mov ted_tim_ls,0
687
	mov ted_tim_ls,0
691
  mov ted_tim_co,0
688
	mov ted_tim_co,0
692
  mov ted_tim_undo,0
689
	mov ted_tim_undo,0
693
  mov ted_help_id,-1
690
	mov ted_help_id,-1
-
 
691
	mov ecx,sizeof.symbol
-
 
692
	shl ecx,1
-
 
693
	add ecx,ted_tex
-
 
694
	mov ted_ptr_free_symb,ecx
Line 694... Line 695...
694
 
695
 
695
  mov ecx,ted_scr_w
696
	mov ecx,ted_scr_w
696
  mov dword[ecx+sb_offs_position],0
697
	mov dword[ecx+sb_offs_position],0
697
  mov dword[ecx+sb_offs_max_area],100 ;ç¨á«® áâப ¢¨¤¨¬ëå ¢ ­®¢®¬ ¤®ªã¬¥­â¥
698
	mov dword[ecx+sb_offs_max_area],100 ;ç¨á«® áâப ¢¨¤¨¬ëå ¢ ­®¢®¬ ¤®ªã¬¥­â¥
Line 1106... Line 1107...
1106
			call ted_get_num_lines
1107
			call ted_get_num_lines
1107
			sub dword[new_lin],eax
1108
			sub dword[new_lin],eax
1108
		pop eax
1109
		pop eax
1109
	@@:
1110
	@@:
Line 1110... Line 1111...
1110
 
1111
 
1111
  mov edx,sizeof.symbol
-
 
1112
  shl edx,1
-
 
1113
  add edx,ted_tex
1112
	mov edx,ted_ptr_free_symb
1114
  @@: ;for(i=2;i
1113
	.beg_cycle: ;for(i=...;i
1115
    cmp dword [edx+10],0 ;if(!tex[i].tc && !tex[i].td)
1114
		cmp dword [edx+10],0 ;if(!tex[i].tc && !tex[i].td)
1116
    jne .u1f
1115
		jne .u1f
1117
    cmp dword [edx+14],0
1116
		cmp dword [edx+14],0
1118
    jne .u1f
1117
		jne .u1f
Line 1148... Line 1147...
1148
      add ecx,ted_tex ; *** ecx = tex[po_t] ***
1147
			add ecx,ted_tex ; *** ecx = tex[po_t] ***
1149
      add ecx,6   ; *** ecx = tex[po_t].next ***
1148
			add ecx,6   ; *** ecx = tex[po_t].next ***
1150
      m2m dword [edx+6],dword [ecx] ;tex[i].next=tex[po_t].next;
1149
			m2m dword [edx+6],dword [ecx] ;tex[i].next=tex[po_t].next;
Line 1151... Line 1150...
1151
 
1150
 
1152
      call ted_get_text_arr_index ;*** eax = i ***
-
 
1153
      cmp eax,ted_max_chars
-
 
1154
      jge @f
1151
			call ted_get_text_arr_index ;*** eax = i ***
1155
      mov [ecx],eax ;tex[po_t].next=i; // áá뫪¨ ¯¥à¥­ ¯à ¢«ï¥¬
1152
			mov [ecx],eax ;tex[po_t].next=i; // áá뫪¨ ¯¥à¥­ ¯à ¢«ï¥¬
1156
      mov ecx,[edx+6] ; *** ecx = tex[i].next ***
1153
			mov ecx,[edx+6] ; *** ecx = tex[i].next ***
1157
      imul ecx,sizeof.symbol
1154
			imul ecx,sizeof.symbol
1158
      add ecx,ted_tex ; *** ecx = tex[tex[i].next] ***
1155
			add ecx,ted_tex ; *** ecx = tex[tex[i].next] ***
Line 1175... Line 1172...
1175
    .u1f:
1172
		.u1f:
1176
    add edx,sizeof.symbol
1173
		add edx,sizeof.symbol
1177
    cmp edx,ted_tex_end
1174
		cmp edx,ted_tex_end
1178
    jge @f ;out of memory
1175
		jge @f ;out of memory
1179
    cmp ebx,0
1176
		cmp ebx,0
1180
    jne @b
1177
		jne .beg_cycle
-
 
1178
		mov ted_ptr_free_symb,edx ;¬¥­ï¥¬ 㪠§ â¥«ì ­  ᢮¡®¤­ë© ᨬ¢®«, ¤«ï ¡®«¥¥ ¡ëáâண® ¯®¨áª  ¯ ¬ïâ¨
-
 
1179
		jmp .add_all
1181
  @@:
1180
	@@:
-
 
1181
	cmp ted_increase_size,0
-
 
1182
	je .add_all
-
 
1183
		call ted_memory_increase
-
 
1184
		cmp ebx,0
-
 
1185
		jne .beg_cycle
-
 
1186
	.add_all: ;¢á¥ ᨬ¢®«ë ¤®¡ ¢«¥­ë
Line 1182... Line 1187...
1182
 
1187
 
1183
  call ted_text_colored
1188
	call ted_text_colored
1184
  popad
1189
	popad
1185
  ret
1190
	ret
Line 1186... Line 1191...
1186
endp
1191
endp
-
 
1192
 
-
 
1193
;input:
-
 
1194
;  edx = pointer to sumbol, when insert
-
 
1195
;  edi = pointer to tedit struct
-
 
1196
;output:
-
 
1197
;  edx = new pointer to sumbol, when insert
-
 
1198
align 4
-
 
1199
proc ted_memory_increase
-
 
1200
	cmp ted_increase_size,0
-
 
1201
	je @f
-
 
1202
		push eax ebx ecx
-
 
1203
		mov ecx,ted_increase_size
-
 
1204
		add ecx,ted_max_chars
-
 
1205
		mov ted_max_chars,ecx
-
 
1206
		imul ecx,sizeof.symbol
-
 
1207
		stdcall mem_ReAlloc, ted_tex,ecx
-
 
1208
		mov ebx,ted_tex
-
 
1209
		mov ted_tex,eax
-
 
1210
		mov ted_tex_1,eax
-
 
1211
		add ted_tex_1,sizeof.symbol
-
 
1212
			sub edx,ebx
-
 
1213
			add edx,eax
-
 
1214
			mov ted_ptr_free_symb,edx
-
 
1215
		add eax,ecx
-
 
1216
		mov ted_tex_end,eax
-
 
1217
		pop ecx ebx eax
-
 
1218
	@@:
-
 
1219
	ret
-
 
1220
endp
1187
 
1221
 
1188
;input:
1222
;input:
1189
;  ecx = position to free insert cell
1223
;  ecx = position to free insert cell
1190
;  edx = pointer to sumbol, when insert
1224
;  edx = pointer to sumbol, when insert
1191
;  esi = pointer to added symbol
1225
;  esi = pointer to added symbol
Line 1267... Line 1301...
1267
    cmp eax,ebx
1301
    cmp eax,ebx
1268
    je .end_f
1302
    je .end_f
Line 1269... Line 1303...
1269
 
1303
 
1270
    inc ted_tim_ch
1304
    inc ted_tim_ch
1271
    mov edx,eax ;i=p0;
-
 
1272
    mov ecx,2
1305
    mov edx,eax ;i=p0;
1273
    ConvertIndexToPointer ecx
1306
    mov ecx,ted_ptr_free_symb
1274
    @@:
1307
    @@:
1275
      mov esi,[edx]
1308
      mov esi,[edx]
1276
      and esi,0xff
1309
      and esi,0xff
1277
      add esi,[conv_table] ;EvUpper
1310
      add esi,[conv_table] ;EvUpper
Line 1924... Line 1957...
1924
      mov ebx,[edx+6]
1957
      mov ebx,[edx+6]
1925
      imul ebx,sizeof.symbol
1958
      imul ebx,sizeof.symbol
1926
      add ebx,ted_tex;.perv
1959
      add ebx,ted_tex;.perv
1927
      m2m dword [ebx+2],dword [edx+2] ;tex[tex[i].next].perv=tex[i].perv;
1960
      m2m dword [ebx+2],dword [edx+2] ;tex[tex[i].next].perv=tex[i].perv;
Line -... Line 1961...
-
 
1961
 
-
 
1962
cmp ted_ptr_free_symb,edx
-
 
1963
jle .no_u1
1928
 
1964
  mov ted_ptr_free_symb,edx ;¬¥­ï¥¬ 㪠§ â¥«ì ­  ᢮¡®¤­ë© ᨬ¢®«, ¤«ï ¡®«¥¥ ¡ëáâண® ¯®¨áª  ¯ ¬ïâ¨
Line 1929... Line 1965...
1929
    .no_u1:
1965
    .no_u1:
1930
 
1966
 
1931
    ;else if(tex[i].td>ted_tim_ch) tex[i].td=0; // ¥á«¨ 㤠«¥­¨¥ ᨬ¢®«  ¡ë«® ®â¬¥­¥­®
1967
    ;else if(tex[i].td>ted_tim_ch) tex[i].td=0; // ¥á«¨ 㤠«¥­¨¥ ᨬ¢®«  ¡ë«® ®â¬¥­¥­®
Line 3364... Line 3400...
3364
proc KeyConvertToASCII, table:dword
3400
proc KeyConvertToASCII, table:dword
3365
  push ebx
3401
	push ebx
3366
  mov ebx,dword[table] ;convert scan to ascii
3402
	mov ebx,dword[table] ;convert scan to ascii
3367
  ror ax,8
3403
	ror ax,8
3368
  xor ah,ah
3404
	xor ah,ah
3369
  add bx,ax
3405
	add bx,ax ;? ebx,eax
3370
  mov ah,byte[ebx]
3406
	mov ah,byte[ebx]
3371
  pop ebx
3407
	pop ebx
3372
  ret
3408
	ret
3373
endp
3409
endp
Line 3961... Line 3997...
3961
    .no_msg:
3997
    .no_msg:
3962
    m2m ted_tim_ls,ted_tim_ch
3998
    m2m ted_tim_ls,ted_tim_ch
3963
  @@:
3999
  @@:
Line 3964... Line 4000...
3964
 
4000
 
3965
  pop ecx ;§ ¯¨á뢠¥¬ 㪠§ â¥«ì ­  ¢ë¤¥«¥­­ãî ¯ ¬ïâì
4001
  pop ecx ;§ ¯¨á뢠¥¬ 㪠§ â¥«ì ­  ¢ë¤¥«¥­­ãî ¯ ¬ïâì
3966
  call mem_Free
4002
  stdcall mem_Free,ecx
3967
  .no_save:
4003
  .no_save:
3968
  popad
4004
  popad
3969
  ret
4005
  ret
3970
endp
4006
endp
3971
}
4007
}