4,9 → 4,9 |
jnz still |
or dword [status],4 |
|
call get_memory_for_tread_stack |
call get_memory_for_thread_stack |
mov [thread_stack_3],eax |
mcall 51,1,thread3 ;,thread_stack_3 |
mcall 51,1,thread3 ;thread_stack_3 |
jmp still |
;--------------------------------------------------------------------- |
thread3: ; start of bgrd thread |
14,115 → 14,74 |
mov eax,[ebx+30] |
mov [PID3],eax |
mcall 40, 0x7 |
;------------------------------ |
.red: |
call .draw_window |
|
;------------------------------ |
.still: |
|
mov eax,10 ; wait here for event |
mcall |
|
mcall 10 ; wait here for event |
cmp eax,1 ; redraw request ? |
je .red |
|
cmp eax,2 ; key in buffer ? |
je .close ;.key |
|
cmp eax,3 ; button in buffer ? |
je .button |
|
jmp .still |
|
;--------------------------------------------------------------------- |
; .key: |
; mcall |
; cmp ah,27 |
; je .close |
; jmp .still |
|
|
;--------------------------------------------------------------------- |
.button: ; button |
mov eax,17 ; get id |
mcall |
|
mcall 17 ; get id |
cmp ah,1 ; button id=1 ? |
je .close |
|
cmp ah,2 |
jne .still ;noclose3 |
|
.close: |
; btr dword [status],3 |
; bts dword [status],2 |
xor dword [status],4 |
xor eax,eax |
mov [PID3],eax |
mcall 68,13,[thread_stack_3] |
mov eax,-1 ; close this program |
mcall |
; .noclose: |
; jmp still3 |
|
|
|
|
mcall -1 ; close this program |
;--------------------------------------------------------------------- |
; ********************************************* |
; ******* WINDOW DEFINITIONS AND DRAW ******** |
; ********************************************* |
|
|
.draw_window: |
|
|
mov eax,12 ; function 12:tell os about windowdraw |
mov ebx,1 ; 1, start of draw |
mcall |
|
; DRAW WINDOW |
mcall 12,1 |
xor eax,eax ; function 0 : define and draw window |
mov ebx,100*65536+300 ; [x start] *65536 + [x size] |
mov ecx,100*65536+240 ; [y start] *65536 + [y size] |
mov edx,0x03eeeeee ; color of work area RRGGBB,8->color gl |
mcall |
|
mov ebx,120*65536+40 |
mov ecx,210*65536+20 |
mov edx,2 |
mov esi,0xdddddd |
mcall 8 |
|
pusha |
mcall 4,<20,30>,0x80000000,Authors_text.1 |
xor esi,esi |
mcall ,<100,300>,<100,240>,0x13eeeeee,,labelt3 |
mcall 8,<120,40>,<210,20>,2,0xdddddd |
add ebx,15 shl 16 |
shr ecx,16 |
mov bx,cx |
add ebx,6 |
xor ecx,ecx |
mcall 4,,,ok_btn,ok_btn.size |
mcall ,<20,30>,0x80000000,Authors_text.1 |
mcall ,<30,45>, ,Authors_text.2 |
|
mcall ,<30,60>, ,Authors_text.3 |
mcall ,<60,70>, ,Authors_text.4 |
mcall ,<60,80>, ,Authors_text.5 |
mcall ,<60,90>, ,Authors_text.6 |
mcall ,<60,100>, ,Authors_text.7 |
|
mcall ,<30,115>, ,Authors_text.8 |
mcall ,<60,125>, ,Authors_text.9 |
mcall ,<60,135>, ,Authors_text.10 |
|
mcall ,<30,150>, ,Authors_text.11 |
mcall ,<60,160>, ,Authors_text.12 |
|
mcall ,<30,175>, ,Authors_text.13 |
mcall ,<60,185>, ,Authors_text.14 |
popa |
|
add ebx,15 shl 16 |
shr ecx,16 |
mov bx,cx |
add ebx,6 |
|
mov ecx,0 |
mov edx, ok_btn |
mov esi, ok_btn.size ;2 |
mcall 4 |
|
; WINDOW LABEL |
mcall 71,1, labelt3 |
; mcall 47,0x80000,[PID3],<200, 5>,0xffffff |
mov eax,12 ; function 12:tell os about windowdraw |
mov ebx,2 ; 2, end of draw |
mcall |
|
mcall 12,2 |
ret |
;--------------------------------------------------------------------- |
;--------------------------------------------------------------------- |