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 | - |