Subversion Repositories Kolibri OS

Rev

Rev 92 | Rev 227 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 92 Rev 115
Line 35... Line 35...
35
     test  eax,eax
35
     test  eax,eax
36
     jne   eventoccur
36
     jne   eventoccur
37
   newwait:
37
   newwait:
Line 38... Line 38...
38
 
38
 
39
     mov   eax, [0x3010]
39
     mov   eax, [0x3010]
40
     mov   [eax+0xA], byte 5
40
     mov   [eax+TASKDATA.state], byte 5
Line 41... Line 41...
41
     call  change_task
41
     call  change_task
Line 42... Line 42...
42
 
42
 
Line 50... Line 50...
50
get_event_for_app:
50
get_event_for_app:
Line 51... Line 51...
51
 
51
 
Line 52... Line 52...
52
     pushad
52
     pushad
53
 
53
 
54
     mov   edi,[0x3010]              ; WINDOW REDRAW
54
     mov   edi,[0x3010]              ; WINDOW REDRAW
55
     test  [edi],dword 1
55
     test  [edi+TASKDATA.event_mask],dword 1
56
     jz    no_eventoccur1
56
     jz    no_eventoccur1
57
     ;mov   edi,[0x3010]
57
     ;mov   edi,[0x3010]
58
     cmp   [edi-twdw+31],byte 0
58
     cmp   [edi-twdw+WDATA.fl_redraw],byte 0
59
     je    no_eventoccur1
59
     je    no_eventoccur1
60
     popad
60
     popad
61
     mov   eax,1
61
     mov   eax,1
Line 62... Line 62...
62
     ret
62
     ret
63
   no_eventoccur1:
63
   no_eventoccur1:
64
 
64
 
65
     ;mov   edi,[0x3010]              ; KEY IN BUFFER
65
     ;mov   edi,[0x3010]              ; KEY IN BUFFER
66
     test  [edi],dword 2
66
     test  [edi+TASKDATA.event_mask],dword 2
67
     jz    no_eventoccur2
67
     jz    no_eventoccur2
68
     mov   ecx, [0x3000]
68
     mov   ecx, [0x3000]
Line 85... Line 85...
85
        cmp     eax, hotkey_buffer+120*8
85
        cmp     eax, hotkey_buffer+120*8
86
        jb      @b
86
        jb      @b
87
   no_eventoccur2:
87
   no_eventoccur2:
Line 88... Line 88...
88
 
88
 
89
     ;mov   edi,[0x3010]              ; BUTTON IN BUFFER
89
     ;mov   edi,[0x3010]              ; BUTTON IN BUFFER
90
     test  [edi],dword 4
90
     test  [edi+TASKDATA.event_mask],dword 4
91
     jz    no_eventoccur3
91
     jz    no_eventoccur3
92
     cmp   [0xf500],byte 0
92
     cmp   [0xf500],byte 0
93
     je    no_eventoccur3
93
     je    no_eventoccur3
94
     mov   ecx, [0x3000]
94
     mov   ecx, [0x3000]
Line 111... Line 111...
111
 
111
 
Line 112... Line 112...
112
   no_eventoccur3:
112
   no_eventoccur3:
113
   
113
   
114
   
114
   
115
     ;mov   edi,[0x3010]              ; mouse event
115
     ;mov   edi,[0x3010]              ; mouse event
116
     test  [edi],dword 00100000b
116
     test  [edi+TASKDATA.event_mask],dword 00100000b
117
     jz    no_mouse_event
117
     jz    no_mouse_event
118
     mov   eax,[0x3000]
118
     mov   eax,[0x3000]
119
     shl   eax,8
119
     shl   eax,8
120
     test  [eax+0x80000+0xA8],dword 00100000b
120
     test  [eax+0x80000+APPDATA.event_mask],dword 00100000b
121
     jz    no_mouse_event
121
     jz    no_mouse_event
122
     and   [eax+0x80000+0xA8],dword 0xffffffff-00100000b
122
     and   [eax+0x80000+APPDATA.event_mask],dword 0xffffffff-00100000b
123
     popad
123
     popad
Line 124... Line 124...
124
     mov   eax,6
124
     mov   eax,6
125
     ret
125
     ret
126
   no_mouse_event:
126
   no_mouse_event:
127
   
127
   
128
 
128
 
129
     ;mov   edi,[0x3010]              ; DESKTOP BACKGROUND REDRAW
129
     ;mov   edi,[0x3010]              ; DESKTOP BACKGROUND REDRAW
130
     test  [edi],dword 16
130
     test  [edi+TASKDATA.event_mask],dword 16
131
     jz    no_eventoccur5
131
     jz    no_eventoccur5
132
     cmp   [0xfff0],byte 2
132
     cmp   [0xfff0],byte 2
Line 133... Line 133...
133
     jnz   no_eventoccur5
133
     jnz   no_eventoccur5
134
     popad
134
     popad
135
     mov   eax,5
135
     mov   eax,5
136
     ret
136
     ret
137
   no_eventoccur5:
137
   no_eventoccur5:
138
 
138
 
139
     ;mov   edi,[0x3010]              ; IPC
139
     ;mov   edi,[0x3010]              ; IPC
140
     test  [edi],dword 01000000b
140
     test  [edi+TASKDATA.event_mask],dword 01000000b
141
     jz    no_ipc
141
     jz    no_ipc
142
     mov   eax,[0x3000]
142
     mov   eax,[0x3000]
143
     shl   eax,8
143
     shl   eax,8
144
     test  [eax+0x80000+0xA8],dword 01000000b
144
     test  [eax+0x80000+APPDATA.event_mask],dword 01000000b
Line 145... Line 145...
145
     jz    no_ipc
145
     jz    no_ipc
146
     and   [eax+0x80000+0xA8],dword 0xffffffff-01000000b
146
     and   [eax+0x80000+APPDATA.event_mask],dword 0xffffffff-01000000b
147
     popad
147
     popad
148
     mov   eax,7
148
     mov   eax,7
149
     ret
149
     ret
150
   no_ipc:
150
   no_ipc:
151
 
151
 
152
 
152
 
153
     ;mov   edi,[0x3010]              ; STACK
153
     ;mov   edi,[0x3010]              ; STACK
154
     test  [edi],dword 10000000b
154
     test  [edi+TASKDATA.event_mask],dword 10000000b
155
     jz    no_stack_event
155
     jz    no_stack_event
156
     mov   eax,[0x3000]
156
     mov   eax,[0x3000]
Line 157... Line 157...
157
     shl   eax,8
157
     shl   eax,8
158
     test  [eax+0x80000+0xA8],dword 10000000b
158
     test  [eax+0x80000+APPDATA.event_mask],dword 10000000b
159
     jz    no_stack_event
159
     jz    no_stack_event
160
     and   [eax+0x80000+0xA8],dword 0xffffffff-10000000b
160
     and   [eax+0x80000+APPDATA.event_mask],dword 0xffffffff-10000000b
161
     popad
161
     popad
162
     mov   eax,8
162
     mov   eax,8
163
     ret
163
     ret
164
   no_stack_event:
164
   no_stack_event:
165
 
165
 
166
     test  byte [edi+1], 1		; DEBUG
166
     test  byte [edi+TASKDATA.event_mask+1], 1		; DEBUG
167
     jz    no_debug_event
167
     jz    no_debug_event
Line 168... Line 168...
168
     mov   eax, [0x3000]
168
     mov   eax, [0x3000]
169
     shl   eax, 8
169
     shl   eax, 8
Line 170... Line 170...
170
     test  [eax+0x80000+0xA8+1], byte 1
170
     test  byte [eax+0x80000+APPDATA.event_mask+1], byte 1
171
     jz    no_debug_event
171
     jz    no_debug_event
172
     and   byte [eax+0x80000+0xA8+1], not 1
172
     and   byte [eax+0x80000+APPDATA.event_mask+1], not 1
173
     popad
173
     popad
174
     mov   eax, 9
174
     mov   eax, 9
175
     ret
175
     ret
176
   no_debug_event:
176
   no_debug_event:
177
 
177
 
178
     cmp   dword [edi], 0xFFFF
178
     cmp   dword [edi+TASKDATA.event_mask], 0xFFFF
179
     jbe   no_events
179
     jbe   no_events
180
 
180
 
181
     mov   esi,0x2e0000              ; IRQ'S AND DATA
181
     mov   esi,0x2e0000              ; IRQ'S AND DATA
182
     mov   ebx,0x00010000
182
     mov   ebx,0x00010000
183
     xor   ecx, ecx
183
     xor   ecx, ecx
184
   irq_event_test:
184
   irq_event_test:
185
     mov   edi,[0x3010]
185
     mov   edi,[0x3010]
186
     test  [edi],ebx
186
     test  [edi+TASKDATA.event_mask],ebx
187
     jz    no_irq_event
187
     jz    no_irq_event