Subversion Repositories Kolibri OS

Rev

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

Rev 837 Rev 848
Line 42... Line 42...
42
;;  20.5.2002  Hd status check - VT                                ;;
42
;;  20.5.2002  Hd status check - VT                                ;;
43
;;  29.6.2002  Improved fat32 verification - VT                    ;;
43
;;  29.6.2002  Improved fat32 verification - VT                    ;;
44
;;                                                                 ;;
44
;;                                                                 ;;
45
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
45
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Line 46... Line 46...
46
 
46
 
Line 47... Line 47...
47
$Revision: 709 $
47
$Revision: 848 $
Line 48... Line 48...
48
 
48
 
Line 104... Line 104...
104
  fat_change           db 0       ; 1=fat has changed
104
  fat_change           db 0       ; 1=fat has changed
105
endg
105
endg
Line 106... Line 106...
106
 
106
 
Line -... Line 107...
-
 
107
reserve_hd1:
107
reserve_hd1:
108
 
-
 
109
    pushfd
108
 
110
    cli
109
    cli
111
 
Line 110... Line 112...
110
    cmp   [hd1_status],0
112
    cmp   [hd1_status],0                          ;FIXME  use mutex
-
 
113
    je    reserve_ok1
111
    je    reserve_ok1
114
 
112
 
115
    popfd
Line 113... Line 116...
113
    sti
116
 
Line 120... Line 123...
120
    mov   eax,[CURRENT_TASK]
123
    mov   eax,[CURRENT_TASK]
121
    shl   eax,5
124
    shl   eax,5
122
    mov   eax,[eax+CURRENT_TASK+TASKDATA.pid]
125
    mov   eax,[eax+CURRENT_TASK+TASKDATA.pid]
123
    mov   [hd1_status],eax
126
    mov   [hd1_status],eax
124
    pop   eax
127
    pop   eax
125
    sti
128
    popfd
126
    ret
129
    ret
127
;********************************************
130
;********************************************
Line 128... Line 131...
128
 
131
 
129
uglobal
132
uglobal
Line 136... Line 139...
136
        cmp     [hdpos], 0x80
139
        cmp     [hdpos], 0x80
137
        jae     .ret
140
        jae     .ret
138
    cmp   [hdbase], 0x1F0
141
    cmp   [hdbase], 0x1F0
139
    jne   .IDE_Channel_2
142
    jne   .IDE_Channel_2
140
.IDE_Channel_1:
143
.IDE_Channel_1:
-
 
144
    pushfd
141
    cli
145
    cli
142
    cmp   [IDE_Channel_1],0
146
    cmp   [IDE_Channel_1],0
143
    je    .reserve_ok_1
147
    je    .reserve_ok_1
144
    sti
148
    popfd
145
    call  change_task
149
    call  change_task
146
    jmp   .IDE_Channel_1
150
    jmp   .IDE_Channel_1
147
.IDE_Channel_2:
151
.IDE_Channel_2:
-
 
152
    pushfd
148
    cli
153
    cli
149
    cmp   [IDE_Channel_2],0
154
    cmp   [IDE_Channel_2],0
150
    je    .reserve_ok_2
155
    je    .reserve_ok_2
151
    sti
156
    popfd
152
    call  change_task
157
    call  change_task
153
    jmp   .IDE_Channel_2
158
    jmp   .IDE_Channel_2
154
.reserve_ok_1:
159
.reserve_ok_1:
155
        mov     [IDE_Channel_1], 1
160
        mov     [IDE_Channel_1], 1
-
 
161
        popfd
156
        push    eax
162
        push    eax
157
        mov     al, 1
163
        mov     al, 1
158
        jmp     @f
164
        jmp     @f
159
.reserve_ok_2:
165
.reserve_ok_2:
160
        mov     [IDE_Channel_2], 1
166
        mov     [IDE_Channel_2], 1
-
 
167
        popfd
161
        push    eax
168
        push    eax
162
        mov     al, 3
169
        mov     al, 3
163
@@:
170
@@:
164
        cmp     [hdid], 1
171
        cmp     [hdid], 1
165
        sbb     al, -1
172
        sbb     al, -1