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