Subversion Repositories Kolibri OS

Rev

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

Rev 5916 Rev 6213
Line 1... Line 1...
1
use32
1
use32
2
	org 0x0
2
	org 0x0
3
	db 'MENUET01' ;¨¤¥­â¨ä. ¨á¯®«­ï¥¬®£® ä ©«  ¢á¥£¤  8 ¡ ©â
3
	db 'MENUET01' ;¨¤¥­â¨ä. ¨á¯®«­ï¥¬®£® ä ©«  ¢á¥£¤  8 ¡ ©â
4
	dd 0x1
-
 
5
	dd start
-
 
6
	dd i_end ;à §¬¥à ¯à¨«®¦¥­¨ï
4
	dd 1,start,i_end,mem,stacktop,0,sys_path
7
	dd mem
-
 
8
	dd stacktop
-
 
9
	dd 0
-
 
10
	dd sys_path
-
 
Line 11... Line 5...
11
 
5
 
12
ini_def_c_bkgnd equ 0
6
ini_def_c_bkgnd equ 0
13
ini_def_c_border equ 0xff0000
7
ini_def_c_border equ 0xff0000
14
color_s0 equ 0xff ;ᨣ­ « 0
8
color_s0 equ 0xff ;ᨣ­ « 0
Line 44... Line 38...
44
points_max equ 1000
38
points_max equ 1000
45
capt_offs equ 10 ;ᬥ饭¨¥ ¤«ï ­ ç «  ¯®¤¯¨á¨ ¢ «¨á⥠tree1
39
capt_offs equ 10 ;ᬥ饭¨¥ ¤«ï ­ ç «  ¯®¤¯¨á¨ ¢ «¨á⥠tree1
Line 46... Line 40...
46
 
40
 
47
include '../../../macros.inc'
41
include '../../../macros.inc'
-
 
42
include '../../../proc32.inc'
48
include '../../../proc32.inc'
43
include '../../../KOSfuncs.inc'
49
include '../../../develop/libraries/box_lib/load_lib.mac'
44
include '../../../load_img.inc'
50
include '../../../develop/libraries/box_lib/trunk/box_lib.mac'
-
 
51
include '../../../dll.inc'
45
include '../../../develop/libraries/box_lib/trunk/box_lib.mac'
52
include 'le_pole.inc'
46
include 'le_pole.inc'
Line 53... Line 47...
53
include 'le_signal.inc'
47
include 'le_signal.inc'
54
 
48
 
Line 55... Line 49...
55
@use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load
49
@use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load
56
caption db '‹®£¨ç¥áª¨¥ í«¥¬¥­âë 15.11.15',0 ;¯®¤¯¨áì ®ª­ 
50
caption db '‹®£¨ç¥áª¨¥ í«¥¬¥­âë 13.02.16',0 ;¯®¤¯¨áì ®ª­ 
57
 
51
 
58
panel_0_coord_top equ 5 ;¢¥àå­ïï ª®®à¤¨­ â  0-£® à鸞 ¯ ­¥«¨ ¨­áâà㬥­â®¢
52
panel_0_coord_top equ 5 ;¢¥àå­ïï ª®®à¤¨­ â  0-£® à鸞 ¯ ­¥«¨ ¨­áâà㬥­â®¢
Line -... Line 53...
-
 
53
panel_1_coord_top equ 35
-
 
54
panel_2_coord_top equ 60
-
 
55
panel_3_coord_top equ 85
-
 
56
 
-
 
57
;input:
-
 
58
; eax - coord x
59
panel_1_coord_top equ 35
59
; ebx - coord y
60
panel_2_coord_top equ 60
60
;output:
61
panel_3_coord_top equ 85
61
; eax - coord x + d_x * cos(angle)
62
 
62
; ebx - coord y + d_x * sin(angle)
63
align 4
63
align 4
Line 72... Line 72...
72
	add eax,ecx
72
	add eax,ecx
Line 73... Line 73...
73
 
73
 
74
	mov ecx,[d_x]
74
	mov ecx,[d_x]
75
	imul ecx,dword[edi+8]
75
	imul ecx,dword[edi+8]
76
	add ebx,ecx
-
 
77
 
76
	add ebx,ecx
78
	ret
77
	ret
Line 79... Line -...
79
endp
-
 
80
 
-
 
81
struct FileInfoBlock
-
 
82
	Function dd ?
-
 
83
	Position dd ?
-
 
84
	Flags	 dd ?
-
 
85
	Count	 dd ?
-
 
86
	Buffer	 dd ?
-
 
87
		db ?
-
 
88
	FileName dd ?
-
 
89
ends
78
endp
90
 
79
 
91
macro elOpt nam,col,box_x,box_y,table, tbl_i_legs, ol0, ol1, ol2
80
macro elOpt nam,col,box_x,box_y,table, tbl_i_legs, ol0, ol1, ol2
92
{
81
{
93
	@@: db nam,0
82
	@@: db nam,0
Line 179... Line 168...
179
mcs dd 1, 0, 0, 1,\
168
mcs dd 1, 0, 0, 1,\
180
	   0, 1,-1, 0,\
169
	   0, 1,-1, 0,\
181
	  -1, 0, 0,-1,\
170
	  -1, 0, 0,-1,\
182
	   0,-1, 1, 0
171
	   0,-1, 1, 0
Line 183... Line -...
183
 
-
 
184
run_file_70 FileInfoBlock
-
 
185
image_data dd 0 ;㪠§ â¥«ì ­  ¢à¥¬¥­­ãî ¯ ¬ïâì. ¤«ï ­ã¦¥­ ¯à¥®¡à §®¢ ­¨ï ¨§®¡à ¦¥­¨ï
-
 
186
 
172
 
187
IMAGE_TOOLBAR_ICON_SIZE equ 16*16*3
-
 
188
IMAGE_TOOLBAR_SIZE equ IMAGE_TOOLBAR_ICON_SIZE*25
173
IMAGE_TOOLBAR_ICON_SIZE equ 16*16*3
Line 189... Line -...
189
image_data_toolbar dd 0
-
 
190
 
174
image_data_toolbar dd 0
191
TREE_ICON_SYS16_BMP_SIZE equ IMAGE_TOOLBAR_ICON_SIZE*11+54 ;à §¬¥à bmp ä ©«  á á¨á⥬­ë¬¨ ¨ª®­ª ¬¨
-
 
192
icon_tl_sys dd 0 ;㪠§ â¥«ì ­  ¯ ¬ïâì ¤«ï åà ­¥­¨ï á¨á⥬­ëå ¨ª®­®ª
175
 
Line 193... Line -...
193
TOOLBAR_ICON_BMP_SIZE equ IMAGE_TOOLBAR_ICON_SIZE*5+54 ;à §¬¥à bmp ä ©«  á ¨ª®­ª ¬¨ ®¡ê¥ªâ®¢
-
 
194
icon_toolbar dd 0 ;㪠§ â¥«ì ­  ¯ ¬ïâì ¤«ï åà ­¥­¨ï ¨ª®­®ª ®¡ê¥ªâ®¢
176
icon_tl_sys dd 0 ;㪠§ â¥«ì ­  ¯ ¬ïâì ¤«ï åà ­¥­¨ï á¨á⥬­ëå ¨ª®­®ª
Line 195... Line 177...
195
 
177
icon_toolbar dd 0 ;㪠§ â¥«ì ­  ¯ ¬ïâì ¤«ï åà ­¥­¨ï ¨ª®­®ª ®¡ê¥ªâ®¢
196
IMAGE_FONT_SIZE equ 128*144*3
-
 
197
image_data_gray dd 0 ;¯ ¬ïâì á ¢à¥¬¥­­ë¬¨ á¥à묨 ¨§®¡à ¦¥­¨ï¬¨ ¢ ä®à¬ â¥ 24-bit, ¨§ ª®â®àëå ¡ã¤ãâ ᮧ¤ ¢ âìáï âà ä à¥âë
-
 
198
 
-
 
199
cursors_count equ 4
-
 
200
IMAGE_CURSORS_SIZE equ 4096*cursors_count ;à §¬¥à ª à⨭ª¨ á ªãàá®à ¬¨
-
 
201
 
-
 
202
macro load_image_file path,buf,size { ;¬ ªà®á ¤«ï § £à㧪¨ ¨§®¡à ¦¥­¨©
-
 
203
	;path - ¬®¦¥â ¡ëâì ¯¥à¥¬¥­­®© ¨«¨ áâப®¢ë¬ ¯ à ¬¥â஬
-
 
204
	if path eqtype '' ;¯à®¢¥à塞 § ¤ ­ «¨ áâப®© ¯ à ¬¥âà path
-
 
205
		jmp @f
-
 
206
			local .path_str
-
 
207
			.path_str db path ;ä®à¬¨à㥬 «®ª «ì­ãî ¯¥à¥¬¥­­ãî
-
 
208
			db 0
-
 
209
		@@:
-
 
210
		;32 - áâ ­¤ àâ­ë©  ¤à¥á ¯® ª®â®à®¬ã ¤®«¦¥­ ¡ëâì ¡ãä¥à á á¨á⥬­ë¬ ¯ã⥬
-
 
211
		copy_path .path_str,[32],file_name,0
-
 
212
	else
-
 
213
		copy_path path,[32],file_name,0x0 ;ä®à¬¨à㥬 ¯®«­ë© ¯ãâì ª ä ©«ã ¨§®¡à ¦¥­¨ï, ¯®¤à §ã¬¥¢ ¥¬ çâ® ®­ ¢ ®¤­®© ¯ ¯ª¥ á ¯à®£à ¬¬®©
-
 
214
	end if
-
 
215
 
-
 
216
	stdcall mem.Alloc, dword size ;¢ë¤¥«ï¥¬ ¯ ¬ïâì ¤«ï ¨§®¡à ¦¥­¨ï
-
 
217
	mov [buf],eax
-
 
218
 
-
 
219
	mov [run_file_70.Function], 0
-
 
220
	mov [run_file_70.Position], 0
-
 
221
	mov [run_file_70.Flags], 0
-
 
222
	mov [run_file_70.Count], dword size
-
 
223
	m2m [run_file_70.Buffer], eax
-
 
224
	mov byte[run_file_70+20], 0
-
 
225
	mov [run_file_70.FileName], file_name
-
 
226
	mcall 70,run_file_70 ;§ £à㦠¥¬ ä ©« ¨§®¡à ¦¥­¨ï
-
 
227
	cmp ebx,0xffffffff
-
 
228
	je @f
-
 
229
		;®¯à¥¤¥«ï¥¬ ¢¨¤ ¨§®¡à ¦¥­¨ï ¨ ¯¥à¥¢®¤¨¬ ¥£® ¢® ¢à¥¬¥­­ë© ¡ãä¥à image_data
-
 
230
		stdcall dword[img_decode], dword[buf],ebx,0
-
 
231
		mov dword[image_data],eax
-
 
232
		;¯à¥®¡à §ã¥¬ ¨§®¡à ¦¥­¨¥ ª ä®à¬ âã rgb
-
 
233
		stdcall dword[img_to_rgb2], dword[image_data],dword[buf]
-
 
Line 234... Line 178...
234
		;㤠«ï¥¬ ¢à¥¬¥­­ë© ¡ãä¥à image_data
178
 
235
		stdcall dword[img_destroy], dword[image_data]
179
image_data_gray dd 0 ;¯ ¬ïâì á ¢à¥¬¥­­ë¬¨ á¥à묨 ¨§®¡à ¦¥­¨ï¬¨ ¢ ä®à¬ â¥ 24-bit, ¨§ ª®â®àëå ¡ã¤ãâ ᮧ¤ ¢ âìáï âà ä à¥âë
236
	@@:
180
 
237
}
181
cursors_count equ 4
Line 253... Line 197...
253
	load_libraries l_libs_start,l_libs_end
197
	load_libraries l_libs_start,l_libs_end
254
	;¯à®¢¥àª  ­  ᪮«ìª® 㤠筮 § £ã§¨« áì ¡¨¡«¨®â¥ª 
198
	;¯à®¢¥àª  ­  ᪮«ìª® 㤠筮 § £ã§¨« áì ¡¨¡«¨®â¥ª 
255
	mov	ebp,lib_7
199
	mov	ebp,lib_7
256
	cmp	dword [ebp+ll_struc_size-4],0
200
	cmp	dword [ebp+ll_struc_size-4],0
257
	jz	@f
201
	jz	@f
258
		mcall -1 ;exit not correct
202
		mcall SF_TERMINATE_PROCESS
259
	@@:
203
	@@:
260
	mcall 48,3,sc,sizeof.system_colors
204
	mcall SF_STYLE_SETTINGS,SSF_GET_COLORS,sc,sizeof.system_colors
261
	mcall 40,0x27
205
	mcall SF_SET_EVENTS_MASK,0x27
Line 262... Line 206...
262
 
206
 
263
	;*** áç¨â뢠­¨¥ ­ áâ஥ª ¨§ *.ini ä ©« 
207
	;*** áç¨â뢠­¨¥ ­ áâ஥ª ¨§ *.ini ä ©« 
Line 264... Line 208...
264
	copy_path ini_name,sys_path,file_name,0x0
208
	copy_path ini_name,sys_path,file_name,0x0
Line 293... Line 237...
293
	mov dword[opt_fast_mode],eax
237
	mov dword[opt_fast_mode],eax
Line 294... Line 238...
294
 
238
 
295
	;*** ¯®¤£®â®¢ª  ¤¨ «®£ 
239
	;*** ¯®¤£®â®¢ª  ¤¨ «®£ 
296
	stdcall [OpenDialog_Init],OpenDialog_data
240
	stdcall [OpenDialog_Init],OpenDialog_data
297
	stdcall [buf2d_create], buf_0 ;ᮧ¤ ­¨¥ ¡ãä¥à 
241
	stdcall [buf2d_create], buf_0 ;ᮧ¤ ­¨¥ ¡ãä¥à 
Line 298... Line 242...
298
	load_image_file 'toolbar.png', image_data_toolbar,IMAGE_TOOLBAR_SIZE
242
	load_image_file 'toolbar.png', image_data_toolbar
299
 
243
 
300
	stdcall pole_init, pole
244
	stdcall pole_init, pole
Line 301... Line 245...
301
	stdcall dword[tl_data_init], tree1
245
	stdcall dword[tl_data_init], tree1
302
	stdcall dword[tl_data_init], tree2
246
	stdcall dword[tl_data_init], tree2
303
 
247
 
304
	;á¨á⥬­ë¥ ¨ª®­ª¨ 16*16 ¤«ï tree_list
248
	;á¨á⥬­ë¥ ¨ª®­ª¨ 16*16 ¤«ï tree_list
305
	load_image_file 'tl_sys_16.png', icon_tl_sys,TREE_ICON_SYS16_BMP_SIZE
249
	load_image_file 'tl_sys_16.png', icon_tl_sys
306
	;¥á«¨ ¨§®¡à ¦¥­¨¥ ­¥ ®âªàë«®áì, â® ¢ icon_tl_sys ¡ã¤ãâ
250
	;¥á«¨ ¨§®¡à ¦¥­¨¥ ­¥ ®âªàë«®áì, â® ¢ icon_tl_sys ¡ã¤ãâ
307
	;­¥ ¨­¨æ¨ «¨§¨à®¢ ­­ë¥ ¤ ­­ë¥, ­® ®è¨¡ª¨ ­¥ ¡ã¤¥â, â. ª. ¡ãä¥à ­ã¦­®£® à §¬¥à 
251
	;­¥ ¨­¨æ¨ «¨§¨à®¢ ­­ë¥ ¤ ­­ë¥, ­® ®è¨¡ª¨ ­¥ ¡ã¤¥â, â. ª. ¡ãä¥à ­ã¦­®£® à §¬¥à 
Line 308... Line 252...
308
	mov eax,dword[icon_tl_sys]
252
	mov eax,dword[icon_tl_sys]
309
	mov dword[tree1.data_img_sys],eax
253
	mov dword[tree1.data_img_sys],eax
310
	mov dword[tree2.data_img_sys],eax
254
	mov dword[tree2.data_img_sys],eax
311
 
255
 
Line 312... Line 256...
312
	load_image_file 'objects.png', icon_toolbar,TOOLBAR_ICON_BMP_SIZE
256
	load_image_file 'objects.png', icon_toolbar
313
	mov eax,dword[icon_toolbar]
257
	mov eax,dword[icon_toolbar]
314
	mov dword[tree1.data_img],eax
258
	mov dword[tree1.data_img],eax
315
	mov dword[tree2.data_img],eax
259
	mov dword[tree2.data_img],eax
Line 316... Line 260...
316
 
260
 
317
	;*** § £à㧪  èà¨äâ 
261
	;*** § £à㧪  èà¨äâ 
Line 318... Line 262...
318
	load_image_file 'font6x9.bmp', image_data_gray,IMAGE_FONT_SIZE
262
	load_image_file 'font6x9.bmp', image_data_gray
319
	stdcall [buf2d_create_f_img], buf_font,[image_data_gray] ;ᮧ¤ ¥¬ ¡ãä¥à
263
	stdcall [buf2d_create_f_img], buf_font,[image_data_gray] ;ᮧ¤ ¥¬ ¡ãä¥à
320
	stdcall mem.Free,[image_data_gray] ;®á¢®¡®¦¤ ¥¬ ¯ ¬ïâì
264
	stdcall mem.Free,[image_data_gray] ;®á¢®¡®¦¤ ¥¬ ¯ ¬ïâì
321
 
265
 
Line 322... Line 266...
322
	stdcall [buf2d_conv_24_to_8], buf_font,1 ;¤¥« ¥¬ ¡ãä¥à ¯à®§à ç­®á⨠8 ¡¨â
266
	stdcall [buf2d_conv_24_to_8], buf_font,1 ;¤¥« ¥¬ ¡ãä¥à ¯à®§à ç­®á⨠8 ¡¨â
323
	stdcall [buf2d_convert_text_matrix], buf_font
267
	stdcall [buf2d_convert_text_matrix], buf_font
324
 
268
 
Line 325... Line 269...
325
	;*** § £à㧪  ªãàá®à®¢
269
	;*** § £à㧪  ªãàá®à®¢
326
	load_image_file 'cursors_gr.png',image_data_gray,IMAGE_CURSORS_SIZE
270
	load_image_file 'cursors_gr.png',image_data_gray
Line 344... Line 288...
344
		add eax,size_el_opt
288
		add eax,size_el_opt
345
		loop @b
289
		loop @b
346
	stdcall [tl_cur_beg], tree2
290
	stdcall [tl_cur_beg], tree2
Line 347... Line 291...
347
 
291
 
348
	;*** ãáâ ­®¢ª  ¢à¥¬¥­¨ ¤«ï â ©¬¥à 
292
	;*** ãáâ ­®¢ª  ¢à¥¬¥­¨ ¤«ï â ©¬¥à 
349
	mcall 26,9
293
	mcall SF_SYSTEM_GET,SSF_TIME_COUNT
Line 350... Line 294...
350
	mov [last_time],eax
294
	mov [last_time],eax
351
 
295
 
352
align 4
296
align 4
Line 353... Line 297...
353
red_win:
297
red_win:
354
	call draw_window
298
	call draw_window
355
 
299
 
356
align 4
300
align 4
357
still:
301
still:
358
	mcall 26,9
302
	mcall SF_SYSTEM_GET,SSF_TIME_COUNT
359
	mov ebx,[last_time]
303
	mov ebx,[last_time]
360
	add ebx,10 ;§ ¤¥à¦ª 
304
	add ebx,10 ;§ ¤¥à¦ª 
361
	cmp ebx,eax
305
	cmp ebx,eax
362
	jge @f
306
	jge @f
363
		mov ebx,eax
307
		mov ebx,eax
364
	@@:
-
 
365
	sub ebx,eax
-
 
366
	;cmp ebx,10 ;§ ¤¥à¦ª 
-
 
367
	;ja timer_funct
-
 
368
	;test ebx,ebx
308
	@@:
369
	;jz timer_funct
309
	sub ebx,eax
Line 370... Line 310...
370
	mcall 23
310
	mcall SF_WAIT_EVENT_TIMEOUT
371
	cmp eax,0
311
	cmp eax,0
Line 384... Line 324...
384
	jmp still
324
	jmp still
Line 385... Line 325...
385
 
325
 
386
align 4
326
align 4
387
timer_funct:
327
timer_funct:
388
	pushad
328
	pushad
389
	mcall 26,9
329
	mcall SF_SYSTEM_GET,SSF_TIME_COUNT
Line 390... Line 330...
390
	mov [last_time],eax
330
	mov [last_time],eax
391
 
331
 
392
	cmp byte[tim_ch],0
332
	cmp byte[tim_ch],0
Line 422... Line 362...
422
mouse:
362
mouse:
423
	stdcall [tl_mouse], tree1
363
	stdcall [tl_mouse], tree1
424
	stdcall [tl_mouse], tree2
364
	stdcall [tl_mouse], tree2
Line 425... Line 365...
425
 
365
 
426
	pushad
366
	pushad
427
	mcall 37,2 ;­ ¦ âë¥ ª­®¯ª¨ ¬ëè¨
367
	mcall SF_MOUSE_GET,SSF_BUTTON
428
	bt eax,0 ;«¥¢ ï ª­®¯ª  ­ ¦ â ?
368
	bt eax,0 ;«¥¢ ï ª­®¯ª  ­ ¦ â ?
429
	jc @f
369
	jc @f
430
	bt eax,1 ;¯à ¢ ï ª­®¯ª  ­ ¦ â ?
370
	bt eax,1 ;¯à ¢ ï ª­®¯ª  ­ ¦ â ?
431
	jc @f
371
	jc @f
Line 434... Line 374...
434
		mov [pen_coord_y],eax
374
		mov [pen_coord_y],eax
435
		jmp .end_buf_wnd
375
		jmp .end_buf_wnd
436
	@@:
376
	@@:
437
	mov esi,eax
377
	mov esi,eax
Line 438... Line 378...
438
 
378
 
439
	mcall 37,1 ;eax = (x shl 16) + y
379
	mcall SF_MOUSE_GET,SSF_WINDOW_POSITION ;eax = (x shl 16) + y
440
	cmp ax,word[buf_0.t]
380
	cmp ax,word[buf_0.t]
Line 441... Line 381...
441
	jl .end_buf_wnd ;­¥ ¯®¯ «¨ ¢ ®ª­® ¡ãä¥à  ¯® ®á¨ y
381
	jl .end_buf_wnd ;­¥ ¯®¯ «¨ ¢ ®ª­® ¡ãä¥à  ¯® ®á¨ y
442
 
382
 
Line 691... Line 631...
691
endp
631
endp
Line 692... Line 632...
692
 
632
 
693
align 4
633
align 4
694
draw_window:
634
draw_window:
695
pushad
635
pushad
Line 696... Line 636...
696
	mcall 12,1
636
	mcall SF_REDRAW,SSF_BEGIN_DRAW
697
 
-
 
698
	; *** à¨á®¢ ­¨¥ £« ¢­®£® ®ª­  (¢ë¯®«­ï¥âáï 1 à § ¯à¨ § ¯ã᪥) ***
-
 
699
	xor eax,eax
-
 
700
	mov ebx,(20 shl 16)+580
637
 
701
	mov ecx,(20 shl 16)+415
638
	; *** à¨á®¢ ­¨¥ £« ¢­®£® ®ª­  (¢ë¯®«­ï¥âáï 1 à § ¯à¨ § ¯ã᪥) ***
702
	mov edx,[sc.work]
639
	mov edx,[sc.work]
703
	or  edx,(3 shl 24)+0x10000000+0x20000000
640
	or  edx,(3 shl 24)+0x10000000+0x20000000
Line 704... Line 641...
704
	mov edi,caption
641
	mov edi,caption
705
	int 0x40
-
 
706
 
-
 
707
	; *** ᮧ¤ ­¨¥ ª­®¯®ª ­  ¯ ­¥«ì ***
642
	mcall SF_CREATE_WINDOW, (20 shl 16)+580,(20 shl 16)+415
708
	mov eax,8
-
 
709
	mov ebx,(5 shl 16)+20
-
 
710
	mov ecx,(panel_0_coord_top shl 16)+20
-
 
Line 711... Line 643...
711
	mov edx,3
643
 
712
	mov esi,[sc.work_button]
644
	; *** ᮧ¤ ­¨¥ ª­®¯®ª ­  ¯ ­¥«ì ***
713
	int 0x40
645
	mcall SF_DEFINE_BUTTON, (5 shl 16)+20, (panel_0_coord_top shl 16)+20, 3,, [sc.work_button]
Line 767... Line 699...
767
	add ebx,25 shl 16
699
	add ebx,25 shl 16
768
	mov edx,17 ;ᤢ¨£ áå¥¬ë ¢­¨§
700
	mov edx,17 ;ᤢ¨£ áå¥¬ë ¢­¨§
769
	int 0x40
701
	int 0x40
Line 770... Line 702...
770
 
702
 
771
	; *** à¨á®¢ ­¨¥ ¨ª®­®ª ­  ª­®¯ª å ***
-
 
772
	mov eax,7
-
 
773
	mov ebx,[image_data_toolbar]
-
 
774
	mov ecx,(16 shl 16)+16
703
	; *** à¨á®¢ ­¨¥ ¨ª®­®ª ­  ª­®¯ª å ***
775
	mov edx,(7 shl 16)+panel_0_coord_top+2 ;icon new
704
	mov edx,(7 shl 16)+panel_0_coord_top+2 ;icon new
Line 776... Line 705...
776
	int 0x40
705
	mcall SF_PUT_IMAGE, [image_data_toolbar],(16 shl 16)+16
777
 
706
 
778
	add ebx,IMAGE_TOOLBAR_ICON_SIZE
707
	add ebx,IMAGE_TOOLBAR_ICON_SIZE
779
	add edx,(25 shl 16) ;icon open
708
	add edx,(25 shl 16) ;icon open
Line 828... Line 757...
828
	stdcall [tl_draw], tree2
757
	stdcall [tl_draw], tree2
829
	stdcall pole_draw_pok, pole
758
	stdcall pole_draw_pok, pole
Line 830... Line 759...
830
 
759
 
831
	; *** ᮧ¤ ­¨¥ ª­®¯®ª ãáâ ­®¢ª¨ ᨣ­ «®¢ set_0 ¨ set_1 ***
760
	; *** ᮧ¤ ­¨¥ ª­®¯®ª ãáâ ­®¢ª¨ ᨣ­ «®¢ set_0 ¨ set_1 ***
832
	mov esi,[sc.work_button]
761
	mov esi,[sc.work_button]
Line 833... Line 762...
833
	mcall 8, (5 shl 16)+20, (panel_1_coord_top shl 16)+20, 20
762
	mcall SF_DEFINE_BUTTON, (5 shl 16)+20, (panel_1_coord_top shl 16)+20, 20
834
 
763
 
835
	add ebx,25 shl 16
764
	add ebx,25 shl 16
Line 853... Line 782...
853
	int 0x40
782
	int 0x40
Line 854... Line 783...
854
 
783
 
855
	mov ecx,[sc.work_text]
784
	mov ecx,[sc.work_text]
856
	or  ecx,0x80000000 ;or (1 shl 30)
785
	or  ecx,0x80000000 ;or (1 shl 30)
857
	;mov edi,[sc.work]
786
	;mov edi,[sc.work]
Line 858... Line 787...
858
	mcall 4, (12 shl 16)+panel_1_coord_top+6,, txt_set_0
787
	mcall SF_DRAW_TEXT, (12 shl 16)+panel_1_coord_top+6,, txt_set_0
859
 
788
 
860
	add ebx,25 shl 16
789
	add ebx,25 shl 16
Line 861... Line 790...
861
	mov edx,txt_set_1
790
	mov edx,txt_set_1
862
	int 0x40
791
	int 0x40
863
 
792
 
864
	; *** à¨á®¢ ­¨¥ ¨ª®­®ª ­  ª­®¯ª å ***
793
	; *** à¨á®¢ ­¨¥ ¨ª®­®ª ­  ª­®¯ª å ***
Line 865... Line 794...
865
	mov ebx,[image_data_toolbar]
794
	mov ebx,[image_data_toolbar]
866
	add ebx,IMAGE_TOOLBAR_ICON_SIZE*15
795
	add ebx,IMAGE_TOOLBAR_ICON_SIZE*15
867
	mcall 7,, (16 shl 16)+16, (62 shl 16)+panel_1_coord_top+2
796
	mcall SF_PUT_IMAGE,, (16 shl 16)+16, (62 shl 16)+panel_1_coord_top+2
Line 878... Line 807...
878
	add edx,(25 shl 16)
807
	add edx,(25 shl 16)
879
	int 0x40
808
	int 0x40
Line 880... Line 809...
880
 
809
 
881
	; *** ᮧ¤ ­¨¥ ª­®¯®ª à¨á®¢ ­¨ï ¯à®¢®¤  ***
810
	; *** ᮧ¤ ­¨¥ ª­®¯®ª à¨á®¢ ­¨ï ¯à®¢®¤  ***
882
	mov esi,[sc.work_button]
811
	mov esi,[sc.work_button]
Line 883... Line 812...
883
	mcall 8, (5 shl 16)+20, (panel_2_coord_top shl 16)+20, 30
812
	mcall SF_DEFINE_BUTTON, (5 shl 16)+20, (panel_2_coord_top shl 16)+20, 30
884
 
813
 
885
	add ebx,30 shl 16
814
	add ebx,30 shl 16
Line 901... Line 830...
901
	add ebx,25 shl 16
830
	add ebx,25 shl 16
902
	mov edx,35
831
	mov edx,35
903
	int 0x40
832
	int 0x40
Line 904... Line 833...
904
 
833
 
905
	; *** à¨á®¢ ­¨¥ ¨ª®­®ª ­  ª­®¯ª å ***
-
 
906
	mov eax,7
834
	; *** à¨á®¢ ­¨¥ ¨ª®­®ª ­  ª­®¯ª å ***
907
	mov ebx,[image_data_toolbar]
-
 
908
	mov ecx,(16 shl 16)+16
-
 
909
	mov edx,(7 shl 16)+panel_2_coord_top+2 ;¨ª®­ª  áâ५ 
-
 
910
 
835
	mov ebx,[image_data_toolbar]
911
	add ebx,IMAGE_TOOLBAR_ICON_SIZE*19
-
 
-
 
836
	add ebx,IMAGE_TOOLBAR_ICON_SIZE*19
Line 912... Line 837...
912
	int 0x40
837
	mcall SF_PUT_IMAGE,, (16 shl 16)+16,(7 shl 16)+panel_2_coord_top+2 ;¨ª®­ª  áâ५ 
913
 
838
 
914
	add ebx,IMAGE_TOOLBAR_ICON_SIZE
839
	add ebx,IMAGE_TOOLBAR_ICON_SIZE
Line 929... Line 854...
929
 
854
 
930
	add ebx,IMAGE_TOOLBAR_ICON_SIZE
855
	add ebx,IMAGE_TOOLBAR_ICON_SIZE
931
	add edx,(25 shl 16) ;icon - § â¨à çª 
856
	add edx,(25 shl 16) ;icon - § â¨à çª 
Line 932... Line 857...
932
	int 0x40
857
	int 0x40
933
 
858
 
934
	mcall 12,2
859
	mcall SF_REDRAW,SSF_END_DRAW
Line 935... Line 860...
935
popad
860
popad
936
	ret
861
	ret
937
 
862
 
938
align 4
863
align 4
939
key:
864
key:
940
	mcall 2
865
	mcall SF_GET_KEY
Line 941... Line 866...
941
	stdcall [tl_key], dword tree1
866
	stdcall [tl_key], tree1
942
	stdcall [tl_key], dword tree2
867
	stdcall [tl_key], tree2
943
	jmp still
868
	jmp still
944
 
869
 
945
 
870
 
946
align 4
871
align 4
947
button:
872
button:
948
	mcall 17
873
	mcall SF_GET_BUTTON
Line 1085... Line 1010...
1085
	mov dword[tree2.data_img_sys],0
1010
	mov dword[tree2.data_img_sys],0
1086
	mov dword[tree2.data_img],0
1011
	mov dword[tree2.data_img],0
1087
	stdcall [tl_data_clear], tree2
1012
	stdcall [tl_data_clear], tree2
1088
	cmp [cursor_pointer],0
1013
	cmp [cursor_pointer],0
1089
	je @f
1014
	je @f
1090
		mcall 37,6,[cursor_pointer]
1015
		mcall SF_MOUSE_GET,SSF_DEL_CURSOR,[cursor_pointer]
1091
	@@:
1016
	@@:
1092
	mcall -1
1017
	mcall SF_TERMINATE_PROCESS
Line 1093... Line 1018...
1093
 
1018
 
1094
;ᮧ¤ ­¨¥ ­®¢®© á奬ë
1019
;ᮧ¤ ­¨¥ ­®¢®© á奬ë
1095
align 4
1020
align 4
1096
proc but_new_file uses eax
1021
proc but_new_file uses eax
Line 1130... Line 1055...
1130
	stdcall [OpenDialog_Start],OpenDialog_data
1055
	stdcall [OpenDialog_Start],OpenDialog_data
1131
	cmp [OpenDialog_data.status],1 ;0 - Cancel 1 - Open 2 - Error open dialog
1056
	cmp [OpenDialog_data.status],1 ;0 - Cancel 1 - Open 2 - Error open dialog
1132
	jne .end_open_file
1057
	jne .end_open_file
1133
	;ª®¤ ¯à¨ 㤠筮¬ ®âªàë⨨ ¤¨ «®£ 
1058
	;ª®¤ ¯à¨ 㤠筮¬ ®âªàë⨨ ¤¨ «®£ 
Line 1134... Line 1059...
1134
 
1059
 
1135
	mov [run_file_70.Function], 0
1060
	mov [run_file_70.Function], SSF_READ_FILE
1136
	mov [run_file_70.Position], 0
1061
	mov [run_file_70.Position], 0
1137
	mov [run_file_70.Flags], 0
1062
	mov [run_file_70.Flags], 0
1138
	mov dword[run_file_70.Count], open_file_lif.end-open_file_lif
1063
	mov dword[run_file_70.Count], open_file_lif.end-open_file_lif
1139
	m2m [run_file_70.Buffer], open_file_lif
1064
	m2m [run_file_70.Buffer], open_file_lif
1140
	mov byte[run_file_70+20], 0
1065
	mov byte[run_file_70+20], 0
1141
	mov dword[run_file_70.FileName], openfile_path
1066
	mov dword[run_file_70.FileName], openfile_path
1142
	mcall 70,run_file_70 ;§ £à㦠¥¬ ä ©«
1067
	mcall SF_FILE,run_file_70 ;§ £à㦠¥¬ ä ©«
1143
	cmp ebx,0xffffffff
1068
	cmp ebx,0xffffffff
Line 1144... Line 1069...
1144
	je .end_open_file
1069
	je .end_open_file
1145
 
1070
 
1146
		mov dword[f_size],ebx
1071
		mov dword[f_size],ebx
1147
		add ebx,open_file_lif
1072
		add ebx,open_file_lif
1148
		mov byte[ebx],0 ;­  á«ãç © ¥á«¨ à ­¥¥ ¡ë« ®âªàëâ ä ©« ¡®«ì襣® à §¬¥à  ç¨á⨬ ª®­¥æ ¡ãä¥à  á ä ©«®¬
1073
		mov byte[ebx],0 ;­  á«ãç © ¥á«¨ à ­¥¥ ¡ë« ®âªàëâ ä ©« ¡®«ì襣® à §¬¥à  ç¨á⨬ ª®­¥æ ¡ãä¥à  á ä ©«®¬
Line 1149... Line 1074...
1149
		mcall 71,1,openfile_path
1074
		mcall SF_SET_CAPTION,1,openfile_path
1150
		;---
1075
		;---
1151
 
1076
 
Line 1818... Line 1743...
1818
	;*** ®¯à¥¤¥«¥­¨¥ ¯ à ¬¥â஢ ä ©« 
1743
	;*** ®¯à¥¤¥«¥­¨¥ ¯ à ¬¥â஢ ä ©« 
1819
	mov edi,open_file_lif
1744
	mov edi,open_file_lif
1820
	stdcall str_len,edi
1745
	stdcall str_len,edi
Line 1821... Line 1746...
1821
 
1746
 
1822
	;*** § ¯¨áì ä ©« 
1747
	;*** § ¯¨áì ä ©« 
1823
	mov [run_file_70.Function], 2
1748
	mov [run_file_70.Function], SSF_CREATE_FILE
1824
	mov [run_file_70.Position], 0
1749
	mov [run_file_70.Position], 0
1825
	mov [run_file_70.Flags], 0
1750
	mov [run_file_70.Flags], 0
1826
	mov dword[run_file_70.Count], eax
1751
	mov dword[run_file_70.Count], eax
1827
	mov [run_file_70.Buffer], edi
1752
	mov [run_file_70.Buffer], edi
1828
	mov byte[run_file_70+20], 0
1753
	mov byte[run_file_70+20], 0
1829
	mov dword[run_file_70.FileName], openfile_path
1754
	mov dword[run_file_70.FileName], openfile_path
Line 1830... Line 1755...
1830
	mcall 70,run_file_70 ;á®å࠭塞 ä ©«
1755
	mcall SF_FILE,run_file_70 ;á®å࠭塞 ä ©«
1831
 
1756
 
1832
	call redraw_pole
1757
	call redraw_pole
1833
	.end_save_file:
1758
	.end_save_file:
Line 2343... Line 2268...
2343
proc but_set_none
2268
proc but_set_none
2344
	mov byte[pen_mode],0
2269
	mov byte[pen_mode],0
2345
	cmp [cursor_pointer],0
2270
	cmp [cursor_pointer],0
2346
	je @f
2271
	je @f
2347
		push eax ebx ecx
2272
		push eax ebx ecx
2348
		mcall 37,6,[cursor_pointer]
2273
		mcall SF_MOUSE_GET,SSF_DEL_CURSOR,[cursor_pointer]
2349
		pop ecx ebx eax
2274
		pop ecx ebx eax
2350
	@@:
2275
	@@:
2351
	ret
2276
	ret
2352
endp
2277
endp
Line 2361... Line 2286...
2361
		mov edx,[hot_p]
2286
		mov edx,[hot_p]
2362
		mov dx,2 ;LOAD_INDIRECT
2287
		mov dx,2 ;LOAD_INDIRECT
2363
		mov ecx,[icon]
2288
		mov ecx,[icon]
2364
		shl ecx,12 ;㬭®¦ ¥¬ ­  4 ª¡
2289
		shl ecx,12 ;㬭®¦ ¥¬ ­  4 ª¡
2365
		add ecx,[buf_curs.data]
2290
		add ecx,[buf_curs.data]
2366
		mcall 37,4
2291
		mcall SF_MOUSE_GET,SSF_LOAD_CURSOR
Line 2367... Line 2292...
2367
 
2292
 
2368
		cmp eax,0
2293
		cmp eax,0
2369
		je @f
2294
		je @f
2370
			mov [cursor_pointer],eax
2295
			mov [cursor_pointer],eax
2371
			mcall 37,5,[cursor_pointer]
2296
			mcall SF_MOUSE_GET,SSF_SET_CURSOR,[cursor_pointer]
2372
	@@:
2297
	@@:
2373
	ret
2298
	ret
Line 2374... Line 2299...
2374
endp
2299
endp
Line 2687... Line 2612...
2687
		call .str ;¯¥à¥©â¨ ­  á ¬ã ᥡï â.¥. ¢ë§¢ âì á ¬ã á¥¡ï ¨ â ª ¤® ⮣® ¬®¬¥­â  ¯®ª  ¢ eax ­¥ áâ ­¥â ¬¥­ìè¥ ç¥¬ ¢ ecx
2612
		call .str ;¯¥à¥©â¨ ­  á ¬ã ᥡï â.¥. ¢ë§¢ âì á ¬ã á¥¡ï ¨ â ª ¤® ⮣® ¬®¬¥­â  ¯®ª  ¢ eax ­¥ áâ ­¥â ¬¥­ìè¥ ç¥¬ ¢ ecx
2688
		pop eax
2613
		pop eax
2689
	@@: ;cmp al,10 ;¯à®¢¥à¨âì ­¥ ¬¥­ìè¥ «¨ §­ ç¥­¨¥ ¢ al 祬 10 (¤«ï á¨á⥬ë áç¨á«¥­ï 10 ¤ ­­ ï ª®¬ ­¤  - «¨è­ ï))
2614
	@@: ;cmp al,10 ;¯à®¢¥à¨âì ­¥ ¬¥­ìè¥ «¨ §­ ç¥­¨¥ ¢ al 祬 10 (¤«ï á¨á⥬ë áç¨á«¥­ï 10 ¤ ­­ ï ª®¬ ­¤  - «¨è­ ï))
2690
	or al,0x30  ;¤ ­­ ï ª®¬ ­¤  ª®à®ç¥ 祬 ¤¢¥ ¢ëè¥
2615
	or al,0x30  ;¤ ­­ ï ª®¬ ­¤  ª®à®ç¥ 祬 ¤¢¥ ¢ëè¥
2691
	stosb	    ;§ ¯¨á âì í«¥¬¥­â ¨§ ॣ¨áâà  al ¢ ï祪㠯 ¬ï⨠es:edi
2616
	stosb	    ;§ ¯¨á âì í«¥¬¥­â ¨§ ॣ¨áâà  al ¢ ï祪㠯 ¬ï⨠es:edi
2692
	ret	      ;¢¥à­ãâìáï ç¥­ì ¨­â¥à¥á­ë© 室 â.ª. ¯®ª  ¢ á⥪¥ åà ­¨âìáï ª®«-¢® ¢ë§®¢®¢ â® á⮫쪮 à § ¬ë ¨ ¡ã¤¥¬ ¢ë§ë¢ âìáï
2617
	ret	      ;¢¥à­ãâìáï ®ç¥­ì ¨­â¥à¥á­ë© 室 â.ª. ¯®ª  ¢ á⥪¥ åà ­¨âìáï ª®«-¢® ¢ë§®¢®¢ â® á⮫쪮 à § ¬ë ¨ ¡ã¤¥¬ ¢ë§ë¢ âìáï
Line 2693... Line 2618...
2693
 
2618
 
2694
align 16
2619
align 16
-
 
2620
i_end:
2695
i_end:
2621
	run_file_70 FileInfoBlock
2696
	rb 1024
2622
	rb 1024
2697
stacktop:
2623
stacktop:
2698
	sys_path rb 1024
2624
	sys_path rb 1024
2699
	file_name:
2625
	file_name: