Rev 92 | Rev 230 | 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 |