Subversion Repositories Kolibri OS

Rev

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

Rev 3768 Rev 3771
Line 152... Line 152...
152
        mov     es, bx
152
        mov     es, bx
Line 153... Line 153...
153
 
153
 
154
        cmp     [v86_irqhooks+ebp*8], 0
154
        cmp     [v86_irqhooks+ebp*8], 0
Line 155... Line -...
155
        jnz     v86_irq
-
 
156
 
-
 
157
        cmp     bp, 6
-
 
158
        jnz     @f
-
 
159
        push    ebp
-
 
160
        call    [fdc_irq_func]
-
 
161
        pop     ebp
155
        jnz     v86_irq
Line 162... Line 156...
162
@@:
156
 
163
        bts     [irq_active_set], ebp
157
        bts     [irq_active_set], ebp
164
 
158
 
Line 202... Line 196...
202
; that it has acknowledged an IRQ, and assume that handlers with at least one
196
; that it has acknowledged an IRQ, and assume that handlers with at least one
203
; acknowledged IRQ are registered properly.
197
; acknowledged IRQ are registered properly.
204
; Note: this still isn't 100% correct, because two IRQs can fire simultaneously,
198
; Note: this still isn't 100% correct, because two IRQs can fire simultaneously,
205
; the better way would be to find the correct IRQ, but I don't know how to do
199
; the better way would be to find the correct IRQ, but I don't know how to do
206
; this in that case.
200
; this in that case.
207
; Also, [fdc_irq_func], [irq14_func], [irq15_func] could process interrupt
-
 
208
; but do not return whether they did it, so just ignore IRQs 6, 14, 15.
-
 
209
        cmp     ebp, 6
-
 
210
        jz      .fail
-
 
211
        push    ebp
201
        push    ebp
212
        xor     ebp, ebp
202
        xor     ebp, ebp
213
.try_other_irqs:
203
.try_other_irqs:
214
        cmp     ebp, [esp]
204
        cmp     ebp, [esp]
215
        jz      .try_next_irq
205
        jz      .try_next_irq
216
        cmp     ebp, 1
206
        cmp     ebp, 1
217
        jz      .try_next_irq
207
        jz      .try_next_irq
-
 
208
        cmp     ebp, 6
-
 
209
        jz      .try_next_irq
218
        cmp     ebp, 12
210
        cmp     ebp, 12
219
        jz      .try_next_irq
211
        jz      .try_next_irq
220
        cmp     ebp, 14
212
        cmp     ebp, 14
221
        jz      .try_next_irq
213
        jz      .try_next_irq
222
        cmp     ebp, 15
214
        cmp     ebp, 15