Subversion Repositories Kolibri OS

Rev

Rev 3519 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

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