OSDev http://osdev.su/ |
|
identify packet device - ошибка непонятная http://osdev.su/viewtopic.php?f=7&t=810 |
Страница 1 из 1 |
Автор: | Мотороллер [ 17 окт 2013, 18:51 ] |
Заголовок сообщения: | identify packet device - ошибка непонятная |
Код: xor eax, eax mov dx, 1F7h @@: in al, dx test al, 80h jnz @b mov al, 1010000b dec dx out dx, al mov al, 0A1h inc dx out dx, al nop nop mov cx, 4 @@: dec cx jz .error in al, dx ;al=0 O_O test al, 80h jnz @b test al, 40h jz @b ;mov ecx, 256 ;mov edi, .buf ;rep insw ;mov eax, [.buf] ;mov eax, [.buf+24] .error: sub dx, 6 in al, dx ;al=1 - ошибка носителя jmp $ .buf dd 128 dup (0) в коментах все отражено. как так то? что я не так делаю? через Device reset смотрел возвращаемую инфу - ATAPI-идентификатор присутствует. |
Автор: | pavia [ 17 окт 2013, 19:15 ] |
Заголовок сообщения: | Re: identify packet device - ошибка непонятная |
Если шина PATA. И на ней два девайса один ATA, а другой ATAPI, то ошибка может быть в виду того что identify packet device не чувствительно к выбору устройства (master, host) |
Автор: | Мотороллер [ 17 окт 2013, 19:21 ] |
Заголовок сообщения: | Re: identify packet device - ошибка непонятная |
запускаю через bochs, там только ATAPI, жестких дисков нету |
Автор: | pavia [ 17 окт 2013, 20:55 ] |
Заголовок сообщения: | Re: identify packet device - ошибка непонятная |
А ATAPI устройство ведущий или ведомый? Если к примеру в запросе ведущий а подключено как ведомый то тут тоже может быть ошибка. А вообще возьми спецификацию и посмотри что там пишут. А то я на память не очень помню в каких вариантах identify packet device возвращает ошибку. Учтите что identify packet device специальная команда и её поведения отличается от большинства. |
Автор: | Мотороллер [ 17 окт 2013, 21:54 ] |
Заголовок сообщения: | Re: identify packet device - ошибка непонятная |
Код: ;mov dx, 1F6h ;mov al, 10100000b ;out dx, al ;mov al, 08h ;inc dx ;out dx, al ;nop ;nop ;@@: ;in al, dx ;test al, 80h ;jnz @b ; ; xor eax, eax ; mov dx, 1F2h ; in al, dx ; inc dx ; rol eax, 8 ; in al, dx ; rol eax, 8 ; inc dx ; in al, 8 ; rol eax, 8 ; in al, dx ; rol eax, 8 ; inc dx ; in al, dx ; mov ebx, eax ; int 0FFh xor eax, eax mov al, 10100000b mov dx, 1F6h out dx, al inc dx mov al, 0A1h out dx, al nop nop nop @@: in al, dx test al, 80h jnz @b test al, 40h jz @b mov dx, 1F0h mov esi, .buf mov edi, esi mov cx, 256 rep insw переписал код с нуля - все норм О_О только есть один нюанс... первое слово в .buf должно выдавать характеристики устройства. а у меня по битам вообще не атапи девайс О_О |
Автор: | Мотороллер [ 17 окт 2013, 21:56 ] |
Заголовок сообщения: | Re: identify packet device - ошибка непонятная |
ну да, я посылку в хер знает какой девайс делал в первый раз. mov al, 1010000b было, а надо 10100000b. от и все |
Автор: | scuter [ 04 дек 2013, 23:05 ] |
Заголовок сообщения: | Re: identify packet device - ошибка непонятная |
а дайте структуру этого IDENTIFY PACKET DEVICE. и есть ли там информация по размеру жёсткого диска и CHS(то есть количество головок и т.д.). |
Автор: | Nable [ 04 дек 2013, 23:34 ] |
Заголовок сообщения: | Re: identify packet device - ошибка непонятная |
> CHS > 2013 Физические параметры в CHS никто давным-давно не отдаёт, а от логических толку 0, один вред. Насчёт структуры - http://wiki.osdev.org/ATA_PIO_Mode#Inte ... y_IDENTIFY , там не всё, но если сильно надо - по ссылкам внизу страницы можно найти наверняка полное описание. |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |