Rev 6288 | Rev 8174 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 6288 | Rev 6737 | ||
---|---|---|---|
1 | use32 |
1 | use32 |
2 | org 0x0 |
2 | org 0x0 |
3 | db 'MENUET01' |
3 | db 'MENUET01' |
4 | dd 1,start,i_end,mem,stacktop,0,cur_dir_path |
4 | dd 1,start,i_end,mem,stacktop,0,cur_dir_path |
5 | 5 | ||
6 | include '../../../../../proc32.inc' |
6 | include '../../../../../proc32.inc' |
7 | include '../../../../../macros.inc' |
7 | include '../../../../../macros.inc' |
8 | include '../../../../../KOSfuncs.inc' |
8 | include '../../../../../KOSfuncs.inc' |
9 | include '../../../../../load_img.inc' |
9 | include '../../../../../load_img.inc' |
10 | include '../opengl_const.inc' |
10 | include '../opengl_const.inc' |
11 | include '../../../../../develop/info3ds/info_fun_float.inc' |
11 | include '../../../../../develop/info3ds/info_fun_float.inc' |
12 | 12 | ||
13 | @use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load |
13 | @use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load |
14 | 14 | ||
15 | align 4 |
15 | align 4 |
16 | image_data_toolbar dd 0 |
16 | image_data_toolbar dd 0 |
17 | IMAGE_TOOLBAR_ICON_SIZE equ 21*21*3 |
17 | IMAGE_TOOLBAR_ICON_SIZE equ 21*21*3 |
18 | 18 | ||
19 | offs_zbuf_pbuf equ 24 ;const. from 'zbuffer.inc' |
19 | offs_zbuf_pbuf equ 24 ;const. from 'zbuffer.inc' |
20 | 20 | ||
21 | align 4 |
21 | align 4 |
22 | start: |
22 | start: |
23 | load_libraries l_libs_start,l_libs_end |
23 | load_libraries l_libs_start,l_libs_end |
24 | ;проверка на сколько удачно загузились библиотеки |
24 | ;проверка на сколько удачно загузились библиотеки |
25 | mov ebp,lib_0 |
25 | mov ebp,lib_0 |
26 | .test_lib_open: |
26 | .test_lib_open: |
27 | cmp dword [ebp+ll_struc_size-4],0 |
27 | cmp dword [ebp+ll_struc_size-4],0 |
28 | jz @f |
28 | jz @f |
29 | mcall SF_TERMINATE_PROCESS |
29 | mcall SF_TERMINATE_PROCESS |
30 | @@: |
30 | @@: |
31 | add ebp,ll_struc_size |
31 | add ebp,ll_struc_size |
32 | cmp ebp,l_libs_end |
32 | cmp ebp,l_libs_end |
33 | jl .test_lib_open |
33 | jl .test_lib_open |
34 | 34 | ||
35 | mcall SF_STYLE_SETTINGS,SSF_GET_COLORS,sc,sizeof.system_colors |
35 | mcall SF_STYLE_SETTINGS,SSF_GET_COLORS,sc,sizeof.system_colors |
36 | mcall SF_SET_EVENTS_MASK,0x27 |
36 | mcall SF_SET_EVENTS_MASK,0x27 |
37 | 37 | ||
38 | stdcall [kosglMakeCurrent], 5,30,[buf_ogl.w],[buf_ogl.h],ctx1 |
38 | stdcall [kosglMakeCurrent], 5,30,[buf_ogl.w],[buf_ogl.h],ctx1 |
39 | stdcall [glEnable], GL_DEPTH_TEST |
39 | stdcall [glEnable], GL_DEPTH_TEST |
40 | stdcall [glEnable], GL_NORMALIZE ;делам нормали одинаковой величины во избежание артефактов |
40 | stdcall [glEnable], GL_NORMALIZE ;делам нормали одинаковой величины во избежание артефактов |
41 | stdcall [gluNewQuadric] |
41 | stdcall [gluNewQuadric] |
42 | mov [qObj],eax |
42 | mov [qObj],eax |
43 | 43 | ||
44 | stdcall [glClearColor], 0.25,0.25,0.25,0.0 |
44 | stdcall [glClearColor], 0.25,0.25,0.25,0.0 |
45 | stdcall [glShadeModel], GL_SMOOTH |
45 | stdcall [glShadeModel], GL_SMOOTH |
46 | 46 | ||
47 | mov eax,dword[ctx1] ;eax -> TinyGLContext.GLContext |
47 | mov eax,dword[ctx1] ;eax -> TinyGLContext.GLContext |
48 | mov eax,[eax] ;eax -> ZBuffer |
48 | mov eax,[eax] ;eax -> ZBuffer |
49 | mov eax,[eax+offs_zbuf_pbuf] ;eax -> ZBuffer.pbuf |
49 | mov eax,[eax+offs_zbuf_pbuf] ;eax -> ZBuffer.pbuf |
50 | mov dword[buf_ogl],eax |
50 | mov dword[buf_ogl],eax |
51 | 51 | ||
52 | load_image_file 'font8x9.bmp', image_data_toolbar, buf_1.w,buf_1.h |
52 | load_image_file 'font8x9.bmp', image_data_toolbar, buf_1.w,buf_1.h |
53 | stdcall [buf2d_create_f_img], buf_1,[image_data_toolbar] ;создаем буфер |
53 | stdcall [buf2d_create_f_img], buf_1,[image_data_toolbar] ;создаем буфер |
54 | stdcall mem.Free,[image_data_toolbar] ;освобождаем память |
54 | stdcall mem.Free,[image_data_toolbar] ;освобождаем память |
55 | stdcall [buf2d_conv_24_to_8], buf_1,1 ;делаем буфер прозрачности 8 бит |
55 | stdcall [buf2d_conv_24_to_8], buf_1,1 ;делаем буфер прозрачности 8 бит |
56 | stdcall [buf2d_convert_text_matrix], buf_1 |
56 | stdcall [buf2d_convert_text_matrix], buf_1 |
57 | 57 | ||
58 | load_image_file 'toolb_1.png', image_data_toolbar |
58 | load_image_file 'toolb_1.png', image_data_toolbar |
59 | call draw_3d |
59 | call draw_3d |
60 | 60 | ||
61 | align 4 |
61 | align 4 |
62 | red_win: |
62 | red_win: |
63 | call draw_window |
63 | call draw_window |
64 | 64 | ||
65 | align 4 |
65 | align 4 |
66 | still: |
66 | still: |
67 | mcall SF_WAIT_EVENT |
67 | mcall SF_WAIT_EVENT |
68 | cmp al,1 |
68 | cmp al,1 |
69 | jz red_win |
69 | jz red_win |
70 | cmp al,2 |
70 | cmp al,2 |
71 | jz key |
71 | jz key |
72 | cmp al,3 |
72 | cmp al,3 |
73 | jz button |
73 | jz button |
74 | jmp still |
74 | jmp still |
75 | 75 | ||
76 | align 4 |
76 | align 4 |
77 | draw_window: |
77 | draw_window: |
78 | pushad |
78 | pushad |
79 | mcall SF_REDRAW,SSF_BEGIN_DRAW |
79 | mcall SF_REDRAW,SSF_BEGIN_DRAW |
80 | mcall SF_CREATE_WINDOW,(50 shl 16)+420,(30 shl 16)+410,0x33ffffff,,caption |
80 | mcall SF_CREATE_WINDOW,(50 shl 16)+420,(30 shl 16)+410,0x33ffffff,,caption |
81 | 81 | ||
82 | mov esi,[sc.work_button] |
82 | mov esi,[sc.work_button] |
83 | mcall SF_DEFINE_BUTTON,(6 shl 16)+19,(6 shl 16)+19,3+0x40000000 ;вершины вкл. |
83 | mcall SF_DEFINE_BUTTON,(6 shl 16)+19,(6 shl 16)+19,3+0x40000000 ;вершины вкл. |
84 | mcall ,(36 shl 16)+19,,4+0x40000000 ;каркасные грани вкл. |
84 | mcall ,(36 shl 16)+19,,4+0x40000000 ;каркасные грани вкл. |
85 | mcall ,(66 shl 16)+19,,5+0x40000000 ;сплошные грани вкл. |
85 | mcall ,(66 shl 16)+19,,5+0x40000000 ;сплошные грани вкл. |
86 | mcall ,(96 shl 16)+19,,6+0x40000000 ;масштаб + |
86 | mcall ,(96 shl 16)+19,,6+0x40000000 ;масштаб + |
87 | mcall ,(126 shl 16)+19,,7+0x40000000 ;масштаб - |
87 | mcall ,(126 shl 16)+19,,7+0x40000000 ;масштаб - |
88 | 88 | ||
89 | mcall SF_PUT_IMAGE,[image_data_toolbar],(21 shl 16)+21,(5 shl 16)+5 ;вершины вкл. |
89 | mcall SF_PUT_IMAGE,[image_data_toolbar],(21 shl 16)+21,(5 shl 16)+5 ;вершины вкл. |
90 | add ebx,IMAGE_TOOLBAR_ICON_SIZE |
90 | add ebx,IMAGE_TOOLBAR_ICON_SIZE |
91 | mcall ,,,(35 shl 16)+5 ;каркасные грани вкл. |
91 | mcall ,,,(35 shl 16)+5 ;каркасные грани вкл. |
92 | add ebx,IMAGE_TOOLBAR_ICON_SIZE |
92 | add ebx,IMAGE_TOOLBAR_ICON_SIZE |
93 | mcall ,,,(65 shl 16)+5 ;сплошные грани вкл. |
93 | mcall ,,,(65 shl 16)+5 ;сплошные грани вкл. |
94 | add ebx,IMAGE_TOOLBAR_ICON_SIZE |
94 | add ebx,IMAGE_TOOLBAR_ICON_SIZE |
95 | mcall ,,,(95 shl 16)+5 ;масштаб + |
95 | mcall ,,,(95 shl 16)+5 ;масштаб + |
96 | add ebx,IMAGE_TOOLBAR_ICON_SIZE |
96 | add ebx,IMAGE_TOOLBAR_ICON_SIZE |
97 | mcall ,,,(125 shl 16)+5 ;масштаб - |
97 | mcall ,,,(125 shl 16)+5 ;масштаб - |
98 | 98 | ||
99 | stdcall [kosglSwapBuffers] |
99 | stdcall [kosglSwapBuffers] |
100 | mcall SF_REDRAW,SSF_END_DRAW |
100 | mcall SF_REDRAW,SSF_END_DRAW |
101 | popad |
101 | popad |
102 | ret |
102 | ret |
103 | 103 | ||
104 | align 4 |
104 | align 4 |
105 | key: |
105 | key: |
106 | mcall SF_GET_KEY |
106 | mcall SF_GET_KEY |
107 | 107 | ||
108 | cmp ah,27 ;Esc |
108 | cmp ah,27 ;Esc |
109 | je button.exit |
109 | je button.exit |
110 | 110 | ||
111 | cmp ah,61 ;+ |
111 | cmp ah,61 ;+ |
112 | jne @f |
112 | jne @f |
113 | call but_zoom_p |
113 | call but_zoom_p |
114 | jmp still |
114 | jmp still |
115 | @@: |
115 | @@: |
116 | cmp ah,45 ;- |
116 | cmp ah,45 ;- |
117 | jne @f |
117 | jne @f |
118 | call but_zoom_m |
118 | call but_zoom_m |
119 | jmp still |
119 | jmp still |
120 | @@: |
120 | @@: |
121 | cmp ah,178 ;Up |
121 | cmp ah,178 ;Up |
122 | jne @f |
122 | jne @f |
123 | finit |
123 | finit |
124 | fld dword[angle_y] |
124 | fld dword[angle_y] |
125 | fadd dword[delt_size] |
125 | fadd dword[delt_size] |
126 | fst dword[angle_y] |
126 | fst dword[angle_y] |
127 | mov word[NumberSymbolsAD],2 |
127 | mov word[NumberSymbolsAD],2 |
128 | fstp qword[Data_Double] |
128 | fstp qword[Data_Double] |
129 | call DoubleFloat_to_String |
129 | call DoubleFloat_to_String |
130 | mov byte[txt_angle_y.v],0 |
130 | mov byte[txt_angle_y.v],0 |
131 | stdcall str_cat, txt_angle_y.v,Data_String |
131 | stdcall str_cat, txt_angle_y.v,Data_String |
132 | call draw_3d |
132 | call draw_3d |
133 | stdcall [kosglSwapBuffers] |
133 | stdcall [kosglSwapBuffers] |
134 | @@: |
134 | @@: |
135 | cmp ah,177 ;Down |
135 | cmp ah,177 ;Down |
136 | jne @f |
136 | jne @f |
137 | finit |
137 | finit |
138 | fld dword[angle_y] |
138 | fld dword[angle_y] |
139 | fsub dword[delt_size] |
139 | fsub dword[delt_size] |
140 | fst dword[angle_y] |
140 | fst dword[angle_y] |
141 | mov word[NumberSymbolsAD],2 |
141 | mov word[NumberSymbolsAD],2 |
142 | fstp qword[Data_Double] |
142 | fstp qword[Data_Double] |
143 | call DoubleFloat_to_String |
143 | call DoubleFloat_to_String |
144 | mov byte[txt_angle_y.v],0 |
144 | mov byte[txt_angle_y.v],0 |
145 | stdcall str_cat, txt_angle_y.v,Data_String |
145 | stdcall str_cat, txt_angle_y.v,Data_String |
146 | call draw_3d |
146 | call draw_3d |
147 | stdcall [kosglSwapBuffers] |
147 | stdcall [kosglSwapBuffers] |
148 | @@: |
148 | @@: |
149 | cmp ah,176 ;Left |
149 | cmp ah,176 ;Left |
150 | jne @f |
150 | jne @f |
151 | finit |
151 | finit |
152 | fld dword[angle_z] |
152 | fld dword[angle_z] |
153 | fadd dword[delt_size] |
153 | fadd dword[delt_size] |
154 | fst dword[angle_z] |
154 | fst dword[angle_z] |
155 | mov word[NumberSymbolsAD],2 |
155 | mov word[NumberSymbolsAD],2 |
156 | fstp qword[Data_Double] |
156 | fstp qword[Data_Double] |
157 | call DoubleFloat_to_String |
157 | call DoubleFloat_to_String |
158 | mov byte[txt_angle_z.v],0 |
158 | mov byte[txt_angle_z.v],0 |
159 | stdcall str_cat, txt_angle_z.v,Data_String |
159 | stdcall str_cat, txt_angle_z.v,Data_String |
160 | call draw_3d |
160 | call draw_3d |
161 | stdcall [kosglSwapBuffers] |
161 | stdcall [kosglSwapBuffers] |
162 | @@: |
162 | @@: |
163 | cmp ah,179 ;Right |
163 | cmp ah,179 ;Right |
164 | jne @f |
164 | jne @f |
165 | finit |
165 | finit |
166 | fld dword[angle_z] |
166 | fld dword[angle_z] |
167 | fsub dword[delt_size] |
167 | fsub dword[delt_size] |
168 | fst dword[angle_z] |
168 | fst dword[angle_z] |
169 | mov word[NumberSymbolsAD],2 |
169 | mov word[NumberSymbolsAD],2 |
170 | fstp qword[Data_Double] |
170 | fstp qword[Data_Double] |
171 | call DoubleFloat_to_String |
171 | call DoubleFloat_to_String |
172 | mov byte[txt_angle_z.v],0 |
172 | mov byte[txt_angle_z.v],0 |
173 | stdcall str_cat, txt_angle_z.v,Data_String |
173 | stdcall str_cat, txt_angle_z.v,Data_String |
174 | call draw_3d |
174 | call draw_3d |
175 | stdcall [kosglSwapBuffers] |
175 | stdcall [kosglSwapBuffers] |
176 | @@: |
176 | @@: |
177 | 177 | ||
178 | jmp still |
178 | jmp still |
179 | 179 | ||
180 | align 4 |
180 | align 4 |
181 | button: |
181 | button: |
182 | mcall SF_GET_BUTTON |
182 | mcall SF_GET_BUTTON |
183 | cmp ah,3 |
183 | cmp ah,3 |
184 | jne @f |
184 | jne @f |
185 | call but_st_point |
185 | call but_st_point |
186 | jmp still |
186 | jmp still |
187 | @@: |
187 | @@: |
188 | cmp ah,4 |
188 | cmp ah,4 |
189 | jne @f |
189 | jne @f |
190 | call but_st_line |
190 | call but_st_line |
191 | jmp still |
191 | jmp still |
192 | @@: |
192 | @@: |
193 | cmp ah,5 |
193 | cmp ah,5 |
194 | jne @f |
194 | jne @f |
195 | call but_st_face |
195 | call but_st_face |
196 | jmp still |
196 | jmp still |
197 | @@: |
197 | @@: |
198 | cmp ah,6 |
198 | cmp ah,6 |
199 | jne @f |
199 | jne @f |
200 | call but_zoom_p |
200 | call but_zoom_p |
201 | jmp still |
201 | jmp still |
202 | @@: |
202 | @@: |
203 | cmp ah,7 |
203 | cmp ah,7 |
204 | jne @f |
204 | jne @f |
205 | call but_zoom_m |
205 | call but_zoom_m |
206 | jmp still |
206 | jmp still |
207 | @@: |
207 | @@: |
208 | cmp ah,1 |
208 | cmp ah,1 |
209 | jne still |
209 | jne still |
210 | .exit: |
210 | .exit: |
211 | stdcall [gluDeleteQuadric], [qObj] |
211 | stdcall [gluDeleteQuadric], [qObj] |
212 | stdcall mem.Free,[image_data_toolbar] |
212 | stdcall mem.Free,[image_data_toolbar] |
213 | mcall SF_TERMINATE_PROCESS |
213 | mcall SF_TERMINATE_PROCESS |
214 | 214 | ||
215 | align 4 |
215 | align 4 |
216 | but_st_point: |
216 | but_st_point: |
217 | stdcall [gluQuadricDrawStyle], [qObj],GLU_POINT |
217 | stdcall [gluQuadricDrawStyle], [qObj],GLU_POINT |
218 | call draw_3d |
218 | call draw_3d |
219 | stdcall [kosglSwapBuffers] |
219 | stdcall [kosglSwapBuffers] |
220 | ret |
220 | ret |
221 | 221 | ||
222 | align 4 |
222 | align 4 |
223 | but_st_line: |
223 | but_st_line: |
224 | stdcall [gluQuadricDrawStyle], [qObj],GLU_LINE |
224 | stdcall [gluQuadricDrawStyle], [qObj],GLU_LINE |
225 | call draw_3d |
225 | call draw_3d |
226 | stdcall [kosglSwapBuffers] |
226 | stdcall [kosglSwapBuffers] |
227 | ret |
227 | ret |
228 | 228 | ||
229 | align 4 |
229 | align 4 |
230 | but_st_face: |
230 | but_st_face: |
231 | stdcall [gluQuadricDrawStyle], [qObj],GLU_FILL |
231 | stdcall [gluQuadricDrawStyle], [qObj],GLU_FILL |
232 | call draw_3d |
232 | call draw_3d |
233 | stdcall [kosglSwapBuffers] |
233 | stdcall [kosglSwapBuffers] |
234 | ret |
234 | ret |
235 | 235 | ||
236 | align 4 |
236 | align 4 |
237 | but_zoom_p: |
237 | but_zoom_p: |
238 | finit |
238 | finit |
239 | fld dword[scale] |
239 | fld dword[scale] |
240 | fadd dword[sc_delt] |
240 | fadd dword[sc_delt] |
241 | fcom dword[sc_max] |
241 | fcom dword[sc_max] |
242 | fstsw ax |
242 | fstsw ax |
243 | sahf |
243 | sahf |
244 | jbe @f |
244 | jbe @f |
245 | ffree st0 |
245 | ffree st0 |
246 | fincstp |
246 | fincstp |
247 | fld dword[sc_max] |
247 | fld dword[sc_max] |
248 | @@: |
248 | @@: |
249 | fst dword[scale] |
249 | fst dword[scale] |
250 | mov word[NumberSymbolsAD],3 |
250 | mov word[NumberSymbolsAD],3 |
251 | fstp qword[Data_Double] |
251 | fstp qword[Data_Double] |
252 | call DoubleFloat_to_String |
252 | call DoubleFloat_to_String |
253 | mov byte[txt_scale.v],0 |
253 | mov byte[txt_scale.v],0 |
254 | stdcall str_cat, txt_scale.v,Data_String |
254 | stdcall str_cat, txt_scale.v,Data_String |
255 | call draw_3d |
255 | call draw_3d |
256 | stdcall [kosglSwapBuffers] |
256 | stdcall [kosglSwapBuffers] |
257 | ret |
257 | ret |
258 | 258 | ||
259 | align 4 |
259 | align 4 |
260 | but_zoom_m: |
260 | but_zoom_m: |
261 | finit |
261 | finit |
262 | fld dword[scale] |
262 | fld dword[scale] |
263 | fsub dword[sc_delt] |
263 | fsub dword[sc_delt] |
264 | fcom dword[sc_min] |
264 | fcom dword[sc_min] |
265 | fstsw ax |
265 | fstsw ax |
266 | sahf |
266 | sahf |
267 | ja @f |
267 | ja @f |
268 | ffree st0 |
268 | ffree st0 |
269 | fincstp |
269 | fincstp |
270 | fld dword[sc_min] |
270 | fld dword[sc_min] |
271 | @@: |
271 | @@: |
272 | fst dword[scale] |
272 | fst dword[scale] |
273 | mov word[NumberSymbolsAD],3 |
273 | mov word[NumberSymbolsAD],3 |
274 | fstp qword[Data_Double] |
274 | fstp qword[Data_Double] |
275 | call DoubleFloat_to_String |
275 | call DoubleFloat_to_String |
276 | mov byte[txt_scale.v],0 |
276 | mov byte[txt_scale.v],0 |
277 | stdcall str_cat, txt_scale.v,Data_String |
277 | stdcall str_cat, txt_scale.v,Data_String |
278 | call draw_3d |
278 | call draw_3d |
279 | stdcall [kosglSwapBuffers] |
279 | stdcall [kosglSwapBuffers] |
280 | ret |
280 | ret |
281 | 281 | ||
282 | 282 | ||
283 | align 4 |
283 | align 4 |
284 | caption db 'Test gluSphere, [Esc] - exit, [<-],[->],[Up],[Down] - rotate',0 |
284 | caption db 'Test gluSphere, [Esc] - exit, [<-],[->],[Up],[Down] - rotate',0 |
285 | align 4 |
285 | align 4 |
286 | ctx1 db 28 dup (0) ;TinyGLContext or KOSGLContext |
286 | ctx1 db 28 dup (0) ;TinyGLContext or KOSGLContext |
287 | ;sizeof.TinyGLContext = 28 |
287 | ;sizeof.TinyGLContext = 28 |
288 | 288 | ||
289 | align 4 |
289 | align 4 |
290 | draw_3d: |
290 | draw_3d: |
291 | stdcall [glClear], GL_COLOR_BUFFER_BIT + GL_DEPTH_BUFFER_BIT ;очистим буфер цвета и глубины |
291 | stdcall [glClear], GL_COLOR_BUFFER_BIT + GL_DEPTH_BUFFER_BIT ;очистим буфер цвета и глубины |
292 | 292 | ||
293 | stdcall [glPushMatrix] |
293 | stdcall [glPushMatrix] |
294 | call SetLight |
294 | call SetLight |
295 | 295 | ||
296 | stdcall [glTranslatef], 0.0,0.0,0.5 |
296 | stdcall [glTranslatef], 0.0,0.0,0.5 |
297 | stdcall [glScalef], [scale], [scale], [scale] |
297 | stdcall [glScalef], [scale], [scale], [scale] |
298 | 298 | ||
299 | stdcall [glColor3f], 1.0, 1.0, 0.0 |
299 | stdcall [glColor3f], 1.0, 1.0, 0.0 |
300 | stdcall [glRotatef], [angle_z],0.0,0.0,1.0 |
300 | stdcall [glRotatef], [angle_z],0.0,0.0,1.0 |
301 | stdcall [glRotatef], [angle_y],0.0,1.0,0.0 |
301 | stdcall [glRotatef], [angle_y],0.0,1.0,0.0 |
302 | stdcall [gluSphere], [qObj], 1.0, 32,32 |
302 | stdcall [gluSphere], [qObj], 1.0, 32,32 |
303 | 303 | ||
304 | stdcall [glColor3f], 1.0, 0.0, 0.0 |
304 | stdcall [glColor3f], 1.0, 0.0, 0.0 |
305 | stdcall [glTranslatef], -1.6,0.0,0.0 |
305 | stdcall [glTranslatef], -1.6,0.0,0.0 |
306 | stdcall [gluSphere], [qObj], 0.55, 16,16 |
306 | stdcall [gluSphere], [qObj], 0.55, 16,16 |
307 | 307 | ||
308 | stdcall [glColor3f], 0.0, 0.0, 1.0 |
308 | stdcall [glColor3f], 0.0, 0.0, 1.0 |
309 | stdcall [glTranslatef], 3.2,0.0,0.0 |
309 | stdcall [glTranslatef], 3.2,0.0,0.0 |
310 | stdcall [gluSphere], [qObj], 0.55, 16,16 |
310 | stdcall [gluSphere], [qObj], 0.55, 16,16 |
311 | stdcall [glPopMatrix] |
311 | stdcall [glPopMatrix] |
312 | 312 | ||
313 | stdcall [buf2d_draw_text], buf_ogl, buf_1,txt_scale,5,5,0xffff00 |
313 | stdcall [buf2d_draw_text], buf_ogl, buf_1,txt_scale,5,5,0xffff00 |
314 | stdcall [buf2d_draw_text], buf_ogl, buf_1,txt_angle_z,5,15,0xffff00 |
314 | stdcall [buf2d_draw_text], buf_ogl, buf_1,txt_angle_z,5,15,0xffff00 |
315 | stdcall [buf2d_draw_text], buf_ogl, buf_1,txt_angle_y,5,25,0xffff00 |
315 | stdcall [buf2d_draw_text], buf_ogl, buf_1,txt_angle_y,5,25,0xffff00 |
316 | ret |
316 | ret |
317 | 317 | ||
318 | align 4 |
318 | align 4 |
319 | SetLight: |
319 | SetLight: |
320 | stdcall [glLightfv], GL_LIGHT0, GL_POSITION, light_position |
320 | stdcall [glLightfv], GL_LIGHT0, GL_POSITION, light_position |
321 | stdcall [glLightfv], GL_LIGHT0, GL_SPOT_DIRECTION, light_dir |
321 | stdcall [glLightfv], GL_LIGHT0, GL_SPOT_DIRECTION, light_dir |
322 | 322 | ||
323 | stdcall [glLightfv], GL_LIGHT0, GL_DIFFUSE, white_light |
323 | stdcall [glLightfv], GL_LIGHT0, GL_DIFFUSE, white_light |
324 | stdcall [glLightfv], GL_LIGHT0, GL_SPECULAR, white_light |
324 | stdcall [glLightfv], GL_LIGHT0, GL_SPECULAR, white_light |
325 | 325 | ||
326 | stdcall [glEnable], GL_COLOR_MATERIAL |
326 | stdcall [glEnable], GL_COLOR_MATERIAL |
327 | stdcall [glColorMaterial], GL_FRONT, GL_AMBIENT_AND_DIFFUSE |
327 | stdcall [glColorMaterial], GL_FRONT, GL_AMBIENT_AND_DIFFUSE |
328 | stdcall [glMaterialfv], GL_FRONT, GL_SPECULAR, mat_specular |
328 | stdcall [glMaterialfv], GL_FRONT, GL_SPECULAR, mat_specular |
329 | stdcall [glMaterialf], GL_FRONT, GL_SHININESS, mat_shininess |
329 | stdcall [glMaterialf], GL_FRONT, GL_SHININESS, mat_shininess |
330 | stdcall [glLightModelfv], GL_LIGHT_MODEL_AMBIENT, lmodel_ambient |
330 | stdcall [glLightModelfv], GL_LIGHT_MODEL_AMBIENT, lmodel_ambient |
331 | 331 | ||
332 | stdcall [glEnable],GL_LIGHTING |
332 | stdcall [glEnable],GL_LIGHTING |
333 | stdcall [glEnable],GL_LIGHT0 |
333 | stdcall [glEnable],GL_LIGHT0 |
334 | ret |
334 | ret |
335 | 335 | ||
336 | qObj dd 0 |
336 | qObj dd 0 |
337 | 337 | ||
338 | scale dd 0.4 ;начальный масштаб |
338 | scale dd 0.4 ;начальный масштаб |
339 | sc_delt dd 0.05 ;изменение масштаба при нажатии |
339 | sc_delt dd 0.05 ;изменение масштаба при нажатии |
340 | sc_min dd 0.1 ;минимальный масштаб |
340 | sc_min dd 0.1 ;минимальный масштаб |
341 | sc_max dd 1.1 ;максимальный масштаб |
341 | sc_max dd 1.1 ;максимальный масштаб |
342 | angle_z dd 0.0 |
342 | angle_z dd 0.0 |
343 | angle_y dd 0.0 |
343 | angle_y dd 0.0 |
344 | delt_size dd 3.0 |
344 | delt_size dd 3.0 |
345 | 345 | ||
346 | light_position dd 3.0, 2.0, -10.0, 1.0 ; Расположение источника [0][1][2] |
346 | light_position dd 3.0, 2.0, -10.0, 1.0 ; Расположение источника [0][1][2] |
347 | ;[3] = (0.0 - бесконечно удаленный источник, 1.0 - источник света на определенном расстоянии) |
347 | ;[3] = (0.0 - бесконечно удаленный источник, 1.0 - источник света на определенном расстоянии) |
348 | light_dir dd 0.0,0.0,0.0 ;направление лампы |
348 | light_dir dd 0.0,0.0,0.0 ;направление лампы |
349 | mat_specular dd 0.1, 0.1, 0.1, 1.0 ; Цвет блика |
349 | mat_specular dd 0.1, 0.1, 0.1, 1.0 ; Цвет блика |
350 | mat_shininess dd 3.0 ; Размер блика (обратная пропорция) |
350 | mat_shininess dd 3.0 ; Размер блика (обратная пропорция) |
351 | white_light dd 0.8, 0.8, 0.8, 1.0 ; Цвет и интенсивность освещения, генерируемого источником |
351 | white_light dd 0.8, 0.8, 0.8, 1.0 ; Цвет и интенсивность освещения, генерируемого источником |
352 | lmodel_ambient dd 0.2, 0.2, 0.2, 1.0 ; Параметры фонового освещения |
352 | lmodel_ambient dd 0.2, 0.2, 0.2, 1.0 ; Параметры фонового освещения |
353 | 353 | ||
354 | ;-------------------------------------------------- |
354 | ;-------------------------------------------------- |
355 | align 4 |
355 | align 4 |
356 | import_lib_tinygl: |
356 | import_lib_tinygl: |
357 | 357 | ||
358 | macro E_LIB n |
358 | macro E_LIB n |
359 | { |
359 | { |
360 | n dd sz_#n |
360 | n dd sz_#n |
361 | } |
361 | } |
362 | include '../export.inc' |
362 | include '../export.inc' |
363 | dd 0,0 |
363 | dd 0,0 |
364 | macro E_LIB n |
364 | macro E_LIB n |
365 | { |
365 | { |
366 | sz_#n db `n,0 |
366 | sz_#n db `n,0 |
367 | } |
367 | } |
368 | include '../export.inc' |
368 | include '../export.inc' |
369 | 369 | ||
370 | align 4 |
370 | align 4 |
371 | import_buf2d: |
371 | import_buf2d: |
372 | dd sz_init0 |
372 | dd sz_init0 |
373 | buf2d_create dd sz_buf2d_create |
373 | buf2d_create dd sz_buf2d_create |
374 | buf2d_create_f_img dd sz_buf2d_create_f_img |
374 | buf2d_create_f_img dd sz_buf2d_create_f_img |
375 | buf2d_clear dd sz_buf2d_clear |
375 | buf2d_clear dd sz_buf2d_clear |
376 | buf2d_draw dd sz_buf2d_draw |
376 | buf2d_draw dd sz_buf2d_draw |
377 | buf2d_delete dd sz_buf2d_delete |
377 | buf2d_delete dd sz_buf2d_delete |
378 | buf2d_resize dd sz_buf2d_resize |
378 | buf2d_resize dd sz_buf2d_resize |
379 | buf2d_line dd sz_buf2d_line |
379 | buf2d_line dd sz_buf2d_line |
380 | buf2d_rect_by_size dd sz_buf2d_rect_by_size |
380 | buf2d_rect_by_size dd sz_buf2d_rect_by_size |
381 | buf2d_filled_rect_by_size dd sz_buf2d_filled_rect_by_size |
381 | buf2d_filled_rect_by_size dd sz_buf2d_filled_rect_by_size |
382 | buf2d_circle dd sz_buf2d_circle |
382 | buf2d_circle dd sz_buf2d_circle |
383 | buf2d_img_hdiv2 dd sz_buf2d_img_hdiv2 |
383 | buf2d_img_hdiv2 dd sz_buf2d_img_hdiv2 |
384 | buf2d_img_wdiv2 dd sz_buf2d_img_wdiv2 |
384 | buf2d_img_wdiv2 dd sz_buf2d_img_wdiv2 |
385 | buf2d_conv_24_to_8 dd sz_buf2d_conv_24_to_8 |
385 | buf2d_conv_24_to_8 dd sz_buf2d_conv_24_to_8 |
386 | buf2d_conv_24_to_32 dd sz_buf2d_conv_24_to_32 |
386 | buf2d_conv_24_to_32 dd sz_buf2d_conv_24_to_32 |
387 | buf2d_bit_blt dd sz_buf2d_bit_blt |
387 | buf2d_bit_blt dd sz_buf2d_bit_blt |
388 | buf2d_bit_blt_transp dd sz_buf2d_bit_blt_transp |
388 | buf2d_bit_blt_transp dd sz_buf2d_bit_blt_transp |
389 | buf2d_bit_blt_alpha dd sz_buf2d_bit_blt_alpha |
389 | buf2d_bit_blt_alpha dd sz_buf2d_bit_blt_alpha |
390 | buf2d_curve_bezier dd sz_buf2d_curve_bezier |
390 | buf2d_curve_bezier dd sz_buf2d_curve_bezier |
391 | buf2d_convert_text_matrix dd sz_buf2d_convert_text_matrix |
391 | buf2d_convert_text_matrix dd sz_buf2d_convert_text_matrix |
392 | buf2d_draw_text dd sz_buf2d_draw_text |
392 | buf2d_draw_text dd sz_buf2d_draw_text |
393 | buf2d_crop_color dd sz_buf2d_crop_color |
393 | buf2d_crop_color dd sz_buf2d_crop_color |
394 | buf2d_offset_h dd sz_buf2d_offset_h |
394 | buf2d_offset_h dd sz_buf2d_offset_h |
395 | buf2d_flood_fill dd sz_buf2d_flood_fill |
395 | buf2d_flood_fill dd sz_buf2d_flood_fill |
396 | buf2d_set_pixel dd sz_buf2d_set_pixel |
396 | buf2d_set_pixel dd sz_buf2d_set_pixel |
397 | dd 0,0 |
397 | dd 0,0 |
398 | sz_init0 db 'lib_init',0 |
398 | sz_init0 db 'lib_init',0 |
399 | sz_buf2d_create db 'buf2d_create',0 |
399 | sz_buf2d_create db 'buf2d_create',0 |
400 | sz_buf2d_create_f_img db 'buf2d_create_f_img',0 |
400 | sz_buf2d_create_f_img db 'buf2d_create_f_img',0 |
401 | sz_buf2d_clear db 'buf2d_clear',0 |
401 | sz_buf2d_clear db 'buf2d_clear',0 |
402 | sz_buf2d_draw db 'buf2d_draw',0 |
402 | sz_buf2d_draw db 'buf2d_draw',0 |
403 | sz_buf2d_delete db 'buf2d_delete',0 |
403 | sz_buf2d_delete db 'buf2d_delete',0 |
404 | sz_buf2d_resize db 'buf2d_resize',0 |
404 | sz_buf2d_resize db 'buf2d_resize',0 |
405 | sz_buf2d_line db 'buf2d_line',0 |
405 | sz_buf2d_line db 'buf2d_line',0 |
406 | sz_buf2d_rect_by_size db 'buf2d_rect_by_size',0 |
406 | sz_buf2d_rect_by_size db 'buf2d_rect_by_size',0 |
407 | sz_buf2d_filled_rect_by_size db 'buf2d_filled_rect_by_size',0 |
407 | sz_buf2d_filled_rect_by_size db 'buf2d_filled_rect_by_size',0 |
408 | sz_buf2d_circle db 'buf2d_circle',0 |
408 | sz_buf2d_circle db 'buf2d_circle',0 |
409 | sz_buf2d_img_hdiv2 db 'buf2d_img_hdiv2',0 |
409 | sz_buf2d_img_hdiv2 db 'buf2d_img_hdiv2',0 |
410 | sz_buf2d_img_wdiv2 db 'buf2d_img_wdiv2',0 |
410 | sz_buf2d_img_wdiv2 db 'buf2d_img_wdiv2',0 |
411 | sz_buf2d_conv_24_to_8 db 'buf2d_conv_24_to_8',0 |
411 | sz_buf2d_conv_24_to_8 db 'buf2d_conv_24_to_8',0 |
412 | sz_buf2d_conv_24_to_32 db 'buf2d_conv_24_to_32',0 |
412 | sz_buf2d_conv_24_to_32 db 'buf2d_conv_24_to_32',0 |
413 | sz_buf2d_bit_blt db 'buf2d_bit_blt',0 |
413 | sz_buf2d_bit_blt db 'buf2d_bit_blt',0 |
414 | sz_buf2d_bit_blt_transp db 'buf2d_bit_blt_transp',0 |
414 | sz_buf2d_bit_blt_transp db 'buf2d_bit_blt_transp',0 |
415 | sz_buf2d_bit_blt_alpha db 'buf2d_bit_blt_alpha',0 |
415 | sz_buf2d_bit_blt_alpha db 'buf2d_bit_blt_alpha',0 |
416 | sz_buf2d_curve_bezier db 'buf2d_curve_bezier',0 |
416 | sz_buf2d_curve_bezier db 'buf2d_curve_bezier',0 |
417 | sz_buf2d_convert_text_matrix db 'buf2d_convert_text_matrix',0 |
417 | sz_buf2d_convert_text_matrix db 'buf2d_convert_text_matrix',0 |
418 | sz_buf2d_draw_text db 'buf2d_draw_text',0 |
418 | sz_buf2d_draw_text db 'buf2d_draw_text',0 |
419 | sz_buf2d_crop_color db 'buf2d_crop_color',0 |
419 | sz_buf2d_crop_color db 'buf2d_crop_color',0 |
420 | sz_buf2d_offset_h db 'buf2d_offset_h',0 |
420 | sz_buf2d_offset_h db 'buf2d_offset_h',0 |
421 | sz_buf2d_flood_fill db 'buf2d_flood_fill',0 |
421 | sz_buf2d_flood_fill db 'buf2d_flood_fill',0 |
422 | sz_buf2d_set_pixel db 'buf2d_set_pixel',0 |
422 | sz_buf2d_set_pixel db 'buf2d_set_pixel',0 |
423 | 423 | ||
424 | align 4 |
424 | align 4 |
425 | import_libimg: |
425 | import_libimg: |
426 | dd alib_init1 |
426 | dd alib_init1 |
427 | img_is_img dd aimg_is_img |
427 | img_is_img dd aimg_is_img |
428 | img_info dd aimg_info |
428 | img_info dd aimg_info |
429 | img_from_file dd aimg_from_file |
429 | img_from_file dd aimg_from_file |
430 | img_to_file dd aimg_to_file |
430 | img_to_file dd aimg_to_file |
431 | img_from_rgb dd aimg_from_rgb |
431 | img_from_rgb dd aimg_from_rgb |
432 | img_to_rgb dd aimg_to_rgb |
432 | img_to_rgb dd aimg_to_rgb |
433 | img_to_rgb2 dd aimg_to_rgb2 |
433 | img_to_rgb2 dd aimg_to_rgb2 |
434 | img_decode dd aimg_decode |
434 | img_decode dd aimg_decode |
435 | img_encode dd aimg_encode |
435 | img_encode dd aimg_encode |
436 | img_create dd aimg_create |
436 | img_create dd aimg_create |
437 | img_destroy dd aimg_destroy |
437 | img_destroy dd aimg_destroy |
438 | img_destroy_layer dd aimg_destroy_layer |
438 | img_destroy_layer dd aimg_destroy_layer |
439 | img_count dd aimg_count |
439 | img_count dd aimg_count |
440 | img_lock_bits dd aimg_lock_bits |
440 | img_lock_bits dd aimg_lock_bits |
441 | img_unlock_bits dd aimg_unlock_bits |
441 | img_unlock_bits dd aimg_unlock_bits |
442 | img_flip dd aimg_flip |
442 | img_flip dd aimg_flip |
443 | img_flip_layer dd aimg_flip_layer |
443 | img_flip_layer dd aimg_flip_layer |
444 | img_rotate dd aimg_rotate |
444 | img_rotate dd aimg_rotate |
445 | img_rotate_layer dd aimg_rotate_layer |
445 | img_rotate_layer dd aimg_rotate_layer |
446 | img_draw dd aimg_draw |
446 | img_draw dd aimg_draw |
447 | 447 | ||
448 | dd 0,0 |
448 | dd 0,0 |
449 | alib_init1 db 'lib_init',0 |
449 | alib_init1 db 'lib_init',0 |
450 | aimg_is_img db 'img_is_img',0 ;определяет по данным, может ли библиотека сделать из них изображение |
450 | aimg_is_img db 'img_is_img',0 ;определяет по данным, может ли библиотека сделать из них изображение |
451 | aimg_info db 'img_info',0 |
451 | aimg_info db 'img_info',0 |
452 | aimg_from_file db 'img_from_file',0 |
452 | aimg_from_file db 'img_from_file',0 |
453 | aimg_to_file db 'img_to_file',0 |
453 | aimg_to_file db 'img_to_file',0 |
454 | aimg_from_rgb db 'img_from_rgb',0 |
454 | aimg_from_rgb db 'img_from_rgb',0 |
455 | aimg_to_rgb db 'img_to_rgb',0 ;преобразование изображения в данные RGB |
455 | aimg_to_rgb db 'img_to_rgb',0 ;преобразование изображения в данные RGB |
456 | aimg_to_rgb2 db 'img_to_rgb2',0 |
456 | aimg_to_rgb2 db 'img_to_rgb2',0 |
457 | aimg_decode db 'img_decode',0 ;автоматически определяет формат графических данных |
457 | aimg_decode db 'img_decode',0 ;автоматически определяет формат графических данных |
458 | aimg_encode db 'img_encode',0 |
458 | aimg_encode db 'img_encode',0 |
459 | aimg_create db 'img_create',0 |
459 | aimg_create db 'img_create',0 |
460 | aimg_destroy db 'img_destroy',0 |
460 | aimg_destroy db 'img_destroy',0 |
461 | aimg_destroy_layer db 'img_destroy_layer',0 |
461 | aimg_destroy_layer db 'img_destroy_layer',0 |
462 | aimg_count db 'img_count',0 |
462 | aimg_count db 'img_count',0 |
463 | aimg_lock_bits db 'img_lock_bits',0 |
463 | aimg_lock_bits db 'img_lock_bits',0 |
464 | aimg_unlock_bits db 'img_unlock_bits',0 |
464 | aimg_unlock_bits db 'img_unlock_bits',0 |
465 | aimg_flip db 'img_flip',0 |
465 | aimg_flip db 'img_flip',0 |
466 | aimg_flip_layer db 'img_flip_layer',0 |
466 | aimg_flip_layer db 'img_flip_layer',0 |
467 | aimg_rotate db 'img_rotate',0 |
467 | aimg_rotate db 'img_rotate',0 |
468 | aimg_rotate_layer db 'img_rotate_layer',0 |
468 | aimg_rotate_layer db 'img_rotate_layer',0 |
469 | aimg_draw db 'img_draw',0 |
469 | aimg_draw db 'img_draw',0 |
470 | 470 | ||
471 | ;-------------------------------------------------- |
471 | ;-------------------------------------------------- |
472 | system_dir_0 db '/kolibrios/lib/' |
472 | system_dir_0 db '/sys/lib/' |
473 | lib_name_0 db 'tinygl.obj',0 |
473 | lib_name_0 db 'tinygl.obj',0 |
474 | system_dir_1 db '/sys/lib/' |
474 | system_dir_1 db '/sys/lib/' |
475 | lib_name_1 db 'buf2d.obj',0 |
475 | lib_name_1 db 'buf2d.obj',0 |
476 | system_dir_2 db '/sys/lib/' |
476 | system_dir_2 db '/sys/lib/' |
477 | lib_name_2 db 'libimg.obj',0 |
477 | lib_name_2 db 'libimg.obj',0 |
478 | err_msg_found_lib_0 db 'Sorry I cannot load library ',39,'tinygl.obj',39,0 |
478 | err_msg_found_lib_0 db 'Sorry I cannot load library ',39,'tinygl.obj',39,0 |
479 | err_msg_found_lib_1 db 'Sorry I cannot load library ',39,'buf2d.obj',39,0 |
479 | err_msg_found_lib_1 db 'Sorry I cannot load library ',39,'buf2d.obj',39,0 |
480 | err_msg_found_lib_2 db 'Sorry I cannot load library ',39,'libimg.obj',39,0 |
480 | err_msg_found_lib_2 db 'Sorry I cannot load library ',39,'libimg.obj',39,0 |
481 | head_f_i: |
481 | head_f_i: |
482 | head_f_l db 'System error',0 |
482 | head_f_l db 'System error',0 |
483 | err_msg_import_0 db 'Error on load import library ',39,'tinygl.obj',39,0 |
483 | err_msg_import_0 db 'Error on load import library ',39,'tinygl.obj',39,0 |
484 | err_msg_import_1 db 'Error on load import library ',39,'buf2d.obj',39,0 |
484 | err_msg_import_1 db 'Error on load import library ',39,'buf2d.obj',39,0 |
485 | err_msg_import_2 db 'Error on load import library ',39,'libimg.obj',39,0 |
485 | err_msg_import_2 db 'Error on load import library ',39,'libimg.obj',39,0 |
486 | ;-------------------------------------------------- |
486 | ;-------------------------------------------------- |
487 | 487 | ||
488 | txt_scale: |
488 | txt_scale: |
489 | db 'Scale: ' |
489 | db 'Scale: ' |
490 | .v: |
490 | .v: |
491 | db 0 |
491 | db 0 |
492 | rb 10 |
492 | rb 10 |
493 | 493 | ||
494 | txt_angle_z: |
494 | txt_angle_z: |
495 | db 'Rotate z: ' |
495 | db 'Rotate z: ' |
496 | .v: |
496 | .v: |
497 | db 0 |
497 | db 0 |
498 | rb 10 |
498 | rb 10 |
499 | 499 | ||
500 | txt_angle_y: |
500 | txt_angle_y: |
501 | db 'Rotate y: ' |
501 | db 'Rotate y: ' |
502 | .v: |
502 | .v: |
503 | db 0 |
503 | db 0 |
504 | rb 10 |
504 | rb 10 |
505 | 505 | ||
506 | align 4 |
506 | align 4 |
507 | buf_ogl: |
507 | buf_ogl: |
508 | dd 0 ;указатель на буфер изображения |
508 | dd 0 ;указатель на буфер изображения |
509 | dw 10,10 ;+4 left,top |
509 | dw 10,10 ;+4 left,top |
510 | .w: dd 400 |
510 | .w: dd 400 |
511 | .h: dd 350 |
511 | .h: dd 350 |
512 | dd 0,24 ;+16 color,bit in pixel |
512 | dd 0,24 ;+16 color,bit in pixel |
513 | 513 | ||
514 | align 4 |
514 | align 4 |
515 | buf_1: |
515 | buf_1: |
516 | dd 0 ;указатель на буфер изображения |
516 | dd 0 ;указатель на буфер изображения |
517 | dd 0 ;+4 left,top |
517 | dd 0 ;+4 left,top |
518 | .w: dd 0 |
518 | .w: dd 0 |
519 | .h: dd 0,0,24 ;+16 color,bit in pixel |
519 | .h: dd 0,0,24 ;+16 color,bit in pixel |
520 | 520 | ||
521 | align 4 |
521 | align 4 |
522 | l_libs_start: |
522 | l_libs_start: |
523 | lib_0 l_libs lib_name_0, cur_dir_path, file_name, system_dir_0,\ |
523 | lib_0 l_libs lib_name_0, cur_dir_path, file_name, system_dir_0,\ |
524 | err_msg_found_lib_0, head_f_l, import_lib_tinygl,err_msg_import_0,head_f_i |
524 | err_msg_found_lib_0, head_f_l, import_lib_tinygl,err_msg_import_0,head_f_i |
525 | lib_1 l_libs lib_name_1, cur_dir_path, file_name, system_dir_1,\ |
525 | lib_1 l_libs lib_name_1, cur_dir_path, file_name, system_dir_1,\ |
526 | err_msg_found_lib_1, head_f_l, import_buf2d, err_msg_import_1,head_f_i |
526 | err_msg_found_lib_1, head_f_l, import_buf2d, err_msg_import_1,head_f_i |
527 | lib_2 l_libs lib_name_2, cur_dir_path, file_name, system_dir_2,\ |
527 | lib_2 l_libs lib_name_2, cur_dir_path, file_name, system_dir_2,\ |
528 | err_msg_found_lib_2, head_f_l, import_libimg, err_msg_import_2, head_f_i |
528 | err_msg_found_lib_2, head_f_l, import_libimg, err_msg_import_2, head_f_i |
529 | l_libs_end: |
529 | l_libs_end: |
530 | 530 | ||
531 | align 4 |
531 | align 4 |
532 | i_end: |
532 | i_end: |
533 | run_file_70 FileInfoBlock |
533 | run_file_70 FileInfoBlock |
534 | sc system_colors |
534 | sc system_colors |
535 | align 16 |
535 | align 16 |
536 | rb 4096 |
536 | rb 4096 |
537 | stacktop: |
537 | stacktop: |
538 | cur_dir_path rb 4096 |
538 | cur_dir_path rb 4096 |
539 | file_name rb 4096 |
539 | file_name rb 4096 |
540 | mem:-],[-> |
540 | mem:-],[-> |