Subversion Repositories Kolibri OS

Rev

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

Rev 2574 Rev 2632
Line 15... Line 15...
15
color_s1 equ 0xffffff ;ᨣ­ « 1
15
color_s1 equ 0xffffff ;ᨣ­ « 1
16
color_s2 equ 0xff00 ;â®çª  ¡¥§ ¯¥à¥á¥ç¥­¨ï
16
color_s2 equ 0xff00 ;â®çª  ¡¥§ ¯¥à¥á¥ç¥­¨ï
17
color_s3 equ 0xff0000 ;¢à¥¬¥­­®¥ §­ ç¥­¨¥ ¤«ï á®åà ­¥­¨ï
17
color_s3 equ 0xff0000 ;¢à¥¬¥­­®¥ §­ ç¥­¨¥ ¤«ï á®åà ­¥­¨ï
Line 18... Line 18...
18
 
18
 
-
 
19
color_border dd ini_def_c_border
-
 
20
opt_sign_moves dd 4
Line 19... Line 21...
19
color_border dd ini_def_c_border
21
opt_fast_mode dd 0 ;¡ëáâàë© à¥¦¨¬
Line 20... Line 22...
20
 
22
 
21
debug equ 0
23
debug equ 0
Line 50... Line 52...
50
include 'dll.inc'
52
include 'dll.inc'
51
include 'le_pole.inc'
53
include 'le_pole.inc'
52
include 'le_signal.inc'
54
include 'le_signal.inc'
Line 53... Line 55...
53
 
55
 
54
@use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load
56
@use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load
Line 55... Line 57...
55
caption db '‹®£¨ç¥áª¨¥ í«¥¬¥­âë 05.04.12',0 ;¯®¤¯¨áì ®ª­ 
57
caption db '‹®£¨ç¥áª¨¥ í«¥¬¥­âë 19.04.12',0 ;¯®¤¯¨áì ®ª­ 
56
 
58
 
57
panel_0_coord_top equ 5 ;¢¥àå­ïï ª®®à¤¨­ â  0-£® à鸞 ¯ ­¥«¨ ¨­áâà㬥­â®¢
59
panel_0_coord_top equ 5 ;¢¥àå­ïï ª®®à¤¨­ â  0-£® à鸞 ¯ ­¥«¨ ¨­áâà㬥­â®¢
58
panel_1_coord_top equ 35
60
panel_1_coord_top equ 35
Line 87... Line 89...
87
	FileName dd ?
89
	FileName dd ?
88
ends
90
ends
Line 89... Line 91...
89
 
91
 
90
macro elOpt nam,col,box_x,box_y,table, tbl_i_legs, ol0, ol1, ol2
92
macro elOpt nam,col,box_x,box_y,table, tbl_i_legs, ol0, ol1, ol2
91
{
93
{
92
	@@: db nam
94
	@@: db nam,0
93
	rb @b+16-$
95
	rb @b+el_offs_col-$
94
	dd col
96
	dd col
95
	db box_x
97
	db box_x
96
	db box_y
98
	db box_y
97
	dd table+0 ;+el_offs_table
99
	dd table+0 ;+el_offs_table
Line 110... Line 112...
110
elOpt 'and[4]',0xffff00,5,9,tbl_and.4, tbl_il_4, 4
112
elOpt 'and[4]',0xffff00,5,9,tbl_and.4, tbl_il_4, 4
111
elOpt 'and[5]',0xffff00,5,11,tbl_and.5, tbl_il_5, 5
113
elOpt 'and[5]',0xffff00,5,11,tbl_and.5, tbl_il_5, 5
112
elOpt 'not',   0xffff,	3,3,tbl_not, tbl_il_1, 1
114
elOpt 'not',   0xffff,	3,3,tbl_not, tbl_il_1, 1
113
elOpt 'xor',   0x8000ff,5,5,tbl_xor, tbl_il_2, 2
115
elOpt 'xor',   0x8000ff,5,5,tbl_xor, tbl_il_2, 2
114
elOpt 'sm[1]', 0x8080ff,7,7,tbl_sm,  tbl_il_3, 1,4
116
elOpt 'sm[1]', 0x8080ff,7,7,tbl_sm,  tbl_il_3, 1,4
-
 
117
elOpt 'ms[2]', 0x8080ff,7,14,tbl_ms_2,  tbl_il_m2,6
-
 
118
elOpt 'ms[2]e',0x8080ff,7,17,tbl_ms_2_e,tbl_il_m2e,8
115
;elOpt 'cd[8]', 0x8000, 7,17,tbl_cd_8,tbl_il_8, 6,2,2 ;è¨äà â®à ­  8 ¢å®¤®¢
119
;elOpt 'cd[8]', 0x8000, 7,17,tbl_cd_8,tbl_il_8, 6,2,2 ;è¨äà â®à ­  8 ¢å®¤®¢
116
.end:
120
.end:
117
elOpt '???', 0x808080,3,3,tbl_and.3, tbl_il_1, 1 ;­¥ ®¯®§­ ­­ë© í«¥¬¥­â
121
elOpt '???', 0x808080,3,3,tbl_and.3, tbl_il_1, 1 ;­¥ ®¯®§­ ­­ë© í«¥¬¥­â
Line 118... Line 122...
118
 
122
 
Line 126... Line 130...
126
.3: dd 0
130
.3: dd 0
127
.2: db 0,0,0,1
131
.2: db 0,0,0,1
128
tbl_xor db 0,1,1,0
132
tbl_xor db 0,1,1,0
129
tbl_sm db 0,2,2,1, 2,1,1,3
133
tbl_sm db 0,2,2,1, 2,1,1,3
130
tbl_not db 1,0 ;not
134
tbl_not db 1,0 ;not
-
 
135
 
-
 
136
;¬ã«ì⨯«¥ªá®à ¤«ï 2-å à §à來®£® ᨣ­ « 
-
 
137
align 4
-
 
138
tbl_ms_2_e: ;á® ¢å®¤®¬ 'e'
-
 
139
dq 0,0,0,0,0,0,0,0
-
 
140
tbl_ms_2:
-
 
141
db 0,1,0,1,0,1,0,1
-
 
142
db 0,1,0,1,0,1,0,1
-
 
143
db 0,0,1,1,0,0,1,1
-
 
144
db 0,0,1,1,0,0,1,1
-
 
145
db 0,0,0,0,1,1,1,1
-
 
146
db 0,0,0,0,1,1,1,1
-
 
147
dq 0
-
 
148
db 1,1,1,1,1,1,1,1
131
;tbl_cd_8 db ;256=2^8
149
;tbl_cd_8 db ;256=2^8
Line 132... Line 150...
132
 
150
 
133
;â ¡«¨æë ¤«ï ¢å®¤­ëå ­®£
151
;â ¡«¨æë ¤«ï ¢å®¤­ëå ­®£
134
tbl_il_1 db 1,0   ;ª®à¯ãá ­  1 ­®£ã
152
tbl_il_1 db 1,0   ;ª®à¯ãá ­  1 ­®£ã
135
tbl_il_2 db 1,2,0 ;ª®à¯ãá ­  2 ­®£¨
153
tbl_il_2 db 1,2,0 ;ª®à¯ãá ­  2 ­®£¨
136
tbl_il_3 db 1,2,2,0
154
tbl_il_3 db 1,2,2,0
137
tbl_il_4 db 1,2,2,2,0
155
tbl_il_4 db 1,2,2,2,0
-
 
156
tbl_il_5 db 1,2,2,2,2,0
-
 
157
tbl_il_m2  db 1,2,2,2,3,2,0
138
tbl_il_5 db 1,2,2,2,2,0
158
tbl_il_m2e db 1,2,2,2,3,2,3,0
Line 139... Line 159...
139
;tbl_il_8 db 1,2,2,2,2,2,2,2,0
159
;tbl_il_8 db 1,2,2,2,2,2,2,2,0
140
 
160
 
141
time dd 0
161
time dd 0
Line 225... Line 245...
225
key_color_border db 'border',0
245
key_color_border db 'border',0
226
key_color_s0 db 's0',0
246
key_color_s0 db 's0',0
227
key_color_s1 db 's1',0
247
key_color_s1 db 's1',0
228
key_color_s2 db 's2',0
248
key_color_s2 db 's2',0
229
key_color_captions db 'captions',0
249
key_color_captions db 'captions',0
-
 
250
ini_sec_options db 'Options',0
-
 
251
key_opt_sign_moves db 'signal_moves',0
-
 
252
key_opt_fast_mode db 'fast_mode',0
Line 230... Line 253...
230
 
253
 
231
align 4
254
align 4
232
start:
255
start:
233
	load_libraries l_libs_start,l_libs_end
256
	load_libraries l_libs_start,l_libs_end
Line 265... Line 288...
265
		pop ecx
288
		pop ecx
266
		mov	dword[ebx+el_offs_col-el_offs_nam],eax
289
		mov dword[ebx+el_offs_col-el_offs_nam],eax
267
		add ebx,size_el_opt
290
		add ebx,size_el_opt
268
		loop @b
291
		loop @b
Line -... Line 292...
-
 
292
 
-
 
293
	stdcall dword[ini_get_int],file_name,ini_sec_options,key_opt_sign_moves,[opt_sign_moves]
-
 
294
	mov dword[opt_sign_moves],eax
-
 
295
	stdcall dword[ini_get_int],file_name,ini_sec_options,key_opt_fast_mode,[opt_fast_mode]
-
 
296
	mov dword[opt_fast_mode],eax
269
 
297
 
270
	;*** ¯®¤£®â®¢ª  ¤¨ «®£ 
298
	;*** ¯®¤£®â®¢ª  ¤¨ «®£ 
271
	stdcall [OpenDialog_Init],OpenDialog_data
299
	stdcall [OpenDialog_Init],OpenDialog_data
272
	stdcall [buf2d_create], buf_0 ;ᮧ¤ ­¨¥ ¡ãä¥à 
300
	stdcall [buf2d_create], buf_0 ;ᮧ¤ ­¨¥ ¡ãä¥à 
Line 365... Line 393...
365
	mov [last_time],eax
393
	mov [last_time],eax
Line 366... Line 394...
366
 
394
 
367
	cmp byte[tim_ch],0
395
	cmp byte[tim_ch],0
368
	je @f
396
	je @f
-
 
397
		inc dword[time]
-
 
398
	cmp dword[opt_fast_mode],0
369
		inc dword[time]
399
	jne .fast_m
-
 
400
		call sign_move
370
		call sign_move
401
		stdcall [buf2d_draw], buf_0
-
 
402
		mov eax,[time]
-
 
403
		xor edx,edx
371
		mov eax,[time]
404
		div dword[opt_sign_moves]
372
		and eax,11b ;ªà â­®áâì 4-¬
405
		cmp edx,0 ;¯à®¢¥à塞 ªà â­®áâì opt_sign_moves
373
		jnz @f
406
		jnz @f
374
			call sign_from_elems
407
			call sign_from_elems
-
 
408
			call sign_from_captions
-
 
409
		jmp @f
-
 
410
	.fast_m:
-
 
411
		mov ecx,[opt_sign_moves]
-
 
412
		cld
-
 
413
		.cycle:
-
 
414
		call sign_move
-
 
415
		loop .cycle
-
 
416
		call sign_from_elems
-
 
417
		call sign_from_captions
375
			call sign_from_captions
418
		stdcall [buf2d_draw], buf_0
Line 376... Line 419...
376
	@@:
419
	@@:
377
 
420
 
Line 1086... Line 1129...
1086
but_open_file:
1129
but_open_file:
1087
	pushad
1130
	pushad
1088
	copy_path open_dialog_name,communication_area_default_path,file_name,0
1131
	copy_path open_dialog_name,communication_area_default_path,file_name,0
1089
	mov [OpenDialog_data.type],0
1132
	mov [OpenDialog_data.type],0
1090
	stdcall [OpenDialog_Start],OpenDialog_data
1133
	stdcall [OpenDialog_Start],OpenDialog_data
1091
	cmp [OpenDialog_data.status],2
1134
	cmp [OpenDialog_data.status],1 ;0 - Cancel 1 - Open 2 - Error open dialog
1092
	je .end_open_file
1135
	jne .end_open_file
1093
	;ª®¤ ¯à¨ 㤠筮¬ ®âªàë⨨ ¤¨ «®£ 
1136
	;ª®¤ ¯à¨ 㤠筮¬ ®âªàë⨨ ¤¨ «®£ 
Line 1094... Line 1137...
1094
 
1137
 
1095
	mov eax,70 ;70-ï äã­ªæ¨ï à ¡®â  á ä ©« ¬¨
1138
	mov eax,70 ;70-ï äã­ªæ¨ï à ¡®â  á ä ©« ¬¨
1096
	mov [run_file_70.Function], 0
1139
	mov [run_file_70.Function], 0
Line 1160... Line 1203...
1160
				call str_next_val
1203
				call str_next_val
1161
				stdcall conv_str_to_int,edi
1204
				stdcall conv_str_to_int,edi
1162
				mov byte[txt_buf+sp_offs_el_angle],al ;­ ¯à ¢«¥­¨¥
1205
				mov byte[txt_buf+sp_offs_el_angle],al ;­ ¯à ¢«¥­¨¥
1163
				call str_next_val
1206
				call str_next_val
1164
				;¯®  ¤à¥áã edi ­ §¢ ­¨¥ í«¥¬¥­â 
1207
				;¯®  ¤à¥áã edi ­ §¢ ­¨¥ í«¥¬¥­â 
1165
				stdcall el_get_name, edi
1208
				stdcall el_get_name, edi,13 ;13 - ascii code
1166
				mov byte[txt_buf+sp_offs_el_type],al ;⨯ í«¥¬¥­â 
1209
				mov byte[txt_buf+sp_offs_el_type],al ;⨯ í«¥¬¥­â 
Line 1167... Line 1210...
1167
 
1210
 
Line 1168... Line 1211...
1168
				stdcall make_list_capts,txt_buf,edi
1211
				stdcall make_list_capts,txt_buf,edi
Line 1875... Line 1918...
1875
	pop ebx
1918
	pop ebx
1876
	test ebx,ebx
1919
	test ebx,ebx
1877
	jnz @f
1920
	jnz @f
1878
		mov ebx,el_opt_beg+el_offs_nam ;¥á«¨ ­¥ ¢§ï«®áì ¨¬ï í«¥¬¥­â , â® ¯® 㬮«ç ­¨î ¡¥à¥¬ 1-© ¨§ ᯨ᪠
1921
		mov ebx,el_opt_beg+el_offs_nam ;¥á«¨ ­¥ ¢§ï«®áì ¨¬ï í«¥¬¥­â , â® ¯® 㬮«ç ­¨î ¡¥à¥¬ 1-© ¨§ ᯨ᪠
1879
	@@:
1922
	@@:
1880
	stdcall el_get_name, ebx
1923
	stdcall el_get_name, ebx,0
1881
	mov byte[txt_buf+sp_offs_el_type],al ;⨯ í«¥¬¥­â 
1924
	mov byte[txt_buf+sp_offs_el_type],al ;⨯ í«¥¬¥­â 
Line 1882... Line 1925...
1882
 
1925
 
1883
	stdcall make_list_capts,txt_buf,ebx
1926
	stdcall make_list_capts,txt_buf,ebx
1884
	stdcall [tl_node_add], txt_buf,(el_icon_elems shl 16)+1, tree1
1927
	stdcall [tl_node_add], txt_buf,(el_icon_elems shl 16)+1, tree1
1885
	stdcall [tl_cur_next], tree1
1928
	stdcall [tl_cur_next], tree1
1886
	stdcall [tl_draw], tree1
1929
	stdcall [tl_draw], tree1
1887
	.end_f:
1930
	.end_f:
1888
	ret
1931
	ret
Line -... Line 1932...
-
 
1932
endp
-
 
1933
 
-
 
1934
;description:
-
 
1935
;  ­ «¨§¨àã¥â áâபã á ¨¬¥­¥¬ «®£. í«¥¬¥­â  ¨ ¢®§¢à é ¥â ­®¬¥à «®£. í«¥¬¥­â 
-
 
1936
;input:
1889
endp
1937
; str - 㪠§ â¥«ì ­  áâபã ᮤ¥à¦ éãî ¨¬ï «®£. í«¥¬¥­â 
1890
 
1938
; asciiz - ᨬ¢®« ª®â®àë© ¤®«¦¥­ ¡ëâì § ¬¥­¥­ ­  ascii 0
1891
;output:
1939
;output:
1892
; eax - ⨯ í«¥¬¥­â 
1940
; eax - ⨯ í«¥¬¥­â 
-
 
1941
align 4
-
 
1942
proc el_get_name uses ebx ecx edi esi, str:dword, asciiz:dword
-
 
1943
	mov edi,[str]
-
 
1944
	cmp dword[asciiz],0
-
 
1945
	je @f
-
 
1946
		mov eax,dword[asciiz]
-
 
1947
		mov ecx,el_offs_col ;à §¬¥à ⥪áâ  ¢ str ­¥ ¡®«ìè¥ el_offs_col
-
 
1948
		cld
-
 
1949
		repne scasb
-
 
1950
		mov ebx,edi
-
 
1951
		dec ebx
-
 
1952
		mov byte[ebx],0 ;0 - ᨬ¢®« ª®­æ  áâப¨ ¤«ï ¯à ¢¨«ì­®© à ¡®âë str_cmp
1893
align 4
1953
	@@:
1894
proc el_get_name uses ecx edi esi, str:dword
1954
 
1895
	mov edi,[str]
1955
	mov edi,[str]
1896
	mov esi,el_opt_beg+el_offs_nam
1956
	mov esi,el_opt_beg+el_offs_nam
1897
	xor ecx,ecx
1957
	xor ecx,ecx
1898
	@@:
1958
	@@:
1899
		stdcall str_instr, edi,esi
1959
		stdcall str_cmp, edi,esi
1900
		cmp eax,0
1960
		cmp eax,0
1901
		je @f
1961
		je @f
1902
		add esi,size_el_opt
1962
		add esi,size_el_opt
1903
		cmp esi,el_opt_beg.end
1963
		cmp esi,el_opt_beg.end
1904
		jge @f
1964
		jge @f
1905
		inc ecx
1965
		inc ecx
1906
		jmp @b
1966
		jmp @b
-
 
1967
	@@:
-
 
1968
	mov eax,ecx
-
 
1969
 
-
 
1970
	cmp dword[asciiz],0
-
 
1971
	je @f
-
 
1972
		mov ecx,dword[asciiz]
1907
	@@:
1973
		mov byte[ebx],cl
1908
	mov eax,ecx
1974
	@@:
Line 1909... Line 1975...
1909
	ret
1975
	ret
1910
endp
1976
endp
Line 2122... Line 2188...
2122
	sub al,[edi-1]
2188
	sub al,[edi-1]
2123
	.e1: ;á ¯®¯ ¤ ¥¬ ¥á«¨ áâப  str1 (esi) § ª®­ç¨« áì
2189
	.e1: ;á ¯®¯ ¤ ¥¬ ¥á«¨ áâப  str1 (esi) § ª®­ç¨« áì
2124
	ret
2190
	ret
2125
endp
2191
endp
Line -... Line 2192...
-
 
2192
 
-
 
2193
;description:
-
 
2194
; ¯à®¢¥àï¥â ᮢ¯ ¤¥­¨¥ áâப str0 ¨ str1
-
 
2195
;output:
-
 
2196
; eax = 0 ¥á«¨ str0 = str1
-
 
2197
; eax = 1 ¥á«¨ str0 != str1
-
 
2198
align 4
-
 
2199
proc str_cmp uses ecx edi esi, str0:dword, str1:dword
-
 
2200
	xor eax,eax
-
 
2201
	mov edi,[str0]
-
 
2202
	mov esi,[str1]
-
 
2203
	mov ecx,0x8fffffff ;ecx - ®ç¥­ì ¡®«ì讥 ç¨á«®
-
 
2204
	cld
-
 
2205
	repne scasb
-
 
2206
	;dec edi
-
 
2207
	sub edi,[str0]
-
 
2208
	mov ecx,edi ;ecx = strlen(str0)+1
-
 
2209
 
-
 
2210
	mov edi,[str0]
-
 
2211
	repe cmpsb
-
 
2212
	je @f
-
 
2213
		inc eax
-
 
2214
	@@:
-
 
2215
	ret
-
 
2216
endp
2126
 
2217
 
2127
align 4
2218
align 4
2128
proc but_run_stop
2219
proc but_run_stop
2129
	xor byte[tim_ch],1
2220
	xor byte[tim_ch],1
2130
	cmp byte[tim_ch],0
2221
	cmp byte[tim_ch],0