Rev 8271 | Rev 8993 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 8271 | Rev 8288 | ||
---|---|---|---|
Line 66... | Line 66... | ||
66 | ; rd 10 |
66 | ; rd 10 |
67 | ; |
67 | ; |
68 | ; Free area ; +68 |
68 | ; Free area ; +68 |
69 | ;--------------------------------------------------------------------- |
69 | ;--------------------------------------------------------------------- |
70 | use32 |
70 | use32 |
71 | org 0x0 |
71 | org 0 |
72 | - | ||
73 | db 'MENUET01' |
72 | db 'MENUET01' |
74 | dd 0x01 |
- | |
75 | dd START |
- | |
76 | dd IM_END |
- | |
77 | dd I_END |
- | |
78 | dd stacktop |
73 | dd 1, START, IM_END, I_END, stacktop, param, path |
79 | dd param |
- | |
80 | dd path |
- | |
81 | ;--------------------------------------------------------------------- |
74 | ;--------------------------------------------------------------------- |
82 | include '../../macros.inc' |
75 | include '../../macros.inc' |
- | 76 | include '../../proc32.inc' |
|
83 | include '../../KOSfuncs.inc' |
77 | include '../../KOSfuncs.inc' |
84 | include '../../load_lib.mac' |
78 | include '../../load_lib.mac' |
85 | include '../../develop/libraries/box_lib/trunk/box_lib.mac' |
79 | include '../../develop/libraries/box_lib/trunk/box_lib.mac' |
86 | ;include 'lang.inc' |
80 | ;include 'lang.inc' |
87 | ;include '../../debug.inc' |
81 | ;include '../../debug.inc' |
Line 103... | Line 97... | ||
103 | w_size_y = 350 |
97 | w_size_y = 350 |
104 | ;-------------------------------------- |
98 | ;-------------------------------------- |
105 | c_start_x = t_start_x + p_size_y + 10 |
99 | c_start_x = t_start_x + p_size_y + 10 |
106 | c_start_y = 10 |
100 | c_start_y = 10 |
Line 107... | Line 101... | ||
107 | 101 | ||
108 | c_size_x = 40 |
102 | c_size_x = 27 |
- | 103 | c_size_y = 20 |
|
109 | c_size_y = 20 |
104 | ed_size_x = 53 |
110 | ;--------------------------------------------------------------------- |
105 | ;--------------------------------------------------------------------- |
111 | x_minimal_size equ 350 |
106 | x_minimal_size equ 350 |
112 | y_minimal_size equ 250 |
107 | y_minimal_size equ 250 |
113 | ;--------------------------------------------------------------------- |
108 | ;--------------------------------------------------------------------- |
114 | START: |
- | |
115 | mcall 68,11 |
- | |
116 | mcall 66,1,1 |
- | |
117 | mcall 40,0x27 |
- | |
118 | ; mcall 40,0x7 |
109 | START: |
119 | call get_communication_area |
110 | mcall SF_SYS_MISC,SSF_HEAP_INIT |
120 | call get_active_pocess |
111 | ;mcall SF_KEYBOARD,SSF_SET_INPUT_MODE,1 |
121 | call clear_colors_history |
112 | mcall SF_SET_EVENTS_MASK,0x27 |
122 | ;-------------------------------------- |
113 | ;-------------------------------------- |
123 | load_libraries l_libs_start,end_l_libs |
114 | load_libraries l_libs_start,end_l_libs |
124 | test eax,eax |
115 | test eax,eax |
125 | jnz button.exit_2 |
116 | jnz button.exit_2 |
- | 117 | ;-------------------------------------- |
|
- | 118 | call get_communication_area |
|
- | 119 | call get_active_pocess |
|
126 | ;-------------------------------------- |
120 | call clear_colors_history |
127 | xor eax,eax |
121 | xor eax,eax |
128 | mov al,p_size_x |
122 | mov al,p_size_x |
129 | mov [palette_SIZE_X],eax |
123 | mov [palette_SIZE_X],eax |
130 | mov ax,p_size_y |
124 | mov ax,p_size_y |
Line 138... | Line 132... | ||
138 | ;-------------------------------------- |
132 | ;-------------------------------------- |
139 | mov ecx,[palette_SIZE_Y] |
133 | mov ecx,[palette_SIZE_Y] |
140 | imul ecx,[palette_SIZE_X] |
134 | imul ecx,[palette_SIZE_X] |
141 | lea ecx,[ecx*3] |
135 | lea ecx,[ecx*3] |
142 | inc ecx ;reserve for stosd |
136 | inc ecx ;reserve for stosd |
143 | mcall 68,12 |
137 | mcall SF_SYS_MISC,SSF_MEM_ALLOC |
144 | mov [palette_area],eax |
138 | mov [palette_area],eax |
145 | ;-------------------------------------- |
139 | ;-------------------------------------- |
146 | call create_palette |
140 | call create_palette |
147 | ;-------------------------------------- |
141 | ;-------------------------------------- |
148 | mov ecx,[tone_SIZE_Y] |
142 | mov ecx,[tone_SIZE_Y] |
149 | imul ecx,[tone_SIZE_X] |
143 | imul ecx,[tone_SIZE_X] |
150 | lea ecx,[ecx*3] |
144 | lea ecx,[ecx*3] |
151 | inc ecx ;reserve for stosd |
145 | inc ecx ;reserve for stosd |
152 | mcall 68,12 |
146 | mcall SF_SYS_MISC,SSF_MEM_ALLOC |
153 | mov [tone_area],eax |
147 | mov [tone_area],eax |
154 | ;-------------------------------------- |
148 | ;-------------------------------------- |
155 | call create_tone |
149 | call create_tone |
156 | ;--------------------------------------------------------------------- |
150 | ;--------------------------------------------------------------------- |
157 | align 4 |
151 | align 4 |
158 | red: |
152 | red: |
159 | call draw_window |
153 | call draw_window |
160 | ;--------------------------------------------------------------------- |
154 | ;--------------------------------------------------------------------- |
161 | align 4 |
155 | align 4 |
162 | still: |
156 | still: |
163 | mcall 10 |
157 | mcall SF_WAIT_EVENT |
Line 164... | Line 158... | ||
164 | 158 | ||
165 | cmp eax,1 |
159 | cmp eax,1 |
Line 166... | Line 160... | ||
166 | je red |
160 | je red |
Line 176... | Line 170... | ||
176 | 170 | ||
177 | jmp still |
171 | jmp still |
178 | ;--------------------------------------------------------------------- |
172 | ;--------------------------------------------------------------------- |
179 | align 4 |
173 | align 4 |
180 | button: |
174 | button: |
Line 181... | Line 175... | ||
181 | mcall 17 |
175 | mcall SF_GET_BUTTON |
182 | 176 | ||
Line 183... | Line 177... | ||
183 | cmp ah, 2 |
177 | cmp ah, 2 |
Line 234... | Line 228... | ||
234 | 228 | ||
235 | call get_window_param |
229 | call get_window_param |
236 | mov ebx,[communication_area] |
230 | mov ebx,[communication_area] |
237 | mov ecx,procinfo |
231 | mov ecx,procinfo |
238 | ; mov eax,[window_x] |
232 | ; mov eax,[window_x] |
239 | mov eax,[ecx+34] |
233 | mov eax,[ecx+process_information.box.left] |
240 | shl eax,16 |
234 | shl eax,16 |
241 | add eax,[ecx+42] |
235 | add eax,[ecx+process_information.box.width] |
242 | mov [ebx+4],eax |
236 | mov [ebx+4],eax |
243 | ; mov eax,[window_y] |
237 | ; mov eax,[window_y] |
244 | mov eax,[ecx+38] |
238 | mov eax,[ecx+process_information.box.top] |
245 | shl eax,16 |
239 | shl eax,16 |
246 | add eax,[ecx+46] |
240 | add eax,[ecx+process_information.box.height] |
247 | mov [ebx+8],eax |
241 | mov [ebx+8],eax |
248 | ;-------------------------------------- |
242 | ;-------------------------------------- |
249 | align 4 |
243 | align 4 |
250 | .exit_2: |
244 | .exit_2: |
251 | mcall -1 |
245 | mcall SF_TERMINATE_PROCESS |
252 | ;--------------------------------------------------------------------- |
246 | ;--------------------------------------------------------------------- |
253 | align 4 |
247 | align 4 |
254 | get_window_param: |
248 | get_window_param: |
255 | mcall 9,procinfo,-1 |
249 | mcall SF_THREAD_INFO,procinfo,-1 |
256 | mov eax,[ebx+66] |
250 | mov eax,[ebx+process_information.client_box.height] |
257 | inc eax |
251 | inc eax |
258 | ; mov [window_high],eax |
252 | ; mov [window_high],eax |
259 | mov eax,[ebx+62] |
253 | mov eax,[ebx+process_information.client_box.width] |
260 | inc eax |
254 | inc eax |
261 | ; mov [window_width],eax |
255 | ; mov [window_width],eax |
262 | mov eax,[ebx+70] |
256 | mov eax,dword[ebx+process_information.wnd_state] |
263 | ; mov [window_status],eax |
257 | ; mov [window_status],eax |
264 | ret |
258 | ret |
265 | ;--------------------------------------------------------------------- |
259 | ;--------------------------------------------------------------------- |
266 | align 4 |
260 | align 4 |
267 | get_communication_area: |
- | |
268 | xor eax,eax |
261 | get_communication_area: |
269 | mov al,[param] |
262 | movzx eax,byte[param] |
270 | test eax,eax |
263 | test eax,eax |
271 | jz @f |
264 | jz @f |
272 | mcall 68,22,param,,0x01 |
265 | mcall SF_SYS_MISC,SSF_MEM_OPEN,param,,0x01 |
273 | mov [communication_area],eax |
266 | mov [communication_area],eax |
274 | ; movzx ebx,word [eax+2] |
267 | ; movzx ebx,word [eax+2] |
Line 275... | Line 268... | ||
275 | ; mov [color_dialog_type],ebx |
268 | ; mov [color_dialog_type],ebx |
Line 287... | Line 280... | ||
287 | @@: |
280 | @@: |
288 | ret |
281 | ret |
289 | ;--------------------------------------------------------------------- |
282 | ;--------------------------------------------------------------------- |
290 | align 4 |
283 | align 4 |
291 | get_active_pocess: |
284 | get_active_pocess: |
292 | mcall 9,procinfo,-1 |
285 | mcall SF_THREAD_INFO,procinfo,-1 |
293 | mov ecx,[ebx+30] ; PID |
286 | mov ecx,[ebx+process_information.PID] |
294 | mcall 18,21 |
287 | mcall SF_SYSTEM,SSF_GET_THREAD_SLOT |
295 | mov [active_process],eax ; WINDOW SLOT |
288 | mov [active_process],eax ; WINDOW SLOT |
296 | mov ebx,[communication_area] |
289 | mov ebx,[communication_area] |
297 | test ebx,ebx |
290 | test ebx,ebx |
298 | jz .1 |
291 | jz .1 |
299 | mov [ebx+12],eax ; WINDOW SLOT to com. area |
292 | mov [ebx+12],eax ; WINDOW SLOT to com. area |
Line 332... | Line 325... | ||
332 | @@: |
325 | @@: |
333 | ret |
326 | ret |
334 | ;--------------------------------------------------------------------- |
327 | ;--------------------------------------------------------------------- |
335 | align 4 |
328 | align 4 |
336 | palette_button: |
329 | palette_button: |
337 | mcall 37,1 |
330 | mcall SF_MOUSE_GET,SSF_WINDOW_POSITION |
338 | and eax,0xffff |
331 | and eax,0xffff |
339 | sub eax,p_start_y |
332 | sub eax,p_start_y |
340 | imul eax,p_size_x |
333 | imul eax,p_size_x |
341 | lea eax,[eax+eax*2] |
334 | lea eax,[eax+eax*2] |
342 | add eax,[palette_area] |
335 | add eax,[palette_area] |
Line 349... | Line 342... | ||
349 | call draw_scrollbars |
342 | call draw_scrollbars |
350 | jmp still |
343 | jmp still |
351 | ;--------------------------------------------------------------------- |
344 | ;--------------------------------------------------------------------- |
352 | align 4 |
345 | align 4 |
353 | tone_button: |
346 | tone_button: |
354 | mcall 37,1 |
347 | mcall SF_MOUSE_GET,SSF_WINDOW_POSITION |
355 | mov ebx,eax |
348 | mov ebx,eax |
356 | and eax,0xffff |
349 | and eax,0xffff |
357 | shr ebx,16 |
350 | shr ebx,16 |
358 | sub eax,t_start_y |
351 | sub eax,t_start_y |
359 | imul eax,p_size_y |
352 | imul eax,p_size_y |
Line 380... | Line 373... | ||
380 | ;--------------------------------------------------------------------- |
373 | ;--------------------------------------------------------------------- |
381 | align 4 |
374 | align 4 |
382 | prepare_scrollbars_position_from_color: |
375 | prepare_scrollbars_position_from_color: |
383 | ; in: eax = selected color |
376 | ; in: eax = selected color |
384 | movzx ebx,al |
377 | movzx ebx,al |
- | 378 | inc bl |
|
- | 379 | neg bl |
|
385 | mov [scroll_bar_data_blue.position],ebx |
380 | mov [scroll_bar_data_blue.position],ebx |
386 | shr eax,8 |
381 | shr eax,8 |
387 | mov bl,al |
382 | mov bl,al |
- | 383 | inc bl |
|
- | 384 | neg bl |
|
388 | mov [scroll_bar_data_green.position],ebx |
385 | mov [scroll_bar_data_green.position],ebx |
389 | shr eax,8 |
386 | shr eax,8 |
390 | mov bl,al |
387 | mov bl,al |
- | 388 | inc bl |
|
- | 389 | neg bl |
|
391 | mov [scroll_bar_data_red.position],ebx |
390 | mov [scroll_bar_data_red.position],ebx |
392 | ret |
391 | ret |
393 | ;--------------------------------------------------------------------- |
392 | ;--------------------------------------------------------------------- |
394 | align 4 |
393 | align 4 |
395 | prepare_color_from_scrollbars_position: |
394 | prepare_color_from_scrollbars_position: |
396 | ; out: ebx = selected color |
395 | ; out: ebx = selected color |
397 | mov eax,[scroll_bar_data_red.position] |
396 | mov eax,[scroll_bar_data_red.position] |
- | 397 | inc al |
|
- | 398 | neg al |
|
398 | movzx ebx,al |
399 | movzx ebx,al |
399 | shl ebx,8 |
400 | shl ebx,8 |
400 | mov eax,[scroll_bar_data_green.position] |
401 | mov eax,[scroll_bar_data_green.position] |
- | 402 | inc al |
|
- | 403 | neg al |
|
401 | mov bl,al |
404 | mov bl,al |
402 | shl ebx,8 |
405 | shl ebx,8 |
403 | mov eax,[scroll_bar_data_blue.position] |
406 | mov eax,[scroll_bar_data_blue.position] |
- | 407 | inc al |
|
- | 408 | neg al |
|
404 | mov bl,al |
409 | mov bl,al |
405 | ret |
410 | ret |
406 | ;--------------------------------------------------------------------- |
411 | ;--------------------------------------------------------------------- |
407 | align 4 |
412 | align 4 |
408 | key: |
413 | key: |
409 | mcall 2 |
414 | mcall SF_GET_KEY |
- | 415 | test word[edit1.flags],10b ;ed_focus |
|
- | 416 | je still |
|
- | 417 | stdcall [edit_box_key], edit1 |
|
- | 418 | stdcall conv_str_to_int, [edit1.text] |
|
- | 419 | cmp [selected_color],eax |
|
- | 420 | je still |
|
- | 421 | mov [selected_color],eax |
|
- | 422 | call prepare_scrollbars_position_from_color |
|
- | 423 | ;call draw_selected_color |
|
- | 424 | mcall SF_DRAW_RECT, |
|
- | 425 | call draw_scrollbars |
|
410 | jmp still |
426 | jmp still |
411 | ;--------------------------------------------------------------------- |
427 | ;--------------------------------------------------------------------- |
412 | align 4 |
428 | align 4 |
413 | mouse: |
429 | mouse: |
414 | cmp [scroll_bar_data_red.delta2],0 |
430 | cmp [scroll_bar_data_red.delta2],0 |
Line 418... | Line 434... | ||
418 | cmp [scroll_bar_data_blue.delta2],0 |
434 | cmp [scroll_bar_data_blue.delta2],0 |
419 | jne .blue |
435 | jne .blue |
420 | ;-------------------------------------- |
436 | ;-------------------------------------- |
421 | align 4 |
437 | align 4 |
422 | .red: |
438 | .red: |
423 | push dword scroll_bar_data_red |
- | |
424 | call [scrollbar_ver_mouse] |
439 | stdcall [scrollbar_ver_mouse], scroll_bar_data_red |
425 | cmp [scroll_bar_data_red.delta2],0 |
440 | cmp [scroll_bar_data_red.delta2],0 |
426 | jne @f |
441 | jne @f |
427 | ;-------------------------------------- |
442 | ;-------------------------------------- |
428 | align 4 |
443 | align 4 |
429 | .green: |
444 | .green: |
430 | push dword scroll_bar_data_green |
445 | stdcall [scrollbar_ver_mouse], scroll_bar_data_green |
431 | call [scrollbar_ver_mouse] |
- | |
432 | cmp [scroll_bar_data_green.delta2],0 |
446 | cmp [scroll_bar_data_green.delta2],0 |
433 | jne @f |
447 | jne @f |
434 | ;-------------------------------------- |
448 | ;-------------------------------------- |
435 | align 4 |
449 | align 4 |
436 | .blue: |
450 | .blue: |
437 | push dword scroll_bar_data_blue |
- | |
438 | call [scrollbar_ver_mouse] |
451 | stdcall [scrollbar_ver_mouse], scroll_bar_data_blue |
439 | ; cmp [scroll_bar_data_blue.delta2],0 |
452 | cmp [scroll_bar_data_blue.delta2],0 |
440 | ; jne @f |
453 | jne @f |
441 | ;-------------------------------------- |
454 | ;-------------------------------------- |
442 | align 4 |
455 | align 4 |
443 | @@: |
456 | @@: |
- | 457 | stdcall [edit_box_mouse], edit1 |
|
444 | call prepare_color_from_scrollbars_position |
458 | call prepare_color_from_scrollbars_position |
445 | cmp [selected_color],ebx |
459 | cmp [selected_color],ebx |
446 | je still |
460 | je still |
447 | mov [selected_color],ebx |
461 | mov [selected_color],ebx |
448 | call draw_selected_color |
462 | call draw_selected_color |
449 | jmp still |
463 | jmp still |
450 | ;--------------------------------------------------------------------- |
464 | ;--------------------------------------------------------------------- |
451 | align 4 |
465 | align 4 |
452 | draw_selected_color: |
466 | draw_selected_color: |
453 | mcall 13, |
467 | mcall SF_DRAW_RECT, |
454 | mcall 13, |
468 | stdcall hex_in_str, sz_0x+2,[selected_color],6 |
455 | mov ecx,[selected_color] |
469 | mov byte[sz_0x+8],0 |
456 | and ecx,0xffffff |
470 | stdcall [edit_box_set_text],edit1,sz_0x |
457 | mcall 47,0x00060100,, |
471 | stdcall [edit_box_draw],edit1 |
458 | ret |
472 | ret |
459 | ;--------------------------------------------------------------------- |
473 | ;--------------------------------------------------------------------- |
460 | align 4 |
474 | align 4 |
461 | create_and_draw_tone: |
475 | create_and_draw_tone: |
462 | call create_tone |
476 | call create_tone |
463 | call draw_tone |
477 | call draw_tone |
464 | ret |
478 | ret |
465 | ;--------------------------------------------------------------------- |
479 | ;--------------------------------------------------------------------- |
466 | align 4 |
480 | align 4 |
467 | draw_tone: |
481 | draw_tone: |
468 | mcall 65,[tone_area],<[tone_SIZE_X],[tone_SIZE_Y]>, |
482 | mcall SF_PUT_IMAGE_EXT,[tone_area],<[tone_SIZE_X],[tone_SIZE_Y]>, |
469 | ret |
483 | ret |
470 | ;--------------------------------------------------------------------- |
484 | ;--------------------------------------------------------------------- |
- | 485 | align 4 |
|
471 | draw_scrollbars: |
486 | draw_scrollbars: |
472 | push dword scroll_bar_data_red |
487 | stdcall [scrollbar_ver_draw], scroll_bar_data_red |
473 | call [scrollbar_ver_draw] |
- | |
474 | push dword scroll_bar_data_green |
488 | stdcall [scrollbar_ver_draw], scroll_bar_data_green |
475 | call [scrollbar_ver_draw] |
- | |
476 | push dword scroll_bar_data_blue |
489 | stdcall [scrollbar_ver_draw], scroll_bar_data_blue |
477 | call [scrollbar_ver_draw] |
- | |
478 | ret |
490 | ret |
479 | ;--------------------------------------------------------------------- |
491 | ;--------------------------------------------------------------------- |
480 | align 4 |
492 | align 4 |
481 | draw_history_frame: |
493 | draw_history_frame: |
482 | mov [frame_data.x],dword (c_start_x+c_size_x*2+10*2)*65536+80 |
494 | mov [frame_data.x],dword (c_start_x+c_size_x+ed_size_x+10*2)*65536+80 |
483 | mov [frame_data.y],dword (p_start_y+5)*65536+(p_size_y-5) |
495 | mov [frame_data.y],dword (p_start_y+5)*65536+(p_size_y-5) |
Line 484... | Line 496... | ||
484 | 496 | ||
Line 485... | Line 497... | ||
485 | mov [frame_data.draw_text_flag],dword 1 |
497 | mov [frame_data.draw_text_flag],dword 1 |
486 | - | ||
487 | mov [frame_data.text_pointer],dword history_text |
498 | |
488 | push dword frame_data |
499 | mov [frame_data.text_pointer],dword history_text |
489 | call [Frame_draw] |
500 | stdcall [Frame_draw], frame_data |
490 | ret |
501 | ret |
491 | ;--------------------------------------------------------------------- |
502 | ;--------------------------------------------------------------------- |
492 | align 4 |
503 | align 4 |
493 | draw_button_row: |
504 | draw_button_row: |
494 | mov edx,0x60000000 + 30 ; BUTTON ROW |
505 | mov edx,0x60000000 + 30 ; BUTTON ROW |
495 | ; mov ebx,220*65536+14 |
506 | ; mov ebx,220*65536+14 |
496 | mov ebx,(c_start_x+c_size_x*2+10*3)*65536+14 |
507 | mov ebx,(c_start_x+c_size_x+ed_size_x+10*3)*65536+14 |
497 | mov ecx,25*65536+14 |
508 | mov ecx,25*65536+14 |
498 | mov eax,8 |
509 | mov eax,SF_DEFINE_BUTTON |
499 | ;----------------------------------- |
510 | ;----------------------------------- |
500 | align 4 |
511 | align 4 |
501 | .newb: |
512 | .newb: |
Line 506... | Line 517... | ||
506 | jbe .newb |
517 | jbe .newb |
507 | ret |
518 | ret |
508 | ;--------------------------------------------------------------------- |
519 | ;--------------------------------------------------------------------- |
509 | align 4 |
520 | align 4 |
510 | draw_color_value: |
521 | draw_color_value: |
511 | mov ebx,(c_start_x+c_size_x*3+10)*65536+(c_size_x-1) |
522 | movzx ebx,word[frame_data.x_start] |
- | 523 | shl ebx,16 |
|
- | 524 | add ebx,(22 shl 16)+39 |
|
512 | mov ecx,28*65536+11 |
525 | mov ecx,28*65536+11 |
513 | mov edx,0xffffff |
526 | mov edx,0xffffff |
514 | mov eax,13 |
527 | mov eax,SF_DRAW_RECT |
515 | mov edi,10 |
528 | mov edi,10 |
516 | mov esi,[communication_area] |
529 | mov esi,[communication_area] |
517 | add esi,28 |
530 | add esi,28 |
518 | ;----------------------------------- |
531 | ;----------------------------------- |
519 | align 4 |
532 | align 4 |
520 | @@: |
533 | @@: |
521 | mcall |
534 | mcall |
522 | pusha |
535 | pusha |
523 | mov edx,ebx |
- | |
524 | add edx,2 shl 16 |
536 | lea edx,[ebx+(2 shl 16)] |
525 | shr ecx,16 |
537 | shr ecx,16 |
526 | mov dx,cx |
538 | mov dx,cx |
527 | add dx,2 |
539 | add dx,2 |
528 | mov ecx,[esi] |
540 | mov ecx,[esi] |
529 | and ecx,0xffffff |
541 | and ecx,0xffffff |
530 | mcall 47,0x00060100,,,0 |
542 | mcall SF_DRAW_NUMBER,0x00060100,,,0 |
531 | popa |
543 | popa |
Line 532... | Line 544... | ||
532 | 544 | ||
533 | add ecx,24*65536 |
545 | add ecx,24*65536 |
534 | add esi,4 |
546 | add esi,4 |
Line 541... | Line 553... | ||
541 | draw_colours: |
553 | draw_colours: |
542 | mov edi,10 |
554 | mov edi,10 |
543 | mov esi,[communication_area] |
555 | mov esi,[communication_area] |
544 | add esi,28 |
556 | add esi,28 |
545 | ; mov ebx,220*65536+14 |
557 | ; mov ebx,220*65536+14 |
546 | mov ebx,(c_start_x+c_size_x*2+10*3)*65536+14 |
558 | mov ebx,(c_start_x+c_size_x+ed_size_x+10*3)*65536+14 |
547 | mov ecx,27*65536+14 |
559 | mov ecx,27*65536+14 |
548 | mov eax,13 |
560 | mov eax,SF_DRAW_RECT |
549 | mov [frame_data.draw_text_flag],dword 0 |
561 | mov [frame_data.draw_text_flag],dword 0 |
550 | ;-------------------------------------- |
562 | ;-------------------------------------- |
551 | align 4 |
563 | align 4 |
552 | newcol: |
564 | newcol: |
553 | mov edx,[esi] |
565 | mov edx,[esi] |
Line 561... | Line 573... | ||
561 | add cx,4 |
573 | add cx,4 |
Line 562... | Line 574... | ||
562 | 574 | ||
563 | mov [frame_data.x],ebx |
575 | mov [frame_data.x],ebx |
Line 564... | Line -... | ||
564 | mov [frame_data.y],ecx |
- | |
565 | 576 | mov [frame_data.y],ecx |
|
Line 566... | Line 577... | ||
566 | push dword frame_data |
577 | |
Line 567... | Line 578... | ||
567 | call [Frame_draw] |
578 | stdcall [Frame_draw], frame_data |
568 | 579 | ||
Line 576... | Line 587... | ||
576 | 587 | ||
577 | ret |
588 | ret |
578 | ;---------------------------------------------------------------------- |
589 | ;---------------------------------------------------------------------- |
579 | align 4 |
590 | align 4 |
580 | draw_window: |
591 | draw_window: |
581 | mcall 12,1 |
592 | mcall SF_REDRAW,SSF_BEGIN_DRAW |
582 | ; mcall 0, |
593 | ; mcall SF_CREATE_WINDOW, |
583 | xor esi,esi |
594 | xor esi,esi |
584 | mcall 0,[window_x],[window_y], 0x34EEEeee,,title |
595 | mcall SF_CREATE_WINDOW,[window_x],[window_y], 0x34EEEeee,,title |
585 | mcall 8, |
596 | mcall SF_DEFINE_BUTTON, |
586 | mcall , |
597 | mcall , |
587 | mcall ,<296,80>,<280,22>,4,0x37A4D4 |
598 | mcall ,<296,80>,<280,22>,4,0x37A4D4 |
588 | mcall ,<402,80>, ,1 |
599 | mcall ,<402,80>, ,1 |
589 | mcall 4,<332,289>,0x802C7B9E,OK_Cancel |
600 | mcall SF_DRAW_TEXT,<332,289>,0x802C7B9E,OK_Cancel |
590 | mcall ,<331,288>,0x80FFFfff |
601 | mcall ,<331,288>,0x80FFFfff |
591 | xor ebp,ebp |
602 | xor ebp,ebp |
592 | mcall 65,[palette_area],<[palette_SIZE_X],[palette_SIZE_Y]>, |
603 | mcall SF_PUT_IMAGE_EXT,[palette_area],<[palette_SIZE_X],[palette_SIZE_Y]>, |
593 | call draw_tone |
604 | call draw_tone |
594 | call draw_selected_color |
605 | call draw_selected_color |
595 | xor eax,eax |
606 | xor eax,eax |
596 | inc eax |
607 | inc eax |
Line 600... | Line 611... | ||
600 | call draw_scrollbars |
611 | call draw_scrollbars |
601 | call draw_history_frame |
612 | call draw_history_frame |
602 | call draw_button_row |
613 | call draw_button_row |
603 | call draw_colours |
614 | call draw_colours |
604 | call draw_color_value |
615 | call draw_color_value |
- | 616 | mcall SF_REDRAW,SSF_END_DRAW |
|
- | 617 | ret |
|
- | 618 | ;--------------------------------------------------------------------- |
|
- | 619 | align 4 |
|
- | 620 | proc hex_in_str, buf:dword,val:dword,zif:dword |
|
- | 621 | pushad |
|
- | 622 | mov edi,[buf] |
|
- | 623 | mov ecx,[zif] |
|
- | 624 | add edi,ecx |
|
- | 625 | dec edi |
|
- | 626 | mov ebx,[val] |
|
- | 627 | ||
- | 628 | .cycle: |
|
- | 629 | mov al,bl |
|
- | 630 | and al,0xf |
|
- | 631 | cmp al,10 |
|
- | 632 | jl @f |
|
- | 633 | add al,'A'-'0'-10 |
|
- | 634 | @@: |
|
- | 635 | add al,'0' |
|
- | 636 | mov byte[edi],al |
|
- | 637 | dec edi |
|
- | 638 | shr ebx,4 |
|
- | 639 | loop .cycle |
|
- | 640 | popad |
|
- | 641 | ret |
|
- | 642 | endp |
|
- | 643 | ;--------------------------------------------------------------------- |
|
- | 644 | ;input: |
|
- | 645 | ; buf - указатель на строку, число должно быть в 10 или 16 ричном виде |
|
- | 646 | ;output: |
|
- | 647 | ; eax - число |
|
- | 648 | align 4 |
|
- | 649 | proc conv_str_to_int uses ebx ecx esi, buf:dword |
|
- | 650 | xor eax,eax |
|
- | 651 | xor ebx,ebx |
|
- | 652 | mov esi,[buf] |
|
- | 653 | ||
- | 654 | ;на случай если перед числом находятся пробелы |
|
- | 655 | @@: |
|
- | 656 | cmp byte[esi],' ' |
|
- | 657 | jne @f |
|
- | 658 | inc esi |
|
- | 659 | jmp @b |
|
- | 660 | @@: |
|
- | 661 | ||
- | 662 | ;определение отрицательных чисел |
|
- | 663 | xor ecx,ecx |
|
- | 664 | inc ecx |
|
- | 665 | cmp byte[esi],'-' |
|
- | 666 | jne @f |
|
- | 667 | dec ecx |
|
- | 668 | inc esi |
|
- | 669 | @@: |
|
- | 670 | ||
- | 671 | cmp word[esi],'0x' |
|
- | 672 | je .load_digit_16 |
|
- | 673 | ||
- | 674 | .load_digit_10: ;считывание 10-тичных цифр |
|
- | 675 | mov bl,byte[esi] |
|
- | 676 | cmp bl,'0' |
|
- | 677 | jl @f |
|
- | 678 | cmp bl,'9' |
|
- | 679 | jg @f |
|
- | 680 | sub bl,'0' |
|
- | 681 | imul eax,10 |
|
- | 682 | add eax,ebx |
|
- | 683 | inc esi |
|
- | 684 | jmp .load_digit_10 |
|
- | 685 | jmp @f |
|
- | 686 | ||
- | 687 | .load_digit_16: ;считывание 16-ричных цифр |
|
- | 688 | add esi,2 |
|
605 | mcall 12,2 |
689 | .cycle_16: |
- | 690 | mov bl,byte[esi] |
|
- | 691 | cmp bl,'0' |
|
- | 692 | jl @f |
|
- | 693 | cmp bl,'f' |
|
- | 694 | jg @f |
|
- | 695 | cmp bl,'9' |
|
- | 696 | jle .us1 |
|
- | 697 | cmp bl,'A' |
|
- | 698 | jl @f ;отсеиваем символы >'9' и <'A' |
|
- | 699 | .us1: ;составное условие |
|
- | 700 | cmp bl,'F' |
|
- | 701 | jle .us2 |
|
- | 702 | cmp bl,'a' |
|
- | 703 | jl @f ;отсеиваем символы >'F' и <'a' |
|
- | 704 | sub bl,32 ;переводим символы в верхний регистр, для упрощения их последущей обработки |
|
- | 705 | .us2: ;составное условие |
|
- | 706 | sub bl,'0' |
|
- | 707 | cmp bl,9 |
|
- | 708 | jle .cor1 |
|
- | 709 | sub bl,7 ;convert 'A' to '10' |
|
- | 710 | .cor1: |
|
- | 711 | shl eax,4 |
|
- | 712 | add eax,ebx |
|
- | 713 | inc esi |
|
- | 714 | jmp .cycle_16 |
|
- | 715 | @@: |
|
- | 716 | cmp ecx,0 ;если число отрицательное |
|
- | 717 | jne @f |
|
- | 718 | sub ecx,eax |
|
- | 719 | mov eax,ecx |
|
- | 720 | @@: |
|
606 | ret |
721 | ret |
- | 722 | endp |
|
607 | ;--------------------------------------------------------------------- |
723 | ;--------------------------------------------------------------------- |
608 | include 'palette.inc' |
724 | include 'palette.inc' |
609 | ;--------------------------------------------------------------------- |
725 | ;--------------------------------------------------------------------- |
610 | include 'tone.inc' |
726 | include 'tone.inc' |
611 | ;--------------------------------------------------------------------- |
727 | ;--------------------------------------------------------------------- |