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 | ;* ïåðåìåííûå: * |