Subversion Repositories Kolibri OS

Rev

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

Rev 1505 Rev 3519
Line 3... Line 3...
3
;; Copyright (C) KolibriOS team 2004-2007. All rights reserved. ;;
3
;; Copyright (C) KolibriOS team 2004-2007. All rights reserved. ;;
4
;; Distributed under terms of the GNU General Public License    ;;
4
;; Distributed under terms of the GNU General Public License    ;;
5
;;                                                              ;;
5
;;                                                              ;;
6
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
6
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Line 7... Line 7...
7
 
7
 
Line 8... Line 8...
8
$Revision: 1276 $
8
$Revision: 3519 $
9
 
9
 
10
 
10
 
Line 19... Line 19...
19
;****************************************************
19
;****************************************************
20
FindHDD:
20
FindHDD:
21
        mov     [ChannelNumber],1
21
        mov     [ChannelNumber],1
22
        mov     [DiskNumber],0
22
        mov     [DiskNumber],0
23
        call    FindHDD_3
23
        call    FindHDD_3
24
;        mov     ax,[Sector512+176]
-
 
25
;        mov     [DRIVE_DATA+6],ax
-
 
26
;        mov     ax,[Sector512+126]
-
 
27
;        mov     [DRIVE_DATA+8],ax
-
 
28
;        mov     ax,[Sector512+128]
-
 
29
;        mov     [DRIVE_DATA+8],ax
-
 
30
        mov     [DiskNumber],1
24
        mov     [DiskNumber],1
31
        call    FindHDD_3
25
        call    FindHDD_3
32
;        mov     al,[Sector512+176]
-
 
33
;        mov     [DRIVE_DATA+7],al
-
 
34
        inc     [ChannelNumber]
26
        inc     [ChannelNumber]
35
        mov     [DiskNumber],0
27
        mov     [DiskNumber],0
36
        call    FindHDD_3
28
        call    FindHDD_3
37
;        mov     al,[Sector512+176]
-
 
38
;        mov     [DRIVE_DATA+8],al
-
 
39
        mov     [DiskNumber],1
29
        mov     [DiskNumber],1
40
        call    FindHDD_1
30
        call    FindHDD_1
41
;        mov     al,[Sector512+176]
-
 
42
;        mov     [DRIVE_DATA+9],al
-
 
Line 43... Line 31...
43
 
31
 
Line 44... Line 32...
44
        jmp     EndFindHDD
32
        jmp     EndFindHDD
45
 
33
 
Line 55... Line 43...
55
        jmp     FindHDD_2_2
43
        jmp     FindHDD_2_2
56
   FindHDD_2:
44
   FindHDD_2:
57
        call    DeviceReset
45
        call    DeviceReset
58
        cmp     [DevErrorCode],0
46
        cmp     [DevErrorCode],0
59
        jne     FindHDD_2_2
47
        jne     FindHDD_2_2
60
        call    ReadCD_ID
48
;        call    ReadCD_ID
61
        cmp     [DevErrorCode],0
49
;        cmp     [DevErrorCode],0
62
        jne      FindHDD_2_2
50
;        jne      FindHDD_2_2
63
        inc     byte [DRIVE_DATA+1]
51
        inc     byte [DRIVE_DATA+1]
64
        inc     byte [DRIVE_DATA+1]
52
        inc     byte [DRIVE_DATA+1]
65
   FindHDD_2_2:
53
   FindHDD_2_2:
66
        ret
54
        ret
Line 109... Line 97...
109
        test    AL,1     ;ñîñòîÿíèå ñèãíàëà ERR
97
        test    AL,1     ;ñîñòîÿíèå ñèãíàëà ERR
110
        jnz     @@Error6
98
        jnz     @@Error6
111
        test    AL,08h   ;ñîñòîÿíèå ñèãíàëà DRQ
99
        test    AL,08h   ;ñîñòîÿíèå ñèãíàëà DRQ
112
        jz      @@WaitCompleet
100
        jz      @@WaitCompleet
113
; Ïðèíÿòü áëîê äàííûõ îò êîíòðîëëåðà
101
; Ïðèíÿòü áëîê äàííûõ îò êîíòðîëëåðà
114
;        mov     AX,DS
-
 
115
;        mov     ES,AX
-
 
116
        mov     EDI,Sector512  ;offset Sector512
102
        mov     EDI,Sector512  ;offset Sector512
117
        mov     DX,[ATABasePortAddr] ;ðåãèñòð äàííûõ
103
        mov     DX,[ATABasePortAddr] ;ðåãèñòð äàííûõ
118
        mov     CX,256   ;÷èñëî ñ÷èòûâàåìûõ ñëîâ
104
        mov     CX,256   ;÷èñëî ñ÷èòûâàåìûõ ñëîâ
119
        rep     insw     ;ïðèíÿòü áëîê äàííûõ
105
        rep     insw     ;ïðèíÿòü áëîê äàííûõ
120
	ret
106
	ret
Line 199... Line 185...
199
        or      AL,10100000b
185
        or      AL,10100000b
200
        out     DX,AL
186
        out     DX,AL
201
        ; Îæèäàòü, ïîêà äèñê íå áóäåò ãîòîâ
187
        ; Îæèäàòü, ïîêà äèñê íå áóäåò ãîòîâ
202
        inc     DX
188
        inc     DX
203
        mov  ecx,0xfff
189
        mov  ecx,0xfff
204
;        mov     eax,[timer_ticks]
-
 
205
;        mov     [TickCounter_1],eax
-
 
206
@@WaitHDReady:
190
@@WaitHDReady:
207
        ; Ïðîâåðèòü âðåìÿ îæèäàíè
191
        ; Ïðîâåðèòü âðåìÿ îæèäàíè
208
        dec  ecx
192
        dec  ecx
209
;        cmp  ecx,0
-
 
210
        jz     @@Err1
193
        jz     @@Err1
211
;        mov     eax,[timer_ticks]
-
 
212
;        sub     eax,[TickCounter_1]
-
 
213
;        cmp     eax,300    ;îæèäàòü 300 òèêîâ
-
 
214
;        ja      @@Err1   ;îøèáêà òàéì-àóòà
-
 
215
        ; Ïðî÷èòàòü ðåãèñòð ñîñòîÿíè
194
        ; Ïðî÷èòàòü ðåãèñòð ñîñòîÿíè
216
        in      AL,DX
195
        in      AL,DX
217
        ; Ïðîâåðèòü ñîñòîÿíèå ñèãíàëà BSY
196
        ; Ïðîâåðèòü ñîñòîÿíèå ñèãíàëà BSY
218
        test    AL,80h
197
        test    AL,80h
219
        jnz     @@WaitHDReady
198
        jnz     @@WaitHDReady
Line 268... Line 247...
268
        ret
247
        ret
269
@@Err5: mov     [DevErrorCode],5
248
@@Err5: mov     [DevErrorCode],5
270
; Çàâåðøåíèå ðàáîòû ïðîãðàììû
249
; Çàâåðøåíèå ðàáîòû ïðîãðàììû
271
        ret
250
        ret
Line -... Line 251...
-
 
251
 
272
 
252
if 0
273
;*************************************************
253
;*************************************************
274
;*     ×ÒÅÍÈÅ ÈÄÅÍÒÈÔÈÊÀÒÎÐÀ ÓÑÒÐÎÉÑÒÂÀ ATAPI    *
254
;*     ×ÒÅÍÈÅ ÈÄÅÍÒÈÔÈÊÀÒÎÐÀ ÓÑÒÐÎÉÑÒÂÀ ATAPI    *
275
;* Âõîäíûå ïàðàìåòðû ïåðåäàþòñÿ ÷åðåç ãëîáàëüíûå *
255
;* Âõîäíûå ïàðàìåòðû ïåðåäàþòñÿ ÷åðåç ãëîáàëüíûå *
276
;* ïåðìåííûå:                                    *
256
;* ïåðìåííûå:                                    *
Line 297... Line 277...
297
        add     DX,7   ;ïîðò 1õ7h
277
        add     DX,7   ;ïîðò 1õ7h
298
        mov  	ecx,0xffff
278
        mov  	ecx,0xffff
299
@@WaitCompleet_1:
279
@@WaitCompleet_1:
300
        ; Ïðîâåðèòü âðåì
280
        ; Ïðîâåðèòü âðåì
301
        dec  	ecx
281
        dec  	ecx
302
;        cmp  	ecx,0
-
 
303
        jz     @@Error1_1  ;îøèáêà òàéì-àóòà
282
        jz     @@Error1_1  ;îøèáêà òàéì-àóòà
304
        ; Ïðîâåðèòü ãîòîâíîñòü
283
        ; Ïðîâåðèòü ãîòîâíîñòü
305
        in      AL,DX
284
        in      AL,DX
306
        test    AL,80h   ;ñîñòîÿíèå ñèãíàëà BSY
285
        test    AL,80h   ;ñîñòîÿíèå ñèãíàëà BSY
307
        jnz     @@WaitCompleet_1
286
        jnz     @@WaitCompleet_1
308
        test    AL,1     ;ñîñòîÿíèå ñèãíàëà ERR
287
        test    AL,1     ;ñîñòîÿíèå ñèãíàëà ERR
309
        jnz     @@Error6_1
288
        jnz     @@Error6_1
310
        test    AL,08h   ;ñîñòîÿíèå ñèãíàëà DRQ
289
        test    AL,08h   ;ñîñòîÿíèå ñèãíàëà DRQ
311
        jz      @@WaitCompleet_1
290
        jz      @@WaitCompleet_1
312
; Ïðèíÿòü áëîê äàííûõ îò êîíòðîëëåðà
291
; Ïðèíÿòü áëîê äàííûõ îò êîíòðîëëåðà
313
;        mov     AX,DS
-
 
314
;        mov     ES,AX
-
 
315
        mov     EDI,Sector512  ;offset Sector512
292
        mov     EDI,Sector512  ;offset Sector512
316
        mov     DX,[ATABasePortAddr] ;ïîðò 1x0h
293
        mov     DX,[ATABasePortAddr] ;ïîðò 1x0h
317
        mov     CX,256 ;÷èñëî ñ÷èòûâàåìûõ ñëîâ
294
        mov     CX,256 ;÷èñëî ñ÷èòûâàåìûõ ñëîâ
318
        rep     insw
295
        rep     insw
319
        ret
296
        ret
Line 324... Line 301...
324
@@Error6_1:
301
@@Error6_1:
325
        mov     [DevErrorCode],6
302
        mov     [DevErrorCode],6
326
@@End_1:
303
@@End_1:
327
        ret
304
        ret
Line -... Line 305...
-
 
305
 
-
 
306
end if
328
 
307
 
329
;*************************************************
308
;*************************************************
330
;*                ÑÁÐÎÑ ÓÑÒÐÎÉÑÒÂÀ               *
309
;*                ÑÁÐÎÑ ÓÑÒÐÎÉÑÒÂÀ               *
331
;* Âõîäíûå ïàðàìåòðû ïåðåäàþòñÿ ÷åðåç ãëîáàëüíûå *
310
;* Âõîäíûå ïàðàìåòðû ïåðåäàþòñÿ ÷åðåç ãëîáàëüíûå *
332
;* ïåðåìåííûå:                                   *
311
;* ïåðåìåííûå:                                   *