Rev 26 | Rev 66 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 26 | Rev 40 | ||
---|---|---|---|
Line 2... | Line 2... | ||
2 | ;; IRQ0 HANDLER (TIMER INTERRUPT) ;; |
2 | ;; IRQ0 HANDLER (TIMER INTERRUPT) ;; |
3 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
3 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
Line 4... | Line 4... | ||
4 | 4 | ||
5 | align 32 |
5 | align 32 |
6 | irq0: |
- | |
7 | pushad |
6 | irq0: |
8 | push ds es |
7 | save_ring3_context |
9 | mov ax, os_data |
8 | mov ax, os_data |
10 | mov ds, ax |
9 | mov ds, ax |
Line 11... | Line 10... | ||
11 | mov es, ax |
10 | mov es, ax |
Line 43... | Line 42... | ||
43 | 42 | ||
44 | 43 | ||
45 | .waiting_for_termination: |
44 | .waiting_for_termination: |
- | 45 | .waiting_for_reuse: |
|
46 | .waiting_for_reuse: |
46 | .waiting_for_event: |
47 | .waiting_for_event: |
47 | .suspended: |
48 | cmp ebx, [0x3004] |
48 | cmp ebx, [0x3004] |
49 | jb @f |
49 | jb @f |
50 | mov edi, 0x3000 |
50 | mov edi, 0x3000 |
Line 51... | Line 51... | ||
51 | xor ebx, ebx |
51 | xor ebx, ebx |
52 | @@: |
52 | @@: |
Line 53... | Line 53... | ||
53 | 53 | ||
- | 54 | add edi,0x20 |
|
- | 55 | inc ebx |
|
- | 56 | ||
- | 57 | mov al, byte [edi+0xA] |
|
54 | add edi,0x20 |
58 | cmp al, 1 |
55 | inc ebx |
59 | jz .suspended |
56 | 60 | cmp al, 2 |
|
57 | mov al, byte [edi+0xA] |
61 | jz .suspended |
58 | cmp al, 3 |
62 | cmp al, 3 |
Line 99... | Line 103... | ||
99 | .switch: |
103 | .switch: |
100 | jmp pword [far_jump] |
104 | jmp pword [far_jump] |
101 | inc [context_counter] ;noname & halyavin |
105 | inc [context_counter] ;noname & halyavin |
102 | @@: |
106 | @@: |
Line 103... | Line 107... | ||
103 | 107 | ||
104 | pop es ds |
- | |
105 | popad |
108 | restore_ring3_context |
Line 106... | Line 109... | ||
106 | iret |
109 | iret |
107 | 110 |