Rev 2000 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
1951 | mario79 | 1 | ;--------------------------------------------------------------------- |
2 | k_option: |
||
3 | test dword [status],64 |
||
4 | jnz still |
||
5 | or dword [status],64 |
||
6 | |||
2000 | mario79 | 7 | call get_memory_for_thread_stack |
1951 | mario79 | 8 | mov [thread_stack_7],eax |
2000 | mario79 | 9 | mcall 51,1,thread7 ; thread_stack_7 |
1951 | mario79 | 10 | jmp still |
11 | ;--------------------------------------------------------------------- |
||
2000 | mario79 | 12 | get_memory_for_thread_stack: |
1951 | mario79 | 13 | mcall 68,12,4096 |
14 | mov edx,eax |
||
15 | add edx,4096 |
||
16 | ret |
||
17 | ;--------------------------------------------------------------------- |
||
18 | thread7: ; start of bgrd thread |
||
19 | mcall 9, procinfo_threads, -1 |
||
20 | mov eax,[ebx+30] |
||
21 | mov [PID7],eax |
||
2000 | mario79 | 22 | mcall 40,0x27 |
1951 | mario79 | 23 | mov eax,[slide_show_delay] |
24 | mov [slide_show_delay_old],eax |
||
25 | mov eax,[arrows_offset] |
||
26 | mov [arrows_offset_old],eax |
||
3184 | IgorA | 27 | mov eax,[check1.flags] |
1951 | mario79 | 28 | mov [show_file_name_old],eax |
3184 | IgorA | 29 | mov eax,[check2.flags] |
1951 | mario79 | 30 | mov [filtering_flag_old],eax |
31 | xor eax,eax |
||
32 | mov [option_pointer],eax |
||
33 | call .set_pointers |
||
2000 | mario79 | 34 | ;----------------------------------------- |
1951 | mario79 | 35 | .red: |
36 | call .draw_window |
||
2000 | mario79 | 37 | ;----------------------------------------- |
1951 | mario79 | 38 | .still: |
2000 | mario79 | 39 | mcall 10 ; wait here for event |
1951 | mario79 | 40 | |
41 | cmp eax,1 ; redraw request ? |
||
42 | je .red |
||
2000 | mario79 | 43 | |
1951 | mario79 | 44 | cmp eax,2 ; key in buffer ? |
45 | je .key |
||
2000 | mario79 | 46 | |
1951 | mario79 | 47 | cmp eax,3 ; button in buffer ? |
48 | je .button |
||
2000 | mario79 | 49 | |
1951 | mario79 | 50 | cmp eax,6 ; mouse in buffer ? |
51 | je .mouse |
||
2000 | mario79 | 52 | |
1951 | mario79 | 53 | jmp .still |
2000 | mario79 | 54 | ;--------------------------------------------------------------------- |
1951 | mario79 | 55 | .mouse: |
3184 | IgorA | 56 | mov ebx,[check1.flags] |
1951 | mario79 | 57 | and ebx,10b |
58 | push dword check1 |
||
59 | call [check_box_mouse] |
||
3184 | IgorA | 60 | mov eax,[check1.flags] |
1951 | mario79 | 61 | and eax,10b |
62 | cmp ebx,eax |
||
63 | je @f ;.still |
||
2000 | mario79 | 64 | |
1951 | mario79 | 65 | mov [option_pointer],2 |
66 | call .set_pointers |
||
67 | call .draw_all_options_values |
||
68 | jmp .still |
||
2000 | mario79 | 69 | ;--------------------------------------------------------------------- |
1951 | mario79 | 70 | @@: |
3184 | IgorA | 71 | mov ebx,[check2.flags] |
1951 | mario79 | 72 | and ebx,10b |
73 | push dword check2 |
||
74 | call [check_box_mouse] |
||
3184 | IgorA | 75 | mov eax,[check2.flags] |
1951 | mario79 | 76 | and eax,10b |
77 | cmp ebx,eax |
||
78 | je .still |
||
2000 | mario79 | 79 | |
1951 | mario79 | 80 | mov [option_pointer],3 |
81 | call .set_pointers |
||
82 | call .draw_all_options_values |
||
83 | jmp .still |
||
84 | ;--------------------------------------------------------------------- |
||
85 | .key: |
||
86 | mcall |
||
87 | cmp ah,27 |
||
88 | je .close |
||
2000 | mario79 | 89 | |
1951 | mario79 | 90 | cmp ah,13 |
91 | je .kok |
||
2000 | mario79 | 92 | |
1951 | mario79 | 93 | cmp ah,32 |
94 | je .select_space |
||
2000 | mario79 | 95 | |
1951 | mario79 | 96 | cmp ah,56 ;plus |
97 | je .select_plus ;.plus_slide_show_delay |
||
2000 | mario79 | 98 | |
1951 | mario79 | 99 | cmp ah,43 ;plus |
100 | je .select_plus ;.plus_slide_show_delay |
||
2000 | mario79 | 101 | |
1951 | mario79 | 102 | cmp ah,61 ;plus |
103 | je .select_plus ;.plus_slide_show_delay |
||
2000 | mario79 | 104 | |
1951 | mario79 | 105 | cmp ah,54 ;minus |
106 | je .select_minus ;.minus_slide_show_delay |
||
2000 | mario79 | 107 | |
1951 | mario79 | 108 | cmp ah,45 ;minus |
109 | je .select_minus ;.minus_slide_show_delay |
||
2000 | mario79 | 110 | |
1951 | mario79 | 111 | cmp ah,95 ;minus |
112 | je .select_minus ;.minus_slide_show_delay |
||
2000 | mario79 | 113 | |
1951 | mario79 | 114 | cmp ah,178 ;up arrow |
115 | je .up_arrow |
||
2000 | mario79 | 116 | |
1951 | mario79 | 117 | cmp ah,177 ;down arrow |
118 | je .down_arrow |
||
2000 | mario79 | 119 | |
1951 | mario79 | 120 | jmp .still |
121 | ;--------------------------------------------------------------------- |
||
122 | .button: ; button |
||
123 | mov eax,17 ; get id |
||
124 | mcall |
||
125 | |||
126 | cmp ah,5 |
||
127 | je .minus_arrows_offset |
||
128 | |||
129 | cmp ah,4 |
||
130 | je .plus_arrows_offset |
||
131 | |||
132 | cmp ah,3 |
||
133 | je .minus_slide_show_delay |
||
134 | |||
135 | cmp ah,2 |
||
136 | je .plus_slide_show_delay |
||
137 | |||
138 | cmp ah,1 ; button id=1 ? |
||
139 | jne .noclose |
||
2000 | mario79 | 140 | ;----------------------------------- |
1951 | mario79 | 141 | .close: |
142 | mov eax,[slide_show_delay_old] |
||
143 | mov [slide_show_delay],eax |
||
144 | mov eax,[arrows_offset_old] |
||
145 | mov [arrows_offset],eax |
||
146 | mov eax,[show_file_name_old] |
||
3184 | IgorA | 147 | mov [check1.flags],eax |
1951 | mario79 | 148 | mov eax,[filtering_flag_old] |
3184 | IgorA | 149 | mov [check2.flags],eax |
1951 | mario79 | 150 | jmp .close_all |
2000 | mario79 | 151 | ;--------------------------------------------------------------------- |
1951 | mario79 | 152 | .close_1: |
3184 | IgorA | 153 | mov eax,[check2.flags] |
1951 | mario79 | 154 | test eax,10b |
155 | jz @f |
||
2000 | mario79 | 156 | |
1951 | mario79 | 157 | mov [filtering_flag],1 |
158 | jmp .redraw_flag |
||
2000 | mario79 | 159 | ;--------------------------------------------------------------------- |
1951 | mario79 | 160 | @@: |
161 | mov [filtering_flag],0 |
||
162 | .redraw_flag: |
||
163 | mov [redraw_flag],byte 1 |
||
164 | .close_all: |
||
165 | xor dword [status],64 |
||
166 | xor eax,eax |
||
167 | mov [PID7],eax |
||
168 | mcall 68,13,[thread_stack_7] |
||
2000 | mario79 | 169 | mcall -1 ; close this program |
170 | ;--------------------------------------------------------------------- |
||
1951 | mario79 | 171 | .noclose: |
172 | .kok: |
||
173 | jmp .close_1 |
||
174 | ;--------------------------------------------------------------------- |
||
175 | .select_plus: |
||
176 | jmp [plus_pointer] |
||
177 | ;--------------------------------------------------------------------- |
||
178 | .select_minus: |
||
179 | jmp [minus_pointer] |
||
180 | ;--------------------------------------------------------------------- |
||
181 | .select_space: |
||
182 | jmp [space_pointer] |
||
183 | ;--------------------------------------------------------------------- |
||
184 | .plus_slide_show_delay: |
||
185 | cmp [option_pointer],0 |
||
186 | je @f |
||
2000 | mario79 | 187 | |
1951 | mario79 | 188 | mov [option_pointer],0 |
189 | call .draw_all_options_values |
||
190 | @@: |
||
191 | cmp [slide_show_delay],99990 |
||
192 | je .still |
||
2000 | mario79 | 193 | |
1951 | mario79 | 194 | add [slide_show_delay],10 |
195 | call .draw_slide_show_delay |
||
196 | jmp .still |
||
197 | ;--------------------------------------------------------------------- |
||
198 | .minus_slide_show_delay: |
||
199 | cmp [option_pointer],0 |
||
200 | je @f |
||
2000 | mario79 | 201 | |
1951 | mario79 | 202 | mov [option_pointer],0 |
203 | call .draw_all_options_values |
||
204 | @@: |
||
205 | cmp [slide_show_delay],0 |
||
206 | je .still |
||
2000 | mario79 | 207 | |
1951 | mario79 | 208 | sub [slide_show_delay],10 |
209 | call .draw_slide_show_delay |
||
210 | jmp .still |
||
211 | ;--------------------------------------------------------------------- |
||
212 | .plus_arrows_offset: |
||
213 | cmp [option_pointer],1 |
||
214 | je @f |
||
2000 | mario79 | 215 | |
1951 | mario79 | 216 | mov [option_pointer],1 |
217 | call .draw_all_options_values |
||
218 | @@: |
||
219 | cmp [arrows_offset],100 |
||
220 | je .still |
||
2000 | mario79 | 221 | |
1951 | mario79 | 222 | inc [arrows_offset] |
223 | call .draw_arrows_offset |
||
224 | call calculate_arrows_offset |
||
225 | jmp .still |
||
226 | ;--------------------------------------------------------------------- |
||
227 | .minus_arrows_offset: |
||
228 | cmp [option_pointer],1 |
||
229 | je @f |
||
2000 | mario79 | 230 | |
1951 | mario79 | 231 | mov [option_pointer],1 |
232 | call .draw_all_options_values |
||
233 | @@: |
||
234 | cmp [arrows_offset],1 |
||
235 | je .still |
||
2000 | mario79 | 236 | |
1951 | mario79 | 237 | dec [arrows_offset] |
238 | call .draw_arrows_offset |
||
239 | call calculate_arrows_offset |
||
240 | jmp .still |
||
241 | ;--------------------------------------------------------------------- |
||
242 | .space_check1: |
||
3184 | IgorA | 243 | test [check1.flags],dword 10b |
1951 | mario79 | 244 | jnz @f |
2000 | mario79 | 245 | |
3184 | IgorA | 246 | or [check1.flags],dword 10b |
1951 | mario79 | 247 | jmp .space_check1_1 |
2000 | mario79 | 248 | ;--------------------------------------------------------------------- |
1951 | mario79 | 249 | @@: |
3184 | IgorA | 250 | xor [check1.flags],dword 10b |
1951 | mario79 | 251 | .space_check1_1: |
252 | call .draw_all_options_values |
||
253 | jmp .still |
||
254 | ;--------------------------------------------------------------------- |
||
255 | .space_check2: |
||
3184 | IgorA | 256 | test [check2.flags],dword 10b |
1951 | mario79 | 257 | jnz @f |
2000 | mario79 | 258 | |
3184 | IgorA | 259 | or [check2.flags],dword 10b |
1951 | mario79 | 260 | jmp .space_check2_1 |
2000 | mario79 | 261 | ;--------------------------------------------------------------------- |
1951 | mario79 | 262 | @@: |
3184 | IgorA | 263 | xor [check2.flags],dword 10b |
1951 | mario79 | 264 | .space_check2_1: |
265 | call .draw_all_options_values |
||
266 | jmp .still |
||
267 | ;--------------------------------------------------------------------- |
||
268 | .down_arrow: |
||
269 | cmp [option_pointer],3 |
||
270 | je .still |
||
2000 | mario79 | 271 | |
1951 | mario79 | 272 | inc [option_pointer] |
273 | .draw_all_points: |
||
274 | call .set_pointers |
||
275 | call .draw_all_options_values |
||
276 | jmp .still |
||
277 | ;--------------------------------------------------------------------- |
||
278 | .up_arrow: |
||
279 | cmp [option_pointer],0 |
||
280 | je .still |
||
2000 | mario79 | 281 | |
1951 | mario79 | 282 | dec [option_pointer] |
283 | jmp .draw_all_points |
||
284 | ;--------------------------------------------------------------------- |
||
285 | .set_pointers: |
||
286 | cmp [option_pointer],0 |
||
287 | jne @f |
||
2000 | mario79 | 288 | |
1951 | mario79 | 289 | mov [plus_pointer],thread7.plus_slide_show_delay |
290 | mov [minus_pointer],thread7.minus_slide_show_delay |
||
291 | mov [space_pointer],thread7.still |
||
292 | ret |
||
293 | @@: |
||
294 | cmp [option_pointer],1 |
||
295 | jne @f |
||
2000 | mario79 | 296 | |
1951 | mario79 | 297 | mov [plus_pointer],thread7.plus_arrows_offset |
298 | mov [minus_pointer],thread7.minus_arrows_offset |
||
299 | mov [space_pointer],thread7.still |
||
300 | ret |
||
301 | @@: |
||
302 | cmp [option_pointer],2 |
||
303 | jne @f |
||
2000 | mario79 | 304 | |
1951 | mario79 | 305 | mov [plus_pointer],thread7.still |
306 | mov [minus_pointer],thread7.still |
||
307 | mov [space_pointer],thread7.space_check1 |
||
308 | ret |
||
309 | @@: |
||
310 | mov [plus_pointer],thread7.still |
||
311 | mov [minus_pointer],thread7.still |
||
312 | mov [space_pointer],thread7.space_check2 |
||
313 | ret |
||
314 | ;--------------------------------------------------------------------- |
||
315 | .draw_all_options_values: |
||
316 | call .draw_slide_show_delay |
||
317 | call .draw_arrows_offset |
||
318 | call .draw_check1 |
||
319 | call .draw_check2 |
||
320 | ret |
||
321 | ;--------------------------------------------------------------------- |
||
322 | ; ********************************************* |
||
323 | ; ******* WINDOW DEFINITIONS AND DRAW ******** |
||
324 | ; ********************************************* |
||
325 | .draw_window: |
||
326 | mcall 12,1 |
||
327 | xor eax,eax ; function 0 : define and draw window |
||
2000 | mario79 | 328 | xor esi,esi |
329 | mcall ,<100,300>,<100,120>,0x13909090,,optiontext |
||
1951 | mario79 | 330 | mcall 8,<15,10>,<50,11>,2,0xdddddd |
331 | inc edx |
||
332 | mcall ,<77,10> |
||
333 | ;--------------------------------- |
||
334 | inc edx |
||
335 | mcall ,<15,10>,<90,11> |
||
336 | inc edx |
||
337 | mcall ,<77,10> |
||
338 | ;--------------------------------- |
||
339 | inc edx |
||
340 | mcall ,<250,40>,<50,20> |
||
341 | ;--------------------------------- |
||
342 | mcall 4,<10,35>,0x80ffffff,slide_show_delay_title |
||
343 | mcall ,<17,53>,0x90000000,slide_show_delay_text |
||
344 | mcall ,<10,75>,0x80ffffff,arrows_offset_title |
||
345 | mcall ,<17,93>,0x90000000,slide_show_delay_text |
||
346 | mcall ,<265,57>, ,ok_btn |
||
347 | call .draw_all_options_values |
||
348 | ; mcall 47,0x80000,[PID5],<200, 5>,0xffffff |
||
349 | mcall 12,2 |
||
350 | ret |
||
351 | ;--------------------------------------------------------------------- |
||
352 | .draw_slide_show_delay: |
||
353 | mov edx,0xffffff |
||
354 | cmp [option_pointer],0 |
||
355 | jne @f |
||
2000 | mario79 | 356 | |
1951 | mario79 | 357 | mov edx,0xffff80 |
358 | @@: |
||
359 | mcall 13,<29,45>,<50,12>, |
||
360 | mcall 47,0x800a0000,[slide_show_delay],<32,52>,0x10000000; 0x40000000,0xffffff |
||
361 | ret |
||
362 | ;--------------------------------------------------------------------- |
||
363 | .draw_arrows_offset: |
||
364 | mov edx,0xffffff |
||
365 | cmp [option_pointer],1 |
||
366 | jne @f |
||
2000 | mario79 | 367 | |
1951 | mario79 | 368 | mov edx,0xffff80 |
369 | @@: |
||
370 | mcall 13,<29,45>,<90,12>, |
||
371 | mcall 47,0x800a0000,[arrows_offset],<32,92>,0x10000000; 0x40000000,0xffffff |
||
372 | ret |
||
373 | ;--------------------------------------------------------------------- |
||
374 | .draw_check1: |
||
375 | mov [check1+12],dword 0xffffff |
||
376 | cmp [option_pointer],2 |
||
377 | jne @f |
||
2000 | mario79 | 378 | |
1951 | mario79 | 379 | mov [check1+12],dword 0xffff80 |
380 | @@: |
||
381 | push dword check1 |
||
382 | call [check_box_draw] |
||
383 | ret |
||
384 | ;--------------------------------------------------------------------- |
||
385 | .draw_check2: |
||
386 | mov [check2+12],dword 0xffffff |
||
387 | cmp [option_pointer],3 |
||
388 | jne @f |
||
2000 | mario79 | 389 | |
1951 | mario79 | 390 | mov [check2+12],dword 0xffff80 |
391 | @@: |
||
392 | push dword check2 |
||
393 | call [check_box_draw] |
||
394 | ret |
||
395 | ;---------------------------------------------------------------------32,92>90,12>29,45>32,52>50,12>29,45>200,>265,57>17,93>10,75>17,53>10,35>50,20>250,40>77,10>90,11>15,10>77,10>50,11>15,10>100,120>100,300> |