Rev 3 | Rev 6 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 3 | Rev 4 | ||
---|---|---|---|
Line 22... | Line 22... | ||
22 | mov eax,edi |
22 | mov eax,edi |
23 | shl edi, 3 |
23 | shl edi, 3 |
24 | ;clear busy flag in application's TSS |
24 | ;clear busy flag in application's TSS |
25 | mov [edi+gdts+ tss0 +5], word 01010000b *256 +11101001b |
25 | mov [edi+gdts+ tss0 +5], word 01010000b *256 +11101001b |
Line 26... | Line -... | ||
26 | - | ||
27 | ;save GDT TSS entry |
- | |
28 | ; mov edx,[edi+tss0_l] |
- | |
29 | ; mov [reg1+eax*4],edx |
- | |
30 | ; mov edx,[edi+tss0_l+4] |
- | |
31 | ; mov [reg2+eax*4],edx |
- | |
32 | ;and then write there i40's descriptor |
- | |
33 | ; mov edx,[tss0sys_l+edi] |
- | |
34 | ; mov [edi+tss0_l],edx |
- | |
35 | ; mov edx,[tss0sys_l+edi+4] |
- | |
36 | ; mov [edi+tss0_l+4],edx |
- | |
Line 37... | Line 26... | ||
37 | 26 | ||
38 | 27 | ||
Line 39... | Line 28... | ||
39 | shl edi,5 |
28 | shl edi,5 |
Line 86... | Line 75... | ||
86 | ; modify 3 program's registers (in its TSS) |
75 | ; modify 3 program's registers (in its TSS) |
87 | mov [esi+28],eax;[esi+l.eax-tss_sceleton], eax |
76 | mov [esi+28],eax;[esi+l.eax-tss_sceleton], eax |
88 | mov [esi+16],ebx;[esi+l.ebx-tss_sceleton], ebx |
77 | mov [esi+16],ebx;[esi+l.ebx-tss_sceleton], ebx |
89 | mov [esi+24],ecx;[esi+l.ecx-tss_sceleton], ecx |
78 | mov [esi+24],ecx;[esi+l.ecx-tss_sceleton], ecx |
Line 90... | Line -... | ||
90 | - | ||
91 | ; calculate app's TSS address |
- | |
92 | ; mov ebx, [0x3000] |
- | |
93 | ; shl ebx, 3 |
- | |
94 | ; add ebx, tss0_l |
- | |
95 | - | ||
96 | ; mov ecx, [0x3000] |
- | |
97 | - | ||
98 | ; restore saved TSS descriptor |
- | |
99 | ; mov eax, [reg1+ecx*4] |
- | |
100 | ; mov [ebx], eax |
- | |
101 | ; mov eax, [reg2+ecx*4] |
- | |
102 | ; mov [ebx+4], eax |
- | |
103 | 79 | ||
104 | xor eax, eax |
80 | xor eax, eax |
105 | mov edi, [0x3000] ; no syscall interrupt in use anymore |
81 | mov edi, [0x3000] ; no syscall interrupt in use anymore |
106 | shl edi, 8 |
82 | shl edi, 8 |
Line 107... | Line -... | ||
107 | mov [edi+0x80000+0xB0],eax |
- | |
108 | - | ||
109 | ; clear busy flag in TSS of this handler |
- | |
110 | ; mov edi, [0x3000] |
- | |
111 | ; shl edi, 3 |
- | |
112 | ; mov [edi+tss0sys_l +5], word 01010000b *256 +11101001b |
- | |
113 | - | ||
114 | ; add edi,tss0 |
- | |
115 | ; mov [0xB004], di |
- | |
116 | 83 | mov [edi+0x80000+0xB0],eax |
|
117 | ; jmp pword [0xB000] |
84 | |
118 | pop eax |
85 | pop eax |
Line 119... | Line 86... | ||
119 | mov ds,ax |
86 | mov ds,ax |