Subversion Repositories Kolibri OS

Rev

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

Rev 3138 Rev 8271
Line 1... Line 1...
1
use32
1
use32
2
	org 0x0
2
	org 0
3
	db 'MENUET01' ;¨¤¥­â¨ä. ¨á¯®«­ï¥¬®£® ä ©«  ¢á¥£¤  8 ¡ ©â
3
	db 'MENUET01' ;¨¤¥­â¨ä. ¨á¯®«­ï¥¬®£® ä ©«  ¢á¥£¤  8 ¡ ©â
4
	dd 0x1
-
 
5
	dd start
-
 
6
	dd i_end ;à §¬¥à ¯à¨«®¦¥­¨ï
-
 
7
	dd mem,stacktop
4
	dd 1,start,i_end,mem,stacktop,0,sys_path
8
	dd 0,sys_path
-
 
Line 9... Line 5...
9
 
5
 
10
include '../../../../../macros.inc'
6
include '../../../../../macros.inc'
-
 
7
include '../../../../../proc32.inc'
11
include '../../../../../proc32.inc'
8
include '../../../../../KOSfuncs.inc'
12
include '../../../../../develop/libraries/box_lib/load_lib.mac'
9
include '../../../../../load_lib.mac'
Line 13... Line 10...
13
include '../../../../../dll.inc'
10
include '../../../../../dll.inc'
Line 14... Line 11...
14
 
11
 
15
@use_library_mem mem.Alloc,mem.Free,mem.ReAlloc, dll.Load
12
@use_library mem.Alloc,mem.Free,mem.ReAlloc, dll.Load
16
 
13
 
17
struct FileInfoBlock
14
struct FileInfoBlock
Line 44... Line 41...
44
			local .path_str
41
			local .path_str
45
			.path_str db path ;ä®à¬¨à㥬 «®ª «ì­ãî ¯¥à¥¬¥­­ãî
42
			.path_str db path ;ä®à¬¨à㥬 «®ª «ì­ãî ¯¥à¥¬¥­­ãî
46
			db 0
43
			db 0
47
		@@:
44
		@@:
48
		;32 - áâ ­¤ àâ­ë©  ¤à¥á ¯® ª®â®à®¬ã ¤®«¦¥­ ¡ëâì ¡ãä¥à á á¨á⥬­ë¬ ¯ã⥬
45
		;32 - áâ ­¤ àâ­ë©  ¤à¥á ¯® ª®â®à®¬ã ¤®«¦¥­ ¡ëâì ¡ãä¥à á á¨á⥬­ë¬ ¯ã⥬
49
		copy_path .path_str,[32],file_name,0x0
46
		copy_path .path_str,[32],file_name,0
50
	else
47
	else
51
		copy_path path,[32],file_name,0x0 ;ä®à¬¨à㥬 ¯®«­ë© ¯ãâì ª ä ©«ã ¨§®¡à ¦¥­¨ï, ¯®¤à §ã¬¥¢ ¥¬ çâ® ®­ ¢ ®¤­®© ¯ ¯ª¥ á ¯à®£à ¬¬®©
48
		copy_path path,[32],file_name,0 ;ä®à¬¨à㥬 ¯®«­ë© ¯ãâì ª ä ©«ã ¨§®¡à ¦¥­¨ï, ¯®¤à §ã¬¥¢ ¥¬ çâ® ®­ ¢ ®¤­®© ¯ ¯ª¥ á ¯à®£à ¬¬®©
52
	end if
49
	end if
Line 53... Line 50...
53
 
50
 
54
	stdcall mem.Alloc, dword size ;¢ë¤¥«ï¥¬ ¯ ¬ïâì ¤«ï ¨§®¡à ¦¥­¨ï
51
	stdcall mem.Alloc, dword size ;¢ë¤¥«ï¥¬ ¯ ¬ïâì ¤«ï ¨§®¡à ¦¥­¨ï
Line 65... Line 62...
65
	mov ebx,run_file_70
62
	mov ebx,run_file_70
66
	int 0x40 ;§ £à㦠¥¬ ä ©« ¨§®¡à ¦¥­¨ï
63
	int 0x40 ;§ £à㦠¥¬ ä ©« ¨§®¡à ¦¥­¨ï
67
	cmp ebx,0xffffffff
64
	cmp ebx,0xffffffff
68
	je @f
65
	je @f
69
		;®¯à¥¤¥«ï¥¬ ¢¨¤ ¨§®¡à ¦¥­¨ï ¨ ¯¥à¥¢®¤¨¬ ¥£® ¢® ¢à¥¬¥­­ë© ¡ãä¥à image_data
66
		;®¯à¥¤¥«ï¥¬ ¢¨¤ ¨§®¡à ¦¥­¨ï ¨ ¯¥à¥¢®¤¨¬ ¥£® ¢® ¢à¥¬¥­­ë© ¡ãä¥à image_data
70
		stdcall dword[img_decode], dword[buf],ebx,0
67
		stdcall [img_decode], [buf],ebx,0
71
		mov dword[image_data],eax
68
		mov [image_data],eax
72
		;¯à¥®¡à §ã¥¬ ¨§®¡à ¦¥­¨¥ ª ä®à¬ âã rgb
69
		;¯à¥®¡à §ã¥¬ ¨§®¡à ¦¥­¨¥ ª ä®à¬ âã rgb
73
		stdcall dword[img_to_rgb2], dword[image_data],dword[buf]
70
		stdcall [img_to_rgb2], [image_data],[buf]
74
		;㤠«ï¥¬ ¢à¥¬¥­­ë© ¡ãä¥à image_data
71
		;㤠«ï¥¬ ¢à¥¬¥­­ë© ¡ãä¥à image_data
75
		stdcall dword[img_destroy], dword[image_data]
72
		stdcall [img_destroy], [image_data]
76
	@@:
73
	@@:
77
}
74
}
Line 78... Line 75...
78
 
75
 
79
align 4
76
align 4
Line 82... Line 79...
82
 
79
 
83
	;¯à®¢¥àª  ­  ᪮«ìª® 㤠筮 § £ã§¨« áì ­ è  «¨¡ 
80
	;¯à®¢¥àª  ­  ᪮«ìª® 㤠筮 § £ã§¨« áì ­ è  «¨¡ 
84
	mov	ebp,lib0
81
	mov	ebp,lib0
85
	cmp	dword [ebp+ll_struc_size-4],0
82
	cmp	dword [ebp+ll_struc_size-4],0
86
	jz	@f
83
	jz	@f
87
		mcall -1 ;exit not correct
84
		mcall SF_TERMINATE_PROCESS
88
	@@:
85
	@@:
89
	mov	ebp,lib1
86
	mov	ebp,lib1
90
	cmp	dword [ebp+ll_struc_size-4],0
87
	cmp	dword [ebp+ll_struc_size-4],0
91
	jz	@f
88
	jz	@f
92
		mcall -1 ;exit not correct
89
		mcall SF_TERMINATE_PROCESS
Line 93... Line 90...
93
	@@:
90
	@@:
94
 
91
 
Line 95... Line 92...
95
	mcall 40,0x27
92
	mcall SF_SET_EVENTS_MASK,0x27
96
	mcall 48,3,sc,sizeof.system_colors ;¯®«ãç ¥¬ á¨á⥬­ë¥ 梥â 
93
	mcall SF_STYLE_SETTINGS,SSF_GET_COLORS,sc,sizeof.system_colors ;¯®«ãç ¥¬ á¨á⥬­ë¥ 梥â 
97
 
94
 
98
	load_image_file 'img1.png',image_data_rgb, IMAGE_FILE1_SIZE
95
	load_image_file 'img1.png',image_data_rgb, IMAGE_FILE1_SIZE
Line 108... Line 105...
108
red_win:
105
red_win:
109
	call draw_window
106
	call draw_window
Line 110... Line 107...
110
 
107
 
111
align 4
108
align 4
112
still: ;£« ¢­ë© 横«
109
still: ;£« ¢­ë© 横«
Line 113... Line 110...
113
	mcall 10
110
	mcall SF_WAIT_EVENT
114
 
111
 
115
	cmp al,0x1 ;¨§¬¥­¨«®áì ¯®«®¦¥­¨¥ ®ª­ 
112
	cmp al,1 ;¨§¬¥­¨«®áì ¯®«®¦¥­¨¥ ®ª­ 
116
	jz red_win
113
	jz red_win
117
	cmp al,0x2
114
	cmp al,2
118
	jz key
115
	jz key
Line 119... Line 116...
119
	cmp al,0x3
116
	cmp al,3
Line 120... Line 117...
120
	jz button
117
	jz button
121
 
118
 
122
	jmp still
119
	jmp still
123
 
120
 
124
align 4
121
align 4
125
key:
122
key:
126
	push eax ebx
123
	push eax ebx
Line 127... Line 124...
127
	mcall 2
124
	mcall SF_GET_KEY
128
;...
125
;...
129
	pop ebx eax
126
	pop ebx eax
130
	jmp still
127
	jmp still
Line 131... Line 128...
131
 
128
 
132
 
129
 
133
align 4
130
align 4
Line 134... Line 131...
134
draw_window:
131
draw_window:
135
	pushad
132
	pushad
136
	mcall 12,1
133
	mcall SF_REDRAW,SSF_BEGIN_DRAW
Line 137... Line 134...
137
 
134
 
138
	mov edx,[sc.work]
135
	mov edx,[sc.work]
139
	or  edx,0x33000000
136
	or  edx,0x33000000
Line 140... Line -...
140
	mcall 0,(20 shl 16)+670,(20 shl 16)+520,,,caption ;ᮧ¤ ­¨¥ ®ª­ 
-
 
141
 
-
 
142
	stdcall [buf2d_draw], buf_0
-
 
143
	stdcall [buf2d_draw], buf_1
137
	mcall SF_CREATE_WINDOW,(20 shl 16)+670,(20 shl 16)+520,,,caption ;ᮧ¤ ­¨¥ ®ª­ 
144
	stdcall [buf2d_draw], buf_2
138
 
145
	
-
 
146
	mcall 12,2
-
 
Line 147... Line 139...
147
	popad
139
	stdcall [buf2d_draw], buf_0
148
	ret
140
	stdcall [buf2d_draw], buf_1
149
 
-
 
150
head_f_i:
-
 
Line 151... Line 141...
151
head_f_l  db '‘¨á⥬­ ï ®è¨¡ª ',0
141
	stdcall [buf2d_draw], buf_2
152
 
142
	
153
system_dir0 db '/sys/lib/'
143
	mcall SF_REDRAW,SSF_END_DRAW
154
name_buf2d db 'buf2d.obj',0
144
	popad
155
err_message_found_lib0 db '¥ 㤠«®áì ­ ©â¨ ¡¨¡«¨®â¥ªã buf2d.obj',0
145
	ret
Line 156... Line 146...
156
err_message_import0 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ buf2d.obj',0
146
 
157
 
147
system_dir0 db '/sys/lib/'
158
system_dir1 db '/sys/lib/'
148
name_buf2d db 'buf2d.obj',0
159
name_libimg db 'libimg.obj',0
149
 
160
err_message_found_lib1 db '¥ 㤠«®áì ­ ©â¨ ¡¨¡«¨®â¥ªã libimg.obj',0
150
system_dir1 db '/sys/lib/'
161
err_message_import1 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ libimg.obj',0
151
name_libimg db 'libimg.obj',0
162
 
152
 
163
;library structures
153
;library structures
164
l_libs_start:
154
l_libs_start:
165
	lib0 l_libs name_buf2d,  sys_path, file_name, system_dir0, err_message_found_lib0, head_f_l, import_buf2d_lib, err_message_import0, head_f_i
155
	lib0 l_libs name_buf2d,  file_name, system_dir0, import_buf2d_lib
Line 166... Line 156...
166
	lib1 l_libs name_libimg, sys_path, file_name, system_dir1, err_message_found_lib1, head_f_l, import_libimg, err_message_import1, head_f_i
156
	lib1 l_libs name_libimg, file_name, system_dir1, import_libimg
167
load_lib_end:
157
load_lib_end:
168
 
158
 
169
align 4
159
align 4
Line 170... Line 160...
170
button:
160
button:
171
	mcall 17 ;¯®«ãç¨âì ª®¤ ­ ¦ â®© ª­®¯ª¨
161
	mcall SF_GET_BUTTON
172
	cmp ah,1
162
	cmp ah,1
Line 173... Line 163...
173
	jne still
163
	jne still
174
.exit:
164
.exit:
175
	stdcall [buf2d_delete],buf_0 ;㤠«ï¥¬ ¡ãä¥à
165
	stdcall [buf2d_delete],buf_0 ;㤠«ï¥¬ ¡ãä¥à
Line 279... Line 269...
279
	sz_buf2d_clear db 'buf2d_clear',0
269
	sz_buf2d_clear db 'buf2d_clear',0
280
	sz_buf2d_draw db 'buf2d_draw',0
270
	sz_buf2d_draw db 'buf2d_draw',0
281
	sz_buf2d_delete db 'buf2d_delete',0
271
	sz_buf2d_delete db 'buf2d_delete',0
282
	sz_buf2d_filter_dither db 'buf2d_filter_dither',0
272
	sz_buf2d_filter_dither db 'buf2d_filter_dither',0
Line -... Line 273...
-
 
273
 
283
 
274
align 16
284
i_end:
-
 
285
	rb 1024
-
 
286
stacktop:
275
i_end:
287
	sys_path rb 4096
276
	sys_path rb 4096
288
	file_name:
277
	file_name:
289
		rb 4096
278
		rb 4096
290
	plugin_path:
279
	plugin_path:
291
		rb 4096
280
		rb 4096
292
	openfile_path:
281
	openfile_path:
293
		rb 4096
282
		rb 4096
294
	filename_area:
283
	filename_area:
-
 
284
		rb 256
-
 
285
		rb 1024
295
		rb 256
286
stacktop: