Subversion Repositories Kolibri OS

Rev

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