Subversion Repositories Kolibri OS

Rev

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

Rev 618 Rev 628
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: 618 $
8
$Revision: 628 $
9
 
9
 
10
 
10
 
Line 54... Line 54...
54
	mov	[PacketCommand+8],byte 1
54
	mov	  [PacketCommand+8],byte 1
55
	; Çàäàòü ñ÷èòûâàíèå äàííûõ â ïîëíîì îáúåìå
55
	; Çàäàòü ñ÷èòûâàíèå äàííûõ â ïîëíîì îáúåìå
56
;        mov     [PacketCommand+9],byte 0xF8
56
;        mov     [PacketCommand+9],byte 0xF8
57
; Ïîäàòü êîìàíäó
57
; Ïîäàòü êîìàíäó
58
	call	SendPacketDatCommand
58
	call  SendPacketDatCommand
59
;        call test_mario79
-
 
60
	popa
59
	popa
61
	ret
60
	ret
Line 62... Line 61...
62
 
61
 
63
;********************************************
62
;********************************************
Line 95... Line 94...
95
    mov   [CDDataBuf_pointer],edi
94
    mov   [CDDataBuf_pointer],edi
96
    pop   eax
95
    pop   eax
97
    pop   edi
96
    pop   edi
Line 98... Line 97...
98
 
97
 
-
 
98
    call  ReadCDWRetr_1
-
 
99
    cmp   [DevErrorCode],0
-
 
100
    jne   .exit
99
    call  ReadCDWRetr_1
101
 
100
    mov   [CDDataBuf_pointer],ebx
102
    mov   [CDDataBuf_pointer],ebx
101
    call  cd_calculate_cache_1
103
    call  cd_calculate_cache_1
102
    lea   esi,[edi*8+esi]
104
    lea   esi,[edi*8+esi]
103
    mov   [esi],eax		; sector number
105
    mov   [esi],eax		; sector number
Line 111... Line 113...
111
    pop   eax
113
    pop   eax
112
    mov   edi,ebx   ;[CDDataBuf_pointer]
114
    mov   edi,ebx   ;[CDDataBuf_pointer]
113
    mov   ecx,512   ;/4
115
    mov   ecx,512   ;/4
114
    cld
116
    cld
115
    rep   movsd 		; move data
117
    rep   movsd 		; move data
-
 
118
.exit:
116
    popad
119
    popad
117
    ret
120
    ret
Line 118... Line 121...
118
 
121
 
119
ReadCDWRetr_1:
122
ReadCDWRetr_1:
Line 140... Line 143...
140
	cmp	eax,0
143
	cmp   eax,0
141
	je	@@NextRetr
144
	je    @@NextRetr
142
	jmp	.wait
145
	jmp	  .wait
143
@@:
146
@@:
144
; Çàäåðæêà íà 2,5 ñåêóíäû
147
; Çàäåðæêà íà 2,5 ñåêóíäû
145
	mov	EAX,[timer_ticks]
148
;	mov	EAX,[timer_ticks]
146
	add	EAX,250 ;50
149
;	add	EAX,50	;250
147
@@Wait:
150
;@@Wait:
148
	call	change_task
151
;	call	change_task
149
	cmp	EAX,[timer_ticks]
152
;	cmp	EAX,[timer_ticks]
150
	ja	@@Wait
153
;	ja	@@Wait
151
	loop	@@NextRetr
154
	loop  @@NextRetr
152
@@End_4:
155
@@End_4:
153
	popad
156
	popad
154
	ret
157
	ret
Line 187... Line 190...
187
;* PacketCommand - 12-áàéòíûé êîìàíäíûé ïàêåò;      *
190
;* PacketCommand - 12-áàéòíûé êîìàíäíûé ïàêåò;      *
188
;* CDBlockSize - ðàçìåð ïðèíèìàåìîãî áëîêà äàííûõ.  *
191
;* CDBlockSize - ðàçìåð ïðèíèìàåìîãî áëîêà äàííûõ.  *
189
;****************************************************
192
;****************************************************
190
SendPacketDatCommand:
193
SendPacketDatCommand:
191
	pushad
194
	pushad
-
 
195
	mov   [DevErrorCode],0
192
; Çàäàòü ðåæèì CHS
196
; Çàäàòü ðåæèì CHS
193
	mov	[ATAAddressMode],0
197
	mov	[ATAAddressMode],0
194
; Ïîñëàòü ATA-êîìàíäó ïåðåäà÷è ïàêåòíîé êîìàíäû
198
; Ïîñëàòü ATA-êîìàíäó ïåðåäà÷è ïàêåòíîé êîìàíäû
195
	mov	[ATAFeatures],0
199
	mov	[ATAFeatures],0
196
	mov	[ATASectorCount],0
200
	mov	[ATASectorCount],0
Line 299... Line 303...
299
@@Err6_temp:
303
@@Err6_temp:
300
	mov	[DevErrorCode],7
304
	mov	[DevErrorCode],7
301
	jmp @@End_8
305
	jmp @@End_8
302
@@Err6:
306
@@Err6:
303
	mov	[DevErrorCode],6
307
	mov	[DevErrorCode],6
304
 
-
 
305
@@End_8:
308
@@End_8:
306
	popad
309
	popad
307
	ret
310
	ret
Line 317... Line 320...
317
;* DiskNumber - íîìåð äèñêà íà êàíàëå;         *
320
;* DiskNumber - íîìåð äèñêà íà êàíàëå;         *
318
;* PacketCommand - 12-áàéòíûé êîìàíäíûé ïàêåò. *
321
;* PacketCommand - 12-áàéòíûé êîìàíäíûé ïàêåò. *
319
;***********************************************
322
;***********************************************
320
SendPacketNoDatCommand:
323
SendPacketNoDatCommand:
321
	pushad
324
	pushad
-
 
325
    mov   [DevErrorCode],0
322
; Çàäàòü ðåæèì CHS
326
; Çàäàòü ðåæèì CHS
323
	mov	[ATAAddressMode],0
327
	mov	[ATAAddressMode],0
324
; Ïîñëàòü ATA-êîìàíäó ïåðåäà÷è ïàêåòíîé êîìàíäû
328
; Ïîñëàòü ATA-êîìàíäó ïåðåäà÷è ïàêåòíîé êîìàíäû
325
	mov	[ATAFeatures],0
329
	mov	[ATAFeatures],0
326
	mov	[ATASectorCount],0
330
	mov	[ATASectorCount],0
Line 417... Line 421...
417
;* Ïðè âîçíèêíîâåíèè îøèáêè â DevErrorCode áóäåò    *
421
;* Ïðè âîçíèêíîâåíèè îøèáêè â DevErrorCode áóäåò    *
418
;* âîçâðàùåí êîä îøèáêè.                            *
422
;* âîçâðàùåí êîä îøèáêè.                            *
419
;****************************************************
423
;****************************************************
420
SendCommandToHDD_1:
424
SendCommandToHDD_1:
421
	pushad
425
	pushad
-
 
426
    mov   [DevErrorCode],0
422
; Ïðîâåðèòü çíà÷åíèå êîäà ðåæèìà
427
; Ïðîâåðèòü çíà÷åíèå êîäà ðåæèìà
423
	cmp	[ATAAddressMode],1
428
	cmp	[ATAAddressMode],1
424
	ja	@@Err2_4
429
	ja	@@Err2_4
425
; Ïðîâåðèòü êîððåêòíîñòü íîìåðà êàíàëà
430
; Ïðîâåðèòü êîððåêòíîñòü íîìåðà êàíàëà
426
	mov	BX,[ChannelNumber]
431
	mov	BX,[ChannelNumber]
Line 817... Line 822...
817
	pusha
822
	pusha
818
    mov  [CDDataBuf_pointer],CDDataBuf
823
	mov	[CDDataBuf_pointer],CDDataBuf
819
; Î÷èñòèòü áóôåð ïàêåòíîé êîìàíäû
824
; Î÷èñòèòü áóôåð ïàêåòíîé êîìàíäû
820
	call  clear_packet_buffer
825
	call  clear_packet_buffer
821
; Çàäàòü êîä êîìàíäû
826
; Çàäàòü êîä êîìàíäû
822
	mov	[PacketCommand],word 4Ah
827
	mov	[PacketCommand],byte 4Ah
823
	mov	[PacketCommand+1],byte 00000001b
828
	mov	[PacketCommand+1],byte 00000001b
824
; Çàäàòü çàïðîñ êëàññà ñîîáùåíèé
829
; Çàäàòü çàïðîñ êëàññà ñîîáùåíèé
825
	mov	[PacketCommand+4],byte 00010000b
830
	mov	[PacketCommand+4],byte 00010000b
826
; Çàäàòü çàïðîñ êëàññà ñîîáùåíèé
831
; Ðàçìåð âûäåëåííîé îáëàñòè
827
	mov	[PacketCommand+7],byte 8
832
	mov	[PacketCommand+7],byte 8h
828
	mov	[PacketCommand+8],byte 0
833
	mov	[PacketCommand+8],byte 0h
829
; Ïîäàòü êîìàíäó
834
; Ïîäàòü êîìàíäó
830
;    mov [timer_ticks_enable],0
-
 
831
	call	SendPacketDatCommand
835
	call	SendPacketDatCommand
832
;    mov [timer_ticks_enable],1
-
 
833
	popa
836
	popa
834
	ret
837
	ret
Line 835... Line 838...
835
 
838
 
836
;*************************************************
839
;*************************************************
Line 857... Line 860...
857
; Î÷èñòèòü áóôåð ïàêåòíîé êîìàíäû
860
; Î÷èñòèòü áóôåð ïàêåòíîé êîìàíäû
858
	mov	[PacketCommand],dword 0
861
	mov	[PacketCommand],dword 0
859
	mov	[PacketCommand+4],dword 0
862
	mov	[PacketCommand+4],dword 0
860
	mov	[PacketCommand+8],dword 0
863
	mov	[PacketCommand+8],dword 0
861
	ret
864
	ret
862
-